C++实现图书管理系统的文件操作与类是什么
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"C++实现图书管理系统的文件操作与类是什么",在日常操作中,相信很多人在C++实现图书管理系统的文件操作与类是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
《网络安全伴我行》演讲稿
企业的网络安全事故
java 读取服务器配置
大学项目数据库评分等级划分
重庆 聚牛网络技术支持
北邮网络技术研究院导师资料
湖南服务器电源专卖店
数据库模型与数据库的关系
sql数据库定时器
jsp连接数据库输出表格
.net服务器空间
软件开发要不要基础
连接用友u8数据库失败
数据库驱动类的名称哪儿看
北京中国网络技术有限公司
数据库系统设计例题
汉王人脸数据库
电信云堤网络安全防护服务
如何进入系统数据库
cs手机版服务器僵尸逃跑
串口通信服务器多少钱
网络服务器的温度
服务器上如何查看备份的容量
雷麦尔互联网科技公司
移动网络技术支持有哪些
电脑和服务器连不上网
四川省网络安全法案例
网络技术服务咨询什么价格
软件开发估算的价值体现在哪里
国道数据库简介