




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载1欢迎下载1欢迎下载 课课 程程 设设 计计 课程名称面向对象程序设计课程设计 题目名称图书管理系统 专业班级2015 级计算机科学与技术 1 班 学生姓名 学 号 指导教师 二 一六年十一月二十日 精品文档 1欢迎下载1欢迎下载1欢迎下载 蚌埠学院计算机科学与技术系课程设计任务书 课 程 面向对象程序设计 课程设计 班级2015 级计科 1 班指导教师 题 目图书管理系统完成时间 2016 年 11 月 21 日至 2016 年 12 月 18 日 主要内容 要求完成以下功能 1 对图书信息进行查询 更改 删除 2 对读者信息进行查询 更改 删除 3 通过输入读者编号和图书编号进行借阅图书 4 通过读者编号和图书编号进行还书 5 要求有错误提示功能 输入不正确提示错误 设计报告要求 1 封面 2 课程设计任务书 3 分工协作说明 4 课程设计报告 目录 引言 系统总体方案 设计思路和主要步骤 各功能模块和流程图 程序类的说明 系统测试 结论 致谢 参考文献 附录 程序代码 5 以班级为单位 文件夹 提交各组工程调试 运行代码 每组 1 个文件 夹 说明 学生完成课程设计后 提交课程设计报告及软件 要求文字通畅 字 迹工整 也可以打印 文字不少于 5000 字 并装订成册 星期 周次 一二三四五 上机时间安排 第 13 周 第 16 周 3 4 节3 4 节 指导时 间地点 上机时间 计算机基础实验室 B532 A502 版面要求 1 题目用黑体三号 段后距 18 磅 或 1 行 居中对齐 2 标题用黑体四号 段前 段后距 6 磅 或 0 3 行 3 正文用小四号宋体 行距为 1 25 倍行距 4 标题按 一 1 顺序编号 精品文档 1欢迎下载1欢迎下载1欢迎下载 分工协作说明 以列表形式具体说明每个人所做的工作 课题名称学生姓名学号所做的工作 团队总体分工 课程设计的整体设 计 程序代码的编写 程序修改 部分代码的编写 部分资料查询 资料的收集与分析 部分课程设计说明书的书写 修改 课程设计中不完善的地方 资料的收集与分析 部分课程设计 说明书的书写 课程设计的总结 参考资料的查询 及提取有用内容 图书管理系统 最后总结调试 由所有组员共同完成 精品文档 2欢迎下载2欢迎下载2欢迎下载 蚌埠学院计算机科学与技术系本科课程设计成绩评定表 项目权重分值具体要求 得分 文献阅读与 调查论证 0 20100 能独立查阅文献和从事其它调研 有收集 加工各 种信息的能力 设计质量 0 30100 设计合理 功能齐备 程序运行正常 实验数据准 确可靠 有较强的实际动手能力 论文撰写质 量 0 20100 设计说明书完全符合规范化要求 用 A4 复印纸打印 成文 学习态度 0 20100 学习态度认真 科学作风严谨 严格按要求开展各 项工作 按期完成任务 学术水平与 创新 0 10100 设计有创意 有一定的学术水平或实用价值 总分 精品文档 3欢迎下载3欢迎下载3欢迎下载 评语 等级 指导教师 年 月 日 精品文档 11欢迎下载 目 录 一一 引言引言 1 1 二二 系统总体方案系统总体方案 2 2 三三 设计思路设计思路 7 7 功能需求功能需求 7 7 数据需求数据需求 7 7 性能需求性能需求 7 7 四四 各功能模块各功能模块 8 8 五五 流程图流程图 9 9 六六 程序类的说明程序类的说明 1111 七七 系统测试系统测试 1414 运行运行 1414 调试调试 2020 测试测试 2121 八八 结论结论 2 22 2 九九 致谢致谢 2222 十十 参考文献参考文献 2323 十一十一 附录 程序代码 附录 程序代码 2323 精品文档 22欢迎下载 一 引言 当今时代是飞速发展的信息时代 在各行各业中离不开信息处理 这正是 计算机被广泛应用于信息管理系统的环境 计算机的最大好处在于利用它能够 进行信息管理 使用计算机进行信息控制 不仅提高了工作效率 而且大大的 提高了其安全性 尤其对于复杂的信息管理 计算机能够充分发挥它的优越性 计算机进行信息管理与信息管理系统的开发密切相关 系统的开发是系统管理 的前提 图书管理系统就是为了管理好图书馆信息而设计的 图书馆作为一种信息资源的集散地 图书和用户借阅资料繁多 包含很多 的信息数据的管理 现今 有很多的图书馆都是初步开始使用 甚至尚未使用 计算机进行信息管理 根据调查得知 他们以前对信息管理的主要方式是基于 文本 表格等纸介质的手工处理 对于图书借阅情况 如借书天数 超过限定 借书时间的天数 的统计和核实等往往采用对借书卡的人工检查进行 对借阅 者的借阅权限 以及借阅天数等用人工计算 手抄进行 数据信息处理工作量 大 容易出错 由于数据繁多 容易丢失 且不易查找 总的来说 缺乏系统 规范的信息管理手段 尽管有的图书馆有计算机 但是尚未用于信息管理 没 有发挥它的效力 资源闲置比较突出 这就是管理信息系统的开发的基本环境 数据处理手工操作 工作量大 出错率高 出错后不易更改 图书馆采取 手工方式对图书借阅情况进行人工管理 由于信息比较多 图书借阅信息的管 理工作混乱而又复杂 一般借阅情况是记录在借书证上 图书的数目和内容记 录在文件中 图书馆的工作人员和管理员也只是当时对它比较清楚 时间一长 如再要进行查询 就得在众多的资料中翻阅 查找了 造成查询费时 费力 如要对很长时间以前的图书进行更改就更加困难了 基于这些问题 有必要建立一个图书管理系统 使图书管理工作规范化 系统化 程序化 避免图书管理的随意性 提高信息处理的速度和准确性 能 够及时 准确 有效的查询和修改图书情况 为了联系实际 考虑各层次学校 的情况 软件本身要求易学 界面友好 容易掌握 可以较简单方便的管理各 种图书信息 硬件的配置要求不能太高 这样可以很好的适应当前的学校图书 馆 系统的总体特点应该是方便 简单 实用 精品文档 33欢迎下载 二 系统设计方案 设计一个总菜单 1 图书信息 2 读者信息 3 借阅图书 4 归还图书 基本功能的实 现都将体现在这几个菜单选项中 函数原型和数据结构如下 const int Maxr 100 最多的读者数 const int Maxb 100 最多的图书数 const int Maxbor 5 每位读者最多借的书 class Book 图书类 实现对图书的描述 图书的编号 书名 借出 还入等功能 class BDatabase 图书库类 实现对图书的维护 查找 删除 class Reader 读者的信息描述 class RDatabase 读者类库 实现建立读者的个人资料 void main 实现程序的主界面 char bname 15 char cname 15 char auname 15 char choice4 char choice5 char choice6 char choice7 int bookid readerid RDatabase ReaderDB Reader r BDatabase BookDB Book b cout n n n cout t t t t t 欢迎光临图书馆管理系统 endl cout t t t t t 1 读 者 模 式 endl cout t t t t t 2 管 理 员 模 式 endl cout t t t t t 0 退 出 choice7 switch choice7 case 1 cout t t t t t 欢迎光临图书馆管理系统 endl cout t t t t t 1 图 书 查 询 endl cout t t t t t 2 退 出 系 统 choice4 精品文档 44欢迎下载 switch choice4 case 1 cout t t t t t 1 按图书编号查找 endl cout t t t t t 2 按图书书名查找 endl cout t t t t t 3 按图书作者查找 endl cout t t t t t 4 按图书出版社查找 endl cout t t t t t 0 返 回 endl cout choice5 switch choice5 case 1 cout bookid b BookDB query1 bookid if b NULL cout 该图书不存在 break cout setw 6 编号 setw 18 书名 setw 10 作者 setw 10 出版社 setw 10 存量 disp break case 2 cout bname b BookDB query2 bname break case 3 cout auname b BookDB query3 auname break case 4 cout cname 精品文档 55欢迎下载 b BookDB query4 cname break case 0 break case 2 exit 1 case 2 BookDB song cout n n n cout t t t t t 欢迎光临图书馆管理系统 endl while choice5 0 cout n cout n t t t t t 图 书 管 理 系 统 n n cout t t t t t 1 图 书 信 息 endl cout t t t t t 2 读 者 信 息 endl cout t t t t t 3 借 阅 图 书 endl cout t t t t t 4 归 还 图 书 endl cout t t t t t 0 退 出 endl cout choice6 switch choice6 case 1 BookDB bookdata break case 2 ReaderDB readerdata break case 3 cout t t t t 借书操作 endl cout readerid 精品文档 66欢迎下载 r ReaderDB queryid readerid if NULL r 按编号查找是否有该读者 cout 不存在该读者 不能借书 endl break cout bookid b BookDB query1 bookid if b NULL 按编号查找是否有该图书 cout 不存在该图书 不能借书 borrowbook 0 cout 该图书已借完 不能借书 endl break cout 读者借书成功 borrowbook b getno break case 4 cout t t t t 还书操作 endl cout readerid r ReaderDB queryid readerid if r NULL cout 不存在该读者 不能还书 endl break cout bookid b BookDB query1 bookid if b NULL cout 不存在该图书 不能还书 retbook r retbook b getno break default break case 0 break default break 精品文档 88欢迎下载 三 设计思路 功能需求 设计一个通过链表实现对图书信息进行管理的程序 要求完成以下功能 1 建立图书库类 可以对图书的具体信息进行管理 例如 图书号 书名 及出版社 作者 册数 2 将输入信息按图书号进行从小到大的排序 3 实现查询功能 输入书名 查询输出相关信息 4 实现修改功能 修改图书信息 5 实现删除功能 输入书名或书号 可将其信息从图书库类中删除 6 建立读者库类 可以对读者的具体信息进行管理 例如 读者编号 姓 名 7 将输入信息按读者编号进行从小到大的排序 8 实现查询功能 输入读者编号或者姓名 查询输出相关信息 9 实现修改功能 修改读者信息 10 实现删除功能 输入读者名或读者编号号 可将其信息从读者库类中 删除 数据需求 需要向系统输入图书号 书名及出版社 作者 册数 图书位置 需要记录读者编号 姓名 班级 手机号 性能需求 在运行本程序时只要按照正确的操作方法不会出现无法运行的情况 系统 稳定性好 安全 可靠 精品文档 99欢迎下载 四 功能模块设计 根据分析整个系统主要划分为 4 个大类 4 个功能模块 分别执行要求中 的功能 该系统需要有图书信息管理 读者信息管理 图书借阅 图书归还等 1 图书类 class Book 模块中 可以实现对图书信息的描述 管理图书 的编号 书名 借出 归还等功能 2 图书库类 class BDatabase 模块中 实现对图书的新增 维护 删 除等功能 其中构造函数 BDatabase 实现对新增图书信息的录入 并自动 保存在 book txt 文件中 3 读者类 class Reader 模块中 对读者信息新增 借书 还书及读出 读者信息等功能 4 读者库类 class RDatabase 模块中 实现建立读者信息 删除读者 信息及查找读者 并将读者有关信息自动保存在 reader txt 文件中 5 除了图书类及读者类两大模块还有图书借阅功能 通过图书编号和读者 编号记录借出图书及相关信息且图书库中库存数量自动减一 6 图书归还功能通过读者编号及图书编号确认图书归还 精品文档 1010欢迎下载 五 流程图 图图 1 1 图书管理系统流程图图书管理系统流程图 图书管理系统 读 者 信 息 图 书 信 息 借 阅 系 统 归 还 系 统 图书信息 查 找 删 除 新 增 修 改 全 显 全 删 返 回 新 书 编 号 新 书 书 名 新 书 作 者 新 书 出 版 社 新 书 数 量 图 书 位 置 精品文档 1111欢迎下载 图图 2 2 图书信息管理流程图图书信息管理流程图 图图 3 3 图书信息流程图图书信息流程图 读者信息 查 找 删 除 新 增 修 改 全 显 全 删 返 回 姓 名 编 号 班 级 手 机 号 精品文档 1212欢迎下载 六 程序类的说明 6 1 图书类 该类实现对图书的描述 图书的编号 书名 借出 还入等功能 Book tag int no int name 20 char author 20 char cbs 20 char onshelf int getname char getauthorname char getcbsname char gettag void setonshelf int oa void delbook void addbook void borrowbook int retbook void disp void 四 个 类 图 书 类 图 书 库 类 读 者 类 读 者 库 类 精品文档 1313欢迎下载 getno int 6 2 图书库类 该类实现对图书的新增 维护 删除等功能 Database top int clear void addbook int query1 int bookid book query2 char a book query3 char a book query4 char a book bookdata void disp void 6 3 读者类 该类实现对读者信息新增 借书 还书及读出读者信息等功能 Reader 精品文档 1414欢迎下载 tag int no int name 10 char borbook Maxbor int getname char gettag int getno int setname char na void delbook void addreader int n char na void borrowbook int bookid void retbook int bookid int disp void 6 4 读者库类 该类实现建立读者信息 删除读者信息及查找读者 RDatabase top int read Maxr reader clear void addreader int n char na int queryid int readerid Reader queryname char readername 10 Reader disp void readerdata void 精品文档 1515欢迎下载 七 系统测试 一 运行 1 点击运行 点击运行 首先出现的是选择登陆界面 选择界面选项进行 操作 以管理员 读者的身份进入系统 可进行如图 7 1 所示的系统主界面 选择数字进入 退出系统 图图 7 17 1 选择登陆方式界面选择登陆方式界面 2 选择 1 进入读者模式 然后进入图书管理系统读者版 功能剪切版 精品文档 1616欢迎下载 可以选择图书查询或者退出系统 如图 7 2 所示图书信息页面 图图 7 27 2 图书信息页面图书信息页面 3 选择 1 进入图书查询 可以按照图书编号 作者 书名 出版社等方式 查找 如图 7 3 所示图书信息查询页面 图图 7 37 3 图书信息查询页面图书信息查询页面 4 输入 2 进入管理员模式 然后提示输入管理员密码 如图 7 4 所示管 理员登录页面 精品文档 1717欢迎下载 图图 7 47 4 管理员登录页面管理员登录页面 5 输入管理员密码后进入图书管理系统管理员模式 如图 7 5 所示管理员 模式页面 图图 7 57 5 管理员模式页面管理员模式页面 6 管理员模式图书信息管理功能 选择 1 进入图书信息管理页面 包括新增 更改 删除 查找 全删 全显 更改等功能 如图 7 6 所示图书信息管理页面 精品文档 1818欢迎下载 图图 7 67 6 图书信息管理页面图书信息管理页面 选择 1 进入新增图书页面 可以增加图书编 书名 作者 出版社 存量 图书位置等 如图 7 7 所示新增图书页面 图图 7 77 7 所示新增图书页面所示新增图书页面 图 7 6 所示图书信息管理页面除新增图书 还可以对图书存量进行更 改 还可以通过输入图书编号删除特定图书 通过图书编号 图书书名 图书 精品文档 1919欢迎下载 出版社 图书作者等对图书进行查找 如图 7 8 所示图书查询页面 图图 7 87 8 图书查询页面图书查询页面 7 管理员模式图书信息管理功能 选择 2 进入读者信息管理页面 包括新增 更改 删除 查找 全删 全显 更改等功能 如图 7 9 所示读者信息管理页面 图图 7 97 9 读者信息管理页面读者信息管理页面 选择 1 进入新增读者页面 可以增加图书编 书名 作者 出版社 精品文档 2020欢迎下载 存量 图书位置等 如图 7 10 所示新增读者页面 图图 7 107 10 新增读者页面新增读者页面 图 7 9 所示读者信息管理页面除新增读者 还可以对同编号读者信息 进行更改 通过输入读者编号删除读者 通过读者编号等对图书进行查找 8 管理员模式借阅图书功能 进入图书借阅系统后 通过管理员输入读者编号及所借书籍编号后即借书成 功 如图 7 11 所示借阅图书操作页面 图图 7 117 11 借阅图书操作页面借阅图书操作页面 精品文档 2121欢迎下载 9 管理员模式归还图书功能 输入读者编号和图书编号即归还成功 如图 7 12 所示归还图书操作页面 图图 7 127 12 归还图书操作页面归还图书操作页面 二 调试 调试是软件开发过程中的一个重要环节 也是最复杂 对软件开发者者来 说也是最艰巨的任务 调试的任务是及时改正测试过程中发现的软件错误 具 体地说 调试过程由两个步骤组成 它从表示程序中存在错误的某迹象开始 首先确定错误的准确位置 也就是找出哪个模块或哪个语句引起的错误 然后 仔细研究推断代码以确定问题的原因 并设法改正 调试过程主要是运行编制好的程序 然后遇到错误后根据系统的提示 找 到相关的问题所在 本系统调试过程中遇到问题 原因和解决方法如下面介绍 1 程序只能在当前运行时才能实现自动生成书籍信息 而关闭系统再次打 开添加新读者又从 0 开始与之前的读者重复 导致借还信息程序管理混乱 无 法正确运行 原因 在执行后系统没有记录当前的读者信息 因为读者信息自动按 1 2 3 4 依次递增生成系统 应该记录最后所生成的读者信息 在下次运行 程序时系统会接着上次记录的读者信息自动依次生成 2 运行完程序一次有错误提醒 原因 上次运行程序后没有关闭操作界面当点击编译时会有一个错误提示 解决方法 将上一次运行时的操作界面关闭 3 设计过程中的想法与程序中的不足 总的来说这个程序大致实现了题目的要求 但是这套程序仍然存在着很多 精品文档 2222欢迎下载 的问题与不足 比如 程序中主函数写的有点繁琐 有太多的嵌套 不是那么井 然有序 条理清晰 程序注释也不是很完善 对信息处理功能还有些不足之处 提示信息不明确 还有就是没能做到模糊查询 系统主要是参照课本商品信息管理系统模版编写的 同时也得到了老师和 同学的一些帮助 我在做系统的过程中也遇到了很多问题 有的是知识不足 有的是考虑不够周全 事实证明 只靠自己的知识面还是很窄 独立处理问题 能力不是很强 以后还要加强对 C 语言的学习 对于 C 语言编写的程序来说 使用方法大致都是一样的 如果要改进的 话 就是要改进一些算法 尽量把界面编写清楚 提示信息全面 方便易用 三 测试 软件测试是软件生存期中的一个重要阶段 是软件质量保证的关键步骤从 用户的角度来看 普遍希望通过软件测试暴露软件中隐藏的错误和缺陷 所以 软件测试应该是 为了发现错误而执行程序的过程 或者说 软件测试应该根 据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例 即 输入数据及其预期的输出结果 并利用这些测试用例去运行程序 以发现程序 错误或缺陷 过度测试则会浪费许多宝贵的资源 到测试后期 即使找到了错 误 然而付出了过高的代价 测试数据过程如下 1 新增图书功能测试 运行程序 输入数字 2 提示 输入管理员密码 输入密码进入图书管理系统管理 员模式 输入数字 1 进入图书管理功能页面 再输入数字 1 进行新增图书操作 新书编号 100001 新书书名 海底两万里 新书作者 儒勒 凡尔纳 新书数量 14 新书位置 外语文学馆 预期结果 数据输入到系统中 运行结果 出现新增图书菜单 精品文档 2323欢迎下载 说明 登陆功能实现 2 读者图书查询功能测试 运行后输入数字 1 进入读者模式 输入数字 1 进入图书查询功能 输入数字 1 通过图书编号查询图书 输入图书编号 100001 显示图书信息 图书编号 100001 图书书名 海底两万里 图书作者 儒勒 凡尔纳 图书数量 14 图书位置 外语文学馆 预期结果 数据输入到系统中 运行结果 出现图书信息 说明 图书查询功能实现 2 借书功能测试 3 还书功能测试 八 结论 C 语言程序设计课程顺利完成 任务书中所提出的要求全部实现 在这次 课程设计中 通过编写这个图书管理系统 体会到了 C 语言学习的实用性 将理论和实践结合在一起 用先进的计算机工具方便人们的生活 C 语言程序的编写首先要从大局考虑 把自己编写整个程序的思想都写在 草稿上 这样有助于自己编写程序 在编写时要完善注释 方便其他人理解程 序 编写的程序从理论上来说并没有错 但一上机就问题不断 甚至有些课本 上的知识照搬不变 也不能得到正确的结果 有时一个程序改了一遍又一遍 但就是不能成功 编程显得枯燥乏味 看似简单的程序题 在调试时却屡屡出 错 经反复的修改后 结果正确了 这时所有的乏味都显得那么无力 一切都 是值得的 开发一套系统 最重要的是细心 并且思考要全面 结合实际 充分考虑 到客户的需求和现实意义 不管什么系统 只用运用到实际应用中 才具有现 实意义 所以 C 语言程序的实用性很强 我们以后还要更加努力认真地学习 编程语言 精品文档 2424欢迎下载 九 致谢 课程设计是一个对本学期所学专业知识的一个总结 归纳 深化的过程 其中包含了我们需要时时加强的东西 诸如分析解决问题的能力 查阅文献的能力 统筹编辑的能力和总结经验 的能力等等 在设计期间 我们得到了指导老师的细心指导和关怀 对设计中遇见到的各种问题和疑惑 马老师都花费了大量的时间和精力一 一为我们解答 让我们在这个过程中对图书管理系统方面用到的函数及类结构知识的知识 有了一次新的深入和全面的提升 并能够将课本上所学的理论知识与 实际操作相结合 从而为以后工作运用打下基础 在此 谨向指导老师马 老师表示最衷心的感谢 在课程设计期间 同学的鼓励和支持也给了我们很大的帮助 在这里一同 表示感谢 没有你们的支持 帮助和鼓励 我们很难拿出一份最终的作品 当然 由于时间和知识水平所限 设计中不可避免会出现纰漏和错误 恳 请老师悉心指正 在此我们不胜感激 十 参考文献 1 谭浩强 程序设计 M 北京 北京大学出版社 1999 236 249 2 徐孝凯 魏荣 数据结构 M 机械工程出版社 1996 121 132 3 耿国华 数据结构 C 语言描述 M 北京 高等教育出版社 2008 248 253 4 杨路明 C 语言程序设计教程 M 北京 北京邮电大学出社 2005 170 186 5 伍俊良 C 课程设计与系统开发案例 清华大学出版社 2002 6 李建学 李光元 吴春芳 数据结构课程设计案例精编 清华大学出版社 2007 十一 附录 源程序 精品文档 2525欢迎下载 include iostream h include conio h include fstream h include iomanip h include string h include const int Maxr 100 最多的读者数 const int Maxb 100 最多的图书数 const int Maxbor 5 每位读者最多借的书 class Book 图书类 实现对图书的描述 图书的编号 书名 借出 还入等功能 private int tag 删除标记 1 已删 0 未删 int no 图书编号 char name 20 书名 char author 20 作者 char cbs 20 出版社 char weizhi1 40 int onshelf 是否再架 1 再架 2 已借 public Book char getname 获取书名 return name char getauthorname 获取作者名 return author char getcbsname 获取出版社名 return cbs int getno 获取图书编号 return no char getweizhi return weizhi1 精品文档 2626欢迎下载 int gettag 获取删除标记 return tag void setname char na 设置书名 strcpy name na void setonshelf int oa onshelf oa void delbook 删除图书 cout 删除成功 0 onshelf return 1 return 0 void retbook 还书操作 onshelf void disp 输出图书 cout setw 8 no setw 10 name setw 10 author setw 10 cbs setw 10 精品文档 2727欢迎下载 onshelf setw 15 weizhi1 endl class BDatabase 图书库类 实现对图书的维护 查找 删除等 private int top 图书记录指针 Book book Maxb 图书记录 public BDatabase 构造函数 将 book txt 读到 book 中 Book b top 1 fstream file book txt ios in while 1 file read char if file break top book top b file close void clear 全删 top 1 int addbook int n char na char aa char ca int oa char we 增加图书 Book p query1 n if NULL p top book top addbook n na aa ca oa we return 1 return 0 Book query1 int bookid 按编号查找图书 for int i 0 i top i 精品文档 2828欢迎下载 if book i getno bookid return NULL Book query2 char a 按书名查找图书 Book e int r 0 for int i 0 i top i if strcmp book i getname a 0 r if r 0 cout 找不到该书 endl return NULL Book query3 char a 按作者查找图书 Book e int r 0 for int i 0 i top i if strcmp book i getauthorname a 0 r if r 0 cout 找不到该书 endl 精品文档 2929欢迎下载 return NULL Book query4 char a 按出版社查找图书 Book e int r 0 for int i 0 i top i if strcmp book i getcbsname a 0 r if r 0 cout 找不到该书 endl return NULL void song int t char mima 15 mima123 char mima1 15 cout 请输入管理员密码 mima1 for int i 0 i 15 i if mima i mima1 i t 0 if t 0 cout 管理员密码输入错误 endl exit 1 void bookdata 图书库信息 void disp for int i 0 i top i 精品文档 3030欢迎下载 if book i gettag 0 book i disp BDatabase 析构函数 将 book 写到 book txt 文件中 fstream file book txt ios out for int i 0 i top i if book i gettag 0 file write char file close void BDatabase bookdata char choice3 char bname 40 char auname 40 char cname 40 char weizhi 40 char ch int choice4 int bookid int bookod int mm Book b while choice3 0 cout n t t t t t 图 书 信 息 n endl cout t t t t t 1 新 增 endl cout t t t t t 2 更 改 endl cout t t t t t 3 删 除 endl cout t t t t t 4 查 找 endl cout t t t t t 5 显 示 endl cout t t t t t 6 全 删 endl cout t t t t t 0 返 回 endl cout choice3 精品文档 3131欢迎下载 switch choice3 case 1 cout bookid b query1 bookid if b NULL cout 该编号已经存在 不能添加 endl break cout bname cout auname cout cname cout bookod cout weizhi addbook bookid bname auname cname bookod weizhi cout 添加图书成功 getch break case 2 cout bookid b query1 bookid if b NULL cout 该图书不存在 endl break cout 该图书的信息是 endl cout setw 8 编号 setw 10 书名 setw 10 作者 setw 10 出版社 setw 10 存量 setw 15 图书位置 disp 精品文档 3232欢迎下载 cout ch if ch y cout bookod b setonshelf bookod cout 修改图书成功 getch break case 3 cout bookid b query1 bookid if b NULL cout 该图书不存在 无法删除 delbook getch break case 4 cout t t t t t 1 按图书编号查找 endl cout t t t t t 2 按图书书名查找 endl cout t t t t t 3 按图书作者查找 endl cout t t t t t 4 按图书出版社查找 endl cout t t t t t 0 返 回 endl cout choice4 switch choice4 case 1 cout bookid b query1 bookid if b NULL 精品文档 3333欢迎下载 cout 该图书不存在 break cout setw 8 编号 setw 10 书名 setw 10 作者 setw 10 出版社 setw 10 存量 setw 15 图书位置 disp break case 2 cout bname b query2 bname break case 3 cout auname b query3 auname break case 4 cout cname b query4 cname break case 5 cout weizhi break case 0 break break case 5 if mm 1 cout 无图书信息 endl break 精品文档 3434欢迎下载 cout setw 8 编号 setw 10 书名 setw 10 作者 setw 10 出版社 setw 10 存量 setw 15 图书位置 endl disp getch break case 6 clear cout 全部删除成功 endl mm 1 break default break class Reader 读者的信息描述 private int tag 删除标记 1 表示已删 0 表示未删 int no 读者编号 char name 10 读者姓名 char class1 10 char phone 10 int borbook Maxbor 所借图书 public Reader char getname 获取姓名 return name char getclass 获取班级 return class1 char getphone 获取联系方式 精品文档 3535欢迎下载 return phone int gettag 获取删除标记 return tag int getno 获取读者编号 return no void setname char na 设置姓名 strcpy name na void delbook 设置删除标记 1 已删 0 未删 tag 1 void addreader int n char na char cl char ph 增加读者 tag 0 no n strcpy name na strcpy class1 cl strcpy phone ph for int i 0 i Maxbor i borbook i 0 void borrowbook int bookid 借书操作 for int i 0 i Maxbor i if borbook i 0 borbook i bookid return int retbook int bookid 还书操作 for int i 0 i Maxbor i if borbook i bookid borbook i 0 精品文档 3636欢迎下载 cout 还书成功 endl return 1 cout 未借该书 还书失败 endl return 0 void disp 读出读者信息 int have 0 int bz 0 cout setw 15 no setw 15 name setw 15 class1 setw 15 phone setw 15 for int i 0 i Maxbor i if borbook i 0 if bz 0 have 1 cout borbook i t t endl bz else cout r t t t t t borbook i t t setw 15 endl if have 0 cout t 还未借书 endl class RDatabase 读者类库 实现建立读者的个人资料 private int top 读者记录指针 Reader read Maxr 读者记录 public 精品文档 3737欢迎下载 RDatabase 构造函数 将 reader txt 读到 read 中 Reader s top 1 fstream file reader txt ios in 打开一个输入文件 while 1 file read char if file break top read top s file close 关闭 reader txt 文件 void clear 删除所有读者信息 top 1 int addreader int n char na char cl char ph 添加读者时先查找是否存在 Reader p queryid n if p NULL top read top addreader n na cl ph return 1 else cout 该编号已经存在 return 0 Reader queryid int readerid 按读者编号查找 for int i 0 i top i if read i getno readerid return NULL Reader queryname char readername 10 按读者姓名查找 精品文档 3838欢迎下载 for int i 0 i top i if strcmp read i getname readername 0 return NULL void disp 输出所有读者信息 for int i 0 i top i read i disp void readerdata 读者库信息 RDatabase 析构函数 将 read 写到 reader txt 文件中 fstream file reader txt ios out for int i 0 i top i if read i gettag 0 file write char file close void RDatabase readerdata char choice1 char rname 20 char rclass1 20 char rphone 20 int readerid char readername 10 int choice2 Reader r while choice1 0 cout n t t t t t 读 者 信 息 n endl cout t t t t t 1 新 增 endl cout t t t t t 2 更 改 endl cout t t t t t 3 删 除 endl 精品文档 3939欢迎下载 cout t t t t t 4 查 找 endl cout t t t t t 5 显 示 endl cout t t t t t 6 全 删 endl cout t t t t t 0 返 回 endl cout choice1 switch choice1 case 1 cout readerid cout rname cout rclass1 cout rphone addreader readerid rname rclass1 rphone cout 添加读者成功 endl getch break case 2 cout readerid r queryid readerid if r NULL cout 该读者不存在 endl break cout rname r setname rname cout rphone r setname rphone cout 修改读者成功 endl 精品文档 4040欢迎下载 getch break case 3 cout readerid r queryid readerid if r NULL cout 该读者不存在 delbook cout 删除成功 endl getch break case 4 cout t t t t t 1 按读者编号查找 endl cout t t t t t 2 按读者姓名查找 endl cout t t t t t 0 返 回 endl cout choice2 switch choice2 case 1 cout readerid r queryid readerid if r NULL cout 该读者不存在 endl break cout setw 10 读者编号 setw 15 读者姓名 setw 15 读 者班级 setw 15 读者手机号 setw 15 已借书编号 disp break case 2 cout readername r queryname readername if r NULL cout 该读者不存在 endl break cout setw 10 读者编号 setw 15 读者姓名 setw 15 读 者班级 setw 15 读者手机号 setw 15 已借书编号 disp break case 0 break break case 5 cout setw 10 读者编号 setw 15 读者姓名 setw 15 读 者班级 setw 15 读者手机号 setw 15 已借书编号 endl disp getch break case 6 clear break def
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- output-06-历史七年级下册期中试题
- 济宁市2024-2025学年八年级上学期语文月考模拟试卷
- 高铁安全知识培训课件考试
- 2025年度财务人员每周工作总结范文
- 高考家长会课件
- qpy考试题及答案
- pcba考试卷及答案
- 电缆研发知识培训课件
- 电焊知识与技能培训总结课件
- 电焊机安规知识培训内容课件
- 2025衡水学院教师招聘考试试题及答案
- 中国超级电容器隔膜纸行业市场竞争态势及发展趋向研判报告
- 施工现场临时用电方案-顶管-
- 外墙保温吊篮施工安全技术交底
- 体检科质量控制岗位职责
- GnRHa与hCG诱发排卵的比较
- 铁路工程线施工安全培训
- 高速公路安防工程施工方案
- 语文教研组活动内容
- 软件正版化培训
- 邮政邮件内部处理业务外包服务投标方案(技术方案)
评论
0/150
提交评论