数据结构课程设计报告图书管理系统.pdf
《数据结构课程设计报告图书管理系统.pdf》由会员分享,可在线阅读,更多相关《数据结构课程设计报告图书管理系统.pdf(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计报告课设课题:课程设计图书管理系统学院:电 子 信 息 学 院专业:网 络 工 程姓名:班级学号:BX1213指导教师:张艳报告日期:2013.12.12目目录录一、需求分析.11.1 系统开发背景和意义.11.2 设计题目与要求.1二、总体结构设计.2三、各子模块设计.43.1 初始化图书信息.43.2 系统主界面.43.3 采编入库.53.4 输入读者信息.53.5 借阅图书.63.6 归还图书.73.7 查询图书信息.93.8 查询读者信息.9四、程序设计调试情况分析.10五、测试结果.115.1 欢迎界面.115.2 初始化图书信息.115.3 系统主界面.115.4 采编入库
2、.115.5 输入读者信息.125.6 借阅图书.125.7 归还图书.125.8 查询图书信息.125.9 查询读者信息.135.10 保存文件,退出.13六、总结.13七、参考文献.15八、附录(源代码).16一、需求分析一、需求分析1.11.1 系统开发背景和意义系统开发背景和意义图书管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率。因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书管理系统,将是非常必要的,也是十分及时的。图书管理系统需要满足来自图书馆工作人员、
3、普通用户和借阅者三方面人员的需求。图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时还可通过图书编号等查询相应的借阅情况;普通用户的需求是查询图书馆所存的图书的相关情况;图书借阅者的需求是查看自己的相关信息及查询自己的借阅情况。1.21.2 设计题目与要求设计题目与要求【问题描述】设计一个计算机管理系统完成图书管理基本业务。【基本要求】1)每种书的登记内容包括书号、书名、着作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书的现存量大于 0,则借
4、出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量。二、总体结构设计二、总体结构设计有八个模块1)图书初始化输入图书的一些信息,编号、作者、书名、数量,使有一定的库存。2)新书入库新书采编入库,输入编号后如果有次数只需输入数量,没有则继续输入书名、作者、数量。3)添加读者信息读者信息初始化,输入读书证号和姓名,只有输入书证号和姓名才能进行借书还书4)借书模块读者输入读书证号,证号存在输入要借的图书编号,不能借同一本书,如果借书数量以达到最大也不能借书。5)还书模块归还已借的图书,要先输入读者书证号,书证号存在继续输入要还的图书编号,图书编号存在并且借
5、来此书,归还成功。6)查询图书信息7)查询读者信息可查询读者姓名书证号,借了几本书,都是什么书和还书日期,还可以借几本书。8)退出退出读书管理系统并保存读者和图书信息。图书管读者管借阅操查询操退出初始化图书信采编入库输入读者信息还读借书者书系信系图图 2-12-1 主控模块主控模块统息统查询图书信息查询三、各子模块设计三、各子模块设计3.13.1 初始化图书信息初始化图书信息进入系统后首先进行图书初始化,输入图书的信息。输入图书编号、名图图 3-13-1 初始化图书信息流程图初始化图书信息流程图3.23.2 系统主界面系统主界面初始化之后,进入系统,显示功能列表,可选择任意系统,但在借书之前先
6、要输入读者信息。输入功能输入的数字小否是错误!请重新执行所选功能图图 3-23-2 系统主界面流程图系统主界面流程图3.33.3 采编入库采编入库选择采编入库的功能后,先输入图书编号判断是否存在,若存在,则在原有记录上加上添加的图书数量;若不存在,则加入新的记录。是在原有的 纪录上向系统中加入新纪图图 3-33-3 采编入库流程图采编入库流程图否3.43.4 输入读者信息输入读者信息选择读者登记后,输入读者编号跟姓名。输入读者信息:图图 3-43-4 输入读者信息流程图输入读者信息流程图3.53.5 借阅图书借阅图书选择借阅图书功能后,输入读者证号,判断该读者是否存在,若存在则输入借阅图书的编
7、号,判断该图书编号是否存在,若存在,则判断读者借阅的图书数量是否满了和是否借阅了相同的书籍,判断成功后,则输入归还该图书的日期,该图书现有量减一,借阅成功;若读者不存在则返回。判断读者是否输出次读 者编号是输入要 借 的 图判断图书编否输出此图 书编号是看是否还有此图否是输出此 书已 借看读者的借书是否输出借书数目已满看 读 者 是 否是否输出同一读者不能输入归还 图书的图书现有数量减 1输出读者 结束成图图 3-53-5 借阅图书流程图借阅图书流程图3.63.6 归还图书归还图书实现归还图书功能时,首先输入读者编号,并判断是否存在,若不存在就按任意键返回,;若存在输入归还的图书编号并判断是否
8、存在,若归还图书编号不存在,则返回。存在后,将读者借阅该图书的信息清空,该图书的现有量加一。最后按任意键返回判断读者编号否是判断图书编号是此图书编 号和还现有图书数量加 1输 出 读 者 还 书 完图图 3-63-6 归还图书流程图归还图书流程图输出读者 编号不否输出此图 书编号3.73.7 查询图书信息查询图书信息查询图书信息时,输入图书的编号,判断是否存在。不存在则返回;存在则输出图书的编号,书名,作者,现有量,跟库存量。判断图书信是输出此图 书编号否输出图书信息:编号、图图 3-73-7 查询图书信息流程图查询图书信息流程图3.83.8 查询读者信息查询读者信息查询读者信息时,首先判断读
9、者的编号是否存在,不存在就按任意键返回。若存在,则输出读者的证号,姓名,和借阅的图书编码及其还书日期。判断读者信息是否输出此读 者编号输出读者书证号、姓图图 3-83-8 查询读者信息流程图查询读者信息流程图四、程序设计调试情况分析四、程序设计调试情况分析在整个课程设计中,我们遇到了许多的问题。有些问题吧,我们在苦思冥想的时候,突然我们的编译器显示出了正确的结果,当我们欣喜若狂的在运行下一次的时候又会出现相同的问题,在借阅的过程中,在一个读者借阅了两本书以上的时候,上一本书的归还日期上还有下一本书上的编号,最后一本书输出的才是正确的结果。下图是借阅了两本书的截图:图图 4-14-1看到这里我们
10、也知道是第一本书的还书日期的地址空间跟第二本书的编号连接在了一起导致输出的时候一直到第二本书编号的的字符串后面的/0 结束。最后发现是我们在定义还书日期这个字符串的时候开辟的空间太小。我们把char limit_date8;改为 char limit_date10就好了。图图 4-24-2五、测试结果五、测试结果5.15.1 欢迎界面欢迎界面程序运行显示“欢迎使用图书管理系统”,按任意键进入到主菜单如图5-1所示。图图 5-15-1 欢迎界面欢迎界面5.25.2 初始化图书信息初始化图书信息在没有文件的时候会进入到初始化界面,需要输入一本图书的相关信息,如图 5-2 所示。图图 5-25-2
11、初始化图书信息初始化图书信息5.35.3 系统主界面系统主界面接着进入的系统的主菜单,如图 5-3 所示。图图 5-35-3 系统主界面系统主界面5.45.4 采编入库采编入库实现采编入库功能按照系统提示输入信息。如图 5-4。如果该图书已存在,则直接输入图书的数量如图 5-5 所示。图图 5-45-4 采编入库(书不存在)采编入库(书不存在)图图 5-55-5 采编入库(书已存在)采编入库(书已存在)5.55.5 输入读者信息输入读者信息按照要求输入读者信息,如图 5-6 所示。图图 5-65-6 输入读者信息输入读者信息5.65.6 借阅图书借阅图书按照要求先输入读者证号,在输入借阅的图书
12、编号如图 5-7 所示。如果读者已经借阅了一本书之后不能借阅同一本图书如图 5-8 所示。图图 5-75-7 借阅图书借阅图书图图 5-85-8 同一个读者不能借阅同一本图书同一个读者不能借阅同一本图书5.75.7 归还图书归还图书归还图书的要求按着图 5-9 输入即可。图图 5-95-9 归还图书归还图书5.85.8 查询图书信息查询图书信息图 5-10 是没有借阅之前的图书的相关信息,图 5-11 是读者借阅了图书之后的信息,只改变了现有量。图图 5-105-10 借阅登记后借阅登记后图图 5-115-11 归还图书后归还图书后5.95.9 查询读者信息查询读者信息查询读者的信息时,会输出
13、相关借阅的图书编号以及还书日期如图 5-12,5-13 所示。图图 5-125-12 查询读者信息(一)查询读者信息(一)图图 5-135-13 查询读者信息(二)查询读者信息(二)5.105.10 保存文件,退出保存文件,退出在系统的主菜单后,按0 功能保存并退出系统。图图 5-145-14 文件保存文件保存六、总结六、总结个人觉得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.在生活中可以说得是无处不在。因此作为新世纪的大学来说能够分析,并解决程序中出现的问题是十分重要的。课程设计就能体现到这一方面。能够
14、将你所学到的理论跟实际结合在一起。通过本次课程设计感慨良多。从课堂上听到的到课后应用到的根本就不是一回事。课堂上,老师在上面说,自己在下面听,到也能听懂。可是到了应用上,自己倒也是知道要用到哪方面的内容,但是偏偏不知道从何处下手;好不容易写好的一小段代码,还要跟其他功能不相冲突,这又需要我们自己去想办法去兼容好他们。通过本次课程设计试我懂得理论要跟实践相结合。正所谓“台上十分钟,台下十年功”,别人在台上表演了十分钟,你觉得很容易,可那里知道别人在下面做的努力呢。同样的,我们在课堂上听老师讲确实觉得是那么回事,但是真正做下去,也只有自己知道是何种滋味。理论始终是理论,不能都熟练应用自己所学到的知
15、识,到头来也是一场空。在这次的课程设计过程中,我们也遇到了不能解决的难题,比如说在读者查询的时候,第二个读者始终会覆盖第一个读者的数据。我们始终没有搞明白问题的所在,只知道不是在输出读者信息的问题,应该是添加读者过程中指针始终指在第一个地址,没有移动。我们按照查询图书的函数重新编写了一次还是同样问题。一直到答辩前一天晚上还没有解决,之后只能放弃。还有在最开始的时候我们的程序功能并没有清屏功能,整个界面看起来并不是那么整洁。于是我用用getch();system(“cls”);来进行清屏,最后会出先一个小问题,在我们查询了一些资料后,又再次基础上加上了 goto end;这个函数来加以完善。这次
16、课程设计,我们也遇到了很多问题,比如说,我们再输入第二个读者的信息后会覆盖第一个读者的信息,想了半天没有弄懂是哪里错了,最后才看出来我们定义的结构体指针没有移动,导致我们输入的读者信息一直存放在同一个地址中。也有些不懂需要在网上查询的代码,组员之间相互配合,不懂就询问其他同学或者查询资料亦或者自己去弄懂问题的根结,团结协作的精神在这次课程设计中表现的淋漓尽致。我们不仅将以前的知识复习一遍;同时也弄懂了一些平常自己似懂非懂的;最后同学之间的友谊也慢慢变的深厚起来小组分工:孙泽铭:采编入库、查询图书信息、查询读者信息黄响:添加读者、借阅图书、归还图书七、参考文献七、参考文献1严蔚敏 吴伟民编着数据
17、结构清华大学出版社,20002黄国瑜 叶乃菁编着20013胡学钢编着19994王士元编着20005李强根主编版社,20016杨正宏编着20027胡学钢编着19998殷人昆 徐孝凯编着2002数据结构数据结构算法设计指导数据结构与数据库系统数据结构(C+描述)数据结构数据结构算法设计指导数据结构习题解析清华大学出版社,清华大学出版社,南开大学出版社,中国水利水电出中国铁道出版社,清华大学出版社,清华大学出版社,9李春葆编着数据结构习题与解析清华大学出版社,200110 咨讯教育小组编着数据结构数据结构版中国铁道出版社,2002#include#include#include#include#de
18、fine Max 4typedef struct bookchar book_num10;char book_name20;char book_writer10;int book_xy;int book_kc;八、附录八、附录(源代码源代码)int n;struct book*next;BK;typedef struct borrowchar borrow_book_num10;char limit_date10;BO;typedef struct readerchar reader_num10;char reader_name10;int right;int m;BO borrowMax;s
19、truct reader*next;RD;BK*h_book;RD*h_reader;int n=0;int m=0;void Login();int Menu();void Init();void Menu_select();void Insert_New_Book();void add_reader();void Print_reader();void Print_book();void Borrow_Book();void Return_Book();void Save();void Save_Book();void Save_Reader();void Load();void Load
20、_Reader();void Load_Book();void Login()system(cls);printf(nnntt*n);printf(nnntt*欢迎使用图书管理系统 *n);printf(nnntt*n);printf(nnntt 按任意键进入系统.);getch();system(cls);int Menu()/*主菜单*/int dm;printf(ntt 图书管理系统主菜单n);printf(=n);printf(*t1-采编入库 n);printf(*t2-登记读者 n);printf(*t3-借阅登记 n);printf(*t4-还书管理 n);printf(*t5-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 图书 管理 系统
限制150内