鱼C论坛

 找回密码
 立即注册
查看: 2127|回复: 1

图书馆系统问题

[复制链接]
发表于 2019-12-27 21:04:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

想做一个显示所有信息的函数(show)
不输入数据的话信息显示挺好
如果用bookin函数输入数据的话就乱套了
用delbook删除居然还能再显示(show)函数查到
请问这是咋回事






  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4. #include<string.h>
  5. #define LEN sizeof(struct Book)
  6. #define FORMAT "%-15s%-15s%-15s%-15s\n"
  7. #define DATA card[i].card_num,card[i].student_name,book[i].book_num,book[i].book_name
  8. struct Card
  9. {
  10.         char card_num[99];
  11.         char student_name[20];
  12.     int book_totle;
  13. };
  14. struct Card card[10]={{"20111101","Zhanjun",3},{"20111103","YangKai",1},{"20111113","WuGang",4},{"20111123","Shanglei",2},{"20111105","ZhangKun",5}};
  15. struct Date
  16. {
  17.         int year;
  18.         int month;
  19.         int day;
  20. };
  21. struct Book
  22. {
  23.     char book_num[10];
  24.         char book_name[20];
  25.    struct Date date;
  26.    int flag;
  27. };
  28. struct Book book[10]={{"305032","History",{0,0,0},1},{"409812","Geogrophy",{0,0,0},1},{"213401","English",{0,0,0},1},{"3287463","Maths",{0,0,0},1},{"4102102","Physicyl",{0,0,0},1}};


  29. char num[10];
  30. void menu();//函数的声明
  31. void borrowbook();
  32. void returnbook();
  33. void bookinquiry();
  34. void bookin();
  35. void readerinquiry();
  36. void readerin();
  37. void reborrow();
  38. void delbook();
  39. void delreader();
  40. void show();


  41. void borrowbook()
  42. {
  43.         int i;
  44.         char booknum[10];
  45.         printf("请输入要借阅的书号");
  46.         scanf("%s",booknum);
  47.         for(i=0;i<5;i++)
  48.         {
  49.                 if(strcmp(booknum,book[i].book_num)==0)
  50.                 {
  51.                         if(book[i].flag==0)
  52.                                 printf("这本书已经借出!\n");
  53.                         else
  54.                         {
  55.                                 book[i].flag=0;
  56.               printf("借出日期填写:(请按年/月/日的顺序,如2019/9/8)\n");
  57.                           scanf("%d/%d/%d",&book[i].date.year,&book[i].date.month,&book[i].date.day);
  58.                           break;
  59.                         }
  60.                 }
  61.         }
  62.     for(i=0;i<5;i++)
  63.                 if(strcmp(num,card[i].card_num)==0)
  64.                 { card[i].book_totle=card[i].book_totle+1;
  65.                 break;
  66.                 }
  67.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  68.                 scanf("%d",&i);
  69.                 if(i==1)menu();
  70.                 else exit(0);
  71. }
  72. void returnbook()
  73. {
  74. int i;
  75.         char booknum[10];
  76.         printf("请输入要还的书号");
  77.         scanf("%s",booknum);
  78.         for(i=0;i<5;i++)
  79.         {
  80.                 if(strcmp(booknum,book[i].book_num)==0)
  81.                 {
  82.                    book[i].flag=1;
  83.                    break;
  84.                 }
  85.                 if(i>=5)
  86.                         printf("卡号输入错误!");
  87.                 for(i=0;i<5;i++)
  88.                 if(strcmp(num,card[i].card_num)==0)
  89.                 {
  90.                         card[i].book_totle=card[i].book_totle+1;
  91.                     break;
  92.                 }
  93.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  94.                 scanf("%d",&i);
  95.                 if(i==1)menu();
  96.                 else exit(0);
  97.         }

  98. }
  99.         
  100. void bookinquiry()
  101. {
  102.         int i;
  103.         char booknum[10];
  104.         printf("请输入要查询的书号:");
  105.         scanf("%s",booknum);
  106.         for(i=0;i<5;i++)
  107.                 if(strcmp(booknum,book[i].book_num)==0)
  108.                 {
  109.         printf("编号  书名  借出日期  状态\n");
  110.         printf("%s %s",book[i].book_num,book[i].book_name);
  111.         printf("%4d年%2d月%2d日",book[i].date.year,book[i].date.month,book[i].date.day);
  112.         if(book[i].flag==1)
  113.                                 printf("未借出!\n");
  114.                         else
  115.                         printf("已借出!\n");
  116.         }
  117.          
  118.                  printf("书号不存在\n");
  119.         printf("1.确认并返回菜单 2.确认信息并退出\n");
  120.                 scanf("%d",&i);
  121.                 if(i==1)
  122.                         menu();
  123.                 else
  124.                         exit(0);
  125.         
  126. }

  127. void bookin()

  128. {
  129.     int i,m=0;
  130.     char ch[2];
  131.     FILE *fp;
  132.     if((fp=fopen("data","ab+"))==NULL)
  133.     {
  134.         printf("不能打开文件!\n");
  135.         return;
  136.     }
  137.     while(!feof(fp))
  138.     {
  139.         if(fread(&book[m] ,LEN,1,fp)==1)
  140.             m++;
  141.     }
  142.     fclose(fp);
  143.    
  144.    
  145.     if((fp=fopen("data","wb"))==NULL)
  146.     {
  147.         printf("不能打开文件!\n");
  148.         return;
  149.     }
  150.     for(i=0;i<m;i++)
  151.         fwrite(&book[i] ,LEN,1,fp);
  152.     printf("是否输入?(y/n):");
  153.     scanf("%s",ch);
  154.     while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
  155.     {
  156.         printf("图书编号:");
  157.         scanf("%s",book[m].book_num);
  158.         for(i=0;i<m;i++)
  159.             if (strcmp(book[m].book_num, book[i].book_num) == 0)
  160.             {
  161.                 printf("该记录已经存在\n");
  162.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  163.                         scanf("%d",&i);
  164.                 if(i==1)
  165.                         menu();
  166.                 else
  167.                         exit(0);
  168.             }
  169.             printf("书名:");
  170.             scanf("%s",book[m].book_name);  
  171.               
  172.             
  173.             if(fwrite(&book[m],LEN,1,fp)!=1)  
  174.             {
  175.                 printf("不能保存!");
  176.                 getch();
  177.             }
  178.             else
  179.             {
  180.                 printf("%s 已经保存!\n",book[m].book_name);
  181.                 m++;
  182.             }
  183.             printf("是否继续?(y/n):");
  184.             scanf("%s",ch);
  185.     }
  186.     fclose(fp);
  187.     printf("OK!\n");
  188.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  189.                 scanf("%d",&i);
  190.                 if(i==1)
  191.                         menu();
  192.                 else
  193.                         exit(0);
  194. }









  195. void delbook()
  196. {
  197.     FILE *fp;
  198.     int i, j, m = 0;
  199.     char snum[10];                                                
  200.     char ch[2];
  201.     if ((fp = fopen("data", "ab+")) == NULL)
  202.     {
  203.         printf("不能打开文件\n");
  204.         return;
  205.     }
  206.     while (!feof(fp))
  207.         if (fread(&book[m], LEN, 1, fp) == 1)
  208.             m++;
  209.     fclose(fp);

  210.     printf("请输入编号:");
  211.     scanf("%s", snum);
  212.     for (i = 0; i<5; i++)
  213.         if (strcmp(snum, book[i].book_num) == 0)
  214.         {                                                                  
  215.             printf("已经找到该记录,是否删除?(y/n)");
  216.             break;                                                      
  217.         }                                                                  
  218.     scanf("%s", ch);
  219.     if (strcmp(ch, "Y") == 0 || strcmp(ch, "y") == 0)
  220.     {
  221.         for (j = i; j<m; j++)
  222.             book[j] = book[j + 1];
  223.         m--;                                            
  224.         printf("成功删除!\n");
  225.     }
  226.     if ((fp = fopen("data", "wb")) == NULL)
  227.     {
  228.         printf("不能打开!\n");
  229.         return;
  230.     }
  231.     for (j = 0; j<m; j++)
  232.         if (fwrite(&book[j], LEN, 1, fp) != 1)
  233.         {
  234.             printf("不能保存!\n");
  235.             getch();
  236.         }
  237.     fclose(fp);
  238.     printf("1.确认并返回菜单 2.确认信息并退出\n");
  239.     scanf("%d", &i);
  240.     if (i == 1)
  241.         menu();
  242.     else
  243.         exit(0);
  244. }


  245. void readerinquiry()
  246. {
  247.         int i;
  248.         char studentname[20];
  249.         printf("请输入要查询的读者");
  250.         scanf("%s",studentname);
  251.         for(i=0;i<5;i++)
  252.         if(strcmp(studentname,card[i].student_name)==0)
  253.                 {
  254.         printf("借书证号  姓名  书名  借出日期  \n");

  255.         printf("%s %s %s",card[i].card_num,card[i].student_name,book[i].book_name);
  256.         printf("%4d年%2d月%2d日\n",book[i].date.year,book[i].date.month,book[i].date.day);
  257.         
  258.         }

  259.         printf("1.确认并返回菜单 2.确认信息并退出\n");
  260.                 scanf("%d",&i);
  261.                 if(i==1)menu();
  262.                 else exit(0);
  263. }
  264. void readerin()

  265. {
  266.     int i,m=0;
  267.     char ch[2];
  268.     FILE *fp;
  269.     if((fp=fopen("data","ab+"))==NULL)
  270.     {
  271.         printf("不能打开文件!\n");
  272.         return;
  273.     }
  274.     while(!feof(fp))
  275.     {
  276.         if(fread(&card[m] ,LEN,1,fp)==1)
  277.             m++;
  278.     }
  279.     fclose(fp);
  280.    
  281.    
  282.     if((fp=fopen("data","wb"))==NULL)
  283.     {
  284.         printf("不能打开文件!\n");
  285.         return;
  286.     }
  287.     for(i=0;i<m;i++)
  288.         fwrite(&card[i] ,LEN,1,fp);
  289.     printf("是否输入?(y/n):");
  290.     scanf("%s",ch);
  291.     while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
  292.     {
  293.         printf("学号:");
  294.         scanf("%s",card[m].card_num);
  295.         for(i=0;i<m;i++)
  296.             if (strcmp(card[m].card_num, card[i].card_num) == 0)
  297.             {
  298.                 printf("该记录已经存在\n");
  299.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  300.                         scanf("%d",&i);
  301.                 if(i==1)
  302.                         menu();
  303.                 else
  304.                         exit(0);
  305.             }
  306.             printf("姓名:");
  307.             scanf("%s",card[m].student_name);  
  308.               
  309.             
  310.             if(fwrite(&card[m],LEN,1,fp)!=1)  
  311.             {
  312.                 printf("不能保存!");
  313.                 getch();
  314.             }
  315.             else
  316.             {
  317.                 printf("%s 已经保存!\n",card[m].student_name);
  318.                 m++;
  319.             }
  320.             printf("是否继续?(y/n):");
  321.             scanf("%s",ch);
  322.     }
  323.     fclose(fp);
  324.     printf("OK!\n");
  325.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  326.                 scanf("%d",&i);
  327.                 if(i==1)
  328.                         menu();
  329.                 else
  330.                         exit(0);
  331. }
  332. void delreader()
  333. {
  334.     FILE *fp;
  335.     int i, j, m = 0;
  336.     char num[10];                                                
  337.     char ch[2];
  338.     if ((fp = fopen("data", "ab+")) == NULL)
  339.     {
  340.         printf("不能打开文件\n");
  341.         return;
  342.     }
  343.     while (!feof(fp))
  344.         if (fread(&card[m], LEN, 1, fp) == 1)
  345.             m++;
  346.     fclose(fp);

  347.     printf("请输入编号:");
  348.     scanf("%s", num);
  349.     for (i = 0; i<5; i++)
  350.         if (strcmp(num, card[i].card_num) == 0)
  351.         {                                                                  
  352.             printf("已经找到该记录,是否删除?(y/n)");
  353.             break;                                                      
  354.         }                                                                  
  355.     scanf("%s", ch);
  356.     if (strcmp(ch, "Y") == 0 || strcmp(ch, "y") == 0)
  357.     {
  358.         for (j = i; j<m; j++)
  359.             card[j] = card[j + 1];
  360.         m--;                                            
  361.         printf("成功删除!\n");
  362.     }
  363.     if ((fp = fopen("data", "wb")) == NULL)
  364.     {
  365.         printf("不能打开!\n");
  366.         return;
  367.     }
  368.    
  369.     fclose(fp);
  370.     printf("1.确认并返回菜单 2.确认信息并退出\n");
  371.     scanf("%d", &i);
  372.     if (i == 1)
  373.         menu();
  374.     else
  375.         exit(0);
  376. }


  377. void reborrow()
  378. {
  379.         int i;
  380.         char booknum[10];
  381.         printf("请输入要续借的书号");
  382.         scanf("%s",booknum);
  383.         for(i=0;i<5;i++)
  384.         if(strcmp(booknum,book[i].book_num)==0)
  385.         {
  386.         printf("编号  书名  借出日期  状态\n");
  387.         printf("%s %s",book[i].book_num,book[i].book_name);
  388.         printf("%4d年%2d月%2d日",book[i].date.year,book[i].date.month,book[i].date.day);
  389.         
  390.         if(book[i].flag==1)
  391.             printf("不能续借!\n");
  392.                         else
  393.                                 printf("可以续借!\n");
  394.         }

  395.                         printf("1.确认续借    2.取消续借");
  396.                         scanf("%d",&i);
  397.              if(i==1)
  398.                 {
  399.                book[i].flag=0;
  400.              printf("续借日期填写:(请按年/月/日的顺序,如2019/9/8)\n");
  401.                     scanf("%d/%d/%d",&book[i].date.year,&book[i].date.month,&book[i].date.day);
  402.                            
  403.                 }
  404.                 else
  405.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  406.                 scanf("%d",&i);
  407.                 if(i==1)menu();
  408.                 else exit(0);
  409. }
  410. void show()     
  411. {
  412.    
  413.     int i;
  414.    
  415.     printf("学号           姓名           书号           书名\t\n");
  416.     for(i=0;i<10;i++)
  417.     printf(FORMAT,DATA);

  418.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  419.                 scanf("%d",&i);
  420.                 if(i==1)
  421.                         menu();
  422.                 else
  423.                         exit(0);
  424. }


  425. void menu()
  426. {
  427.         int n;
  428.         printf("~~~欢迎使用本校图书管理系统~~~\n");
  429.         printf("*******************************\n");
  430.         printf("1.借书\n");
  431.         printf("2.还书\n");
  432.         printf("3.图书查询\n");
  433.         printf("4.新书上架\n");
  434.     printf("5.旧书下架\n");
  435.         printf("6.读者查询\n");
  436.         printf("7.添加读者\n");
  437.         printf("8.删除读者\n");
  438.         printf("9.续借\n");
  439.         printf("10.显示\n");
  440.     printf("11.退出\n");
  441.         printf("请选择以上选项:\n");
  442.         printf("*******************************\n");
  443.         scanf("%d",&n);
  444.         switch(n)
  445.         {
  446.         case 1:borrowbook();break;
  447.         case 2:returnbook();break;
  448.         case 3:bookinquiry();break;
  449.         case 4:bookin();break;
  450.     case 5:delbook();break;
  451.         case 6:readerinquiry();break;
  452.         case 7:readerin();break;
  453.         case 8:delreader();break;
  454.         case 9:reborrow();break;
  455.         case 10:show();break;
  456.         case 11:exit(0);break;

  457.     default:printf("输入错误,退出\n");exit(0);break;
  458.         }

  459. }

  460. void main()
  461. {   
  462.         int i;
  463.         char num[10];
  464.         printf("请输入你的卡号");
  465.         scanf("%s",num);
  466.         for(i=0;i<5;i++)
  467.         if(strcmp(num,card[i].card_num)==0)
  468.                 break;
  469.         if(i>=5)
  470.         {
  471.                 printf("卡号不存在!");
  472.                 exit(0);
  473.         }
  474. else
  475.         menu();
  476.          
  477. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-12-28 13:59:03 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4. #include<string.h>
  5. #define DATA card[i].card_num,card[i].student_name,book[i].book_num,book[i].book_name
  6. struct Card
  7. {
  8.         char card_num[99];
  9.         char student_name[20];
  10.     int book_totle;
  11. };
  12. struct Card card[99]={{"20111101","Zhanjun",3},{"20111103","YangKai",1},{"20111113","WuGang",4},{"20111123","Shanglei",2},{"20111105","ZhangKun",5}};

  13. struct Date
  14. {
  15.         int year;
  16.         int month;
  17.         int day;
  18. };
  19. struct Book
  20. {
  21.     char book_num[10];
  22.         char book_name[20];
  23.    struct Date date;
  24.    int flag;
  25. };
  26. struct Book book[99]={{"305032","History",{0,0,0},1},{"409812","Geogrophy",{0,0,0},1},{"213401","English",{0,0,0},1},{"3287463","Maths",{0,0,0},1},{"4102102","Physicyl",{0,0,0},1}};
  27. int n=100;

  28. char num[10];
  29. void menu();//函数的声明
  30. void borrowbook();
  31. void returnbook();
  32. void bookinquiry();
  33. void bookin();
  34. void readerinquiry();
  35. void readerin();
  36. void reborrow();
  37. void delbook();
  38. void delreader();
  39. void show();


  40. void borrowbook()
  41. {
  42.         int i;
  43.         char booknum[10];
  44.         printf("请输入要借阅的书号");
  45.         scanf("%s",booknum);
  46.         for(i=0;i<n;i++)
  47.         {
  48.                 if(strcmp(booknum,book[i].book_num)==0)
  49.                 {
  50.                         if(book[i].flag==0)
  51.                                 printf("这本书已经借出!\n");
  52.                         else
  53.                         {
  54.                                 book[i].flag=0;
  55.               printf("借出日期填写:(请按年/月/日的顺序,如2019/9/8)\n");
  56.                           scanf("%d/%d/%d",&book[i].date.year,&book[i].date.month,&book[i].date.day);
  57.                           printf("借阅成功\n");
  58.                           break;
  59.                         }
  60.                 }
  61.         }
  62.     for(i=0;i<n;i++)
  63.                 if(strcmp(num,card[i].card_num)==0)
  64.                 { card[i].book_totle=card[i].book_totle+1;
  65.                 break;
  66.                 }
  67.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  68.                 scanf("%d",&i);
  69.                 if(i==1)menu();
  70.                 else exit(0);
  71. }
  72. void returnbook()
  73. {
  74.     int i;
  75.         char booknum[10];
  76.         printf("请输入要还的书号");
  77.         scanf("%s",booknum);
  78.         for(i=0;i<n;i++)
  79.                 if(strcmp(booknum,book[i].book_num)==0)
  80.                 {
  81.                    book[i].flag=1;
  82.                    book[i].date.year=0;
  83.                    book[i].date.month=0;
  84.                    book[i].date.day=0;
  85.                    break;
  86.                 }
  87.                 if(i==n)
  88.                         printf("卡号输入错误!");
  89.                 for(i=0;i<n;i++)
  90.                 if(strcmp(num,card[i].card_num)==0)
  91.                 {
  92.                         printf("还书成功\n");
  93.                         card[i].book_totle=card[i].book_totle-1;
  94.                        
  95.                     break;
  96.                 }
  97.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  98.                 scanf("%d",&i);
  99.                 if(i==1)menu();
  100.                 else exit(0);
  101.        

  102. }
  103.        
  104. void bookinquiry()
  105. {
  106.         int i;
  107.         char booknum[10];
  108.         printf("请输入要查询的书号:");
  109.         scanf("%s",booknum);
  110.         for(i=0;i<n;i++)
  111.                 if(strcmp(booknum,book[i].book_num)==0)
  112.                 {
  113.                         printf("编号  书名  借出日期  状态\n");
  114.                         printf("%s %s",book[i].book_num,book[i].book_name);
  115.                         printf("%4d年%2d月%2d日",book[i].date.year,book[i].date.month,book[i].date.day);
  116.                         if(book[i].flag==1)
  117.                                 printf("未借出!\n");
  118.                         else
  119.                                 printf("已借出!\n");
  120.                         break;
  121.                 }
  122.              if(i==n)
  123.                  printf("书号不存在\n");
  124.         printf("1.确认并返回菜单 2.确认信息并退出\n");
  125.                 scanf("%d",&i);
  126.                 if(i==1)
  127.                         menu();
  128.                 else
  129.                         exit(0);
  130.        
  131. }


  132. void bookin()

  133. {

  134.         char booknum[10];
  135.         char bookname[20];

  136.         printf("请输入新书的书号:");
  137.         scanf("%s",booknum);
  138.         getchar();
  139.         printf("请输入新书的书名:");
  140.         scanf("%s",bookname);
  141.         getchar();
  142.         strcpy(book[n].book_num,booknum);
  143.         strcpy(book[n].book_name,bookname);
  144.      book[n].flag=1;
  145.         n++;
  146.         printf("亲,新书上好了哦 !!\n");
  147.         menu();

  148. }







  149. void delbook()
  150. {
  151.    
  152.         char booknum[10];
  153.         int i,j;
  154.         printf("请输入下架的书号:");
  155.         scanf("%s",booknum);
  156.         getchar();
  157.         for(i=0;i<n;i++)
  158.         {
  159.                 if(strcmp(book[i].book_num,booknum)==0)
  160.                 {
  161.                         break;
  162.                 }
  163.         }
  164.         if(i==n)
  165.                 printf("你要下架的书不存在\n");
  166.         else
  167.         {
  168.                 for(j=i;j<n;j++)
  169.                 {
  170.                         strcpy(book[j].book_num,book[j+1].book_num);
  171.                         strcpy(book[j].book_name,book[j+1].book_name);
  172.                 }
  173.                 n--;
  174.                 printf("亲,书已经下架了\n");
  175.         }
  176.         menu();



  177. }

  178. void readerinquiry()
  179. {
  180.         int i;
  181.         char studentname[20];
  182.         printf("请输入要查询的读者姓名");
  183.         scanf("%s",studentname);
  184.         for(i=0;i<n;i++)
  185.         if(strcmp(studentname,card[i].student_name)==0)
  186.                 {
  187.         printf("借书证号  姓名     书名  借出日期  \n");

  188.         printf("%s %s %s",card[i].card_num,card[i].student_name,book[i].book_name);
  189.         printf("%4d年%2d月%2d日\n",book[i].date.year,book[i].date.month,book[i].date.day);
  190.        
  191.         }
  192.      if(i==n)
  193.                  printf("查无此人\n");
  194.         printf("1.确认并返回菜单 2.确认信息并退出\n");
  195.                 scanf("%d",&i);
  196.                 if(i==1)
  197.                         menu();
  198.                 else
  199.                         exit(0);
  200. }


  201. void readerin()

  202. {

  203.         char cardnum[10];
  204.         char cardname[20];
  205.         printf("请输入的学生编号:");
  206.         scanf("%s",cardnum);
  207.         getchar();
  208.         printf("请输入学生姓名:");
  209.         scanf("%s",cardname);
  210.         getchar();
  211.         strcpy(card[n].card_num,cardnum);
  212.         strcpy(card[n].student_name,cardname);
  213.         n++;
  214.         printf("读者登记成功!!\n");
  215.         menu();

  216. }
  217. void delreader()
  218. {
  219.     char readername[10];
  220.         int i,j;
  221.         printf("请输入要删除的读者姓名:");
  222.         scanf("%s",readername);
  223.         getchar();
  224.         for(i=0;i<n;i++)
  225.         {
  226.                 if(strcmp(card[i].student_name,readername)==0)
  227.                 {
  228.                         break;
  229.                 }
  230.         }
  231.         if(i==n)
  232.                 printf("查无此人\n");
  233.         else
  234.         {
  235.                 for(j=i;j<n;j++)
  236.                 {
  237.                         strcpy(card[j].card_num,card[j+1].card_num);
  238.                         strcpy(card[j].student_name,card[j+1].student_name);
  239.                 }
  240.                 n--;
  241.                 printf("读者已成功删除\n");
  242.         }
  243.         menu();
  244. }






  245. void reborrow()
  246. {
  247.         int i;
  248.         char booknum[10];
  249.         printf("请输入要续借的书号");
  250.         scanf("%s",booknum);
  251.         for(i=0;i<n;i++)
  252.                 if(strcmp(booknum,book[i].book_num)==0)
  253.                 {
  254.                         printf("编号  书名  借出日期  状态\n");
  255.                         printf("%s %s",book[i].book_num,book[i].book_name);
  256.                         printf("%4d年%2d月%2d日",book[i].date.year,book[i].date.month,book[i].date.day);
  257.                         if(book[i].flag==1)
  258.                                 printf("未借出!\n");
  259.                         else
  260.                                 printf("已借出!\n");
  261.                         break;
  262.                   
  263.                 }
  264.        
  265.                  if(strcmp(booknum,book[i].book_num)==0&&book[i].flag==0)
  266.                  {
  267.                          printf("请按1续借\n" );       
  268.                          scanf("%d",&i);
  269.                         printf("续借日期填写:(请按年/月/日的顺序,如2019/9/8)\n");
  270.                             scanf("%d/%d/%d",&book[i].date.year,&book[i].date.month,&book[i].date.day);
  271.                             printf("续借成功\n");
  272.                
  273.                 }
  274.        
  275.                    else
  276.                    {  if(i==n)
  277.                      printf("查无此书\n");
  278.                           else
  279.                           printf("续借失败:该书并未借出\n请直接进行借书操作\n");
  280.                   
  281.                
  282.                    }
  283.                 printf("1.确认并返回菜单 2.确认信息并退出\n");
  284.                 scanf("%d",&i);
  285.                 if(i==1)menu();
  286.                 else exit(0);
  287. }





  288. void menu()
  289. {
  290.         int n;
  291.         printf("~~~欢迎使用本校图书管理系统~~~\n");
  292.         printf("*******************************\n");
  293.         printf("1.借书\n");
  294.         printf("2.还书\n");
  295.         printf("3.图书查询\n");
  296.         printf("4.新书上架\n");
  297.     printf("5.旧书下架\n");
  298.         printf("6.读者查询\n");
  299.         printf("7.添加读者\n");
  300.         printf("8.删除读者\n");
  301.         printf("9.续借\n");
  302.     printf("10.退出\n");
  303.         printf("请选择以上选项:\n");
  304.         printf("*******************************\n");
  305.         scanf("%d",&n);
  306.         switch(n)
  307.         {
  308.         case 1:borrowbook();break;
  309.         case 2:returnbook();break;
  310.         case 3:bookinquiry();break;
  311.         case 4:bookin();break;
  312.     case 5:delbook();break;
  313.         case 6:readerinquiry();break;
  314.         case 7:readerin();break;
  315.         case 8:delreader();break;
  316.         case 9:reborrow();break;
  317.         case 10:exit(0);break;
  318. default:printf("输入错误,退出\n");exit(0);break;
  319.         }

  320. }

  321. void main()
  322. {   
  323.         int i;
  324.         char num[10];
  325.         printf("请输入你的卡号");
  326.         scanf("%s",num);
  327.         for(i=0;i<n;i++)
  328.         if(strcmp(num,card[i].card_num)==0)
  329.                 break;
  330.         if(i>=n)
  331.         {
  332.                 printf("卡号不存在!");
  333.                 exit(0);
  334.         }
  335. else
  336.         menu();
  337.          
  338. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-15 15:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表