1、/本电信学渣的大一小学期作业 做的不好 请见谅/*一、图书管理系统 1新书入库:图书信息包括书名,书号,库存量,现存量(库存量减去借走的图书)共 4 项首先输入 3 本书的信息,并将其存数组 book 中当有新书入库时,先判断数组中是否有此书(即比较书名或书号),若有则修改库存量,现存量的信息;若无此书,则将该书的信息添加到数组中,并将其库存量设为-1,将其标专为下次要购入的图书。2图书查询:(1)输入一个书号,在文件中查找此书,若找到则输出此书的全部信息;若找不到则输出查找失败的信息。(2)查询所有要购入的图书的书名和书号。3借阅管理(1)每个读者的信息包括姓名,编号,借阅图书 1,借阅图书
2、 2,借阅图书 3,输入 3 个读者的信息并存入数组 reader 中(2)借书登记:输入读者的姓名及所借图书的书号,先判断姓名是否在读者数组中,若有则将书号存入 reader 数组中,同时修改 book 数组中此书的现存量若 reader 数组中无此姓名,则应提示错误。(3)还书管理:输入读者的姓名,所还图书的书号,修改 reader 数组和 book 数组中相应的项。4输出全部图书信息和全部读者信息。5退出系统。*/#include #include void zzdz();/读者注册 void shuru();/新书注册 void shuchu();/图书总数统计void shanchu
3、();/删除书籍 void find(); /书籍查找 void borrow();/借书管理 void repay(); /还书管理 void scdzxx(); /读者统计 /定义结构体类型 struct schar no10;char name10;/定义结构体数组 struct s book50;struct ichar js310,js110,js210,js310;char name10,no10;/定义结构体数组 struct i reader50;int bzongshu=0,bxianshu=0,rzongshu=0;int n=0,m=0;int main() int ch
4、ioce=-1,xxx; /一级选项,二级选项 printf(“*图书馆管理系统*n“);while(chioce!=0) /一级选项循环 printf(“请选择:n 图书管理请按 1n 读者管理请按 2n 退出请按 0(否则将留在本层)n 请输入“); /输入提示 scanf(“%d“, /输入选项 图书 读者 xxx=-1; /重置二级选项 if(chioce=1) /1 为 图书 printf(“您选择了图书管理n“);while(xxx!=0) /二级选项循环 printf(“nn 继续选择:n“); /选 printf(“增加书目请按 1n“); /项 printf(“删除书目请按
5、2n“); /提 printf(“查询书目请按 3n“); /示 printf(“统计书目请按 4n“); /printf(“返回上层请按 0(否则将留在本层) n“); scanf(“%d“,switch(xxx)case 1:shuru(); break; /新书注册 case 2:shanchu(); break;/删除书籍 case 3:find();break; /书籍查找 case 4:shuchu();break; /图书总数统计 case 0:printf(“返回上层n“);break;/返回一级选项 default:printf(“输入错误 “);break;/报错 else
6、if(chioce=2) printf(“nn 您选择了读者管理n“);while(xxx!=0)printf(“nn 继续选择:n“);printf(“注册读者请按 1n“);printf(“借阅系统 2n“);printf(“还书系统 3n“);printf(“读者统计 4n“);printf(“返回上层请按 0(否则将留在本层) n“); printf(“本馆共有读者%d 人n“,rzongshu);scanf(“%d“,switch(xxx)case 1:zzdz();break; /读者注册 case 2:borrow();break;/借阅管理 case 3:repay();bre
7、ak;/还书管理 case 4:scdzxx();break;/读者统计 case 0:printf(“返回上层n“);break;default:printf(“输入错误 “);break;/报错 elseif(chioce=0)printf(“nn“);break; printf(“nn 选择错误,请重新选择n“);scanf(“%d“, printf(“nn*已退出,谢谢使用 *n“);return 0; /增加函数void shuru()int j,i,geshu;printf(“nn 输入需要增加书目的个数:“);scanf(“%d“, for(i=bzongshu;i(bzongs
8、hu+geshu);i+) printf(“输入书号 “);scanf(“%s“,booki.no);printf(“输入书名 “);scanf(“%s“,booki.name); printf(“结束输入; “);n=n+geshu;bzongshu=bzongshu+geshu;bxianshu=bxianshu+geshu;/输出数据 void shuchu()int i;for(i=0;in;i+)printf(“书号:%s “,booki.no);printf(“书名:%sn“,booki.name);printf(“共有%d 本书 n 现有%d 本书n“,bzongshu,bxia
9、nshu); /删除数据void shanchu()int i,j,r=0,chxxx;char a10;printf(“删除选项:n1: 通过书号进行删除 n2:通过书名进行n“);scanf(“%d“,if(chxxx=1)printf(“输入需要查询的书号:“);scanf(“%s“,a);for(i=0;in;i+)if(strcmp(a,booki.no)=0)for(;in;i+)strcpy(booki.no,booki+1.no);strcpy(booki.name,booki+1.name);i+;n-;(bzongshu)-;(bxianshu)-;elseif(chxxx
10、=2)printf(“输入需要查询的书名:“);scanf(“%s“,a);for(i=0;in;i+)if(strcmp(a,booki.name)=0)printf(“书号:%sn“,booki.no);printf(“书名:%sn“,booki.name);r+;elseprintf(“输入错误“);if(r=0) printf(“无此书n“);return;/查询数据void find() /strcmpint i,j,r=0,chxxx;char a10;printf(“查询选项:n1: 书号查询 n2:书名查询n“);scanf(“%d“,if(chxxx=1)printf(“输入
11、需要查询的书号:“);scanf(“%s“,a);for(i=0;in;i+)if(strcmp(a,booki.no)=0)printf(“书号:%sn“,booki.no);printf(“书名:%sn“,booki.name);r+;elseif(chxxx=2)printf(“输入需要查询的书名:“);scanf(“%s“,a);for(i=0;in;i+)if(strcmp(a,booki.name)=0)printf(“书号:%sn“,booki.no);printf(“书名:%sn“,booki.name);r+;elseprintf(“输入错误“);if(r=0) printf
12、(“无此书n“);return;/输入读者信息 void zzdz()int i,geshu;printf(“输入需要注册的个数:“);scanf(“%d“, for(i=rzongshu;i(rzongshu+geshu);i+) printf(“输入读者号“);scanf(“%s“,readeri.no);printf(“输入读者名“);scanf(“%s“,readeri.name);m=m+geshu;rzongshu=m;printf(“共有%d 个读者n“,rzongshu);/借阅管理 void borrow()int i,j,k,zdz=0,zs=0,z;char a10,b1
13、0,q10;printf(“您已进入借阅管理n“);printf(“输入要求借书的读者姓名:n“);scanf(“%s“,a);for(i=0;irzongshu;i+)if(strcmp(a,readeri.name)=0)printf(“该读者存在,请输入要借阅图书的书号 (3 本)n“); for(j=1;j=3;j+)zdz+;printf(“输入要借的书号“);scanf(“%s“,b);for(k=0;kbzongshu;k+)if(strcmp(b,bookk.no)=0)printf(“该书存在,借阅成功n“);bxianshu-;*(readeri.jsj)=*(bookk.
14、no);zs=1;if(zs=0)printf(“无此书,将返回上层菜单n“);break; if(zdz=0)printf(“该读者不存在,将返回上层选择菜单“);return;/还书管理 void repay()int i,j,k,zdz=0,zs=0; char a10,b10; printf(“您已进入还书管理n“);printf(“输入要求还书的读者姓名:n“);scanf(“%s“,a);for(i=0;irzongshu;i+)if(strcmp(a,readeri.name)=0)printf(“该读者存在,请输入要归还图书的书号 (3 本)n“);for(j=1;j=3;j+
15、) zdz+;printf(“输入要还的书号“);scanf(“%s“,b);for(k=0;kbzongshu;k+)if(strcmp(b,readeri.jsj)=0)printf(“该书存在,还书成功n“);bxianshu+;*(readeri.jsj)= ;zs=1;if(zs=0)printf(“无此书,将返回上层菜单n“);return; if(zdz=0)printf(“该读者不存在,将返回上层选择菜单“);return;/输出读者信息void scdzxx() int i;for(i=0;irzongshu;i+)printf(“读者号:%sn“,readeri.no);printf(“读者姓名:%sn“,readeri.name);printf(“借书 1 的书号 :%sn“,readeri.js1);printf(“借书 2 的书号 :%sn“,readeri.js2);printf(“借书 3 的书号 :%Snnn“,readeri.js3);return;