简易图书管理系统设计课程设计

上传人:鲁** 文档编号:456283024 上传时间:2023-01-08 格式:DOC 页数:24 大小:866KB
返回 下载 相关 举报
简易图书管理系统设计课程设计_第1页
第1页 / 共24页
简易图书管理系统设计课程设计_第2页
第2页 / 共24页
简易图书管理系统设计课程设计_第3页
第3页 / 共24页
简易图书管理系统设计课程设计_第4页
第4页 / 共24页
简易图书管理系统设计课程设计_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《简易图书管理系统设计课程设计》由会员分享,可在线阅读,更多相关《简易图书管理系统设计课程设计(24页珍藏版)》请在金锄头文库上搜索。

1、数据结构课程设计报告 课题名称: 简易图书管理系统 专业班级: 学 号: 姓 名:_ _指导老师: 成 绩:_ 2012年12月一、 课题名称简易图书管理系统二、主要内容图书管理系统的设计主要是实现对图书的管理和相关操作。基本功能如下:(1)图书信息录入、添加功能:包括书号(即ISBN号,不可重复)、书名(多书可重名)、作者、出版社名称、存馆数量、定价等。(2)图书信息查询功能:按书名进行查询。按作者名进行查询。按出版社进行查询。(3)排序:按书号的升序进行排序;按作者的升序进行排序,作者相同时按书号的升序再进行排序(4)图书的修改、删除功能:按书号进行图书的修改、删除按书名进行图书的修改、删

2、除(同样的书名多于1本书时,再指定具体修改和删除的书号)。(5)图书借阅、归还功能:如果一种书的现存量大于0,可以借出,借出相应数量后改存馆数量;归还时改变该书的存馆数量。三、课题设计的基本思想,原理和算法描述这个简易图书管理系统所采用的是线性表的顺序存储结构,把线性表中的所有元素按照逻辑顺序依次存储在一块连续的存储空间。定义顺序表时,采用数组来储存表中的所有元素,同时还定义了一个变量来表示顺序表的实际长度。首先构造一个空的线性表L,再把长度设为0;录入图书信息时,成功添加时将线性表的长度加1,则可完成录入信息。在执行删除图书信息时,将所要删除的元素之后的元素均向前移动一个位置,再将顺序表的长

3、度减1,即可实现删除的功能。在实现排序功能这块,采用了冒泡排序法。再如图书的借阅和归还功能的实现,将存馆数量作相应修改,借出时将馆存减1,归还时再将馆存加1。界面设计:本系统所要实现的功能较多,为了使主界面更加简洁,采用了子菜单的界面设计,将部分功能放在子菜单来实现。这样简化了主界面,同时使系统更完善。输入输出设计:输入除馆存数量是int外,其他均为char型。功能模块设计:包含输入、查找、删除、修改、排序、借阅和归还功能。流程图:按书名查询按作者查询按出版社查询按书号删除按书号修改按书名修改按书名删除图书借阅图书归还主菜单图书信系录入图书信系查询图书信系修改图书信系删除图书信系排序图书信系管

4、理按书名排序按书号排序四、运行示例及结果分析图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)在修改、删除函数执行还能查找到被删除(或)修改的数据;经过调试及修改发现问题在于函数中的形参不能

5、传递,缺少取地址符。(2)在采用冒泡排序法排序时,不能调换字符串位置。解决:用strcpy可以将字符串赋值。(3)在主菜单与子菜单的相互调用方面存在着问题。解决:将主菜单单独放在一个函数里面,这样就可以实现简单调用了。六、 总结这次课程设计做的是简易图书管理系统,这个系统跟以前作业学生管理系统非常类似,只是在那个基础上多增加了一个排序和图书的借阅归还功能。选择用顺序表来完成这个程序,是觉得顺序表在理解方面要比链表简单的多。尝试过用链表来实现排序功能,但一直碰壁。初步分析了题目后,了解到需要实现的功能有11个,如果全部放在主菜单里面会使得界面看起来复杂,不够简洁。为此采用了子菜单的模块设计,但也

6、为后来带来了许多麻烦。系统中的不同查询方式其实就是变量名的变化而已,再用顺序表编写时很顺利的完成了。在系统编写中遇到问题最多的就是排序,按图书的书号排序,定义书号是整型的,比较书号大小,然后交换位置。虽然思想简单,但在实际操作中并不是这样。其中涉及到字符串的交换,起初使用“=”赋值来交换,后来查书才了解字符串的赋值改用strcpy来完成。同时,有不少小问题通过自己不断调试、修改能够完全解决。现在存在的不足之处主要是在菜单上会出现一些小Bug。比如在调用二级菜单返回主菜单后,会出现无法退出等情况,需要进一步完善。另外系统上有些不足之处就是没有判断输入图书信息是否是现存馆内已有图书,如果是的话应该

7、将馆存数量上做相应的修改。通过本次课程设计,我们认识到必须牢固掌握好基础知识,熟悉各种算法,并在这基础之上灵活利用。我们平时应该多练习,不能只看代码而不去做,这样是对编程提高不了多少的。通过我们对C语言以及数据结构有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观念更清楚了。在程序的运行与调试过程中出现了很多错误,通过反复地复习课本上的相关知识,不停地修改与调试,我们终于完成了这段程序。在调试过程中,认识到了数据结构的灵活性与严谨性,同一个功能可以由不同的语句来实现,但编写程序时要特别注意细节方面的问题,因为一个小小的疏忽就能导致整个程序不能运行。我也认识到了自己的薄弱之

8、处,在以后的学习中要集中精力、端正态度,争取把知识学得更扎实、更全面。七、参考文献1 李建学等著.数据结构课程设计案例精编.清华大学出版社,20072 唐宁九等主编.数据结构与算法(C+版)实验和课程设计教程. 清华大学出版社,2008)3 谭浩强著.C程序设计.清华大学出版社,2010八、 源代码#include #include #include #include#define MaxSize 100typedef struct char isbn30; /书号char name30; /书名char writer30; /作者char producter30; /出版社int num;

9、/馆存数量char price20; /价格ElemType;typedef struct ElemType dataMaxSize,data1MaxSize; int length; SqList;void InitList(SqList *&L) /初始化线性表L=(SqList *)malloc(sizeof(SqList);L-length=0;int ListEmpty(SqList *L) /判断线性表是否为空return(L-length=0);void AddBook(SqList *&L) /添加图书信息int bz=0;printf(请输入图书信息!n);printf(书号

10、t书名t作者t出版社t馆存数量(整型)t价格n);scanf(%s %s %s %s %d %s,L-dataL-length.isbn,L-dataL-length.name,L-dataL-length.writer,L-dataL-length.producter,&L-dataL-length.num,L-dataL-length.price);printf(n); for(int i=0;ilength;i+)if(strcmp(L-datai.isbn,L-dataL-length.isbn)=0) L-datai.num+; bz=1;break;if(bz=0)L-length

11、+;printf(添加图书成功!n);void Search_i(SqList *&L) /按书号查询printf(请输入你想要查找图书的书号:);char isbn30;scanf(%s,&isbn);int i=0;while(ilength&strcmp(L-datai.isbn,isbn)!=0)i+;if(i=L-length)printf(图书馆没有此图书!n);elseprintf(书号t书名t作者t出版社t馆存数量t价格n); printf(%st%st%st%st%d册t%s元,L-datai.isbn,L-datai.name,L-datai.writer,L-datai.

12、producter,L-datai.num,L-datai.price); printf(n); void Search_n(SqList *&L) /按书名查询printf(请输入你想查找图书的书名:);char name30;scanf(%s,&name);int i=0,b=0;for(i;ilength;i+)if(strcmp(L-datai.name,name)=0)b+;if(b=0)printf(图书馆没有此图书!n); else printf(书号t书名t作者t出版社t馆存数量t价格n); for(i=0;ilength;i+) if(strcmp(L-datai.name,name)=0) printf(%st%st%st%st%d册t%s元,L-datai.isbn,L-datai.name,L-datai.writer,L-datai.producter,L-datai.num,L-datai.price); printf(n);

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

当前位置:首页 > 大杂烩/其它

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