永发信息网

小型图书馆管理系统c语言源代码

答案:2  悬赏:10  手机版
解决时间 2021-02-26 20:47
  • 提问者网友:兔牙战士
  • 2021-02-25 20:27
要求:(1) 存入图书信息:书名、书号、出版社、出版时间、借阅人,如果未借出,借阅人为NULL,借阅日期(长整型)
(2) 完成借书功能,修改借书信息。
(3)假设借书时间为30天,输出所有超期的借阅人和图书。
(4)删除图书,其余图书数据前移;
最佳答案
  • 五星知识达人网友:雾月
  • 2021-02-25 20:59
这都不会,一年时间白学了吗?用数组或者结构体 定义书本信息, 2,3,4写个独立函数 算法 主函数调用。
全部回答
  • 1楼网友:一叶十三刺
  • 2021-02-25 22:05
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> typedef int bool; typedef struct bookinfo { char number[15]; char name[30]; float price; char auther[20]; bool isexit; char lendername[20]; char lendersex[2]; char lendernum[15]; }bookinfo; void menu() { printf("\n\n\n\n\n\n\n"); printf("\t\t\t图书管理系统\n"); printf("\t\t\t1:新进图书基本信息的输入\n"); printf("\t\t\t2:显示全部记录\n"); printf("\t\t\t3:根据图书名称查询图书基本信息\n"); printf("\t\t\t4:根据图书名称对撤销的图书信息进行删除\n"); printf("\t\t\t5:按照图书名称从小大到排序\n"); printf("\t\t\t6:统计某价格以上的图书数量\n"); printf("\t\t\t7:列出所有未借出去的图书信息\n"); printf("\t\t\t8:退出\n"); } void choice_1_input_new() { char choice; file *p; bookinfo newbook; system("cls"); while(1) { printf("输入图书编号:"); gets(newbook.number); printf("输入图书名称:"); gets(newbook.name); printf("输入图书单价:"); scanf("%f",&newbook.price); while(getchar()!=&apos;\n&apos;); printf("输入图书的作者:"); gets(newbook.auther); printf("输入借书人姓名:"); gets(newbook.lendername); printf("输入借书人性别:"); gets(newbook.lendersex); printf("输入借书人学号:"); gets(newbook.lendernum); printf("是否保存该条书目?(y/n)\n"); if(choice==&apos;y&apos;||choice==&apos;y&apos;) { newbook.isexit=1; p=fopen("c:\\bookinfo.data","ab"); fwrite(&newbook,sizeof(bookinfo),1,p); fclose(p); printf("\n该条书目已添加到c:\\bookinfo.data文件中!\n"); } else { printf("\n本条书目未保存!\n"); } printf("\n是否继续添加书目?(y/n)\n"); while(choice!=&apos;y&apos;&&choice!=&apos;y&apos;&&choice!=&apos;n&apos;&&choice!=&apos;n&apos;) if(choice==&apos;y&apos;||choice==&apos;y&apos;) continue; else break; } } void choice_2_display_all() { file *p; int n; bookinfo bookinfo[100]; int booknumber=0; system("cls"); p=fopen("c:\\bookinfo.data","rb"); while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(bookinfo),1,p); booknumber++; } fclose(p); booknumber--; if(booknumber==0) { printf("没有任何图书信息!\n\n"); } else { n=0; printf(" 图书信息如下\n"); printf(" 图书信息 | 借书人信息 \n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n"); while(n<booknumber) { printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isexit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); n++; } } printf("\n\n按任意键回到主菜单!\n"); } void choice_3_search_according_name() { char search[20]=""; int n; file *p; char choice; bookinfo bookinfo[100]; int booknumber=0; system("cls"); p=fopen("c:\\bookinfo.data","rb"); while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(bookinfo),1,p); booknumber++; } booknumber--; fclose(p); while(1) { printf("输入要查询的书本名称:"); gets(search); if(booknumber==0) { printf("书库中没有任何信息!\n\n"); printf("按任意键回到主菜单!\n\n"); getch(); break; } else { for(n=0;n<booknumber;n++) if(strcmp(bookinfo[n].name,search)==0) { printf("该书的详细信息如下:\n"); printf(" 图书信息 | 借书人信息 \n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n"); printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isexit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); break; } if(n>=booknumber) printf("没有查找该书的任何信息!\n"); printf("\n\n是否继续查询?(y/n)\n"); choice=getch(); while(choice!=&apos;y&apos;&&choice!=&apos;y&apos;&&choice!=&apos;n&apos;&&choice!=&apos;n&apos;) choice=getch(); if(choice==&apos;y&apos;||choice==&apos;y&apos;) continue; else break; } } } void choice_4_delete_according_name() { char search[20]=""; int n,i; file *p; char choice; bookinfo bookinfo[100]; int booknumber; system("cls"); while(1) { printf("输入要删除的书本名称:"); gets(search); p=fopen("c:\\bookinfo.data","rb"); booknumber=0; while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(bookinfo),1,p); booknumber++; } booknumber--; fclose(p); if(booknumber==0) { printf("书库中没有任何信息!\n\n"); printf("按任意键回到主菜单!\n\n"); getch(); break; } else { for(n=0;n<booknumber;n++) if(strcmp(bookinfo[n].name,search)==0) { break; } if(n>=booknumber) printf("没有查找该书的任何信息!\n"); else { printf("是否确认需要删除该条书目?(y/n)"); choice=getch(); while(choice!=&apos;y&apos;&&choice!=&apos;y&apos;&&choice!=&apos;n&apos;&&choice!=&apos;n&apos;) choice=getch(); if(choice==&apos;y&apos;||choice==&apos;y&apos;) { for(i=n;i<booknumber-1;i++) bookinfo[i]=bookinfo[i+1]; booknumber--; p=fopen("c:\\bookinfo.data","wb"); for(n=0;n<booknumber;n++) fwrite(&bookinfo[n],sizeof(bookinfo),1,p); fclose(p); printf("删除成功!\n"); } else printf("\n\n该条书目没有被删除!"); } printf("\n\n是否继续进行删除操作?(y/n)\n"); choice=getch(); while(choice!=&apos;y&apos;&&choice!=&apos;y&apos;&&choice!=&apos;n&apos;&&choice!=&apos;n&apos;) choice=getch(); if(choice==&apos;y&apos;||choice==&apos;y&apos;) continue; else break; } } } void choice_5_sort_according_name() { file *p; int m,n; bookinfo temp; bookinfo bookinfo[100]; int booknumber; p=fopen("c:\\bookinfo.data","rb"); booknumber=0; system("cls"); while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(bookinfo),1,p); booknumber++; } booknumber--; fclose(p); if(booknumber==0) { printf("没有任何图书信息!\n\n"); } else { for(m=0;m<booknumber-1;m++) for(n=m+1;n<booknumber;n++) if(strcmp(bookinfo[m].name,bookinfo[n].name)>0) { temp=bookinfo[m]; bookinfo[m]=bookinfo[n]; bookinfo[n]=temp; } p=fopen("c:\\bookinfo.data","wb"); for(m=0;m<booknumber;m++) fwrite(&bookinfo[m],sizeof(bookinfo),1,p); fclose(p); printf("\n\n完成排序!\n\n"); } printf("按任意键回到主菜单!\n"); getch(); } void choice_6_display_high_price() { float price; file *p; int n; int count=0; bookinfo bookinfo[100]; int booknumber; system("cls"); printf("请输入价格:"); scanf("%f",&price); p=fopen("c:\\bookinfo.data","rb"); booknumber=0; while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(bookinfo),1,p); booknumber++; } booknumber--; fclose(p); if(booknumber==0) { printf("没有任何图书信息!\n\n"); } else { for(n=0;n<booknumber;n++) { if(bookinfo[n].price>=price) count++; } if(count==0) printf("书库中没有比%.1f&#36;价格高的图书!",price); else { printf(" 价格高于%.1f&#36;的图书信息如下\n",price); printf(" 图书信息 | 借书人信息 \n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n"); for(n=0;n<booknumber;n++) { if(bookinfo[n].price>=price) printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isexit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); } } } printf("\n\n按任意键回到主菜单!\n"); getch(); } void choice_7_display_according_exitflag() { file *p; int n; int count=0; bookinfo bookinfo[100]; int booknumber; system("cls"); booknumber=0; p=fopen("c:\\bookinfo.data","rb"); while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(bookinfo),1,p); booknumber++; } booknumber--; fclose(p); if(booknumber==0) { printf("书库中没有任何书目存在!\n"); } else { for(n=0;n<booknumber;n++) if(bookinfo[n].isexit==1) count++; if(count==0) printf("书库中的书籍全部借出!\n"); else { printf("书库中未被借出的图书信息如下:\n\n"); printf(" 图书信息 | 借书人信息 \n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n"); for(n=0;n<booknumber;n++) if(bookinfo[n].isexit==1) { printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isexit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); } } } printf("\n按任意键返回主菜单!\n"); getch(); } void main() { char choice; clock_t tm; file *p; if((p=fopen("c:\\bookinfo.data","rb"))==null) { p=fopen("c:\\bookinfo.data","wb"); fclose(p); } while(1) { system("cls"); menu(); choice=getch(); switch(choice) { case &apos;1&apos;:choice_1_input_new();break; case &apos;2&apos;:choice_2_display_all();break; case &apos;3&apos;:choice_3_search_according_name();break; case &apos;4&apos;:choice_4_delete_according_name();break; case &apos;5&apos;:choice_5_sort_according_name();break; case &apos;6&apos;:choice_6_display_high_price();break; case &apos;7&apos;:choice_7_display_according_exitflag();break; case &apos;8&apos;:printf("\n\n\t\t\t谢谢使用,再见!\n\t\t\t按任意键退出!\n");getch();return; default: printf("\n\n\t\t\t请输入菜单中的数字!(1~8)"); tm=clock(); while(clock()<tm+1800); break; } } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯