图书馆管理系统设计报告.doc
《图书馆管理系统设计报告.doc》由会员分享,可在线阅读,更多相关《图书馆管理系统设计报告.doc(55页珍藏版)》请在沃文网上搜索。
1、 目 录1、数据结构课程设计任务书1.1、题目1.2、要求2、总体设计2.1、功能模块设计2.2、所有功能模块的流程图3、详细设计3.1、程序中所采用的数据结构及存储结构的说明3.2、算法的设计思想3.3、对图书借阅时的选择与操作4、调试与测试:4.1、调试方法与步骤:4.2、测试结果的分析与讨论:4.3、测试过程中遇到的主要问题及采取的解决措施:5、时间复杂度的分析:6、源程序清单和执行结果7、C程序设计总结8、致谢9、参考文献1、数据结构课程设计任务书1.1、题目图书馆管理系统1.2、要求【设计要求】对图书进行管理,系统具有如下功能1图书入库:新购一种书,确定书号后,登记到图书目录表中,如
2、果表中已有,则只将库存量增加;图书数据包括图书书号,书名,作者,数量,单价等;2排序:以书号按升序进行排序(可以任选一种排序方法);3查找:能按书名、书号进行查找(分别用顺序查找和折半查找方法);4删除:从表中删除指定的图书;5借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;6归还:注销对借阅者的登记,改变该书的现存量。2、总体设计2.1、功能模块设计根据课程设计题目的功能要求,各个功能模块的组成框图如下:功能选择界面0.退出7.更改字体颜色6.归还图书5.借阅图书4.删除图书信息3.查找信息2.图书排序1.新书入库输入新书信息按学号升序排序按书名查找按书
3、号查找按书名查找删除按书号查找删除输入书证号进入注册借阅者信息归还全部图书选择显示字体颜色归还其中一本图书2.2、所有功能模块的流程图3、详细设计模块功能说明:如函数功能、入口及出口参数说明,函数调用关系描述等;3.1、程序中所采用的数据结构及存储结构的说明typedef structint year; /年int month; /月int day; /日DATE;struct readbookchar studentTitle30; /借出的书名DATE loanDate; /借出日期DATE revertDate; /归还日期;union readStatechar Nobook20; /
4、定义没有借书struct readbook data; /存储已借图书信息;typedef struct borrower /借阅者char studentID10; /书证号char studentName10; /姓名union readState ReadBook5; /借书状况int bookcount; /已借图书数量struct borrower *next;Borrower, *LinkBorrower;typedef struct book /图书char number20; /书号char title30; /书名char author20; /作者char translat
5、or20; /译者int count; /现存量char price10; /价格DATE date; /入库日期struct book *next;Book, * LinkBook;3.2、算法的设计思想1图书入库新购一种书,确定书号后,登记到图书目录表中,如果表中已有,则只将库存量增加;图书数据包括图书书号,书名,作者,数量,单价等;2排序以书号按升序进行排序(可以任选一种排序方法);3查找能按书名、书号进行查找(分别用顺序查找和折半查找方法);4删除从表中删除指定的图书;5借阅如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;6归还注销对借阅者的登记,改变该
6、书的现存量。3.3、对图书借阅时的选择与操作a)注册定义一个共用体,没有借书和借书共用一个内存,注册时自动在共用体中赋值没有借书b)借阅输入书证号,若正确,进行借阅,共用体对借阅的书籍进行赋值,覆盖没有借书4、调试与测试:4.1、调试方法与步骤:第一步:测试新书入库:输入书名:1. 若书名存在:2. 若书名不存在,输入相关信息第二步:测试图书排序:图书按书号升序排序第三步:测试查找信息功能:第四步:测试删除图书信息功能:第五步:测试借阅图书功能1. 注册:2. 借阅:第六步:测试归还图书功能第七步:测试更改字体颜色功能4.3、测试过程中遇到的主要问题及采取的解决措施:在测试过程中我们遇到的主要
7、问题就是发现在借阅图书功能模块出现了问题,无法准确地录入和读取图书信息。于是我们仔细的读了该功能模块的代码。但是,我们发现代码是正确的,完全找不到错误(也有可能是我们的水平有限,发现不了错误)。)。于是我们把目光投注到了定义共用体上,在仔细检查和查阅资料后我们发现,原来是因为我们为了可以在借书时可以借阅不止一体而将数组定义在了共用体内部变量的结构体上了,后来我们将数组改定义到了共用体上,一切问题就迎刃而解了。经过这件事我们发现我们的基础还不扎实,了解的知识范围还太狭隘,以后还要多加认真学习5、时间复杂度的分析:1图书入库输入图书,图书指针顺序查找,时间复杂度是O(n)2排序定义了两个图书指针变
8、量,时间复杂度是O(n*n)3查找查找图书时是顺序查找,时间复杂度是O(n)4删除删除图书时是顺序查找删除,时间复杂度是O(n)5借阅写入借阅者信息时定义了两个借阅者指针,时间复杂度是O(n*n)6归还:归还图书时是顺序查找归还,时间复杂度是O(n)6、源程序清单和执行结果#include #include #include #include #include /#include function.h/*定义结构体*/typedef structint year; /年int month; /月int day; /日DATE;struct readbookchar studentTitle30
9、; /借出的书名DATE loanDate; /借出日期DATE revertDate; /归还日期;union readStatechar Nobook20; /定义没有借书struct readbook data; /存储已借图书信息;typedef struct borrower /借阅者char studentID10; /书证号char studentName10; /姓名union readState ReadBook5; /借书状况int bookcount; /已借图书数量struct borrower *next;Borrower, *LinkBorrower;typedef
10、 struct book /图书char number20; /书号char title30; /书名char author20; /作者char translator20; /译者int count; /现存量char price10; /价格DATE date; /入库日期struct book *next;Book, * LinkBook;LinkBook Head;LinkBorrower Read;/*函数声明*/int Meun();/系统功能【1】void show();void Input();LinkBook CreatBook();void WritetoFile();Li
11、nkBook ReadfromFile();/系统功能【2】void Find();LinkBook sort();void Traverse();/系统功能【3】void Sort();void SortTitle();void SortNumber();/系统功能【4】void Delete();LinkBook DeleteTitle();LinkBook DeleteNumber();/系统功能【5】void Loan();LinkBorrower login();LinkBorrower CreatBorrower();LinkBorrower readReader();void w
12、riteReader();void loan();/系统功能【6】void Rever();/系统功能【7】void Changecolor();/*主函数*/int main(void)int choice;while(1)system(cls);fflush(stdin);choice=Meun(); /调用主菜单switch(choice)case 1:Input();break;case 2:Find();break;case 3:Sort();break;case 4:Delete();break;case 5:Loan();break;case 6:Rever();break;ca
13、se 7:Changecolor();break;case 0:show();printf(欢迎再次光临,再见!n);return 0;default :show();printf(输入错误,程序终止!n);exit(0);return 0;/*主菜单*/int Meun(void)int choice;printf(=n);printf(欢迎进入图书馆管理系统n);printf(=nn);printf(【1】 新书入库n);printf(-n);printf(【2】 图书排序n);printf(-n);printf(【3】 查找信息n);printf(-n);printf(【4】 删除图书信
14、息n);printf(-n);printf(【5】 借阅图书n);printf(-n);printf(【6】 归还图书n);printf(-n);printf(【7】 更改字体颜色n);printf(-n);printf(【0】 退出图书管理系统n);printf(n);printf(请选择:);fflush(stdin);scanf(%d,&choice);return choice;void show()system(cls);printf(=n);printf(欢迎进入图书馆管理系统n);printf(=nn);/*系统功能【1】 新书入库*/函数功能:图书入库:新购一种书,确定书号后,
15、登记到图书目录表中,如果表中已有,则只将库存量增加;void Input()show();printf(系统功能【1】 新书入库n);char ch=y;char Newtitle20;Head=ReadfromFile(); /读取图书数据while(ch=y|ch=Y)fflush(stdin);LinkBook p=Head;int flay=0; /判断,书名不存在,flay=0; 书名存在,flay=1;printf(-n);printf(请输入书名:);scanf(%s,&Newtitle);while(p-next!=NULL)p=p-next;if(!strcmp(p-titl
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 设计 报告