




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 一些基本的功能 1 添加图书以及图书编号 2 能够实行基本的借书还还书的功能 3 删除图书信息等 include include include include 输入 输出文件流类 using namespace std const int Maxr 100 最多的读者 const int Maxb 100 最多的图书 const int Maxzf 5 每位读者最多借五本书 读者类 实现对读者的信息的描述 class Reader private int tag 删除标记 1 已删 0 未删 int no 读者编号 char name 10 读者姓名 int zfbook Maxzf 所借图书 public Reader char getname return name 获取姓名 int gettag return tag 获取删除标记 int getno return no 获取读者编号 void setname char na 设置姓名 strcpy name na 2 void delbook tag 1 设置删除标记 1 已删 0 未删 void addreader int n char na 增加读者 tag 0 no n strcpy name na for int i 0 i Maxzf i zfbook i 0 void zfrowbook int bookid 借书操作 for int i 0 i Maxzf i if zfbook i 0 zfbook i bookid return int retbook int bookid 还书操作 for int i 0 i Maxzf i if zfbook i bookid zfbook i 0 return 1 3 return 0 void disp 读出读者信息 cout setw 5 no setw 10 name 借书编号 for int i 0 i Maxzf i if zfbook i 0 cout zfbook i cout endl 读者类库 实现建立读者的个人资料 class RDatabase private int top 读者记录指针 Reader read Maxr 读者记录 public RDatabase 构造函数 将 reader txt 读到 read 中 Reader s top 1 fstream file reader txt ios in 打开一个输入文件 while 1 file read char 4 if file break top read top s file close 关闭 reader txt void clear 删除所有读者信息 top 1 int addreader int n char na 添加读者时先查找是否存在 Reader p query n if p NULL top read top addreader n na return 1 return 0 Reader query int readerid 按编号查找 for int i 0 i top i if read i getno readerid return NULL 5 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 choice char rname 20 int readerid Reader r while choice 0 cout n n t t t 读 者 维 护 n n n t t 1 新 增 n n t t 2 更 改 n n t t 3 删 除 n n t t 4 查 找 n n t t 5 显 示 n n t t 6 全 删 n n t t 0 退 出 choice switch choice case 1 cout readerid cout rname addreader readerid rname break case 2 cout readerid r query readerid if r NULL cout 该读者不存在 endl break cout rname r setname rname break case 3 cout readerid r query readerid if r NULL cout 该读者不存在 delbook break case 4 cout readerid 7 r query readerid if r NULL cout 该读者不存在 disp break case 5 disp break case 6 clear break default cout 输入错误 请从新输入 break 图书类 实现对图书的描述 图书的编号 书名 借出 还入等 class Book private int tag 删除标记 1 已删 0 未删 int no 图书编号 char name 20 书名 int onshelf 是否再架 1 再架 2 已借 public Book 8 char getname return name 获取姓名 int getno return no 获取图书编号 int gettag return tag 获取删除标记 void setname char na 设置书名 strcpy name na void delbook tag 1 删除图书 void addbook int n char na 增加图书 tag 0 no n strcpy name na onshelf 1 int zfrowbook 借书操作 if onshelf 1 onshelf 0 return 1 return 0 void retbook 还书操作 onshelf 1 void disp 输出图书 cout setw 6 no setw 18 name setw 10 onshelf 1 在架 已借 endl 9 图书库类 实现对图书的维护 查找 删除等 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 增加图书 10 Book p query n if NULL p top book top addbook n na return 1 return 0 Book query int bookid 查找图书 for int i 0 i top i if book i getno bookid return NULL void bookdata 图书库维护 void disp for int i 0 i top i 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 11 file close void BDatabase bookdata char choice char bname 40 int bookid Book b while choice 0 cout n n n t t t 图 书 维 护 endl endl cout t t1 新 增 n t t2 更 改 n t t3 删 除 n t t4 查 找 n t t5 显 示 n t t6 全 删 n t t0 退 出 choice switch choice case 1 cout 输入图书编号 bookid cout 输入图书书名 bname addbook bookid bname break case 2 cout 输入图书编号 bookid b query bookid if b NULL cout 该图书不存在 endl break 12 cout 输入新的书名 bname b setname bname break case 3 cout 读入图书编号 bookid b query bookid if b NULL cout 该图书不存在 delbook break case 4 cout 读入图书编号 bookid b query bookid if b NULL cout 该图书不存在 disp break case 5 disp break case 6 clear 13 break default cout 输入错误 请从新输入 main 函数的实现 程序的主界面的引导 void main char choice int bookid readerid RDatabase ReaderDB Reader r BDatabase BookDB Book b while choice 0 cout endl endl t t t 中 北 大 学 图 书 管 理 系 统 n n n cout t t t1 借 书 n n t t t2 还 书 n n t t t3 图 书 维 护 n n t t t4 读 者 维 护 n n t t t0 离 开 choice switch choice case 1 cout readerid cout bookid r ReaderDB query readerid 按编号查找 14 if NULL r cout 不存在该读者 不能借书 endl break b BookDB query bookid if b NULL cout 不存在该图书 不能借书 zfrowbook 0 cout 该图书已借出 不能借书 zfrowbook b getno break case 2 cout readerid cout bookid r ReaderDB query readerid if r NULL cout 不存在该读者 不能还书 endl break b BookDB query bookid if b NULL 15 cout 不存在该图书 不能还书 retbook r retbook b getno break case 3 BookDB bookdata break case 4 ReaderDB readerdata break default cout 输入错误 请从新输入 1 类的设计 Book 类的设计 Book Name strNum char number strNum char kind type char int tag int num int add Book getkind char getname char getnum int gettag int 16 setnumber char num void setname char na void setkind char kin void delbook void addbook int n char na char kin void disp void 1 数据成员 char name StrNum 用来存放书名 char number StrNum 用来存放图书的编号 char kind Type 用来存放图书的类型 int tag 定义删除标记 int num 定义图书编号为整形 int add 增加标记 2 函数成员 Book 无参构造函数 用于为书名和作者姓名设置默认值 char getkind 用于获取图书类型 char getname 用于获取书名 int getnum 用于获取图书编号 int gettag 用于获取删除标记 void setname char na 用于设置书名 void setkind char kin 用于设置类型 void delbook 用于删除图书 void addbook int n char na char kin 用于增加图书 void disp 用于输出图书 2 主程序的设计 1 函数的设计 class BDatabase 图书管理类的设置 实现对图书的添加 查找 删除等 int top 设置图书记录指针 Book book Maxb 设置图书记录 Maxb 定义为最多可存储的图书数 定义 为整形 void clear 清空图书记录 int addbook int n char na char kin 增加图书记录 Book query int bookid 查找图书记录 void bookdata 定义图书库 void disp 输出 BDatabase 设置析构函数 将 book 写到 book txt 文件中 void BDatabase bookdata 由此函数开始对图书管理系统的主菜单进行调 用与功能的实现 界面参看执行界面部分 最后用 main 函数的实现 程序的主界面的引导 3 源代码分析 17 define StrNum 20 define Type 20 include include include include 输入 输出文件流类 using namespace std const int Maxb 100 最多可存储的图书 class Book private int tag 删除标记 int num 图书编号 int add 增加标记 char number StrNum 编号 char name StrNum 书名 char kind Type 图书类型 public Book char getkind 获取图书类型 return kind Type char getname 获取书名 return name StrNum int getnum 获取图书编号 return num int gettag 获取删除标记 return tag void setname char na 设置书名 strcpy name na void setkind char kin 设置类型 strcpy kind kin 18 void delbook 删除图书 tag 1 void addbook int n char na char kin 增加图书 tag 0 num n strcpy name na strcpy kind kin void disp 输出图书 cout flags ios left 设置对齐的标志位为左 cout setw 15 num setw 20 name setw 15 kind 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 19 int addbook int n char na char kin 增加图书 Book p query n if NULL p top book top addbook n na kin return 1 return 0 Book query int bookid 查找图书 for int i 0 i top i if book i getnum bookid return NULL void bookdata 图书库 void disp for int i 0 i top i 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 choice char bname 40 char bkind 40 char newType 20 int bookid Book b 20 while choice 0 cout t n cout n n cout t t t 图 书 管 理 系 统 n n cout t t t1 新增图书记录 n cout t t t2 更改图书记录 n cout t t t3 删除图书记录 n cout t t t4 查找图书记录 n cout t t t5 显示图书记录 n cout t t t6 清空全部记录 慎用 n cout t t t0 退出系统 n cout n n cout t n cout choice switch choice case 1 cout 输入图书编号 bookid cout 输入图书类型 newType cout 输入图书书名 bname addbook bookid bname newType break case 2 cout 输入图书编号 bookid b query bookid if b NULL cout 该图书不存在 endl break cout 输入新的书名 bname b setname bname cout 输入新的类型 bkind 21 b setkind bkind break case 3 cout 读入图书编号 bookid b query bookid if b NULL cout 该图书不存在 endl break char tg1 cout 确定要删除此记录吗 Y N tg1 if tg1 n cout 已成功删除该书记录 endl break case 4 c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 锅炉环保知识培训内容课件
- 暖通工程方案-编制依据(3篇)
- 茶山废气治理工程方案(3篇)
- 深度解读2025年环保政策探究塑料制品行业市场调整与环保投资研究报告
- 保利置业工程迎检方案(3篇)
- 2025电子产品维修服务合同电子版
- 基因工程抗体导入方案(3篇)
- 2025【合同范本】设备采购补充合同范本
- 2025年社区心理健康服务心理健康社区服务心理健康社区宣传推广策略研究报告
- 2025年层状材料及层状硅酸盐项目规划申请报告
- 陕西省西工大附中2022-2023学年七年级上学期第一次月考英语试卷(含答案)
- 职业等级考评员培训课件
- 新型医药销售外包(CSO)企业制定与实施新质生产力项目商业计划书
- 2025至2030全球及中国细胞培养行业产业运行态势及投资规划深度研究报告
- 2025年《党政机关厉行节约反对浪费条例》应知应会测试考试题库
- 2025至2030中国煤制天然气行业发展趋势分析与未来投资战略咨询研究报告
- 社会组织制度管理制度
- 智能制造装备产业“十五五”发展规划公布
- 《小学教师专业发展》课件-第四章 教师的自我发展
- 企业ESG表现与其韧性之间的关联研究:以厚德方能行稳致远为视角的探索分析
- 2025-2030中国魔芋胶行业营销渠道与重点企业发展分析报告
评论
0/150
提交评论