- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简易图书管理系统设计课程设计_精品
《数据结构》
课程设计报告
课题名称: 简易图书管理系统
专业班级:
学 号:
姓 名:____ _______
指导老师:
成 绩:__________________
2012年12月
课题名称
简易图书管理系统
二、主要内容
图书管理系统的设计主要是实现对图书的管理和相关操作。基本功能如下:
(1)图书信息录入、添加功能:包括书号(即ISBN号,不可重复)、书名(多书可重名)、作者、出版社名称、存馆数量、定价等。
(2)图书信息查询功能:①按书名进行查询。②按作者名进行查询。③按出版社进行查询。
(3)排序:①按书号的升序进行排序;②按作者的升序进行排序,作者相同时按书号的升序再进行排序
(4)图书的修改、删除功能:①按书号进行图书的修改、删除②按书名进行图书的修改、删除(同样的书名多于1本书时,再指定具体修改和删除的书号)。
(5)图书借阅、归还功能:如果一种书的现存量大于0,可以借出,借出相应数量后改存馆数量;归还时改变该书的存馆数量。
三、课题设计的基本思想,原理和算法描述
这个简易图书管理系统所采用的是线性表的顺序存储结构,把线性表中的所有元素按照逻辑顺序依次存储在一块连续的存储空间。
定义顺序表时,采用数组来储存表中的所有元素,同时还定义了一个变量来表示顺序表的实际长度。首先构造一个空的线性表L,再把长度设为0;录入图书信息时,成功添加时将线性表的长度加1,则可完成录入信息。在执行删除图书信息时,将所要删除的元素之后的元素均向前移动一个位置,再将顺序表的长度减1,即可实现删除的功能。在实现排序功能这块,采用了冒泡排序法。再如图书的借阅和归还功能的实现,将存馆数量作相应修改,借出时将馆存减1,归还时再将馆存加1。
界面设计:本系统所要实现的功能较多,为了使主界面更加简洁,采用了子菜单的界面设计,将部分功能放在子菜单来实现。这样简化了主界面,同时使系统更完善。
输入输出设计:输入除馆存数量是int外,其他均为char型。
功能模块设计:包含输入、查找、删除、修改、排序、借阅和归还功能。
流程图:
四、运行示例及结果分析
图1 图书管理系统主菜单
图1.1 图书信息输入
图2.1 图书信息查询子菜单
图2.2 按书名查找图书信息
图2.3 按作者名查询图书信息
图2.4 按出版社查询图书信息
图3.1 按书号进行图书排序
图3.2 按作者名进行图书排序
图4.1 按书号进行图书修改
图4.2 按书名进行图书修改
图5.1 按书号进行图书删除
图5.2 按书名进行图书删除
图6.1 图书借阅
图6.2 图书归还
五、调试和运行程序过程中产生的问题及采取的措施
本次课程设计遇到的问题主要有以下几点:
(1)在修改、删除函数执行还能查找到被删除(或)修改的数据;经过调试及修改发现问题在于函数中的形参不能传递,缺少取地址符。
(2)在采用冒泡排序法排序时,不能调换字符串位置。解决:用strcpy可以将字符串赋值。
(3)在主菜单与子菜单的相互调用方面存在着问题。解决:将主菜单单独放在一个函数里面,这样就可以实现简单调用了。
总结
这次课程设计做的是简易图书管理系统,这个系统跟以前作业学生管理系统非常类似,只是在那个基础上多增加了一个排序和图书的借阅归还功能。选择用顺序表来完成这个程序,是觉得顺序表在理解方面要比链表简单的多。尝试过用链表来实现排序功能,但一直碰壁。
初步分析了题目后,了解到需要实现的功能有11个,如果全部放在主菜单里面会使得界面看起来复杂,不够简洁。为此采用了子菜单的模块设计,但也为后来带来了许多麻烦。系统中的不同查询方式其实就是变量名的变化而已,再用顺序表编写时很顺利的完成了。在系统编写中遇到问题最多的就是排序,按图书的书号排序,定义书号是整型的,比较书号大小,然后交换位置。虽然思想简单,但在实际操作中并不是这样。其中涉及到字符串的交换,起初使用“=”赋值来交换,后来查书才了解字符串的赋值改用strcpy来完成。同时,有不少小问题通过自己不断调试、修改能够完全解决。
现在存在的不足之处主要是在菜单上会出现一些小Bug。比如在调用二级菜单返回主菜单后,会出现无法退出等情况,需要进一步完善。另外系统上有些不足之处就是没有判断输入图书信息是否是现存馆内已有图书,如果是的话应该将馆存数量上做相应的修改。
通过本次课程设计,我们认识到必须牢固掌握好基础知识,熟悉各种算法,并在这基础之上灵活利用。我们平时应该多练习,不能只看代码而不去做,这样是对编程提高不了多少的。通过我们对C语言以及数据结构有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观
文档评论(0)