1、一、题目要求1. 新进图书基本信息的输入。2. 图书基本信息的查询。3. 对撤消图书信息的删除。4. 为借书人办理注册。5. 办理借书手续。6. 办理还书。二、需求分析作为学生对图书管理系统的要求有:1. 能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。2. 能够方便地借阅图书、归还图书。3. 能够查询自己的基本资料、借阅图书情况。4. 能够熟悉图书管理系统的使用。作为图书管理员,他们对图书管理系统的要求有:1. 能方便的对图书进行录入登记,注销陈旧的书籍。2. 能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。3. 能够随时发布一些诸如各学院学生借阅图书超期
2、情况、馆内藏书情况、借阅情况等信息,以便各学院能够随时获知本院学生的一些借书信息。根据题目需要,由于图书信息需要存放在文件中,所以应提供文件输入、输出等操作。应提供查找、借阅、管理等功能。由于有多种借阅图书的方法,而又需要提供相应的算法,最后还应提供键盘是选择菜单实现功能。三、总体设计四、详细设计1、主函数说明主函数较多、较复杂,已经和主菜单函数合并,主菜单函数里还包括了各自的二级菜单,并已经开始了对各个函数的调用。为了程序显示的清晰可读,应先清屏之后调用菜单函数。流程开始显示一系列功能选项N输入n,判断n是否是0-4Y返回主菜单根据n的值调用各功能模块函数程序main() char ch1,
3、ch2,ch3,ch4,ch5;do printf(nnntt * 图书管理系统 *n);ntttt 1: nntttt 2:借阅图书ntttt 3:管理系统ntttt 4:归还图书ntttt 0:退出系统n请输入0-4,其他输入非法! scanf(%s,&ch1); switch(ch1) case 1:chabook();break;2lendbook();3 do nnntt *欢迎进入管理系统 *nntttt 1:ntttt 2:删除图书ntttt 3:修改图书资料ntttt 4:书籍统计ntttt 5:职工管理系统ntttt 6:学生管理系统ntttt 0:返回n请输入0-6,其他输
4、入非法!ch2); switch(ch2) addbook();delbook();changebook();4bookcount();getch();5do nnntt *欢迎进入职工管理系统!*n增加员工删除员工修改员工资料员工统计ch3); switch(ch3) addemploy();delemploy();changemploy();employcount();0 default:printf(无此操作n while(ch3!=break;6nnntt *欢迎进入学生管理系统!申请新卡删除卡号借书统计卡号统计ch4); switch(ch4) addcar();delcar();l
5、endcount();carcount(); while(ch4! while(ch2!huanbook();while(ch1! 2、各功能模块设计(1)查阅模块输入个员工信息后,浏览、查找、排序时同一个员工的所有信息都要同时显示,所以运用结构体运行。数据信息存放在文件中,一条记录对应一条学生信息,方便管理。chabook() char ch5;do -欢迎进入图书查询系统!-n 1:按书名查找 2:按作者查找 0:请输入0-2,其他输入非法!scanf(ch5);switch(ch5)findbook();findbook1();while(ch5!return FALSE;findboo
6、k() /*按书名查找图书函数*/FILE *fp;char bookname10;int ture,i;fp=fopen(book.txt,r请输入你要查找的书名n,bookname);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookname,booki.bookname)=0) if(booki.turefalse=1) 这本书的详细资料是:%d %s %s 此书现在无人借阅n按任意键返回n,booki.booknum,booki.bookname,booki.bookcreat); else prin
7、tf(这本书已经有人借出nfclose(fp);return 0; fclose(fp); return FALSE;没有你要查询的书籍nfindbook1() /*按作者查找图书函数*/char bookcreat10;请输入你要查找的作者名n,bookcreat); if(strcmp(bookcreat,booki.bookcreat)=0) (2)借阅模块 查阅完图书记录后,用户要借阅图书,系统要在操作过程中提示用户输入流程,根据用户所输入的指令,帮助其完成借阅。lendbook() /*借书函数*/ FILE *fp,*fp2;int i,n;int carnum;请你输入你的卡号n
8、%dcarnum);car.txtcari,sizeof(struct car),1,fp)! if(cari.carnum=carnum) n=i;请输入你要借阅的书的名字n,studentn.lendbook); fp=fopen( for(i=0; if(strcmp(booki.bookname,studentn.lendbook)=0) if(booki.turefalse=0) printf(对不起,此书有人借出,请借其他书nreturn; else record.txta+ studentn.carnum=carnum; fwrite(&studentn,sizeof(struc
9、t student),1,fp); fp2=fopen(bookl.txtw booki.turefalse=0;booki,sizeof(struct book),1,fp2); continue; fclose(fp2);booki,sizeof(struct book),1,fp2)!booki,sizeof(struct book),1,fp); fopen(借书完毕,按任意键返回n getch(); return;不存在这样的书,任意键返回n你的卡号不存在,请申请新卡,按任意键返回n(3)管理模块管理模块最为复杂,管理所有的图书及职工、学生的信息。先进入总体的管理系统,在这个系统中重
10、点的操作是图书的管理,为其中的1至4项(分别是增加图书、删除图书、修改图书资料、书籍统计),同时系统还连接了职工、学生管理两个系统,为下一步的操作提供了条件。职工管理系统主要有增加图书、删除图书、修改图书资料、书籍统计,学生管理系统主要有申请新卡、删除卡号、借书统计、卡号统计四个模块,用于管理学生登录信息。 程序1 图书管理系统addbook() /*增加图书函数*/int i=1;char choice=ywhile(choice=|choice=Y) 请你输入第%d本书的序号n,i+);booki.booknum);请你输入书名n,booki.bookname);请你输入书的作者n,boo
11、ki.bookcreat);请你设定书的状态(请设为1或0,1代表书还没人借,0表示书已经借出,设其他值,程序运行时无法得出正常结果)nbooki.turefalse);是否要输入下本书 ? nchoice);delbook() /*删除图书函数*/int i;char bookname10,choice;fp2=fopen(请输入你要删除的书名n如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动n if(strcmp(bookname,booki.bookname)!=0) fclose(fp2);是否真的要删除该书籍?删除后该书籍的所有信息将无法恢复Y/Nnif(choice=按任意键返回nelse changebook() /*修改图书资料函数*/请你输入要修改的书籍的书字n if(strcmp(booki.bookname,bookname)=0) 你所要修改的书的资料如下,请选择你要修改的内容n序号:%d 书名:%s 作者:%s n1:修改书的序号n2:修改书名n3:修改作者n请输入1-3: switch(choice) 请输入新的序号n break;请输入新的书名n请输入新的作者n defaut:没有这样的操作getchar();bookcount() /*图书统计函数*/int i,n=0;fp=fopen
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1