C语言图书管理系统实验报告

上传人:简****9 文档编号:47668824 上传时间:2021-12-25 格式:DOCX 页数:33 大小:291.40KB
收藏 版权申诉 举报 下载
C语言图书管理系统实验报告_第1页
第1页 / 共33页
C语言图书管理系统实验报告_第2页
第2页 / 共33页
C语言图书管理系统实验报告_第3页
第3页 / 共33页
资源描述:

《C语言图书管理系统实验报告》由会员分享,可在线阅读,更多相关《C语言图书管理系统实验报告(33页珍藏版)》请在装配图网上搜索。

1、课程报告课程名称:程序设计实践专业班级:信息类1110学生姓名:学 号:任课教师:期:20101-2012学年第二学期课程报告任务书题 目图书信息管理系统主要内容开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)一一输入(2)图书信息浏览功能一一输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):按书名查询按作者名查询按照价钱排序按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行

2、扩展。比如(1)简单的权限处理(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。(4)模糊查询 (5)综合查询 (6)统计功能比如统计处某一类别的图书信息或筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。任务要求一、提交材料应包括:(1)系统源代码(2)课程报告二、整个设计过程具体要求(1)需求分析要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2)设计过程要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3)实现过程 要求学生养成良好的编码习惯、完成各个模块并进行测试,最终

3、 完成系统整体测试;(4)总结阶段 按照要求完成系统设计和实现报告,并进行总结、答辩。成绩评定报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分内容20分规范程度5分程序测试5分基本功能20分扩展功能10分自述情况10分答辩情况30分成绩评定教师:1 需求分析这是 一个 能简单管理 图 书 的 小 型 图 书管理系 统 ,其 中 图 书 信息包 括 :书 名 , 作者名,书编号,分类,出版单位,出版时间,价格等。通过这些信息使之提 供以下功能:( 1)图 书 信 息 创 建 功 能 。其 中 图 书 信 息 包 括 :书 名 ,作 者 名 ,书 编 号 ,分 类 , 出 版单位

4、 , 出 版时 间 , 价格等 。 (图书信息用文件保存) 。( 2)图书信息查看功能。用来查看各项图书信息。( 3)图书信息查找功能。通过已知信息来查找想要的图书。( 4)图书信息的删除。可以删除特定图书。( 5)图书信息的修改。可以修改图书的各项信息。( 6)图书信息的排序功能。按图书信息对录入的图书进行排序。( 7 )菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能( 概要设计 数据结构图书管理系统中主要的数据结构包含书名、 图书书号、 作者名、 分类、 出版社、 出版时间、 价格等;在处理过程中各项可以作为

5、一本图书的不同属性来进行处理。/ / 自定义枚举类型fi_type ,用来表示图书信息typedef enum _fi_typenews=1, / 图书信息fi_type;/ 图书信息结构体struct fi_infochar name11; / 书名char writer21; /作者char shuhao10; /书号char fenlei10; /分类char chuban20; /出版社int chubantime; / 出版时间 float price; / 价格 fi_type type;struct fi_info* next; /结构体的指针域,用于存放链表的下个结点的地址;模

6、块划分本系统主要有创建新的图书、查找图书、删除图书、修改图书、查看图书和图书排序几 个基本功能。2struct fi_info *head=NULL,*head_=NULL ; /空int Book_num; /图书信息的统计数将图书信息写成链表,头指针分别为void menu();int ReadinfoFromFile();/函数中明int chuangjian(); / void chazhao(); / void shanchu(); / void xiugai(); / void show(); / void paixu() ; / void quit(); /读入数据创建新的图书信

7、息查找图书删除图书修改图书查看图书图书排序退出(3)程序结构3 详细设计1. 主菜单函数的原型: void menu()函数的功能:调用菜单,使用各项功能程序:void menu()printf(nn*v书信息管理系统 *n);printf(n);printf(tttn);printf(tttn);printf(tttn);printf(tttn);printf(tttn);printf(tttn);printf(ttt主菜单0 ; 退 出n);printf(n);2. 新建文件函数的原型: int ReadinfoFromFile()函数的功能:建立文件储存数据程序int ReadinfoF

8、romFile() / 读入数据FILE *fp=NULL; / 文件指针struct fi_info *p=NULL; / 结构体指针int i;if(fp=fopen(sun.txt,r+)=NULL)printf( 文件不存在! n);fp=fopen(sun.txt,w); / 为输出打开一个文件printf( 文件建立成功! n);fscanf(fp,%d,&Book_num); / 从文件中分别读入图书信息统计数, 以便于下面for 循环的条件控制for(i=0;iname);fscanf(fp,%s,p-writer);fscanf(fp,%s,p-shuhao);fscanf(

9、fp,%s,&p-fenlei);fscanf(fp,%s,p-chuban);fscanf(fp,%d,&p-chubantime);fscanf(fp,%.2f,&p-price);fscanf(fp,%d,&p-type);if(p-type=1)if(head=NULL)head=p;p-next=NULL;elsep-next=head;head=p;elseif(head_=NULL)head_=p;p-next=NULL;elsep-next=head_;head_=p;fclose(fp);return 0;3. 创建图书信息函数的原型: int chuangjian()函数的

10、功能:记录图书的各项信息程序:int chuangjian() / 创建图书信息struct fi_info *p=NULL;p=(struct fi_info*)malloc(sizeof(struct fi_info);printf( 请输入书名: );scanf(%s,p-name);printf( 请输入作者名: );scanf(%s,p-writer);printf(请输入书号:);scanf(%s,p-shuhao);printf(请输入分类:);scanf(%s,&p-fenlei);printf( 请输入出版社: );scanf(%s,p-chuban);printf( 请输入

11、出版时间: );scanf(%d,&p-chubantime);printf( 请输入价格: );scanf(%f,&p-price);p-type=news;Book_num+=1;p-next=head;head=p;return 0;4. 查找图书信息函数的原型: void chazhao()函数的功能:通过书名查找、作者查找、组合查找三种方式查找图书信息。程序:void chazhao() / 查找图书信息struct fi_info *p=NULL;char name10,writer21;int price;int b=1,i;printf( 按书名查找请按1.n 按作者名查找请按

12、2.n 按组合查询请按 3.n);scanf(%d,&i);if(i=1)printf( 请输入要查找的书名 :);scanf(%s,name);for(p=head;p!=NULL;p=p-next) /一个链表指针p 的遍历,直到结尾p=NULLif(strcmp(name,p-name)=0) /b=0;/字符串的比较函数,若前后相等则等于 0若存在,则 b=0printf( 找到要查找的图书信息 :n);printf(图书名称%sn,p-name);printf(图书作者%sn,p-writer);printf( 图书书号 %sn,p-shuhao);printf( 图书分类 %sn,

13、p-fenlei);printf( 出版社 %sn,p-chuban);printf(出版时间%dn,p-chubantime);printf(图书价格%.2fn,p-price);if(head=NULL) printf(n);if(b) printf(n); 若b=1,则不存在else if(i=2)printf( 请输入要查找的作者名 :);scanf(%s,writer);for(p=head;p!=NULL;p=p-next) / 一个链表指针p 的遍历,直到结尾p=NULLif(strcmp(writer,p-writer)=0) /字符串的比较函数,若前后相等则等于0b=0;/若

14、存在,则 b=0printf( 找到要查找的图书信息 :n);printf( 图书名称 %sn,p-name);printf(图书作者 %sn,p-writer);printf( 图书书号 %sn,p-shuhao);printf(图书分类%sn,p-fenlei);printf(出版社%sn,p-chuban);printf(出版时间%dn,p-chubantime);printf(图书价格%.2fn,p-price);if(head=NULL) printf(n);if(b) printf(n); 若b=1,则不存在else if(i=3)printf( 请输入要查找的 书名 价格 n:)

15、;scanf(%s %d,name,&price);for(p=head;p!=NULL;p=p-next) / 一个链表指针p 的遍历,直到结尾p=NULLif(strcmp(name,p-name)=0&price=p-price) / 字符串的比较函数,若前后相等则等于0b=0;/若存在,则 b=0printf( 找到要查找的图书信息 :n);printf(图书名称%sn,p-name);printf(图书作者%sn,p-writer);printf( 图书书号 %sn,p-shuhao);printf(图书分类%sn,p-fenlei);printf( 出版社 %sn,p-chuban

16、);printf(出版时间%dn,p-chubantime);printf(图书价格%.2fn,p-price);if(head=NULL) printf( 查无此书 n);if(b) printf(n); 若b=1,则不存在 else printf(n);system(PAUSE); / 暂停5. 删除图书信息函数的原型: void shanchu()函数的功能:通过书名确定图书,进而删除该书程序:void shanchu() / 删除图书信息struct fi_info *p=NULL; /定义两个结构体指针struct fi_info *q=NULL;char name10;int b=

17、1;int a;printf( 请输入要删除的书名 :n);scanf(%s,name);for(p=head,q=head;p!=NULL;p=p-next)if(strcmp(name,p-name)=0)printf(确定删除? 0(是)or 1(否)n);scanf(%d,&a);if(a=0)if(p=head)head=head-next;elseq-next=p-next;printf( 删除成功! n);else q=p;if(b) printf(next)if(strcmp(p-name,name)=0)b=0;printf(图书名称%sn,p-name);printf(图书

18、作者%sn,p-writer);printf( 图书书号 %sn,p-shuhao);printf(图书分类%sn,p-fenlei);printf(出版社%sn,p-chuban);printf(出版时间%dn,p-chubantime);printf(图书价格%.2fn,p-price);printf(n);scanf(%d,&a);if(a=0)printf(* 请重新输入信息 *n);printf( 请输入书名: );scanf(%s,p-name);printf( 请输入作者名 :);scanf(%s,p-writer);printf(请输入书号:);scanf(%s,p-shuha

19、o);printf(请输入分类:);scanf(%s,&p-fenlei);printf( 请输入出版社: );scanf(%s,&p-chuban);printf( 请输入出版时间: );scanf(%d,&p-chubantime);printf( 请输入价格: );scanf(%f,&p-price);p-type=news;printf(nn nn);if(b=1) printf(n);system(PAUSE);7. 显示图书信息函数的原型: void show()函数的功能:显示已存图书的各项信息程序:void show() / 显示图书信息struct fi_info *p=NU

20、LL;system(cls);for(p=head;p!=NULL;p=p-next)printf(图书名称%sn,p-name);printf(图书作者 %sn,p-writer);printf(图书书号%sn,p-shuhao);printf(图书分类%sn,p-fenlei);printf(出版社%sn,p-chuban);printf(出版时间%dn,p-chubantime);printf(图书价格%.2fn,p-price);system(PAUSE);8. 图书排序函数的原型: void paixu()函数的功能:按出版时间的不同将记录的图书排序程序:void paixu() /

21、 按出版时间排序struct fi_info *a1000,*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;inext;for(k=0;kn-1;k+)index=k;for(i=k+1;ichubantimeai-chubantime) index=i;temp=aindex;aindex=ak;ak=temp;for(i=0;iname);printf(图书作者%sn,ai-writer);printf(图书书号%sn,ai-shuhao);printf(图书分类%sn,ai-fe

22、nlei);printf( 出版社 %sn,ai-chuban);printf(出版时间%dn,ai-chubantime);printf(图书价格%.2fn,ai-price);system(PAUSE);4调试分析此次编写的图书管理系统,相对于以前学到的程序,它要大得多,也要复杂的多。涉及到 多个模块的调用,每个模块都给我带来一些困惑。其中感觉图书查找和排序这两个最为麻烦。 查找模块涉及到指针和链表问题后来在同学的帮助下得以解决,我就模仿按书名查找的方法 另外设计出了两种查找方法。排序中的 for循环刚开始不是太熟练,出了很多错误。程序设 计好后,数据的输出格式不太规范,而且各模块也出现了

23、一些小问题,经过修改最后运行的 结果基本上达到了预期的目的。由于准备的有点仓促,没能把一些细节优化好,而且没能加 入一些其他功能,比如图书借阅模块,那样程序将会比较完美。5测试结果测试的部分数据书名作者书号分类出版社出版时间价格大学物理罗益民al教科类北京邮电大学出版社2011030358时间简史霍金b2科普类湖南科学技术出版社2010040445仰望饶雪漫c3乂了尖海南出版社2010090915登录号任意输入卜面为测试的部分结果截图iH:Debugl|书管逵系统exl图书管理系统0情输入登录号:123H:Debug虚书告迫系统exey;创建图书信息 3;删除图书信息) 6;按出版时间排序口理

24、民 邮11 到物H类京20 挚罗 伊大:al教:吧 曲.名二社时:4TB名者号兴书出价 射入入入入人人入 戈契契契契契契刖 、l主QE主月主A主BE主月主A主RH:DebugD 书管统.uxe6;按出版时间排序1.按3.TB按请谢鬼,杳询鬻名查名者合:B息害简萨一 米|040 , 昔南10.0续swb2科湖 查找2045继.一 键要查称者号类间匿忌 驾按6;按出版时间排序。果 2 施1.按3.Tr按请按 版主Ing主月 翳查诩 鹫名查 器名者合名息理 作书物民邮0300的mb益科京11.0续 裔大罗al教北2058继A 查找 键、 要查称者号类间螫忌 驾按6;按出版时间排序0;退出H:Debu

25、gU 书告统请按:蟹续.一请选择霁进行的操作 否 1 00 ?5.改4修LLe-6,按出版时间排序,0 但 操史 的简 /金类出普民进瞿h2科人m 二 TJJ.J 建 电 。物民类邮 后学益科京 必+Mal教北腼续也: 8幺Y5键链名者号类间奢者号类间整忌 书3时书八在时整 _ .i - - U - - -I- J- J I J - - - 1- - - - J- n J图请UH:DebugD书肯总统exej射更用图书j彳=息、宜7里系g充MXXXXXXXMXXXXXMXXXXXXXXXXMXi*欢迎下次使用,再见?MMKXXMXMXXXMXXXMXXXXMMMXXXXMXXMPress an

26、y key to continue6 课程心得总结通过这次亲自动手编写C语言图书管理系统,从中收获了很多。很多学过的知识得以巩固,对链表、数组指针、结构体等知识有了更深一步的了解。编写的过程中我也借鉴别人设计的一些程序,从中发现了自己的一些不足,在构建框架和编写源程序上面的一些问题。在源程序编写好后,对源程序的检测花费了我很多时间,这也算是锻炼了我的耐心。在检测中发现的一些细节上的毛病和粗心这个坏习惯都需要我加以改正。同时同学对我的帮助也比较大,有些问题很感谢他们对我的帮助。亲自编写了这个大型程序后,我领悟了“实践出真知”这个道理,体会到了 C语言的巨大用处,对C语言有了更浓厚的兴趣。在今后我也会更加深入 的学习C语言,打好稳固的基础,努力掌握这门技术,能够编写出更多更好的程序。

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