C++实现图书管理系统的文件操作与类是什么
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要介绍"C++实现图书管理系统的文件操作与类是什么",在日常操作中,相信很多人在C++实现图书管理系统的文件操作与类是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2025年01月17日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安全错误
数据库的锁怎样保障安全
服务器存在木马文件
云服务器的管理用户名和密码
魔兽世界数据库大吗
sql服务器管理没启动
netty服务器参数优化
网络安全-技术与实践第3版
宁海嵌入式软件开发
马拉赞软件开发
安宁品牌软件开发价格走势
华为平板服务器连接情况异常
网络安全政策的满意度
大数据如何提高网络安全
数据库 分组查询
威锋网 互联网科技媒体
ifist服务器管理软件
网络安全工程师 年龄
notes 服务器
地理信息 软件开发 区别
瑞星网络企业版服务器端
软件开发室主任
西安5g软件开发培训学校
软件开发项目接洽平台
广西什么是网络技术分类推广
最快代理服务器
网络安全gre百度百科
普陀区app软件开发
网络安全设计培训
计算及网络技术机测
可视化智慧园区软件开发
方舟生存进化steam专用服务器