| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 499 人关注过本帖
标题:这是我编的程序,如何加入借书和还书的操作?求帮忙
只看楼主 加入收藏
游戏王
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-5-20
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
这是我编的程序,如何加入借书和还书的操作?求帮忙
#include<stdio.h>
#include<string.h>  
#include<stdlib.h>
#include<math.h>
typedef struct  
{ char     name[10];  //姓名
  char     call[120]; //电话
}datatype;
typedef struct
{  char     name1[20]; //书名
   char     numb[30];  //书号
}booktype;
typedef struct node  
{
    datatype data;  
    booktype book;
    struct node * next;  
}listnode;  
typedef listnode * linklist,*linklist1;  
linklist head;
linklist1 head1;
listnode * p;
listnode * p1;
//图书馆用户信息的建立
linklist Create(int a )  
{
  linklist head=(listnode *)malloc(sizeof(listnode));  
  listnode *p,*q;
  q=head;
  while(a--)
     {
      p=(listnode *)malloc(sizeof(listnode));
      printf("姓名  电话 \n");
      scanf("%s%s",p->data.name,p->data.call);
      q->next=p;
      q=p;
  }
  q->next=NULL;
  return head;
}
linklist1 addbook(int a)
{
    linklist1 head1=(listnode *)malloc(sizeof(listnode));  
    listnode *p,*q;
    q=head1;
    while(a--){
        p=(listnode *)malloc(sizeof(listnode));
        printf("书名 书号\n");
         scanf("%s%s",p->book.name1,p->book.numb);
        q->next=p;
        q=p;
    }
    q->next=NULL;
  return head1;

}



//图书用户信息的添加
void Add(linklist head,int b)  
{
    listnode * m,* n,* p;  
    m=head;
    n=m->next;  
    while(n->next!=NULL)  
    {
        m=n;  
        n=n->next;  
    }
    while(b--)
    {
      p=(listnode *)malloc(sizeof(listnode));  
      printf("姓名  电话 \n");
      printf("**********************\n");  
      scanf("%s%s",p->data.name,p->data.call);
      m->next=p;  
      n=p;  
    }
    n->next=NULL;
}
//按用户姓名查找用户信息
 listnode * Find(linklist head)  
{
     listnode *p;
     char name[10];
     int i;  
     printf("**********************\n");      
     printf("**********************\n");  
     printf("按姓名查找,按1表示查找");
      p=head->next;  
     scanf("%d",&i);
     if(i==1)
     {
         printf("请输入要查找的姓名");
             scanf("%s",&name);
             while(p&&strcmp(p->data.name,name)>0)
                 p=p->next;  
             if(p==NULL||strcmp(p->data.name,name)<0)  
                 p=NULL;
         }
     return p;
 }
 //按图书姓名查找用户信息
 listnode * Find1(linklist1 head1)  
{
      listnode *p1;
      char name1[20];
     int i;  
     printf("**********************\n");     
     printf("**********************\n");
     printf("书名查找,按1表示查找");
      p1=head1->next;  
     scanf("%d",&i);
     if(i==1)
     {
         printf("请输入要查找的书名");
             scanf("%s",&name1);
             while(p&&strcmp(p->book.name1,name1)>0)
                 p=p->next;  
             if(p==NULL||strcmp(p->book.name1,name1)<0)  
                 p=NULL;
         }
     return p;
 }
  //按姓名信息的修改
void  Alter(linklist1 head1)
{
  listnode * p;
   p= Find1(head1);  
  if(p==NULL)  
  {
      printf("用户信息不存在\n");
  }
  else
  {
      printf(" 书名 书号\n");
      scanf("%s %s \n",p->data.name,p->data.call);
      printf("用户信息已修改!");
  }
}
//用户信息的删除
void Delete(linklist head)
{
    int i;
    listnode *p,*q;
    p=Find(head);
    if(p==NULL)
    {
        printf("信息不存在\n");
        return;
    }
    else
    {
        printf("要删除的话就按1:");  
        scanf("%d",&i);  
        if(i==1)  
        {  
            q=head;  
            while(q!=NULL&&q->next!=p)  
                q=q->next;  
            q->next=p->next;
            free(p);
            printf("已删用户信息\n");
        }
    }
}


//用户信息的输出
 void List(linklist head)  
{  
     listnode *p;
     p=head;
     printf("姓名 电话\n");
     printf("**********************\n");   
     while(p->next!=NULL)
     {
         printf("%s %s \n",p->next->data.name,p->next->data.call);
         p=p->next;
     }
 }
  int Menu1()
{
  int i;  
  printf("                                                                               \n");
  printf("                                                                               \n");
  printf("                              系统管理图书信息                                 \n");  
  printf("*******************************************************************************\n");
  printf("*******************************************************************************\n");
  printf("**                           1.用户信息的添加                                **\n");  
  printf("**                           2.用户姓名的查询                                **\n");  
  printf("**                           3.图书书名的查询                                **\n");
  printf("**                           4.图书信息的修改                                **\n");
  printf("**                           5.用户信息的删除                                **\n");
  printf("**                           6.用户信息的输出                                **\n");  
  printf("**                           0.退出                                          **\n");   
  printf("*******************************************************************************\n");
  printf("*******************************************************************************\n");
  printf("                                                                               \n");
  printf("                             请选择0-6:");  
  for(;;)  
   {  
      scanf("%d",&i);
      printf("\n");
      if(i<0||i>9)  
          printf("                    输出错误,重选0-6:");  
      else  
          break ;
  }
  return i;
 }
  int Menu2()
  {
      int i;
     printf("                                                                               \n");
     printf("                                                                               \n");
     printf("**                           1.添加图书                                      **\n");  
     printf("**                           2.查询所有用户                                  **\n");  
     printf("                             请选择1,2:                                        \n");  
     for(;;)  
     {  
         scanf("%d",&i);
         printf("\n");
      if(i!=1&&i!=2)  
          printf("                    输出错误,重选1,2:");  
      else  
          break ;
  }
  return i;

  }
int guanli()
  {
    char *p,b[21]="1";
    int c,c1=1;
    while(1){
        printf("请输入您的用户名:\n");
        p = (char*) malloc (20);
        gets(p);
        printf("请输入您的密码:\n");
        scanf("%d",&c);
        if(strcmp(p,b)!=0||c!=c1){
            printf("验证失败,请重新输入!\n");
            getchar();
        }
        else{
            printf("验证成功!\n");
            return 1;
            break;
            
        }
    }        


 

  }


   //图书管理系统主函数部分
void  main()  
{
    int a;
    int d,c,c1=1;
    char b[21],b1[10]="1";
    printf("*******************************************************************************\n");
    printf("**                           1.用户信息的创建                                **\n");  
    printf("**                           2.管理员登陆                                    **\n");  
    printf("**                           0.退出                                          **\n");   
    printf("*******************************************************************************\n");
    scanf("%d",&a);
    switch(a)
    {
        case 1:  
            printf("*********************************用户信息的创建******************************\n");
            head=Create(1);  
            break;  
        case 2:
            getchar();
            if(guanli()==1){
                switch(Menu2())
                {
                case 1:
                int i;
                printf("添加图书数目\n");
                scanf("%d",&i);
                addbook(i);
                break;
                 case 2:  
                  printf("*******************************用户信息的输出*****************************\n");
                 List(head);
                break;
                }
                }
            break;

        case 0:  
            printf("***********************************退出*************************************\n");
            exit(0);
    }
    for(;;)  
 {
        switch(Menu1())  
 {
        case 1:  
            printf("********************************用户信息的添加?*******************************\n");
            int a;
            printf("人数输入你想添加的?");
            scanf("%d",&a);
            Add(head,a);  
            break;  
        case 2:  
            printf("********************************用户姓名的查询******************************\n");  
            p=Find(head);  
            if(p!=NULL)  
            {
                printf("姓名 电话 书名 书号\n");
                printf("**********************\n");  
                printf("%s %s \n",p->data.name,p->data.call);
                printf("\n");
                printf("**********************\n");  
            }  
            else  
                printf("该用户信息不存在!");  
            break;
        case 3:
            printf("********************************图书书名的查询******************************\n");  
            p=Find1(head1);  
            if(p!=NULL)  
            {
                printf("姓名 电话 书名 书号\n");
                printf("**********************\n");  
                printf("%s %s %s %s\n",p->data.name,p->data.call,p->book.name1,p->book.numb);
                printf("\n");
                printf("**********************\n");
            }  
            else  
                printf("该用户信息不存在!");  
            break;
        case 4:
            printf("********************************图书信息的修改******************************\n");  
            Alter(head1);   
            break;
        case 5:
                printf("******************************** 用户信息的删除******************************\n");  
                Delete(head);   
                break;
        case 6:  
                  printf("*******************************用户信息的输出*****************************\n");
                 List(head);
                break;

        case 0:  
            printf("***********************************退出*************************************\n");
            exit(0);
        }
   
    }

}
搜索更多相关主题的帖子: 图书馆 include Create 如何 
2013-05-20 22:19
猫小喵
Rank: 2
来 自:计算机专业
等 级:论坛游民
帖 子:29
专家分:77
注 册:2013-5-12
收藏
得分:10 
你的程序运行过么?在进入 管理员登入后 能运行 添加的功能么?

做一个爱编程得女生
2013-05-21 20:03
猫小喵
Rank: 2
来 自:计算机专业
等 级:论坛游民
帖 子:29
专家分:77
注 册:2013-5-12
收藏
得分:0 
又看了一遍功能很强大,我多嘴问一句,要执行借书和还书的操作,还有添加等等功能,对于每次输入的东西是不是无法保存那怎么实现你的查找删除等功能,你得实现保存和加载的问题

做一个爱编程得女生
2013-05-21 20:12
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:10 
写两个函数就可以了,具体怎么写,你先写

Maybe
2013-05-22 13:50
快速回复:这是我编的程序,如何加入借书和还书的操作?求帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028631 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved