1、HUNAN UNIVERSITYC 语言程序训练报 告【设计目的】图书信息包括:读者登录号、管理员登录号、图书编号、作者名、种类、出版社、图书库存、图书借出数目等.图书信息管理系统,使之能提供以下功能:1)系统以菜单方式工作2)读者注册功能3)读者登录功能4)读者借书还书功能5)查询读者借阅记录6)查询在管图书信息功能7)修改密码功能8)管理员登录功能9)增加、修改、删除图书功能10)查看图书信息功能【设计思路】根据题目要求,应当把图书信息用结构体形式输入,应该提供以下结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外
2、还需提供选择菜单实现功能,在运行时达到所要求的目的;管理员和读者登录界面及各自功能应有不同的实现。【总体设计】图书馆管理系统读者注册、登陆及密码修改修改图书信息删除图书信息管理员登陆 查找图书信息浏览图书信息【详细设计】1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用显示一系列功能选项输入 n,n 为 1,2 或 3根据 n 的值调用各功能模块函数结束开始n源代码为/rkou.c 程序的入口 #include#include#include#include#include“head.h“#include“fuc.h“#include“picture.h“#include“jiangz
3、huo1.h“#include“output.h“ main() int i=setup();switch (i) case 0: while(n0)i-;else if(i0) /判断在馆数是否为 0 if(strlen(ss0.name1)=0) /判断文件里面的第一行信息是否存在 for(y=0;ybbx+1.bh)a=bbx+1;bbx+1=bbx; bbx=a; flag=0; while(flag=0); fp=fopen(“book.txt“,“w+“); /将排序后的信息重新写入文件 for(x=0;x=k;x+)fprintf(fp,“%dt%-30st%-30st%-10s
4、t%dt%dn“,bbx.bh,bbx.name,bbx.classic,bbx.writer,bbx.zn,bbx.jn); fclose(fp); 5.登陆界面所有函数 源代码为/ picture.h 登陆界面所有函数 void pica() printf(“n 登陆用户:%-16s 登陆者:%-16s 权限:管理员n“,aa.no,aa.name);printf(“-nn“);void picb() printf(“n 登陆用户:%-16s 登陆者:%-16s 权限:读者n“,rr.no,rr.name);printf(“-nn“);void pic0() /登陆界面 printf(“n
5、ttt 欢迎登陆湖南大学图书管理系统n“);printf(“-nn“); printf(“1.登陆n2.读者注册 n3.退出系统nn“);printf(“-nn“);examine( switch(x) case 1: n=1;break; case 2: n=45;break;case 3: n=50;break;default:; void pic1() /管理员登陆界面 int i;printf(“ntttt 登陆n“);printf(“-nn“);printf(“1.管理员登陆n2. 读者登陆n3.返回系统界面nn“);printf(“-nn“);examine(switch(x) c
6、ase 1: inputs2(1,1,0);i=exam(aa.no,aa.key,1); if(i) eros(i);n=3; else n=2;break; case 2: inputs3(1,1,0);i=exam(rr.no,rr.key,0);if(i) eros(i);n=30; else n=29;break;case 3: n=0;break; default: ; void pic2() /管理员管理界面 copy2(aa.no); pica();printf(“1.增加图书n2.修改图书 n3.删除图书n4.查看图书信息n“);printf(“5.修改密码n6.返回到系统登
7、陆界面 nn“);printf(“-nn“); examine(switch(x) case 1: n=4;break;case 2: n=8;break;case 3: n=15;break;case 4: n=21;break;case 5: n=25;break;case 6: n=0;break; default: ; void pic3() /管理员登陆错误提示 printf(“1.返回重新输入n2. 返回系统登陆界面n“);examine(switch(x) case 1: n=1;break;case 2: n=0;break;default: ; void pic4() /管理
8、员添加图书界面 pica(); printf(“1.录入新的图书信息n2. 返回上一层nn“); printf(“-nn“);examine(switch(x) case 1: inputs1(1,1,1,1,1);n=5; break;case 2: n=2;break;default: ; void pic5() /添加图书确认界面 int i; pica();printf(“你输入的图书信息为:nn“);printf(“书名ttt 编号t 作者 tt 种类t 在馆数t 借出数n“); printf(“%-24s%-8d%-16s%-8s%-8d%-8dnn“,bk.name,bk.bh,
9、bk.writer,bk.classic,bk.zn,bk.jn);printf(“-nn“); printf(“1.录入以上信息n2. 返回重新输入图书信息nn“); printf(“-nn“);examine(switch(x) case 1: i=zj(bk); if(i) eros(i);n=7; else n=6;break; case 2: n=4;break;default: ; void pic6() /添加图书成功提示界面 printf(“添加图书成功!n“);printf(“1.返回继续添加图书n2. 返回管理图书界面n“); examine(switch(x) case
10、1: n=4;break; case 2: n=2;break;default: ; void pic7() / 添加图书失败提示界面 printf(“1.重新输入图书信息n2. 返回管理图书界面n“);examine(switch(x) case 1: n=4;break;case 2: n=2;break;default: ; void pic8() /修改图书界面 pica();printf(“1.进行修改图书操作n2. 返回管理图书界面nn“);printf(“-nn“);examine(switch(x) case 1: n=9;break; case 2: n=2;break;de
11、fault: ; void pic9() /输入编号以选择修改相应的图书 int i; pica();printf(“以下是在馆所有图书信息:nn“);gck23(); printf(“-nn“);printf(“1.输入编号修改图书n2. 返回图书管理界面nn“); printf(“-nn“);examine(switch(x) case 1: inputs1(1,0,0,0,0);i=bh1(bk.bh); if(i) eros(i);n=11; else n=10; break;case 2: system(“cls“);n=2;break; default: system(“cls“)
12、; void pic10() /按需求修改图书界面 pica();printf(“编号为%d 的图书信息:nn“,bk.bh);copy(bk.bh);bh2(bk.bh); printf(“-nn“);printf(“1.修改书名n2.修改作者名字 n3.修改图书在馆的数量n4.修改图书所属的类别n“);printf(“5.修改图书所有信息n6. 返回上一层选择其他编号的书 nn“); printf(“-nn“);examine(switch(x) case 1: inputs1(0,1,0,0,0);n=12;break; case 2: inputs1(0,0,1,0,0);n=12;b
13、reak;case 3: inputs1(0,0,0,1,0);n=12;break;case 4: inputs1(0,0,0,0,1);n=12;break;case 5: inputs1(0,1,1,1,1);n=12;break; case 6: n=9;break; default: ; void pic11() /获取相应的图书失败提示界面 printf(“1.重新输入图书编号n2. 返回图书管理界面n“);examine(switch(x) case 1: n=9;break;case 2: n=8;break;default: ; void pic12() /修改图书信息确认界面 int i; pica();printf(“你要修改的图书信息为:nn“);bh2(bk.bh);printf(“%-24s%-8d%-16s%-8s%-8d%-8dnn“,bk.name,bk.bh,bk.writer,bk.classic,bk.zn,bk.jn); printf(“-nn“);printf(“1.确认修改此图书n2. 返回选择修改其他信息 n3.返回图书管理界面nn“); printf(“-nn“);examine(switch(x) case 1: i=xg(bk); if(i) eros(i);n=14;