个人书籍管理系统的设计与实现报告正文

上传人:飞*** 文档编号:37917501 上传时间:2018-04-24 格式:PDF 页数:17 大小:750.43KB
返回 下载 相关 举报
个人书籍管理系统的设计与实现报告正文_第1页
第1页 / 共17页
个人书籍管理系统的设计与实现报告正文_第2页
第2页 / 共17页
个人书籍管理系统的设计与实现报告正文_第3页
第3页 / 共17页
个人书籍管理系统的设计与实现报告正文_第4页
第4页 / 共17页
个人书籍管理系统的设计与实现报告正文_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《个人书籍管理系统的设计与实现报告正文》由会员分享,可在线阅读,更多相关《个人书籍管理系统的设计与实现报告正文(17页珍藏版)》请在金锄头文库上搜索。

1、个人书籍管理系统的设计与实现一、简介1设计目的:进一步理解查找和排序在实际系统要使用的数据结构以及施加在这些数据结构上的算法,锻炼学生运用所学数据结构的知识来解决实际问题的综合能力。2问题的描述:学生在自己的学习和生活中会拥有很多的书籍,对所购买的书籍进行分类和统计是一种良好的习惯。可以便于对这些知识资料的整理和查找使用。如果用文件来存储相关书籍的各种信息,包括分类、购买日期、价格、简介等等,辅之以程序来使用这些文件对里面的书籍信息进行统计和查询的工作将使得这种书籍管理工作变的轻松而有趣。简单个人书籍管理系统的开发就是为了解决这个实际问题的。这个系统具备如下的功能:存储书籍各种相关信息。提供查

2、找功能,按照多种关键码查找需要的书籍,查找成功可以修改记录的相关项。提供排序功能,按照多种关键码对所有的书籍进行排序,例如按照购买日期进行排序。其他辅助的维护工作。二、数据结构的设计:由于书籍的册数较多,而且要在程序不再运行的时候仍然要保持里面的数据,所以采用文件的形式放到存储器中。需要操作时,从文件中调入内存来进行查找和排序的工作,为了接收文件中的内容,要有一个数据结构与之对应,可以采用这样的结构体数组来接收数据。typedef struct int year; int month; int day; /具体的购买日期DATE; typedef struct DATE date; /购买日期

3、char name20; /书的名字char author8; /书的作者int type; /存放书的类别 (0 计算机 1 物理 2 英语 3 数学) int num; /存放书的位置编号int price; /书的价格BOOK; 三、功能(函数)设计:1 “菜单”模块 menu( ):此模块循环显示“请按键选择操作”命令菜单,接收键盘输入的命令,检查命令是否合法,若合法则调用相应下层函数,若不合法,则返回菜单,重新输入。2.“输入”模块 shuru( ):此模块接收从键盘输入的书籍信息,保存到建立的信息表中。3 “查找”模块 chazhao( ) :此模块提供查找功能,用户可根据编号或者

4、类别两种途径对信息表 l 中的书籍进行查找,根据用户输入的信息,从而查找出整本书的信息,并通过调用打印函数将查找到的书籍信息显示出来。4.“排序”模块 sort( ):此模块有两种排序方法,按书名和类别进行排序,并通过打印函数将排过序的书籍信息显示出来。5. “插入”模块 insert( ):此模块接受从键盘输入的一条新的记录,按“购买日期”顺序插入到信息表l 中。6. “删除”模块 delete( ):此模块接收从键盘输入的一条记录的“书名”,在信息表 l 中查找,如找到该记录则删除。四、界面设计:对界面进行一定的调整,使其看起来整齐、规范和美观,容易看出操作所需要的步骤和所需要输入的指令代

5、码。五、程序设计:各函数功能说明及其流程图:1.主函数 main( ) a.函数功能:建立线性表,对相关的数据进行初始化,并对主界面进行设计,当选择执行相关的功能,调用相关的函数来实现所需要的功能。b.函数流程图f=1 按书名排 序f=6 按书名删 除开始建立线性表 l 输入书籍信息1 f=4 按类别查 找f=2 按类别排 序显示排序 结果f=5 按购买日 期插入f=3 按编号查 找显示排序 结果显示查找 书籍信息显示查找 书籍信息显示插入 后的信息显示删除 后的信息结束f=0,退出管理系统2.按书名排序函数sort1( ) a.函数功能:将已有的书籍按书名排序。b.函数流程图是否 是否开始i

6、=0,j=0 j=i+1 i0 temp=l.elemi; l.elemi=l.elemj; l.elemj=temp; j+1=j i+1=i jl.elemj.type temp=l.elemi; l.elemi=l.elemj; l.elemj=temp; j+1=j i+1=i jl.elemmid.num flag=1 low=mid+1 high=mid-1 print2(l,mid) panduan1(ch) !=0 chazhao1(l) panduan2(ch) !=0 chazhao1(l) 结束5.按类别查找函数 chazhao2( ) a.函数功能:系统将根据用户输入的

7、类别,找到对应的书籍,并通过调用 print2 函数显示找到的书籍信息。b.函数流程图是否是否是否是否是l.length=0 low=0,high=l.length,mid,flag=0 lowl.elemmid.type flag=1 low=mid+1 high=mid-1 print2(l,mid) panduan1(ch) !=0 chazhao2(l) panduan2(ch) !=0 chazhao2(l) 结束开始6.按购买日期插入函数insert( ) a.函数功能:用户输入要插入的书记的信息,函数将根据购买日期的先后顺序将新书插入到信息表中。b.函数流程图是否否是是否7. 按

8、书名删除函数 Delete( ) a.函数功能:用户输入要删除的书籍信息,函数在信息表中找开始输入要插入书籍的信息l.length=0 i=0 将新书信息直接 存入信息表中book.date.yearl.elemi.date.year 将新书插入到第 i-1 个位 置,此后的书依次向后 移动一个位置将新书放在最 后位置上是否继续插入结束到该书籍,并删除。b.函数流程图否是是否编码时遇到的问题及解决办法问题 1: 如何比较两个字符串是否相同?解决办法:不能够使用类似于“if(booki.name=name)”的结构, 比较两个字符串是否相等有专门的函数 “strcmp” 。如: strcmp(b

9、ooki.name,name)=0,则说明两个字符串相同。问题 2:不能将书籍插入的书名信息显示出来解决办法:不能用l.eleml.length.author=book.author 直接将书名赋值,因为赋值只能是整型数据,而字符串要用字符开始i=0 il.length 该书籍不存在找到要删除的书籍, 并删除,此后的书 籍依次向前移动一个位置(strcmp(book.name,l.elemi.name)=0 是否继续删除结束串处 理函 数strcpy进行 处理 , 即 用strcpy(l.elemk.author,book.author)处理。六、运行与测试:1、测试的数据及其结果:测试的数据

10、第 1 本书籍信息:书名编号作者类别价格购买日期(年月 日)aa 14 zz 3 57 2001 01 14 第 2 本书籍信息:书名编号作者类别价格购买日期(年月 日)ff 12 vv 2 47 2008 02 16 插入的书籍信息书名编号作者类别价格购买日期(年月 日)Ss 13 xx 1 58 2004 03 12 测试结果输入书籍信息(1)按书名排序功能(2)按类别排序功能(3)按编号查找功能(4)按类别查找功能(5)按购买日期插入功能(6)按书名删除功能(7)退出管理系统功能2、运行与测试期间遇到的问题及其解决办法。问题 1:退出系统时出错解决办法:去掉 break语句。问题 2:按

11、编号查找函数中的是否继续查找功能,输入y 后,应该是继续按编号进行查找,而不是改成按类别查找。解决办法:把if(panduan2(ch) chazhao2(l)中的 chazhao2(l)改成chazhao1(l),即仍调用按编号查找函数本身。七、结论:个人书籍管理系统的实现,从程序代码上很好的结合了线性表、查找和排序等知识,使得系统功能更加接近完善。程序能将每一部分的功能显示出来,但是还有待进行改良。比如说,主界面设计要优美,给用户一种清晰的感觉;排序功能现在只有类别和书名排序两个,还应添加可以通过编号、价格和购买日期来排序的功能;查找和删除模块一样要添加类似的功能,这样才能使得管理系统更加

12、多功能化。另外,要实现查找和排序两个功能还可以运用其他的算法,例如查找可以通过哈希表来实现,排序功能可以用直接插入排序、希尔排序等算法实现。八、设计后的思考:通过本次课程设计,对查找和排序等算法有了更深的认识和初步的运用,将平时课堂上学的理论知识运用到实际操作中。这次课程设计过程让我找到了自己的许多不足之处,特别是在自己编写程序一块,不能将所学运用于所用,借鉴了别人运行成功的程序代码。因此,要想让自己的操作能力加强,还必须从基本的开始做起,能够理解一个程序代码的意思是远远不够的,自己得编写简单的程序,从简单到复杂,慢慢的提升能力。参考文献:1、严蔚敏等 . 数据结构( C语言版) . 清华大学出版社 2004 2、谭浩强 . C 语言程序设计 . 清华大学出版社 . 2002

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

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号