1 / 17
文档名称:

图书管理系统设计论文_毕业论文.doc

格式:doc   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

图书管理系统设计论文_毕业论文.doc

上传人:Alphago 2016/6/20 文件大小:0 KB

下载得到文件列表

图书管理系统设计论文_毕业论文.doc

相关文档

文档介绍

文档介绍:1 图书管理系统 1. 问题描述与分析在拥有上万学生的大学里, 图书管理是管理的非常重要的一部分, 普通的记录册式的管理方式无疑在各个方面给管理员带来了诸多不便, 为了更加高效的管理图书, 我搜寻相关信息设计了这个程序。通过此管理系统可以对所记录的数据进行存储。实现数据录入、数据查询、数据删除、数据显示、数据保存、数据追加以及数据调入功能。 2. 数据结构设计和基本算法设计方法的选择(1) 所用的数据结构为完成图书馆管理系统而选择了线性表数据结构。(2 )数据结构的逻辑结构描述 L=( D,R) D:图书集合; R={<a i,a i+1>|a i,a i+1∈D,i=1 ,2,…,n-1} 其中, a i为a i+1的直接前驱, a i+1为a i的直接后继。 D中的元素为复合数据元素,包含借书、还书、图书维护以及读者维护 4个数据项。(3 )数据结构的存储结构描述图书管理系统选择了链表存储方式,类型描述如下: const LIST_INIT_SIZE=100; typedef stuct{ ElemType elem[LIST_INIT_SIZE]; int length; }SqList1; typedef struct{ ElemType *elem; int length; int listsize; 2 int incrementsize; }SqList; (4 )算法描述 void borrowbook(int bookid)// 借书操作 int retbook(int bookid)// 还书操作 void RDatabase::readerdata() //读者维护 void BDatabase::bookidata() //图书维护(5 )使用的原因以及合理性从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键宇和给定值 K 相比较。若当前扫描到的结点关键字与 K 相等,则查找成功;若扫描结束后,仍未找到关键字等于 K 的结点,则查找失败。因为结构是非空集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。线性表是一个典型的线性结构。 3. 软件结构设计图书管理系统可以实现借书、还书、图书维护以及读者维护功能。(见图3-1 系统功能结构图) 图 3-1 系统功能结构图 3 4. 算法设计(1 )借书的算法 1)算法的流程图(见图 4-1 借书算法流程图) 图 4-1 借书算法流程图 2)算法实现的源程序 void borrowbook(int bookid)// 借书操作{for (int i=0;i<Maxbor;i++) {if(borbook[i]==0) {borbook[i]=bookid; return; }}}3)算法分析时间复杂度: T(n)=O(1) 空间复杂度: S(n)=0 (2 )还书的算法 1)算法的流程图(见图 4-2 还书算法流程图) 图 4-2 还书算法流程图 2)算法实现的源程序 4 int retbook(int bookid)// 还书操作{for(int i=0;i<Maxbor;i++) {if(borbook[i]==bookid) {borbook[i]=0; return 1; }}return 0; }3)算法分析时间复杂度: T(n)=O(1) 空间复杂度: S(n)=0 (3) 图书维护的算法 1)算法的流程图(见图 4-3 图书维护算法流程图) 图 4-3 图书维护算法流程图 2)算法实现的源程序 void BDatabase::bookidata() {int choice=1; char bname[40]; int bookid; Book *b; while (choice!=0) {cout<<" 图书维护 1: 新增 2: 更改 3: 删除 4: 查找 5: 显示 5 6:全删 0:退出=>"; cin>>choice; switch (choice) {case 1: cout<<" 输入图书编号:"; cin>>bookid; cout<<" 输入图书书名:"; cin>>bname; addbook(bookid,bname); break; case 2: cout<<" 输入图书编号:"; cin>>bookid; b=query(bookid); if(b==NULL) {cout<<" 该图书不存在"<<endl; break; }cout<<" 输入新图书名:"; cin>>bname; b->setname(bname); break; case 3: cout<<" 输入图书编号:"; cin>>bookid; b=query(bookid); if(b==NULL) {cou