C++实现图书管理系统的文件操作与类是什么
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要介绍"C++实现图书管理系统的文件操作与类是什么",在日常操作中,相信很多人在C++实现图书管理系统的文件操作与类是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2024年11月11日C++实现图书管理系统的文件操作与类是什么
这篇文章主要介绍"C++实现图书管理系统的文件操作与类是什么",在日常操作中,相信很多人在C++实现图书管理系统的文件操作与类是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++实现图书管理系统的文件操作与类是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
具体内容如下
(1)定义图书类;
(2)图书信息包括:书名name,价格price,库存num;
(3)可以查询、增加、删除、修改功能;
(4)使用文件保存及读取图书数据;
#includeusing namespace std;#include #define filename "booklist.txt"#include #include
#include class Book //创建Book类,存放图书信息{public: Book(string na=" ", int p=0, int n=0) { name = na; num = n; price = p; } void Show() { cout << "书名:" << std::left << setw(20) << name << std::right << setw(6) << "\t价格:" << price << "\t数量:" << num << endl; } void Set() { cout << "请输入书名:"; cin >> name; cout << "请输入价格:"; cin >> price; cout << "请输入数量:"; cin >> num; } void Addnum() { int n; cout << "请输入归还的数量:"; cin >> n; num += n; } void Borrownum() { int n; cout << "请输入借出的数量:"; cin >> n; num -= n; }public: string name; int price; int num;}; void menu(){ cout << "--------------------------------------欢迎进入图书管理系统--------------------------------------" << endl; cout << endl << "0 - 退出系统;" << "1 - 显示库存;" << "2 - 查询图书;" << "3 - 借阅图书;" << "4 - 归还图书;" << "5 - 增加图书;" << "6 - 删除图书;" << endl;} class Booklist //创建BookList类,数据成员有Book还有图书数量{public: void save() //新建图书的话保存数据,用app方式打开文件 { ofstream fout(filename, ios::app); list ::iterator it = BList.begin(); for (int i = 0; i < num-1; i++) //偏移迭代器,指向新加入的Book并写入文件 { it++; } for (; it != BList.end(); it++) { fout << (*it).name << ' ' << (*it).price << ' ' << (*it).num << '\n'; } fout.close(); } void resave() { ofstream fout(filename, ios::out); //重新写入数据,因为删除了某个元素 if (fout.is_open()) { for (list ::iterator it = BList.begin(); it != BList.end(); it++) { fout << (*it).name << ' ' << (*it).price << ' ' << (*it).num << '\n'; } } fout.close(); } void Show() { for (list ::iterator it = BList.begin(); it != BList.end(); it++) { (*it).Show(); } } void adddata() //添加数据 { Book B; B.Set(); BList.push_back(B); num++; } void start() //程序一开始读取文件里的数据 { string na; int n; int p; ifstream fin(filename, ios::in); if (fin.is_open()) { while (fin >> na >> p >> n) { Book B(na, p, n); BList.push_back(B); num++; } } fin.close(); } void increase() { cout << "请输入书名:" << endl; string n; cin >> n; for (list ::iterator it = BList.begin(); it != BList.end(); it++) { if ((*it).name == n) (*it).Addnum(); } resave(); } void decrease() { cout << "请输入书名:" << endl; string n; cin >> n; for (list ::iterator it = BList.begin(); it != BList.end(); it++) { if ((*it).name == n) (*it).Borrownum(); } resave(); } void FindBook() { string name; cin >> name; for (list ::iterator it = BList.begin(); it != BList.end(); it++) //遍历整个list,所以符合关键字的都会被找到 { int index = (*it).name.find(name); //如果没找到返回值是一个很大的数 if (index < (*it).name.length()) (*it).Show(); } } void DeleteBook() { string name; cout << "请输入书名:"; cin >> name; int i = 0; for (list ::iterator it = BList.begin(); it != BList.end();it++) { if ((*it).name == name) break; ++i; } list ::iterator it = BList.begin(); advance(it, i); BList.erase(it); --num; resave(); }public: list BList; int num = 0;}; int main(){ Booklist B1; B1.start(); while (1) { menu(); int key; cout << "请输入要进行的操作:"; cin >> key; switch (key) { case 0: return 0; break; case 1: B1.Show(); break; case 2: B1.FindBook(); break; case 3: B1.decrease(); break; case 4: B1.increase(); break; case 5: { B1.adddata(); B1.save(); break; } case 6: B1.DeleteBook(); break; } }}
到此,关于"C++实现图书管理系统的文件操作与类是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
图书
文件
系统
数据
管理系统
管理
C++
书名
学习
价格
信息
库存
数量
更多
帮助
查询
输入
实用
很大
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发的组织
网络安全的发历史
网络技术的论坛
西安驼小宝互联网科技有限公司
安卓扑克游戏软件开发
本机模拟服务器
mc服务器的指令
关于网络安全的发言
福建正规软件开发诚信推荐
陕西java软件开发培训
计算机和软件开发有限公司
服务器远控安全吗
邹平纺织软件开发公司
网络安全德育
深圳聚橙网络技术公司
县级融媒体网络安全规范
wind数据库怎么查薪酬吗
云服务器ftp权限设置方法
华南师范大学软件开发怎么样
皇室战争服务器传输数据
郑州购买ipfs服务器
世界科技院科技数据库
衡水软件开发招聘网
软件开发式设计策略
安徽瑞韬软件开发有限公司怎么样
网络安全和家庭教育读后感
黄浦区上门软件开发业务流程
金融会计收录数据库
自动追号软件开发
中国标准服务器