




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计报告 2014 2015 学年 第 1 学期 题 目 南邮图书馆管理系统南邮图书馆管理系统 专专 业业 组长组长 学号姓名学号姓名 组员组员 学号姓名学号姓名 指指 导导 教教 师师 指指 导导 单单 位位 日日 期期 组长 组长 负责图书的所有相关信息内容存为文件部分代码编负责图书的所有相关信息内容存为文件部分代码编 写 并使界面友好 输入信息符合逻辑 写 并使界面友好 输入信息符合逻辑 组员 组员 负责显示所有即将到期的图书 归还日期在三天之负责显示所有即将到期的图书 归还日期在三天之 内 内 按借阅次数对所有图书进行排序部分代码编 按借阅次数对所有图书进行排序部分代码编 写写 成员分工成员分工 组员 组员 负责图书馆管理系统所拥有功能的定义 负责图书馆管理系统所拥有功能的定义 评分项评分项优秀优秀良好良好中等中等差差 遵守机房规章制度遵守机房规章制度 上机时的表现上机时的表现 学习态度学习态度 程序准备情况程序准备情况 程序设计能力程序设计能力 团队合作精神团队合作精神 课题功能实现情况课题功能实现情况 算法设计合理性算法设计合理性 用户界面设计用户界面设计 报告书写认真程度报告书写认真程度 内容详实程度内容详实程度 文字表达熟练程度文字表达熟练程度 评分细则评分细则 回答问题准确度回答问题准确度 简短评语简短评语 教师签名 教师签名 年年 月月 日日 评分等评分等 级级 备注备注 评分等级共五种 优秀 良好 中等 及格 不及格评分等级共五种 优秀 良好 中等 及格 不及格 题目 南邮图书管理系统题目 南邮图书管理系统 一 一 课题内容和要求课题内容和要求 该系统要求建立一个南邮图书馆管理系统 并具有排序 查找 计算 显示等功能 通 过此课题 熟练掌握文件 数组 指针的各种操作 以及一些算法思想的应用 1 图书的信息应包括 索引号 名称 馆藏地址 三牌楼 仙林 类别 人文 科技 外语等 数量 价格 入库日期 归还日期 借阅次数 借阅状态 可借 不可借 2 需要实现的功能 1 对已图书信息进行更新操作 包括添加和删除一种书的信息 修改图书信息 例如图书被借阅 书的数目减 1 借阅次数加 1 如果数量为 0 则状态为不可 借 2 通过按图书的名称查询图书信息 3 显示所有即将到期的图书 归还日期在三天之内 4 按借阅次数对所有图书进行排序 5 将图书的所有相关信息内容存为文件 3 界面友好 输入信息符合逻辑 二 二 需求分析需求分析 在整个系统中一共主要有三个部分 图书借阅 图书管理和图书搜索 其中图书借阅包含借出时间 归还时间 是否归还 1 可根据 ID 账号找到某本书的索引值 从而获取图书信息 进行借阅 系统将自动 添加可借阅时间 并将信息记录 2 可分页显示借书记录 借阅信息 3 分页显示即将到期的图书 图书管理部分包含图书列表 添加书 删除图书信息 1 将所有图书进行排序 入库 并记录图书信息 2 添加一本书 删除图书信息 可删除一本或者删除全部索引值为一个的全部图书信 息 3 修改图书信息 可根据索引值找到图书并进行修改 4 分页显示所有图书列表 搜索图书 1 可用索引值搜索书本信息 以以及图书在数组中的位置 2 也可根据图书名搜索图书所在数组位置 返回图书信息 3 概要设计概要设计 1 主要结构体 在 library 这整个类中 由 mainscreen 这个函数进入 brrowbook bookmager searchbook 这三个函数分别提供借书 管理图书 搜索图书三种功能 在借书功能包含借书与还书 而管理图书中则包含添加 删除 修改 查看等功能 而在本程序中每一本书都赋予了对应的 ID 和索引值 而 ID 是唯一的 当添加成功时 系统会自动添加入库时间 每个 singlebook 结构体都用来存储图书的基本信息以及相应的 入库时间 而 borrowtable 则存储图书借阅的信息 booklist 则用来存储所有图书的信息 而图书的存储信息页按照要求存储在相应的文件 dat 中 2 主要函数流程图 主程序 图书借阅 图书管理 搜索图书 图书借阅 选择用户进入 选择借书 输入图书 ID 图书名称 是否借阅 是否可借 阅 是否余量 不足 禁止借阅余量不足 结 束 借阅完成 图图 1 程序流程图程序流程图 借阅图书 借阅归还 添加 图书 修改图书 信息 删除 图书 搜索图书信 息 查看所 有图书 图图 2 2 归还图书 归还图书 输入 ID giveBackResult booklist giveBackBoo k singlebook getSuoyin id giveBackResult 0 Borrowtable g iveback id 还书时出 现错误 还 书 成 功 结 束 图图 3 3 添加图书 添 加 图 书 输入索引 SY 和 ID searchBookPosWith SY 1 t ID allBo oks data push back t allBooks 数 目 Count 1 结 束 书名 booklist bookinfo sy name 图图 4 4 删除图书 删 除 图 书 单本 OR 多本 输入 ID 得到图书索引 删除图书信息 输入索引 值 删除所有索引值 为 SY 的图书 结 束 图图 5 5 修改图书 修 改 图 书 输入书的 索引 SY Booklist searchBookP osWithSY sy 1 显示索引值为 SY 的图 书信息 修改 修改图书信 息 没有此书 结 束 图图 6 四 源程序代码四 源程序代码 include include include 把日期和时间转换成字符串该类的对象表示的时间是基于格林威治标准时间的 include 常用的函数库 include include include 演算法 提供了大量基于迭代器的非成员模板函数 using namespace std int min int a int b if a b return a return b struct data booklist int ID 书本 ID string Suoyin 书本索引 string 类是字符串 不可任意改变 需要返回一个新的 string 类对象 string Name 书本名称 int Address 书本地址 string BookClass 书本类别 int Count 数目 int Price 价格 bool BorrowAble 是否允许借阅 int BorrowedCount 借阅次数 int cmpBorrowedCount data booklist a data booklist b int cmpID data booklist a data booklist b 给排序函数 sort 提供比较大小的方法 class BOOKLIST private vector data int allBooks public BOOKLIST BOOKLIST int searchBookPosWithSY string sy 根据索引查找书在数组中的位置 data booklist bookInfo string sy 根据索引查找书本信息 void addNewBook data booklist t 添加新书 void removeAllBook string sy 删除所有索引为 sy 的书 int searchBookPosWithName string name 根据图书名搜索书在数组中的位置 data booklist searchBookWithName string name 根据图书名返回书的信息 void updateBookInfo string sy data booklist t 更改索引为 sy 的图书信息 int borrowBook string sy 借书时对表的修改 返回 0 表示借阅成功 1 数量不足 2 禁止借阅 int giveBackBook string sy 还书时对表的修改 void sortBooks int option 对图书排序 0 按借阅次数 1 按 ID void save 保存 void removeOneBook string sy 删除一本索引为 sy 的书 void showBooks int page 分页显示书本信息 int cmpBorrowedCount data booklist a data booklist b if a BorrowedCount b BorrowedCount return 1 return 0 int cmpID data booklist a data booklist b if a ID b ID return 0 return 1 BOOKLIST BOOKLIST ifstream booklistFile booklist dat 尝试从文件加载数据 if booklistFile booklistFile allBooks for int i 0 i p ID booklistFile p Suoyin booklistFile p Name booklistFile p Address booklistFile p BookClass booklistFile p Count booklistFile p Price booklistFile p BorrowAble booklistFile p BorrowedCount data push back p booklistFile close else allBooks 0 int BOOKLIST searchBookPosWithSY string sy for int i 0 i allBooks i if data i Suoyin sy return i return 1 data booklist BOOKLIST bookInfo string sy return data searchBookPosWithSY sy void BOOKLIST addNewBook data booklist t int pos searchBookPosWithSY t Suoyin if pos 1 1 是没找到 pos 是记录的意思 t ID allBooks data push back t allBooks else data pos Count 1 void BOOKLIST removeAllBook string sy int pos searchBookPosWithSY sy data erase data begin pos erase 为删除数据 begin 是 date 的开始 allBooks int BOOKLIST searchBookPosWithName string name for int i 0 i 0 return data p else data booklist t t Count 0 t Name name return t void BOOKLIST updateBookInfo string sy data booklist t int p searchBookPosWithSY sy if p 0 data p t int BOOKLIST borrowBook string sy int p searchBookPosWithSY sy if p 0 data p Count return 0 return 1 void BOOKLIST sortBooks int option if option 0 sort data begin data begin allBooks cmpBorrowedCount sort 是排序函数 else sort data begin data begin allBooks cmpID void BOOKLIST save ofstream booklistFile booklist dat 这是一个 booklist 的文件所以输出时也要与文件相关用 booklistfile booklistFile allBooks endl for int i 0 i allBooks i booklistFile data i ID endl booklistFile data i Suoyin endl booklistFile data i Name endl booklistFile data i Address endl booklistFile data i BookClass endl booklistFile data i Count endl booklistFile data i Price endl booklistFile data i BorrowAble endl booklistFile data i BorrowedCount 1 pos 是便是记录的位置 1 表示没找到 if data pos Count 0 data pos Count void BOOKLIST showBooks int page if page 0 return int perPage 15 cout No t 索引 t 书名 t 地址 t 类别 t 数目 t 价格 t 可供借阅 t 借阅次数 endl if page perPage allBooks perPage for int i page 1 perPage i min page 1 perPage perPage allBooks i page 是要显示的 数目 perpage 是每页的显示数目 cout data i ID t data i Suoyin t data i Name t page perpage 是表示 第某页的起始 if data i Address 0 cout 三牌楼 t else cout 仙林 t cout data i BookClass t data i Count t data i Price t if data i BorrowAble cout Yes else cout No cout t t data i BorrowedCount endl struct data singlebook struct 是各种数据的结构体 int ID string Suoyin time t ruku class SINGLEBOOK private vector data vector 可以实现变成长的数组 int allBooks public SINGLEBOOK SINGLEBOOK void addBook int id string sy time t t 添加单本书 void removeBook int id 根据 ID 删除一本书 void removeAllBook string sy 根据索引删除所有书 void save 保存 string getSuoyin int id 获取指定 ID 的图书的索引 void showBooks int page 分页显示图书 SINGLEBOOK SINGLEBOOK ifstream singlebookFile singlebook dat 尝试从文件加载 if singlebookFile singlebookFile allBooks for int i 0 i p ID singlebookFile p Suoyin singlebookFile p ruku data push back p singlebookFile close else allBooks 0 void SINGLEBOOK addBook int id string sy time t t cout sy endl data singlebook p p ID id p Suoyin sy p ruku t data push back p allBooks void SINGLEBOOK removeBook int id int p for int i 0 i allBooks i if data i ID id p i data erase data begin p break allBooks void SINGLEBOOK removeAllBook string sy int p for int i 0 i data size i if data i Suoyin sy data erase data begin i i allBooks data size void SINGLEBOOK save ofstream singlebookFile singlebook dat 单本书的文件 singlebookFile allBooks endl for int i 0 i allBooks i singlebookFile data i ID endl singlebookFile data i Suoyin endl singlebookFile data i ruku endl singlebookFile close string SINGLEBOOK getSuoyin int id for int i 0 i allBooks i if data i ID id return data i Suoyin return No Such Book void SINGLEBOOK showBooks int page system cls cout ID t 索引 t 入库 n int perPage 15 for int i page 1 perPage i min page 1 perPage perPage allBooks i cout data i ID t data i Suoyin tm year 100 int m t tm mon 1 int d t tm mday stringstream ss ss tm year 100 tm mon 1 tm mday string sRuku ss str cout sRuku endl struct data borrowtable int id time t date 借出时间 time t guihuan 归还时间 bool giveback 是否归还 class BORROWTABLE private vector data int records int allowDays public BORROWTABLE void save 保存 void borrow int id 根据 ID 借书 系统自动添加时间 void giveback int id 还书 系统自动添加时间 void showEmergencyBooks BOOKLIST 显示即将到期的书 从 b 和 s 中获 取图书信息 void showTable int page BOOKLIST 分页显示借书记录 string getName int id BOOKLIST 获取指定 ID 的图书名 string getSY int id SINGLEBOOK 获取指定图书的索引 void setAllowDays int d 设置允许借阅天数 int getAllowDays BORROWTABLE BORROWTABLE ifstream borrowTableFile borrowTable dat 尝试从文件加载数据 if borrowTableFile borrowTableFile records borrowTableFile allowDays for int i 0 i p id borrowTableFile p date borrowTableFile p giveback borrowTableFile p guihuan data push back p borrowTableFile close else records 0 allowDays 30 void BORROWTABLE save ofstream borrowTableFile borrowTable dat if borrowTableFile borrowTableFile records endl borrowTableFile allowDays endl for int i 0 i records i borrowTableFile data i id endl borrowTableFile data i date endl borrowTableFile data i giveback endl borrowTableFile data i guihuan endl borrowTableFile close void BORROWTABLE borrow int id data borrowtable p p giveback false p id id p date time NULL data push back p records void BORROWTABLE giveback int id for int i 0 i records i if data i id id data i guihuan time NULL return void BORROWTABLE showEmergencyBooks BOOKLIST time t now time NULL cout 即将到期图书 endl cout ID t 书名 t 日期 t endl for int i 0 i3600 24 allowDays 3 tm t localtime int y t tm year 100 int m t tm mon 1 int d t tm mday string givedBack if data i giveback givedBack Yes else givedBack No cout data i id t b bookInfo s getSuoyin data i id Name t y m d t givedBack endl void BORROWTABLE showTable int page BOOKLIST cout ID t 书名 t 日期 t 归还 t endl int perPage 15 if page perPage records perPage for int i page 1 perPage itm year 100 int m t tm mon 1 int d t tm mday string givedBack if data i giveback tm q localtime stringstream ss ss tm year 100 tm mon 1 tm mday givedBack ss str else givedBack No cout data i id t b bookInfo s getSuoyin data i id Name t y m d t givedBack endl string BORROWTABLE getName int id BOOKLIST i records i if data i id id data booklist t b bookInfo s getSuoyin data i id return t Name return Not Found string BORROWTABLE getSY int id SINGLEBOOK void BORROWTABLE setAllowDays int d allowDays d int BORROWTABLE getAllowDays return allowDays class LIBRARY private BOOKLIST booklist 总图书列表 SINGLEBOOK singlebook 单独的图书信息 BORROWTABLE borrowtable 图书借阅记录 public void mainscreen 功能选择 void borrowbook 借书 void bookmanaage 图书管理 void searchbook 图书搜索 void LIBRARY mainscreen int option do system cls cout 1 管理借阅 endl cout 2 管理书 endl cout 3 搜索书 endl cout 4 退出 endl cout endl cout endl cout endl cout 请选择 endl cout endl cout endl cout option switch option case 1 borrowbook break case 2 bookmanaage break case 3 searchbook break case 4 break default cout 请在 1 3 间选择 endl while option 4 void LIBRARY borrowbook int option int page 1 do system cls cout 允许借阅天数 borrowtable getAllowDays t t0 修改 n borrowtable showTable page booklist singlebook cout 1 下一页 2 上一页 3 借 4 还 5 即将到期 6 退出 option switch option case 0 int allowDays cout 3 do cin allowDays while allowDays 3 borrowtable setAllowDays allowDays cout 修改完成 n system PAUSE break case 1 page 1 borrowtable showTable page booklist singlebook cout 1 下一页 2 上一页 3 借 4 还 5 即将到期 6 退出 1 page 1 borrowtable showTable page booklist singlebook cout 1 下一页 2 上一页 3 借 4 还 5 即将到期 6 退出 endl else cout 不合法的输入 n break case 3 system cls cout id string sy singlebook getSuoyin id if sy No Such Book cout 没有此书 n system PAUSE break int confirm cout booklist bookInfo singlebook getSuoyin id Name endl cout confirm if confirm 1 break int borrowState booklist borrowBook sy if borrowState 0 switch borrowState case 2 cout 禁止借阅 n break case 1 cout 没有此书 n break break borrowtable borrow id cout 借书成功 n break case 4 cout id int giveBackResult booklist giveBackBook singlebook getSuoyin id if giveBackResult 0 cout 还书时出现错误 n break borrowtable giveback id cout 还书成功 n break case 5 borrowtable showEmergencyBooks booklist singlebook break default break system pause while option 6 borrowtable save void LIBRARY bookmanaage int option do system cls cout 1 添加书 endl cout 2 删除书 endl cout 3 修改书的信息 endl cout 4 查看书的信息 endl cout 5 查看每本书的信息 endl cout 6 退出 endl cout 请选择 option switch option case 1 system cls cout sy cout id if booklist searchBookPosWithSY sy 1 data booklist t t Suoyin sy cout t Name cout t Address cin clear cin sync cout t BookClass cin clear cin sync t Count 1 cout t Price t BorrowedCount 0 cout ans if ans 0 t BorrowAble true else t BorrowAble false booklist addNewBook t else cout 书名 booklist bookInfo sy Name ans if ans 0 data booklist t t Suoyin sy booklist addNewBook t else break cout 请重新输入 n singlebook addBook id sy time NULL cout 书本添加完成 n break case 2 system cls cout 0 删除一本书 endl cout 1 删除同一索引的全部书 endl cout 请选择 option switch option case 0 system cls cout id string sy singlebook getSuoyin id singlebook removeBook id booklist removeOneBook sy break case 1 system cls cout sy singlebook removeAllBook sy booklist removeAllBook sy break break case 3 system cls cout sy if booklist searchBookPosWithSY sy 1 int option do system cls data booklist t booklist bookInfo sy cout 索引 t Suoyin endl cout 0 名称 t Name endl string add t Address 0 三牌楼 仙林 cout 1 地址 add endl cout 2 类别 t BookClass endl cout 3 计数 t Count endl cout 4 价格 t Price endl cout 5 可供借阅 t BorrowAble endl cout 6 借阅此书 t BorrowedCount endl cout 7 退出 endl cout select one option switch option case 0 cout t Name break case 1 cout t Address while t Address 0 t Address 1 break case 2 cout t BookClass break case 3 cout t Count break case 4 cout t Price break case 5 cout answer if answer 0 t BorrowAble true else if answer 1 t BorrowAble false break case 6 cout t BorrowedCount break booklist updateBookInfo sy t cout 修改成功 n while option 7 else cout 没有此书 n break case 4 int page 1 in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度大型活动策划设计聘请专项合同
- 诸暨珍珠知识培训课件
- 2025装载机的买卖合同范本
- 2025年双边房屋租赁转让合同范本
- 红色景点培训课件教学
- 红细胞增多性疾病
- 诗经采薇节课件
- 红楼梦课件教学课件
- 商品车运输协议
- 诗经故国之思课件
- 中医运动养生 中医养生学课件
- GB/T 5563-2013橡胶和塑料软管及软管组合件静液压试验方法
- GB/T 1192-1999农业轮胎
- 人类学-课件精
- DBJ51-T 188-2022 预拌流态固化土工程应用技术标准
- 体育产业经营管理课件第一章导论
- 2023门球竞赛规则电子版图文并茂
- 部编版四年级语文上册第5课《一个豆荚里的五粒豆》优秀PPT课件
- 大班社会《班级规则我遵守》课件
- 能源概论__第一章能源概述PPT课件
- 小学一年级体育下册教案全册
评论
0/150
提交评论