数据结构课程设计图书管理系统_计算机-数据结构与算法.pdf
《数据结构课程设计图书管理系统_计算机-数据结构与算法.pdf》由会员分享,可在线阅读,更多相关《数据结构课程设计图书管理系统_计算机-数据结构与算法.pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.I .r .数据结构课程设计图书管理系统 一 需求分析 该程序是模拟图书馆管理系统,实现图书采编入库、借书、还书、查询等基本业务。此程序规定:(1)管理员能够向系统中输入每种书的基本信息,包括书号、书名、作者、现存量和库存量、借阅记录,并保存记录;(2)用户(读者)能够按书号、书名、作者查询图书信息;(3)管理员能够实现图书采编入库(新购入一本书,经分类和确定书号之后登记到图书账目中去。如果这种书在帐中已有,则只将总库存量增加)、借阅(如果书的现存量大于 0,则借出一本,登记借阅者的图书证号和归还期限)、归还(删除对借阅者的登记,改变该书的现存量)、销毁(将图书从账目中删除)等操作。二 概要
2、设计 系统用到的抽象数据类型定义:1、ADT LinearList 数据元素:D=ai|aiD0,i=1,2,n,n0,D0为某一数据对象 关系:S=|ai,ai+1D0,i=1,2,n-1 基本操作:(1)InitList(L)(2)DestroyList(L)(3)ClearList(L)(4)EmptyList(L)(5)ListLength(L)(6)Locate(L,e)(7)GetData(L,i)(8)InsList(L,i,e)(9)DelList(L,i,&e)ADT LinearList 2、ADT String 数据对象:D=ai|aiCharacterSet,i=1,2
3、,n;n0 数据关系:R=|ai-1,aiD,i=2,n;n0 基本操作:(1)StrAsign(S,chars)(2)StrInsert(S,pos,T)(3)StrDelete(S,pos,len).I .r .(4)StrCopy(S,T)(5)StrEmpty(S)(6)StrCompare(S,T)(7)StrLength(S)(8)StrClear(S)(9)StrCat(S,T)(10)SubString(Sub,S,pos,len)(11)StrIndex(S,pos,T)(12)StrReplace(S,T,V)(13)StrDestroy(S)ADT String 系统中的
4、子程序和功能说明:InitBo(Book&boo);初始化图书信息 InitRe(lend&Lin);初始化借阅者信息 BinarySearch(Book boo,char SearchNum);二分法查找比较书号 Buy(Book&boo,char BuyNum);新书采编入库系统 Delete(Book&boo,char DeleteNum);清除图书信息系统 Borrow(Book&boo,lend&Lin,char BorrowNum,char CaNum);借阅图书处理系统 Return(Book&boo,lend&Lin,char ReturnNum,char BorrowerNu
5、m);归还图书系统 SearchByNum(Book&boo,char SeaNum);按书号查找系统 SearchByName(Book&boo);按书名查找系统 SearchByAuth(Book&boo);按作者查询系统 Menu();主菜单显示系统 Search();查询系统子菜单 main();主函数 系统程序功能结构图 图书馆管理系统 图书信息录入 查询图书信息 处理图书信息 基本信息 借阅记录 按书号查询 按书名查询 按作者查询 图书采编入库 图书借阅情况 图书归还情况 图书销毁情况 业务此程序规定管理员能够向系统中输入每种书的基本信息包括书号书名作者现存量和库存量借阅记录并保存
6、记录用户读者能够按书号书名作者查询图书信息管理员能够实现图书采编入库新购入一本书经分类和确定书号之后登记到证号和归还期限归还删除对借阅者的登记改变该书的现存量销毁将图书从账目中删除等操作二概要设计系统用到的抽象数据类型定为某一数据对象数据元素关系基本操作数据对象数据关系基本操作系统中的子程序和功能说明初始化号查找系统按书名查找系统按作者查询系统主菜单显示系统查询系统子菜单主函数归还图书系统程序功能结构图图书馆管理系统图书信息录入查询图书信息处理图书信息基本信息借阅记录按书号查询按书名查询按作者查询图书采编.I .r .三 详细设计 功能实现过程 bool BinarySearch(Book b
7、oo,char SearchNum)/二分法查找比较书号 while(lowmid&total;i-)/*将新采购的书插在适合位置,保持有序*/空出插入位置;输入新购书籍的相关信息:书号、书名、作者、;booi.next=NULL;total+;/*总量加 1*/void Delete(Book&boo,char DeleteNum)/*清除图书信息*/if(书库中没有此书)输出“无此书”;if(书库中有此书)strcpy(连续两本书的相关信息);现存量减 1;库存量减 1;else 输出“此书已有借阅者,无法删除!”;业务此程序规定管理员能够向系统中输入每种书的基本信息包括书号书名作者现存量
8、和库存量借阅记录并保存记录用户读者能够按书号书名作者查询图书信息管理员能够实现图书采编入库新购入一本书经分类和确定书号之后登记到证号和归还期限归还删除对借阅者的登记改变该书的现存量销毁将图书从账目中删除等操作二概要设计系统用到的抽象数据类型定为某一数据对象数据元素关系基本操作数据对象数据关系基本操作系统中的子程序和功能说明初始化号查找系统按书名查找系统按作者查询系统主菜单显示系统查询系统子菜单主函数归还图书系统程序功能结构图图书馆管理系统图书信息录入查询图书信息处理图书信息基本信息借阅记录按书号查询按书名查询按作者查询图书采编.I .r .void Borrow(Book&boo,lend&L
9、in,char BorrowNum,char CaNum)/*借阅图书信息*/if(没有找到此书)输出“书库中无此书!”;if(书库中有此书)借出一本书后,该书的现存量减 1;并在借阅记录链表中插入该条记录;再对应读者信息记录链表,如果已有该读者证号信息,直接在该链表中插入此次借阅记录;如果无该读者证号信息,申请新单链表存放借阅记录。else 输出“该书现存量为 0”;void Return(Book&boo,lend&Lin,char ReturnNum,char BorrowerNum)/*归还图书信息*/if(书库中无此书)输出“无此书记录”;if(书库中有此书)查找图书文件,修改图书的
10、现存量;查找记录借阅信息的单链表,填入还书日期,删除借阅信息;查找记录读者信息的单链表,删除证号信息。void SearchByNum(Book&boo,char SeaNum)/*按书号查找*/if(书库中无此书信息)/*用二分法查找*/输出“无此书”;else/*书库中有此书信息*/输出与此书有关的相关信息;void SearchByName(Book&boo)/*按书名查找*/输入想要查找书的书名;用顺序查找法查找;if(查找到需要查找的书)输出与此书相关的信息;建议画出主要模块流程图。四 设计与调试分析 业务此程序规定管理员能够向系统中输入每种书的基本信息包括书号书名作者现存量和库存量
11、借阅记录并保存记录用户读者能够按书号书名作者查询图书信息管理员能够实现图书采编入库新购入一本书经分类和确定书号之后登记到证号和归还期限归还删除对借阅者的登记改变该书的现存量销毁将图书从账目中删除等操作二概要设计系统用到的抽象数据类型定为某一数据对象数据元素关系基本操作数据对象数据关系基本操作系统中的子程序和功能说明初始化号查找系统按书名查找系统按作者查询系统主菜单显示系统查询系统子菜单主函数归还图书系统程序功能结构图图书馆管理系统图书信息录入查询图书信息处理图书信息基本信息借阅记录按书号查询按书名查询按作者查询图书采编.I .r .1、这个程序设计中要注意定义两个结构体:图书结构体、借阅人结构
12、体。其中定义数组存放图书信息,申请链表存放借阅记录和读者信息记录。2、程序中运用到大多的插入与删除,所以申请链表比较方便插入与删除。但应前期需求分析的准备工作不充分,导致程序运行功能不全,比如查找时关于此书的信息不能全部显示出来,并且添加删除时库存的变化不能直接显示出来。程序的健壮性不能达到预期的结果,这些都是需要改进的。3、在程序中的函数调用是个非常重要的部分,也是经常需要用到的,在编写程序过程中,因为函数调用不准确,使得循环进不去,后来改变函数的调用关系,才达到了预期结果。4、程序中还定义了全局变量,之前没定义全局变量,在下面的编写过程,同样性质的地方需要重复定义,比较麻烦,定义全局变量使
13、得程序比较简明一点。五 用户手册【使用说明】1、进入图书馆管理系统主页面 2、若有新书要新编入库,选择 1,进入新书入库系统,输入入库书的书号,若书库中无该书,则设立新书目,输入新书信息。若书库中已有该书,则输入新信息覆盖修改原书库中该书号对应书的信息。3、若有书籍信息需要删除,选择 2,进入清空库存系统,输入想要删除书的书号,则此书信息就已删除。4、若要借阅图书,选择 3,进入图书借阅系统,输入需要借阅书的书号以及读者证号,并输入还书日期,则借书成功。5、若要归还图书,选择 4,进入图书归还系统,输入需要归还图书的书号以及读者证号,则还书成功。6、若要查找信息,选择 5,进入查找信息子系统。
14、若要按书号查找,则选择子系统中的 1,输入需要查找的书的书号,若按书名查找,则选择子系统中的 2,输入需要查找的书名,若按作者查找,输入需要查找书的作者进行查找,若查找结束,则按 0 退出。7、若系统使用结束,按 0 退出。【程序中的头文件】#include#include 业务此程序规定管理员能够向系统中输入每种书的基本信息包括书号书名作者现存量和库存量借阅记录并保存记录用户读者能够按书号书名作者查询图书信息管理员能够实现图书采编入库新购入一本书经分类和确定书号之后登记到证号和归还期限归还删除对借阅者的登记改变该书的现存量销毁将图书从账目中删除等操作二概要设计系统用到的抽象数据类型定为某一数
15、据对象数据元素关系基本操作数据对象数据关系基本操作系统中的子程序和功能说明初始化号查找系统按书名查找系统按作者查询系统主菜单显示系统查询系统子菜单主函数归还图书系统程序功能结构图图书馆管理系统图书信息录入查询图书信息处理图书信息基本信息借阅记录按书号查询按书名查询按作者查询图书采编.I .r .#include#define MAXSIZE 100#define LIST_INIT_SIZE 100 int Retotal;/*定义的全局变量*/int total;六 测试成果 1、采编入库 2、清空库存 3、图书借阅 业务此程序规定管理员能够向系统中输入每种书的基本信息包括书号书名作者现存量
16、和库存量借阅记录并保存记录用户读者能够按书号书名作者查询图书信息管理员能够实现图书采编入库新购入一本书经分类和确定书号之后登记到证号和归还期限归还删除对借阅者的登记改变该书的现存量销毁将图书从账目中删除等操作二概要设计系统用到的抽象数据类型定为某一数据对象数据元素关系基本操作数据对象数据关系基本操作系统中的子程序和功能说明初始化号查找系统按书名查找系统按作者查询系统主菜单显示系统查询系统子菜单主函数归还图书系统程序功能结构图图书馆管理系统图书信息录入查询图书信息处理图书信息基本信息借阅记录按书号查询按书名查询按作者查询图书采编.I .r .4、图书归还 5、图书查找 业务此程序规定管理员能够向
17、系统中输入每种书的基本信息包括书号书名作者现存量和库存量借阅记录并保存记录用户读者能够按书号书名作者查询图书信息管理员能够实现图书采编入库新购入一本书经分类和确定书号之后登记到证号和归还期限归还删除对借阅者的登记改变该书的现存量销毁将图书从账目中删除等操作二概要设计系统用到的抽象数据类型定为某一数据对象数据元素关系基本操作数据对象数据关系基本操作系统中的子程序和功能说明初始化号查找系统按书名查找系统按作者查询系统主菜单显示系统查询系统子菜单主函数归还图书系统程序功能结构图图书馆管理系统图书信息录入查询图书信息处理图书信息基本信息借阅记录按书号查询按书名查询按作者查询图书采编.I .r .七 附
18、录(源程序清单)#include#include#include#define MAXSIZE 100#define LIST_INIT_SIZE 100 typedef struct Boro char BNum20;char RetDate8;struct Boro*next;Bor;业务此程序规定管理员能够向系统中输入每种书的基本信息包括书号书名作者现存量和库存量借阅记录并保存记录用户读者能够按书号书名作者查询图书信息管理员能够实现图书采编入库新购入一本书经分类和确定书号之后登记到证号和归还期限归还删除对借阅者的登记改变该书的现存量销毁将图书从账目中删除等操作二概要设计系统用到的抽象数据
19、类型定为某一数据对象数据元素关系基本操作数据对象数据关系基本操作系统中的子程序和功能说明初始化号查找系统按书名查找系统按作者查询系统主菜单显示系统查询系统子菜单主函数归还图书系统程序功能结构图图书馆管理系统图书信息录入查询图书信息处理图书信息基本信息借阅记录按书号查询按书名查询按作者查询图书采编.I .r .typedef struct LinkBook Bor*next;char CNum20;int Total;lendLIST_INIT_SIZE;typedef struct LNode char CardNum20;struct LNode*next;LinkList;typedef
20、struct book char num20;char name20;char auth20;char pub20;int TotNum;int NowNum;LinkList*next;BookMAXSIZE;int Retotal;int total;void InitBo(Book&boo)for(int i=0;iMAXSIZE;i+)booi.NowNum=0;booi.TotNum=0;booi.next=NULL;void InitRe(lend&Lin)for(int i=0;iLIST_INIT_SIZE;i+)Lini.next=NULL;int mid=0;bool Bi
21、narySearch(Book boo,char SearchNum)int low=0,high=total;业务此程序规定管理员能够向系统中输入每种书的基本信息包括书号书名作者现存量和库存量借阅记录并保存记录用户读者能够按书号书名作者查询图书信息管理员能够实现图书采编入库新购入一本书经分类和确定书号之后登记到证号和归还期限归还删除对借阅者的登记改变该书的现存量销毁将图书从账目中删除等操作二概要设计系统用到的抽象数据类型定为某一数据对象数据元素关系基本操作数据对象数据关系基本操作系统中的子程序和功能说明初始化号查找系统按书名查找系统按作者查询系统主菜单显示系统查询系统子菜单主函数归还图书系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 图书 管理 系统 计算机 算法
限制150内