| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 499 人关注过本帖
标题:这是我编的程序,如何加入借书和还书的操作?求帮忙
取消只看楼主 加入收藏
游戏王
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-5-20
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:0 
这是我编的程序,如何加入借书和还书的操作?求帮忙
#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
快速回复:这是我编的程序,如何加入借书和还书的操作?求帮忙
数据加载中...
 
   



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

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