2022年图书信息管理系统终版 .pdf

上传人:C****o 文档编号:40344158 上传时间:2022-09-09 格式:PDF 页数:19 大小:939.81KB
返回 下载 相关 举报
2022年图书信息管理系统终版 .pdf_第1页
第1页 / 共19页
2022年图书信息管理系统终版 .pdf_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《2022年图书信息管理系统终版 .pdf》由会员分享,可在线阅读,更多相关《2022年图书信息管理系统终版 .pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、课程设计报告课程设计题目:图书信息管理系统设计学生姓名专业学号指导教师2016 年月日名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 19 页 -1-目录一.课程设计目的.错误!未定义书签。二.设计的内容与要求.1 三.总体设计方案.2 1.功能分析.2 2.系统使用的主要函数.2 3.系统使用的主要数据结构.2 四.各功能模块流程图.31.程序总体结构图.32.信息录入功能流程图.33.按书名查找算法(按作者名与此类似).44.删除图书信息算法(修改与此类似).4五.功能测试.5 1.系统主界面.5 2.系统输入信息的界面.5 3.系统信息查询的界面.6 4.系统信息按作者名查

2、询的界面.6 5.系统信息按作者名排序.7 六.程序调试过程及心得体会.8 七.参考文献.9八.程序清单.错误!未定义书签。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 19 页 -2-图书信息管理系统一、课程设计的目的1.巩固和加深学生对C 语言课程的基本知识的理解和掌握2.掌握 C 语言编程和程序调试的基本技能3.利用 C 语言进行基本的软件设计4.掌握书写程序设计说明文档的能力5.提高运用C 语言解决实际问题的能力二设计的内容与要求1、题目:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下

3、功能:1、系统以菜单方式工作2、图书信息录入功能(图书信息用文件保存)输入3、图书信息浏览功能输出4、图书信息查询功能算法查询方式按书名查询按作者名查询5、图书信息的删除与修改名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 19 页 -3-三.总体设计方案1.功能分析(系统提供主界面,各种功能操作以独立的函数为基础,运用对链表操作的技术来实现通讯录的管理,同时对操作结果在计算机中做永久保存。)整个系统可以分为信息录入、信息浏览、信息查询、信息排序、信息删除和信息修改的功能。系统提供主界面,各种功能操作以独立的函数为基础,运用对链表操作的技术来实现图书信息的管理,同时对操作结果在计

4、算机中做永久保存。2.系统使用的主要函数void menu();intbookluru(struct book*p,int n);(录入图书信息)void bookliulan(struct book*p,int n);(图书信息浏览)void bookchaxun(struct book*p,int n);(图书信息查询)void bookxiugai(struct book*p,int n);(图书信息修改)intbookzengjia(struct book*p,int n);(图书信息增加)intbookshanchu(structbook*p,int n);(图书信息删除)void

5、bookpaixu(struct book*p,int n);(图书信息排序)void DLsearch(struct book*p,int n);(按登入号查询)void AUsearch(struct book*p,int n);(按作者名查询)intbookzairu(struct book*p,int n);(图书信息文件储存)void goout();(退出程序)intbookbaocun(struct book*p,int n);(图书信息保存)void main()3.系统使用的主要数据结构struct book/定义一个book 类结构体。char noL;char nameL

6、;char authorL;charfenleiL;charputtimeL;charputfromL;char priceL;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 19 页 -4-四各功能模块流程图1.程序总体结构图2.信息录入功能流程图名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 19 页 -5-3.按书名查找算法(按作者名与此类似)4.删除图书信息算法(修改与此类似)5.名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 19 页 -6-五.程序运行结果1.系统主界面2.系统输入信息的主界面名师资料总结-精品资料欢迎下载-名师精心整理-第

7、 7 页,共 19 页 -7-3.系统信息查询的界面4.系统信息按作者名查询的界面名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 19 页 -8-5.系统信息按作者名排序名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 19 页 -9-六.程序调试过程及心得体会1.问题:在信息查询完成后,无法跳出该界面,无法回到主界面。解决方法:在信息查询那个版块的程序中,把原先用scanf输入字符改成gets(no),排除由于回车键出现的问题。2)问题:“登录号书名作者。”之间无空格号解决方法:改为printf(n%9s%9s%9s%9s%9s%9s%9sn,登录号,书名,作者名,

8、分类号,出版单位,出版时间,价格);拉宽长度。名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 19 页 -10-2.课程设计小结通过一周的课程设计,第一次我们试着用所学的C语言知识去编制生活中常用的程序。我们是小组选择编辑图书信息管理系统程序。由于分工合作,我负责的是查询和排除模块。起初对知识掌握的不够全面,在整个设计过程中遇到很多问题。比如,编译出现错误,对于格式的掌握还不够透彻;在分界面运行完后,回不到系统的主界面,出现了死循环;在删除信息的板块中,删除了要保留的;运行时,屏幕显示的字之间无空格。后来,通过小组互相帮组讨论,查阅书籍,改善了程序。首先把原程序中的运用scan

9、f()输入字符,改为getchar(),排除了接受回车键所出现的问题,能够顺利的返回主界面。其次,printf()中字符串控制的长度拉宽。最后还是能如期的完成此次实训。当然,由于初次接触图书管理系统的设计,程序还是存在缺陷。比如操作起来不够简便、连贯,同时也没考虑到实际问题。如图书的价格要取大于等于零的数等。总之,此次的课程设计还是对我们的专业很有帮助。既巩固了我们的C 语言知识,让我们对一部分函数的功能有了更加深刻的理解,把所学运用到实际,也使我们在系统设计领域有了新的拓展,开发我们的思维。七参考文献C程序设计(第四版)谭浩强著清华大学出版社C程序设计(第四版)学习辅导谭浩强著清华大学出版社

10、名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 19 页 -11-八.程序清单#include/头文件#include#include#define L 30/宏定义#define Q 200 struct book/定义一个 book类结构体。char noL;char nameL;char authorL;charfenleiL;charputtimeL;charputfromL;char priceL;/函数声明/函数声明void menu();intbookluru(struct book*p,int n);voidbookliulan(struct book*p,in

11、t n);voidbookchaxun(struct book*p,int n);voidbookxiugai(struct book*p,int n);intbookzhengjia(struct book*p,int n);intbookshanchu(struct book*p,int n);voidbookpaixu(struct book*p,int n);voidDLsearch(struct book*p,int n);voidAUsearch(struct book*p,int n);intbookzairu(struct book*p,int n);voidgoout();i

12、ntbookbaocun(struct book*p,int n);void main()/主函数 charslect,yn;struct book recordQ;/定义book类结构体变量存放图书信息共200条int total=0,flag;total=bookzairu(record,Q);/从文件读取图书信息,不超过200条do menu();/显示菜单printf(请服务项编号:);slect=getchar();getchar();switch(slect)case0:goout();break;case1:total=bookluru(record,total);break;/

13、函数调用case2:bookliulan(record,total);break;case3:bookchaxun(record,total);break;case4:bookxiugai(record,total);break;case5:total=bookzhengjia(record,total);break;case6:total=bookshanchu(record,total);break;case7:bookpaixu(record,total);break;case8:flag=bookbaocun(record,total);if(flag=1)printf(图书信息保存成

14、功!n);else printf(图书信息保存失败!n);break;default:continue;if(slect=0)break;printf(n 还要继续选择吗?(Y/N));/提示是否结束do yn=getchar();getchar();if(yn=Y|yn=y)break;else if(yn=N|yn=n)名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 19 页 -12-break;else printf(非 法选 项!n还要 继续选择吗?(Y/N));while(1);while(yn!=N&yn!=n);/图书管理系统主菜单.void menu()syst

15、em(cls);printf(nn);printf(请选择服务项目编号(0-8)n);printf(*n);printf(*欢迎使用图书信息管理系统*n);printf(*n);printf(n);printf(n);printf(n);printf(*1.图书信息录入.n);printf(*2.图书信息浏览.n);printf(*3.图书信息查寻.n);printf(*4.图 书 信 息 修 改.n);printf(*5.图书信息增加.n);printf(*6.图书信息删除.n);printf(*7.图书信息排序.n);printf(*8.图书信息保存.n);printf(*0.退出图书管理

16、系统.n);printf(n);printf(n);printf(n);printf(*n);printf(n);intbookluru(struct book*p,int n)/录入图书信息.inti=0;int m;printf(n 添加 前的图书信息记录共有%d 个:n,n);/显示原有的图书信息printf(n%9s%9s%9s%9s%9s%9s%9sn,登录号,书名,作者名,分类号,出版单位,出版时间,价格);i=0;while(ino,)!=0)/输入的登录号不为空时,输出图书信息 printf(%9s%9s%9s%9s%9s%9s%9sn,p-no,p-name,p-author

17、,p-fenlei,p-puttime,p-putfrom,p-price);/信 息输出i+;p+;printf(n 请 输 入 要 录 入 的 图书 数 目 X(0X%d):,200-n);/设置图书信息存储最大值scanf(%d,&m);i=0;while(ino);/输入登录号,再输入其他信息 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 19 页 -13-while(strcmp(p-no,)=0);printf(书名为:);gets(p-name);printf(作者名为:);gets(p-author);printf(分类号为:);gets(p-fenlei);

18、printf(出版时间为:);gets(p-puttime);printf(出版单位为:);gets(p-putfrom);printf(价格为:);gets(p-price);p+;i+;returnm+n;void bookliulan(struct book*p,int n)/图书信息浏览.inti=0;printf(n%9s%9s%9s%9s%9s%9s%9sn,登录号,书名,作者名,分类号,出版单位,出版时间,价格);while(ino,p-name,p-author,p-fenlei,p-puttime,p-putfrom,p-price);p+;i+;void bookchaxu

19、n(struct book*p,int n)/图书信息查寻.char c;bookliulan(p,n);do printf(n 请问按登录号查询(D),还是按作者名查询(A)?);/选择查询方式c=getchar();getchar();if(c=D|c=d)DLsearch(p,n);break;else if(c=A|c=a)AUsearch(p,n);break;else printf(n 输入的为非法字符!n);continue;while(c!=D|c!=d|c!=A|c!=a);void DLsearch(struct book*p,int n)/按登录号查询.inti,x=0;

20、char DLL;printf(n 请输入要查询图书的登录号:);gets(DL);for(i=0;in;i+)if(strcmp(DL,pi.no)=0)/输入登录号,如果在系统中找到则输出图书信息 printf(n%9s%9s%9s%9s%9s%9s%9sn,登录号,书名,作者名,分类号,出版单位,出版时间,价格);printf(n%10s%10s%10s%10s%10s%10s%10sn,pi.no,pi.name,pi.author,pi.fenlei,pi.putfrom,pi.puttime,pi.price);x=1;break;名师资料总结-精品资料欢迎下载-名师精心整理-第

21、14 页,共 19 页 -14-if(x=0)printf(n 对不起,图书系统中没有包含此书的信息!n);void AUsearch(struct book*p,int n)/按作者名查询.inti,x=0;char AU20;printf(n 请输入要查询图书的作者姓名:);gets(AU);for(i=0;in;i+)if(strcmp(AU,pi.author)=0)/输入作者姓名,如果在系统中找到则输出图书信息 printf(n%9s%9s%9s%9s%9s%9s%9sn,登录号,书名,作者名,分类号,出版单位,出版时间,价格);printf(n%10s%10s%10s%10s%10

22、s%10s%10sn,pi.no,pi.name,pi.author,pi.fenlei,pi.putfrom,pi.puttime,pi.price);x=1;if(x=0)printf(n 对不起,图书系统中没有包含此书的信息!n);/提示信息 void bookxiugai(struct book*p,int n)/图书信息修改.inti,k=0;char noL;bookliulan(p,n);printf(n 请输入要修改图书的登录号:);gets(no);for(i=0;ino)!=0)continue;/输入的登录号不匹配,结束本次循环else printf(n 请输入正确的图书

23、登录号:);gets(p-no);printf(n 请输入正确的图书书名:);gets(p-name);printf(n 请输入正确的图书作者名:);gets(p-author);printf(n 请输入正确的图书分类号:);gets(p-fenlei);printf(n 请输入正确的图书出版时间:);gets(p-puttime);printf(n 请输入正确的图书出版单位:);gets(p-putfrom);printf(n 请输入正确的图书价格:);gets(p-price);printf(n 修改图书图书信息完成!);k=1;if(k=0)printf(n 对不起,图书系统中没有包含此

24、书的信息!n);intbookzhengjia(struct book*p,int n)/图书信息增加.inti=0;char c;struct book t,*q;printf(n 添加前图书信息的记录为:n);bookliulan(p,n);/显示添加前图书信息的记录do printf(请输入新图书信息的登录号:);gets(t.no);printf(n 请输入新图书信息的书名为:);gets(t.name);printf(n 请输入新图书信息的作者名为:);gets(t.author);printf(n 请输入新图书信息的分类号为:);gets(t.fenlei);printf(n 请输

25、入新图书信息的出版时间为:);gets(t.puttime);printf(n 请输入新图书信息的出版单位为:);gets(t.putfrom);名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 19 页 -15-printf(n 请输入新图书信息的价格为:);gets(t.price);for(i=0;ino)=0|strcmp(t.author,(p+i)-author)=0|strcmp(t.fenlei,(p+i)-fenlei)=0)printf(登录号、作者名和分类号重复,要重新输入吗(Y/N)?);c=getchar();putchar(n);break;if(i=

26、n)*(p+i)=t;printf(n 添加后图书的信息记录为:n);/显示添加后图书的信息记录printf(n%9s%9s%9s%9s%9s%9s%9sn,登录号,书名,作者名,分类号,出版单位,出版时间,价格);for(i=0;in+1;i+)printf(n%9s%9s%9s%9s%9s%9s%9sn,pi.no,pi.name,pi.author,pi.fenlei,pi.putfrom,pi.puttime,pi.price);break;while(c=y|c=Y);return n+1;intbookshanchu(struct book*p,int n)/图书信息删除.inti

27、,x,y=0;charc,name20,no20;printf(n 删除前图书的信息记录为:n);printf(n%9s%9s%9s%9s%9s%9s%9sn,登录号,书名,作者名,分类号,出版单位,出版时间,价格);/显示删除前图书的信息记录for(i=0;ino,(p+i)-name,(p+i)-author,(p+i)-fenlei,(p+i)-putfrom,(p+i)-puttime,pi.price);printf(n 请输入要删除图书的登陆号:);gets(no);for(x=0;xn;x+)if(strcmp(no,px.no)!=0)/输入的登录号不匹配,结束本次循环cont

28、inue;if(xn)for(i=x;in;i+)/后一个图书信息对前一个图书信息覆盖删除 strcpy(pi.no,pi+1.no);strcpy(pi.author,pi+1.author);strcpy(pi.name,pi+1.name);strcpy(pi.fenlei,pi+1.fenlei);strcpy(pi.price,pi+1.price);strcpy(pi.putfrom,pi+1.putfrom);strcpy(pi.puttime,pi+1.puttime);printf(图书信息删除后的记录:n);printf(n%9s%9s%9s%9s%9s%9s%9sn,登录

29、号,书名,作者名,分类号,出版单位,出版时间,价格);/显示图书信息删除后的记录for(i=0;in-1;i+)printf(n%9s%9s%9s%9s%9s%9s%9sn,pi.no,pi.name,pi.author,pi.fenlei,pi.putfrom,pi.puttime,pi.price);y=1;else printf(n 对不起,图书系统中没有包含此书的信息!n);return n-y;/对图书信息排序.voidbookpaixu(struct book*p,int n)intj,i,k;char c1,c2;struct book temp;名师资料总结-精品资料欢迎下载-

30、名师精心整理-第 16 页,共 19 页 -16-printf(n 排序前图书的信息记录为:n);printf(n%9s%9s%9s%9s%9s%9s%9sn,登录号,书名,作者名,分类号,出版单位,出版时间,价格);for(i=0;ino,(p+i)-name,(p+i)-author,(p+i)-fenlei,(p+i)-putfrom,(p+i)-puttime,pi.price);printf(n 按登录号排序(D),还是按作者名排序(A)?);/选择排序的方式c1=getchar();getchar();if(c1=d|c1=D)/选择登录号由小到大排序 for(i=0;in-1;i

31、+)k=i;for(j=i+1;j0)/使用选择法进行排序k=j;if(k!=i)/如果最小熟不熟默认的pi,再交换,temp=pk;pk=pi;pi=temp;printf(n 排 序 后 图 书 的 信 息 记 录 为:n);/输出排序后图书的信息printf(n%9s%9s%9s%9s%9s%9s%9sn,登录号,书名,作者名,分类号,出版单位,出版时间,价格);for(i=0;ino,(p+i)-name,(p+i)-author,(p+i)-fenlei,(p+i)-putfrom,(p+i)-puttime,pi.price);else if(c1=a|c1=A)/选择作者名由小到

32、大排序 for(i=0;in-1;i+)k=i;for(j=i+1;j0)k=j;if(k!=i)/使用选择法进行排序 temp=pk;pk=pi;pi=temp;printf(n 排序后图书的信息记录为:n);printf(n%9s%9s%9s%9s%9s%9s%9sn,登录号,书名,作者名,分类号,出版单位,出版时间,价格);/输出排序后图书的信息for(i=0;ino,(p+i)-name,(p+i)-author,(p+i)-fenlei,(p+i)-putfrom,(p+i)-puttime,pi.price);else printf(n 您输入的为非法字符!n);/图书信息文件存储

33、.intbookzairu(struct book*p,int n)FILE*fp;/定义 FILE 类型文件指针变量inti,all=0;charbookfile200=book.txt;fp=fopen(book.txt,r+);/以只读方式打开if(fp=NULL)printf(n*打开%s失败!*,bookfile);return 0;fscanf(fp,%dn,&all);/从文件指针指向的文本文件中按指定格式逐个输入信息到指定变量名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 19 页 -17-if(all200)/读取记录总数 printf(文件记录太多,不能读取

34、!);return 0;for(i=0;iall;i+)/图书信息按指定格式输入fscanf(fp,%s%s%s%s%s%s%sn,pi.no,pi.name,pi.author,pi.fenlei,pi.putfrom,pi.puttime,pi.price);fclose(fp);/关闭文件return all;/图书信息文件保存.intbookbaocun(struct book*p,int n)FILE*fp;/定义FILE 类型文件指针变量inti,all=0;charbookfile30=book.txt;fp=fopen(bookfile,w);/以只写方式打开if(fp=NUL

35、L)/printf(n*打开%s失败!*,bookfile);return 0;fprintf(fp,%dn,n);/将数据指定格式字符串输出到文件指针所指向的文本文件。for(i=0;in;i+)/图书信息按指定格式输出 fprintf(fp,%s%s%s%s%s%s%sn,pi.no,pi.name,pi.author,pi.fenlei,pi.putfrom,pi.puttime,pi.price);fclose(fp);/关闭文件return 1;/图书管理系统退出voidgoout()printf(n 请按Enter键退出图书信息管理系统!n);名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 19 页 -18-名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 19 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁