图书馆管理系统C语言程序的设计说明

上传人:痛*** 文档编号:92661330 上传时间:2022-05-19 格式:DOC 页数:53 大小:334.50KB
收藏 版权申诉 举报 下载
图书馆管理系统C语言程序的设计说明_第1页
第1页 / 共53页
图书馆管理系统C语言程序的设计说明_第2页
第2页 / 共53页
图书馆管理系统C语言程序的设计说明_第3页
第3页 / 共53页
资源描述:

《图书馆管理系统C语言程序的设计说明》由会员分享,可在线阅读,更多相关《图书馆管理系统C语言程序的设计说明(53页珍藏版)》请在装配图网上搜索。

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#includehead.h#includefuc.h#includepicture.h#includejiangzhuo1.h#includeou

3、tput.h main() int i=setup(); switch (i) case 0: while(n0) i-; else if(ij) if(b) printf(*); else printf(%c,c); ai=c; i+; if(i=j) printf(a); ai=0; printf(n); void examine(int *a,int b) while(!scanf(%d,a) while(getchar()!=n); printf(请输入数字!n); rewind(stdin); if(b) system(cls);void changepaw(int a,int b)

4、 int i; char c110,c210,c310; printf(请输入原密码n); password(c1,1,9); printf(请输入新密码n); password(c2,1,9); printf(请再次输入新密码n); password(c3,1,9); system(cls); if(b) i=mp(aa.no,c1,c2,c3,b); if(i) eros(i);n=27; else n=26; else i=mp(rr.no,c1,c2,c3,b); if(i) eros(i);n=44; else n=43; void inputs0() int i=1; while(

5、i=1) printf(1.A类n2.B类n3.C类n4.D类n5.E类n6.F类n); examine(&i,1); switch(i) case 1: strcpy(bk.classic,A类);i=0;break; case 2: strcpy(bk.classic,B类);i=0;break; case 3: strcpy(bk.classic,C类);i=0;break; case 4: strcpy(bk.classic,D类);i=0;break; case 5: strcpy(bk.classic,E类);i=0;break; case 6: strcpy(bk.classic

6、,F类);i=0;break; default: i=1; void inputs1(int a,int b,int c,int d,int e) int i; switch(a) case 1: printf(请输入图书编号:n);examine(&bk.bh,1); default: ; switch(b) case 1: printf(请输入图书名称:n);gets(bk.name); default: ; switch(c) case 1: printf(请输入图书的作者:n);gets(bk.writer); default: ; switch(d) case 1: printf(请

7、输入该图书的库存:n);examine(&bk.zn,1); default: ; system(cls); switch(e) case 1: printf(请选择图书类别:n);inputs0(); default: ; void inputs2(int a,int b,int c) switch(a) case 1: printf(请输入账号:n);password(aa.no,0,11); default: ; switch(b) case 1: printf(请输入密码:n); password(aa.key,1,9); default: ; switch(c) case 1: pr

8、intf(请输入:n);gets(aa.name); default: ; system(cls); void inputs3(int a,int b,int c) switch(a) case 1: printf(请输入账号:n);password(rr.no,0,11); default: ; switch(b) case 1: printf(请输入密码:n); password(rr.key,1,9); default: ; switch(c) case 1: printf(请输入:n);gets(rr.name); default: ; system(cls);void eros(in

9、t i) /错误函数 switch (i) case -1: printf(error1 !初始化失败nn);break; case -2: printf(error2 !账号不存在nn);break; case -3: printf(error3 !账号不存在nn);break; case -4: printf(error4 !密码错误nn);break; case -5: printf(error5 !输入的密码不一致nn);break; case -6: printf(error6 !编号不存在nn);break; case -7: printf(error7 !书名不能为空nn);br

10、eak; case -8: printf(error8 !作者名字不能为空nn);break; case -9: printf(error9 !无此图书编号的记录nn);break; case -10: printf(error10 !无此账号的记录nn);break; case -11: printf(error11 !原始密碼輸入錯誤nn);break; case -12: printf(error12 !您已经归还此书nn);break; case -13: printf(error13 !您所增加的图书编号已存在nn);break; case -14: printf(error14 !

11、搜索不到此书的相关信息nn);break; case -15: printf(error15 !搜索不到该作者的信息nn);break; case -16: printf(error16 !打不开文件,保存失败nn);break; case -17: printf(error17 !该图书信息已存在nn);break; case -18: printf(error18 !您没有借过这本书nn);break; case -19: printf(error19 !您已经借阅了这本书,不能再借nn);break; case -20: printf(error20 !抱歉,图书已经借完了nn);bre

12、ak; case -21: printf(error21 !账号已存在nn) ; break; case -22: printf(error22 !还有图书未还,不能删除该条信息nn);break; default : ; void conects(int j) switch(j) case 0: pic0();break; case 1: pic1();break; case 2: pic2();break; case 3: pic3();break; case 4: pic4();break; case 5: pic5();break; case 6: pic6();break; case

13、 7: pic7();break; case 8: pic8();break; case 9: pic9();break; case 10: pic10();break; case 11: pic11();break; case 12: pic12();break; case 13: pic13();break; case 14: pic14();break; case 15: pic15();break; case 16: pic16();break; case 17: pic17();break; case 18: pic18();break; case 19: pic19();break

14、; case 20: pic20();break; case 21: pic21();break; case 22: pic22();break; case 23: pic23();break; case 24: pic24();break; case 25: pic25();break; case 26: pic26();break; case 27: pic27();break; case 29: pic29();break; case 30: pic30();break; case 31: pic31();break; case 32: pic32();break; case 33: p

15、ic33();break; case 34: pic34();break; case 35: pic35();break; case 36: pic36();break; case 37: pic37();break; case 38: pic38();break; case 39: pic39();break; case 40: pic40();break; case 41: pic41();break; case 42: pic42();break; case 43: pic43();break; case 44: pic44();break; case 45: pic45();break

16、; case 46: pic46();break; case 47: pic47();break; default: ; 4.文件操作各种函数源代码为/jiangzhuo1.h文件操作各种函数int setup() /数据初始化函数 FILE *fp; fp=fopen(reader.txt,r); /对文档以只读的方式进行操作 if(fp=NULL) return -1; /当文件打不开时返回-1 elsei=0; while(!feof(fp) fscanf(fp,%s %s %s,stui.name,stui.no,stui.key); /将文档里面的数据格式化读取到结构体数组里面 i+

17、;i=i-1; fclose(fp); fp=fopen(ad.txt,r); /对文档以只读的方式进行操作 if(fp=NULL) return -1; /当文件打不开时返回-1 else j=0; while(!feof(fp) fscanf(fp,%s %s %s,adj.name,adj.no,adj.key); /将文档里面的数据格式化读取到结构体数组里面 j+;j=j-1; fclose(fp); fp=fopen(book.txt,r); /对文档以只读的方式进行操作 if(fp=NULL) return -1; /当文件打不开时返回-1 elsek=0; while(!feof

18、(fp) fscanf(fp,%d %s %s %s %d %d ,&bbk.bh,bbk.name,bbk.classic,bbk.writer,&bbk.zn,&bbk.jn); /将文档里面的数据格式化读取到结构体数组里面 k+;k=k-1; fclose(fp); fp=fopen(show.txt,r); /对文档以只读的方式进行操作 if(fp=NULL) return -1; /当文件打不开时返回-1 elses=0; while(!feof(fp) fscanf(fp, %s %s %d %s %s %d ,sss.name1,sss.no,&sss.bh,sss.name2,

19、sss.writer,&sss.o); /将文档里面的数据格式化读取到结构体数组里面s+;s=s-1; fclose(fp);return 0; /当操作全部正确时返回0 int xzc(char no12,char key110,char key210,char name10) /读者注册函数 int x=0; for(x=0;x=i;x+) if(!strcmp(no,stux.no) /判断读者输入的账号与结构体里面的账号是否相同 return -21; break; if(x=i & strcmp(no,stux.no)/判断读者输入的账号与结构体里面的账号是否相同 if(!strcm

20、p(key1,key2) /判断读者两次输入的密码是否一致 i=i+1; strcpy(stui.name,name); strcpy(stui.no,no); strcpy(stui.key,key1); fp=fopen(reader.txt,a); /对文件以写的方式将注册的信息保存到文件里面 if(fp=NULL) return -16; else fprintf(fp,%stt%stt%sn,stui.name,stui.no,stui.key); fclose(fp); return 0; else return -5; int exam(char no10,char key10,

21、int n) /密码账号检验函数 int x; if(n=0) /对读者的 密码和账号信息进行检验 for(x=0;x=i;x+) if(!strcmp(no,stux.no) /判断该账号是否存在 if(!strcmp(key,stux.key) /当账号存在时判断与之相应的密码是否相同 return 0; break; else return -4;break; if(x=i & strcmp(no,stux.no) return -3; if(n=1) /对管理员的密码账号信息进行检验 for(x=0;x=i;x+) if(!strcmp(no,adx.no) /判断该账号是否存在 if

22、(!strcmp(key,adx.key) /判断与之相应的密码是否存在 return 0; break; else return -4;break; if(x=j & strcmp(no,adx.no) return -3; int zj(struct book b) /管理员增加图书信息函数 int x; for(x=0;x=k;x+) if(bbx.bh=b.bh) /判断所增加的图书编号是否已存在 return -13; break; if(!strcmp(b.name,bbx.name)&!strcmp(b.writer,bbx.writer) /判断所增加的图书是否存在 retur

23、n -17; break; if(x=k) if(strlen(bb0.name)=0) /判断文档的第一行是否为空 k=k; else k=k+1; bbk.bh=b.bh; /将所增加的图书信息添加到结构体里面 strcpy(bbk.name,b.name); strcpy(bbk.classic,b.classic); strcpy(bbk.writer,b.writer); bbk.zn=b.zn; bbk.jn=b.jn; fp=fopen(book.txt,a); /将增加的图书信息追加到文件里面 if(fp=NULL) return -16; else fprintf(fp,%d

24、t%-30st%-30st%-10st%dt%dn,bbk.bh,bbk.name,bbk.classic,bbk.writer,bbk.zn,bbk.jn); fclose(fp); return 0; int sc(int bh) /管理员删除图书信息函数 int x; for(x=0;x=k;x+) if(bbx.bh=bh) /判断所删除图书的编号是否存在 if(bbx.jn!=0) return -22; for(x=x;x=k-1;x+) bbx=bbx+1; /删除图书信息后将该图书信息后面的图书信息依次前移 k-; fp=fopen(book.txt,w+); /将删除后的所有

25、图书信息重新写入文档 if(fp=NULL) return -16; else for(x=0;x=k;x+) fprintf(fp,%dt%-30st%-30st%-10st%dt%dn,bbx.bh,bbx.name,bbx.classic,bbx.writer,bbx.zn,bbx.jn); fclose(fp); return 0; break; int mp(char no12,char key110,char key210,char key310,int n) /密码修改函数 int x; if(n=0) /读者密码修改 for(x=0;x=i;x+) if(!strcmp(no,

26、stux.no) /定位读者账号位置 if(!strcmp(stux.key,key1) /判断输入的原密码是否正确 if(!strcmp(key2,key3) /判断两次输入的新密码是否一致 strcpy(stux.key,key3); fp=fopen(reader.txt,w+); /将修改后的信息保存在文件里面 if(fp=NULL) return -16; else for(x=0;x=i;x+) fprintf(fp,%stt%stt%sn,stux.name,stux.no,stux.key); fclose(fp); return 0; else return -5; else

27、 return -11; if(n=1) /管理员密码修改 for(x=0;x=j;x+) if(!strcmp(no,adx.no) /定位管理员账号位置 if(!strcmp(key1,adx.key) /判断输入的原密码是否正确 if(!strcmp(key2,key3) /判断两次输入的新密码是否一致 strcpy(adx.key,key3); fp=fopen(ad.txt,w+); /将修改后的信息保存在文件里面 if(fp=NULL) return -16; else for(x=0;x=j;x+) fprintf(fp,%stt%stt%sn,adx.name,adx.no,adx.key); fclose(fp); return 0; else return -5; else return -11; int xg(struct book b) /管理员修改图书信息函数 int x; if(strlen(b.name)=0) /判断所输入的要修改的图书名字是否为空 return -7; else if(strlen(b.writer)=0) /判断所输入的要修改的图书作者是否为空 return -8; else

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!