C语言课程设计报告图书信息管理系统.docx

上传人:牧羊曲112 文档编号:3155359 上传时间:2023-03-11 格式:DOCX 页数:15 大小:40.65KB
返回 下载 相关 举报
C语言课程设计报告图书信息管理系统.docx_第1页
第1页 / 共15页
C语言课程设计报告图书信息管理系统.docx_第2页
第2页 / 共15页
C语言课程设计报告图书信息管理系统.docx_第3页
第3页 / 共15页
C语言课程设计报告图书信息管理系统.docx_第4页
第4页 / 共15页
C语言课程设计报告图书信息管理系统.docx_第5页
第5页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言课程设计报告图书信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告图书信息管理系统.docx(15页珍藏版)》请在三一办公上搜索。

1、C语言课程设计报告图书信息管理系统C语言课程设计报告 图书信息管理系统设计 C 语言程序设计 编程实践是学习C语言程序设计的一重要环节,上机实习和课程设计是提高同学们程序设计能力的有效途径,能够使同学们初步掌握程序设计的基本方法和调试技能。学校安排上机时间有限,老师也只能教给我们一些方法,而我们自己需要投入很大的时间和精力来锻炼。 1、题目要求 设计“图书信息管理系统” 要求: 图书信息包括:登录号,书名,作者名,分类号,出版单位,出版时间,价格等。使之提供以下功能: 系统以菜单方式工作。 图书信息录入功能。 图书信息浏览功能。 图书信息查询功能。 图书信息的删除和修改。 2、分析: 根据题目

2、要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。 3、总体设计: 根据题目要求,可以将系统分为六个模块: 管理员登录系统模块。 菜单选择模块。 图书信息录入功能模块。 图书信息浏览功能。 图书信息查询功能。 图书信息的删除和修改。 第1页 管理员登录系统模块 菜单选择模块图书信息录入功能模块 图书信息浏览功能模块 图书信息查询功能模块

3、图书信息的删除和修改 图书信息管理系统 4、详细设计: 头函数名: #include #include #include /*图书信息结构体*/ /*包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等*/ struct bookinf int num; *登录号 char bname20;* 书名 char wname10;* 作者名 char clanum14;* 分类号 char pubcom10;* 出版单位 char pubtime10;* 出版时间 float price;* 价格 ; 一管理员登录系统模块: 来到图书信息管理系统页面 void index char inp

4、ut; 注释:运行时 printf(nnttt*n); 直接进入 printf(ttt 图书信息管理系统n); 这个页面 printf(ttt*nnn); printf( -n); printf(tnt); input=getchar; 管理员登陆进入功能菜单页面 第2页 开始 输入管理员帐号和密码 输入正确与否 N 进入功能菜单页面 FILE *fp; struct manage pswd; 结束 if (fp=fopen(password.txt,r)=NULL) printf(nnntCannot open file!nt); else do printf(nnt请输入管理员帐号:);

5、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 adm_servelist void book_ad

6、d; void book_view; void change; void del; void book_search; void login; void pwchange; int in; char input; do printf(nnnt-欢迎使用信息管理系统-); printf(nnt1.图书信息录入n); printf(t2.图书信息浏览n); printf(t3.图书信息查询n); printf(t4.图书信息删除n); printf(t5.图书信息修改n); printf(t6.退出管理模式n); printf(nt请选择服务种类:); scanf(%d,&in); if (in!

7、=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; case 3: book_search; break; case 4: del; break; case 5: change;break; case 6: login; break; 图书信息录入功能模块 vo

8、id book_add 注释:菜单列出的服务种类 从1,2,3,4,5,6 所对应的功能进行选择 注释:选择自己所需要 后摁下数字键则 则进入此功能页面 第4页 void adm_servelist; void book_add; int i=0,j; FILE *fp; char input; 注释:输入的图书信息 struct bookinf books; 是通过文件进行 struct bookinf book_taxis30; 保存的 printf(nnnt-请输入图书信息-nn); printf(t登录号:); scanf(%d,&books.num); printf(nt书名:);

9、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)

10、,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按任意键返回管理菜单); input=getchar; adm_servelist; break; if (fp=fopen(book.txt,r)=NULL) 第5页 fp=fopen(book.txt,w); else fclose(fp); fp=fopen(book.txt,a); fwrite(&books,sizeof(stru

11、ct bookinf),1,fp); fclose(fp); printf(nnnt信息输入完毕按任意键继续n); input=getchar; adm_servelist; 图书信息浏览功能模块 void book_view void adm_servelist; void book_view; int inp,i=0,n=0; FILE *fp; char input; struct bookinf bookview20; if (fp=fopen(book.txt,r)=NULL) printf(nnnt数据尚未初始化nnt请在管理菜单中增加图书信息n); printf(ntnt); i

12、nput=getchar; adm_servelist; else do fread(&bookviewi,sizeof(struct bookinf),1,fp); i=i+1; while (!feof(fp); fclose(fp); do printf(nt-共有%d条记录-,i-1); printf(nnt登录号: %dn,bookviewn.num); 第6页 printf(nt书名: %sn,bookviewn.bname); printf(nt作者名: %sn,bookviewn.wname); printf(nt分类号: %sn,bookviewn.clanum); prin

13、tf(nt出版单位: %sn,bookviewn.pubcom); printf(nt出版时间: %sn,bookviewn.pubtime); printf(nt价格: %fn,bookviewn.price); printf(nnt1.上一页t2.下一页t3.回目录n); printf(nt请选择:); scanf(%d,&inp); switch (inp) case 1: if (n=0) printf(nt已到达首页nt按任意键重新选择); input=getchar; else n=n-1; break; case 2: if (n=i-2) printf(nt已到达最末页nt按任

14、意键重新选择); input=getchar; else n=n+1; break; case 3: adm_servelist; break; default: printf(nt没有这项服务nt按任意键重新选择); input=getchar; while (inp!=3); 第7页 图书信息修改与删除功能模块 修改: void change(int x) int inp,i=0,j; void book_search; FILE *fp,*fp1; char input; struct bookinf books,book_taxis20; do printf(nnnt注意:您确定要修改

15、该记录吗?n); printf(nt1.是t2.否n); printf(nt请输入:); scanf(%d,&inp); if (inp!=1&inp!=2) printf(nt对不起没有这项服务n); printf(t按任意键重新选择nt); input=getchar; while (inp!=1&inp!=2); if (inp=2) book_search; if (inp=1) printf(nnnt-请输入图书信息-nn); printf(t登录号:); scanf(%d,&books.num); printf(nt书名:); scanf(%s,books.bname); prin

16、tf(nt作者名:); scanf(%s,books.wname); printf(nt分类号:); scanf(%s,books.clanum); printf(nt出版单位:); scanf(%s,books.pubcom); printf(nt出版时间:); scanf(%s,books.pubtime); 第8页 printf(nt价格:); scanf(%f,&books.price); if (fp1=fopen(book.txt,r)!=NULL) do fread(&book_taxisi,sizeof(struct bookinf),1,fp1); i=i+1; while(

17、!feof(fp1); fclose(fp1); for (j=0;jx;j+) if (books.num=book_taxisj.num) printf(nnnt对不起,这个编号已经使用过了n); printf(t按任意键返回管理菜单); printf(0); input=getchar; book_search; break; for (j=x+1;ji-2;j+) if (books.num=book_taxisj.num) printf(nnnt对不起,这个编号已经使用过了n); printf(1); printf(t按任意键返回管理菜单); input=getchar; book_

18、search; break; book_taxisx=books; fp=fopen(book.txt,w); for (j=0;j2) fp=fopen(book.txt,w); 第10页 for (j=0;jy;j+) fwrite(&book_taxisj,sizeof(struct bookinf),1,fp); fclose(fp); fp=fopen(book.txt,a); for (j=y+1;ji-1;j+) fwrite(&book_taxisj,sizeof(struct bookinf),1,fp); fclose(fp); else remove(book.txt);

19、 printf(nnt记录已删除!nnt按任意键返回nt); input=getchar; adm_servelist; 图书信息查询功能模块 void book_search void adm_servelist; void id_search; void wr_search; void bn_search; char input; FILE *fp; int inp; if (fp=fopen(book.txt,r)=NULL) printf(nnnt数据尚未初始化nnt请在管理菜单中增加图书信息n); printf(ntnt); input=getchar; adm_servelist;

20、 else do printf(nnnt1.按图书登录号查询n); printf(nt2.按图书作者查询n); 第11页 printf(nt3.按图书名查询n); printf(nt4.回到主菜单n); printf(nnt请选择查询类别:); scanf(%d,&inp); if (inp!=1&inp!=2&inp!=3&inp!=4) printf(nnt没有这项服务nt按任意键重新选择); input=getchar; while (inp!=1&inp!=2&inp!=3&inp!=4); fclose(fp); switch (inp) case 1: id_search; bre

21、ak; case 2: wr_search; break; case 3: bn_search; break; case 4: adm_servelist; break; 5运行与测试报告: 第12页 第13页 三 后记/课程设计过程中遇到的问题以及解决方法,课程设计的体会。 这次课程设计让我掌握了许多的有用知识。首先通过不断地学习和锻炼更加熟练地掌握应用软件Microsoft Visual C+ 6.0 了。设计正确及合适的程序对于我们初学者来说是很大的难题,出现一丁点儿错误就得非很大的努力去修改,正式者一步步一点点的努力让我对C语言游乐更深的认识。同时我掌握了解决问题的方法,这无论是对以后的学习、生活都有无比重要的价值。 在设计中,每个同学都会遇到一些困难,或多或少,这些困难常常让我心情烦躁,比如不能清晰的建立设计模块,不会修改出现的错误等等,然后我向同学寻求帮助,向他们学习,最终通过自己努力建立了模块。不可避免地程序中肯定依然存在者某些问题,我希望在以后的学习和应用中不断提高自己的能力,攻克遇到的困难。 第14页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号