《C语言课程设计报告—图书信息管理系统》由会员分享,可在线阅读,更多相关《C语言课程设计报告—图书信息管理系统(27页珍藏版)》请在金锄头文库上搜索。
1、 C 语言程序设计编程实践是学习C语言程序设计的一重要环节,上机实习和课程设计是提高同学们程序设计能力的有效途径,能够使同学们初步掌握程序设计的根本方法和调试技能。学校安排上机时间有限,老师也只能教给我们一些方法,而我们自己需要投入很大的时间和精力来锻炼。1、题目要求设计“图书信息管理系统要求:图书信息包括:登录号,书名,作者名,分类号,出版单位,出版时间,价格等。使之提供以下功能:(1) 系统以菜单方式工作。(2) 图书信息录入功能。图书信息用文件保存。(3) 图书信息浏览功能。(4) 图书信息查询功能。(5) 图书信息的删除和修改。2、分析:根据题目要求,应当把图书信息用结构体形式输入,再
2、定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时到达所要目的。3、总体设计: 根据题目要求,可以将系统分为六个模块:(1) 管理员登录系统模块。(2) 菜单项选择择模块。(3) 图书信息录入功能模块。(4) 图书信息浏览功能。(5) 图书信息查询功能。(6) 图书信息的删除和修改。 第1页管理员登录系统模块菜单项选择择模块。菜单项选择择模块。菜单项选择择模块。菜单菜单项选择择模块。(1)
3、择模块。图书信息录入功能模块图书信息浏览功能模块图书信息查询功能模块图书信息的删除和修改图书信息管理系统4、详细设计:头函数名:#include#include#include/*图书信息结构体*/*包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等*/struct bookinf int num; *登录号 char bname20;* 书名 char wname10;* 作者名 char clanum14;* 分类号 char pubcom10;* 出版单位 char pubtime10;* 出版时间 float price;* 价格;一管理员登录系统模块:(1) 来到图书信息管
4、理系统页面void index() char input; 注释:运行时 printf(nnttt*n); 直接进入 printf(ttt 图书信息管理系统n); 这个页面 printf(ttt*nnn); printf( -n); printf(tnt); input=getchar(); (2) 管理员登陆进入功能菜单页面第2页 开始输入管理员帐号和密码输入正确与否进入功能菜单页面结束NFILE *fp;struct manage pswd; if (fp=fopen(password.txt,r)=NULL) printf(nnntCannot open file!nt); else d
5、o printf(nnt请输入管理员帐号:); scanf(%s,name); printf(nnt请输入管理员密码:); scanf(%s,password); fp=fopen(password.txt,r); fread(&pswd,sizeof(struct manage),1,fp); fclose(fp); w=strcmp(pswd.manage_name,name); k=strcmp(pswd.password,password); adm_servelist(); while (w!=0|k!=0); adm_servelist(); (3)来到功能菜单页面第3页void
6、adm_servelist() void book_add(); void book_view(); void change(); void del(); void book_search(); void login(); void pwchange(); int in; 注释:菜单列出的效劳种类 char input; 从1,2,3,4,5,6 do 所对应的功能进行选择 printf(nnnt-欢送使用信息管理系统-); printf(nnt1.图书信息录入n); printf(t2.图书信息浏览n); printf(t3.图书信息查询n); printf(t4.图书信息删除n); pri
7、ntf(t5.图书信息修改n); printf(t6.退出管理模式n); printf(nt请选择效劳种类:); scanf(%d,&in); if (in!=1&in!=2&in!=3&in!=4&in!=5&in!=6) printf(nt没有这项效劳n); printf(t按任意键重新选择); input=getchar(); while (in!=1&in!=2&in!=3&in!=4&in!=5&in!=6); switch (in) case 1: book_add(); break; 注释:选择自己所需要 case 2: book_view(); break; 后摁下数字键那么
8、case 3: book_search(); break; 那么进入此功能页面 case 4: del(); break; case 5: change();break; case 6: login(); break; (3) 图书信息录入功能模块void book_add() 第4页void adm_servelist(); void book_add(); int i=0,j; FILE *fp; char input; 注释:输入的图书信息 struct bookinf books; 是通过文件进行 struct bookinf book_taxis30; 保存的 printf(nnnt
9、-请输入图书信息-nn); printf(t登录号:); scanf(%d,&books.num); printf(nt书名:); scanf(%s,books.bname); printf(nt作者名:); scanf(%s,books.wname); printf(nt分类号:); scanf(%s,books.clanum); printf(nt出版单位:); scanf(%s,books.pubcom); printf(nt出版时间:); scanf(%s,books.pubtime); printf(nt价格:); scanf(%f,&books.price); if (fp=fopen(book.txt,r)!=NULL) do fread(&book_taxisi,sizeof(struct bookinf),1,fp); i=i+1; while(!feof(fp); fclose(fp); for (j=0;j=i;j+) if (books.num=book_taxisj.num) printf(nnnt对不起,这个编号已经使用过了n); printf(t按任意键返回