数据结构课程设计图书管理系统(1).doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
数据结构课程设计图书管理系统 一 需求分析 该程序是模拟图书馆管理系统,实现图书采编入库、借书、还书、查询等基本业务。此 程序规定: (1) 管理员能够向系统中输入每种书的基本信息,包括书号、书名、作者、现存量和库存量 、借阅记录,并保存记录; (2) 用户(读者)能够按书号、书名、作者查询图书信息; (3) 管理员能够实现图书采编入库(新购入一本书,经分类和确定书号之后登记到图书账目中 去。如果这种书在帐中已有,则只将总库存量增加)、借阅(如果书的现存量大于0,则借 出一本,登记借阅者的图书证号和归还期限)、归还(删除对借阅者的登记,改变该书的 现存量)、销毁(将图书从账目中删除)等操作。 二 概要设计 系统用到的抽象数据类型定义: 1、ADT LinearList{ 数据元素:D={ai"ai D0,i=1,2,…,n,n 0,D0为某一数据对象} 关系:S={<ai,ai+1>"ai,ai+1 D0,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"ai CharacterSet,i=1,2,…,n;n 0} 数据关系:R={<ai-1,ai>"ai-1,ai D,i=2,…,n;n 0} 基本操作: 1. StrAsign(S,chars) 2. StrInsert(S,pos,T) 3. StrDelete(S,pos,len) 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 系统中的子程序和功能说明: 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 BorrowerNum[]);归还图书系统 SearchByNum(Book &boo,char SeaNum[]);按书号查找系统 SearchByName(Book &boo);按书名查找系统 SearchByAuth(Book &boo);按作者查询系统 Menu();主菜单显示系统 Search();查询系统子菜单 main();主函数 系统程序功能结构图 三 详细设计 功能实现过程 bool BinarySearch(Book boo,char SearchNum[]) //二分法查找比较书号 { while(low<=high) { 计算中间点; if(查找到书号相同的) { 返回值true; } if(查找书号不相同) 用二分法进一步进行查找; } if(库中没有所要查找的书) 返回值false; } void Buy(Book &boo, char BuyNum[])/*采编入库*/ { if(书库中有此书) { 总库存加1; 现库存加1; } if(书库中无此书) { for(i=total;i>mid&&total;i--)/*将新采购的书插在适合位置,保持有序*/ 空出插入位置; 输入新购书籍的相关信息:书号、书名、作者、出版社; boo[i].next=NULL; total++;/*总量加1*/ } } void Delete(Book &boo,char DeleteNum[])/*清除图书信息*/ { if(书库中没有此书) 输出"无此书"; if(书库中有此书) { strcpy(连续两本书的相关信息); 现存量减1;库存量减1; } else 输出"此书已有借阅者,无法删除!"; } 数据结构课程设计的目标是开发一个图书管理系统,模拟实际图书馆的操作,包括图书的入库、借阅、归还和查询等功能。这个系统主要由管理员和用户(读者)两种角色操作。 管理员的任务包括: 1. 输入每本书的基本信息,如书号、书名、作者、现存量、库存量以及借阅记录,并存储这些记录。 2. 执行图书的采编入库,当新书购买后,将其分类并确定书号,然后登记到图书账目中。如果书已存在,仅增加总库存量。 3. 进行图书借阅,如果当前库存量大于0,则借出一本,并记录借阅者的图书证号和归还期限。 4. 处理图书归还,删除借阅记录,更新书的现存量。 5. 销毁图书,即从账目中彻底删除。 系统中采用了两种抽象数据类型(ADT): 1. ADT LinearList:线性列表,用于存储图书的基本信息,包含一系列的数据元素,支持初始化、销毁、清空、检查是否为空、获取长度、定位元素、获取元素、插入元素和删除元素等操作。 2. ADT String:字符串,用于处理图书的各种文字信息,如书名、作者等,支持赋值、插入、删除、复制、比较、获取长度、清空、连接字符串、提取子字符串、查找子字符串、替换子字符串和销毁字符串等操作。 系统包含多个子程序和功能: 1. InitBo 和 InitRe 分别用于初始化图书信息和借阅者信息。 2. BinarySearch 采用二分法查找特定书号,提高查找效率。 3. Buy 实现图书的采编入库,新书会根据书号插入到已排序的书库中,保持顺序。 4. Delete 清除图书信息,如果图书已被借阅,则不能删除。 5. Borrow 和 Return 分别处理图书的借阅和归还操作,借阅时记录借阅者信息,归还时更新图书状态。 6. SearchByNum、SearchByName 和 SearchByAuth 分别按书号、书名和作者查询图书信息。 7. Menu 和 Search 是交互界面,显示主菜单和查询子菜单,供用户选择操作。 8. Main 函数作为程序的入口,协调整个系统的运行。 在详细设计阶段,每个功能的实现过程都有清晰的逻辑,如 BinarySearch 使用二分法逐步缩小查找范围,Buy 根据书库状态决定是增加库存还是插入新书,Delete 要考虑图书的借用状态以防止错误删除。 通过这样的数据结构课程设计,学生可以深入理解数据结构在实际问题中的应用,掌握线性表和字符串的处理方法,以及如何设计和实现一个简单的数据库管理系统。
剩余17页未读,继续阅读
- 陈燚6382024-01-11资源太好了,解决了我当下遇到的难题,抱紧大佬的大腿~
- 水安寒栈2023-12-07资源不错,很实用,内容全面,介绍详细,很好用,谢谢分享。
- 粉丝: 105
- 资源: 9352
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【java毕业设计】莲湖小区疫情物资管理系统源码(ssm+mysql+说明文档).zip
- yolo算法-电线杆数据集-1493张图像带标签-.zip
- yolo算法-驾驶员安全带数据集-23320张图像带标签-安全带-电话.zip
- yolo算法-手-人吸烟数据集-20018张图像带标签-手-人.zip
- yolo算法-安全帽数据集-19710张图像带标签-安全帽-无安全帽.zip
- python图片转字符
- yolo算法-dms分神驾驶数据集-15986张图像带标签-喝酒或吃饭-安全带打开-睡着的-进食或饮水-手机.zip
- yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip
- wifi连网与MQTT通信实例
- yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip