




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#define DEBUG 0/宏定义 决定测试代码是否编译 0为不编译 非0则编译const char book_path20 = books.txt;const char reader_path20 = readers.txt;/文件读写声明void read_from_files_to_vector();void write_all_to_files();#if DEBUGvoid scan_readers() for(reader &s:readers) wcout s;#endifint main()/完成操作后需要在控制台按5中退出才会保存到文件wcin.imbue(china);wcout.imbue(china);read_from_files_to_vector();#if DEBUGcout size of readers = readers.size() endl;cout size of books = books.size() endl;scan_book();scan_readers();#endifstring password = 123456;/密码已改cout -欢迎使用中南大学网络在线图书系统-endl;/这里可以添加你们小组的名单或一些装饰的字符cout -请选择登录方式- endl;cout 1 管理员登陆 2读者登陆 a;cleanScreen();if (a = 1)string str;for (int j = 0; j = 4; j+)cout 请输入管理密码,你有 (4-j) 次机会 str;if (password = str)break;else cout 密码错误!请重新输入 endl;if (j = 4)return 0;cleanScreen();cout -欢迎来到图书管理系统- endl;cout 成功登陆!你有以下操作可供选择 endl;cout endl;/操作循环cout 1 浏览图书信息 endl;cout 2 图书信息修改 endl;cout 3 图书信息添加 endl;cout 4 图书信息删除 endl;cout 5 保存信息并退出系统 endl;cout -请选择操作选项编号- b;cleanScreen();while (b != 5) switch (b)case 1:scan_book(); break;case 2:modify_book(); break;case 3:add_book(); break;case 4:delete_book(); break;default:cout 输入错误,请重新输入; break;cout endl;cout -请进行下一次操作- endl;cout 1 浏览图书信息 endl;cout 2 图书信息修改 endl;cout 3 图书信息添加 endl;cout 4 图书信息删除 endl;cout 5 退出系统 endl;cout -请选择操作选项编号- b;cleanScreen();write_all_to_files();return 0;else if (a = 2)int readerIndex = 0;/记录读者下标/输入学号登陆cout -请输入学号- endl;wchar_t studentnumber20;for (int m = 0; m = 9; m+)cout 请输入学号,你有 (9-m) 次机会 studentnumber;int t;for (t = 0; t readers.size(); t+)if (wcscmp(studentnumber, readerst.cardnum) = 0)readerIndex = t;break;/判断跳出循环原因if (t readers.size()break;elsecout 登录账号不存在,请重新输入学号 endl;continue;if (m = 9)return 0;cleanScreen();cout -欢迎来到读者自助系统- endl;wcout L欢迎你, readersreaderI L!你有以下操作可供选择 endl;cout endl;/操作循环cout 1 图书浏览 endl;cout 2 图书查询 endl;cout 3 图书借阅 endl;cout 4 图书返还 endl;cout 5 退出系统 endl;cout -请选择操作选项- c;cleanScreen();while (c != 5)switch (c)case 1:scan_book(); break;case 2:search_book(); break;case 3:borrow_book(readerIndex); break;case 4:return_book(readerIndex); break;default:cout 输入错误!请重新输入 endl; break;cout endl;cout -请进行下一次操作- endl;cout 1 图书浏览 endl;cout 2 图书查询 endl;cout 3 图书借阅 endl;cout 4 图书返还 endl;cout 5 退出系统 endl;cout -请选择操作选项- c;cleanScreen();write_all_to_files();return 0;return 0;/main 函数结束/写入/读取文件void write_all_to_files() wofstream outfile;outfile.imbue(locale(chs);/写入书本文件outfile.open(book_path);outfile books.size() n;for (int i = 0; i books.size(); i+)outfile booksi;outfile.close();outfile.clear();/写入读者文件,由于程序中没有针对读者的删改(备用,将0改为1后即可编译这段代码)#if 0outfile.open(path:reader_path);outfile readers.size() n;for (int i = 0; i readers.size(); i+)outfile size;while (!infile.eof() & size != 0)infile bb;books.push_back(bb);size-;infile.close();infile.clear();/读取读者数据infile.open(reader_path);infile size;while (!infile.eof() & size != 0)infile rr;readers.push_back(rr);size-;infile.close();return;#include classes.hlocale china(chs);/use china character /*void printout_book(book &b) cout b.id n b.title n b.firstauthor n b.publisher n b.birthday n b.location n b.price n b.number endl;*/这个函数我用重载运算符 的函数代替了/对应全局变量的定义vector books;vector readers;/book重载操作符函数定义wistream& operator (wistream& in, book &b)cout 请输入书号 b.id;cout 请输入书名 b.title;cout 请输入作者名 b.firstauthor;cout 请输入出版社 b.publisher;cout 请输入印刷日期(年 月) b.birthday;cout 请输入所属类别 b.location;cout 请输入价格 b.price;cout 请输入数量 b.number;return in;wostream& operator(wostream& out, book &b)out b.id b.title b.firstauthor b.publisher b.birthday.year b.birthday.month b.location b.price b.number (wifstream& in, book &b)in b.id b.title b.firstauthor b.publisher b.birthday.year b.birthday.month b.location b.price b.number;return in;wofstream& operator(wofstream& out, book &b)out b.id b.title b.firstauthor b.publisher b.birthday b.location b.price b.number (wistream& in, reader &r)/由于没有对reader的操作,这个函数尚未被使用cout 请输入读者姓名 ;cout 请输入性别(男为,女为) r.s;cout 请输入卡号 r.cardnum;cout 请输入学位(学士为,硕士为,博士为) r.e;r.already = 0;/已借书本数默认为0return in;wostream& operator(wostream& out, reader &r)out r.cardnum ;out ;out r.s ;out r.e ;out r.already (wifstream& in, reader &r)in r.cardnum r.s r.e r.already;return in;wofstream& operator(wofstream& out, reader &r)out r.cardnum r.s r.e r.already n;return out;/main函数中调用定义void scan_book() /建立浏览函数for (int i = 0; i books.size(); i+)wcout booksi;void search_book() /建立搜索函数int g;cout *你有以下查询方式可供选择* endl;cout 1 按书名查询 endl;cout 2 按编号查询 endl;cout 3 按作者查询 endl;cout *请选择查询方式* g;switch (g)case 1:wchar_t name20;cout *请输入书名* name;for (int r = 0; r books.size(); r+)if (wcscmp(booksr.title, name) = 0)wcout booksr;return;cout 查无此书 endl;return;break;case 2:int str;cout *请输入图书编号* str;for (int l = 0; l books.size(); l+)if (booksl.id = str)wcout booksl;return;cout 查无此书 endl;return;break;case 3:wchar_t auth10;cout *请输入图书作者* auth;for (int p = 0; p books.size(); p+)if (wcscmp(booksp.firstauthor, auth) = 0)wcout booksp;return;cout 查无此书 endl;return;break;default:cout 查无此书 = 5)cout 抱歉,你的借书数已满,不可再借 endl;return;int log;cout *请输入要借出图书的登陆号* log;for (int i = 0; i 0)int y;cout 确认借出书籍吗?确认请输入1 取消请输入0 y;if (y = 1)cout 借阅成功!;-(booksi.number);+(readerst.already);return;else return;elsecout 图书已借完 endl;return;cout 图书不存在! endl;return;void return_book(int t) /建立还书函数int log; cout *请输入要归还的图书的登陆号* log;for (int i = 0; i books.size(); i+)if (log = booksi.id)cout 图书归还成功 endl;+booksi.number;-readerst.already;return;cout 图书不存在于本图书馆 无需归还! endl;return;void modify_book() /建立修改函数int log;cout *请输入要修改的图书编号*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家居用品佣金合同
- 餐厅合作入股合同范本
- 餐饮设备采购合同范本
- 酒水回收销售合同范本
- 上海窗帘加盟合同范本
- 道路绿化保养合同
- 焊接水管合同范本
- 管道拆装维修合同范本
- 光缆熔接施工合同范本
- 工业围挡租赁合同范本
- 急救护理学高职PPT完整全套教学课件
- AutoCAD计算机辅助设计标准教程(中职)PPT完整全套教学课件
- 安全生产费用使用范围及计量办法
- 肾脏疾病常见症状和诊疗
- 安全环保职业卫生消防题库及答案
- 数据中心负荷计算方法
- 金X绅士无双攻略
- 第八章 立体几何初步(章末复习) 高一数学 课件(人教A版2019必修第二册)
- GB/T 27518-2011西尼罗病毒病检测方法
- GB/T 26255-2022燃气用聚乙烯(PE)管道系统的钢塑转换管件
- GB/T 14202-1993铁矿石(烧结矿、球团矿)容积密度测定方法
评论
0/150
提交评论