版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C++实现图书管理系统(文件操作与类)本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下
(1)定义图书类;
(2)图书信息包括:书名name,价格price,库存num;
(3)可以查询、增加、删除、修改功能;
(4)使用文件保存及读取图书数据;
#includeiostream
usingnamespacestd;
#includefstream
#definefilename"booklist.txt"
#includelist
#includecstring
#includeiomanip
classBook
//创建Book类,存放图书信息
public:
Book(stringna="",intp=0,intn=0)
{
name=na;
num=n;
price=p;
}
voidShow()
{
cout
"书名:"std::leftsetw(20)namestd::rightsetw(6)"\t价格:"price"\t数量:"numendl;
}
voidSet()
{
cout"请输入书名:";
cinname;
cout"请输入价格:";
cinprice;
cout"请输入数量:";
cinnum;
}
voidAddnum()
{
intn;
cout"请输入归还的数量:";
cinn;
num+=n;
}
voidBorrownum()
{
intn;
cout"请输入借出的数量:";
cinn;
num-=n;
}
public:
stringname;
intprice;
intnum;
voidmenu()
cout"--------------------------------------欢迎进入图书管理系统--------------------------------------"endl;
coutendl"0-退出系统;""1-显示库存;""2-查询图书;""3-借阅图书;""4-归还图书;""5-增加图书;""6-删除图书;"endl;
classBooklist
//创建BookList类,数据成员有Book还有图书数量
public:
voidsave()
//新建图书的话保存数据,用app方式打开文件
{
ofstreamfout(filename,ios::app);
listBook::iteratorit=BList.begin();
for(inti=0;inum-1;i++)
//偏移迭代器,指向新加入的Book并写入文件
{
it++;
}
for(;it!=BList.end();it++)
{
fout(*it).name''(*it).price''(*it).num'\n';
}
fout.close();
}
voidresave()
{
ofstreamfout(filename,ios::out);
//重新写入数据,因为删除了某个元素
if(fout.is_open())
{
for(listBook::iteratorit=BList.begin();it!=BList.end();it++)
{
fout(*it).name''(*it).price''(*it).num'\n';
}
}
fout.close();
}
voidShow()
{
for(listBook::iteratorit=BList.begin();it!=BList.end();it++)
{
(*it).Show();
}
}
voidadddata()
//添加数据
{
BookB;
B.Set();
BList.push_back(B);
num++;
}
voidstart()
//程序一开始读取文件里的数据
{
stringna;
intn;
intp;
ifstreamfin(filename,ios::in);
if(fin.is_open())
{
while(finnapn)
{
BookB(na,p,n);
BList.push_back(B);
num++;
}
}
fin.close();
}
voidincrease()
{
cout"请输入书名:"endl;
stringn;
cinn;
for(listBook::iteratorit=BList.begin();it!=BList.end();it++)
{
if((*it).name==n)
(*it).Addnum();
}
resave();
}
voiddecrease()
{
cout"请输入书名:"endl;
stringn;
cinn;
for(listBook::iteratorit=BList.begin();it!=BList.end();it++)
{
if((*it).name==n)
(*it).Borrownum();
}
resave();
}
voidFindBook()
{
stringname;
cinname;
for(listBook::iteratorit=BList.begin();it!=BList.end();it++)
//遍历整个list,所以符合关键字的都会被找到
{
intindex=(*it).name.find(name);
//如果没找到返回值是一个很大的数
if(index(*it).name.length())
(*it).Show();
}
}
voidDeleteBook()
{
stringname;
cout"请输入书名:";
cinname;
inti=0;
for(listBook::iteratorit=BList.begin();it!=BList.end();it++)
{
if((*it).name==name)
break;
++i;
}
listBook::iteratorit=BList.begin();
advance(it,i);
BList.erase(it);
--num;
resave();
}
public:
listBookBList;
intnum=0;
intmain()
BooklistB1;
B1.start();
while(1)
{
menu();
intkey;
cout"请输入要进行的操作:";
cinkey;
switch(key)
{
case0:
return0;
break;
case1:
B1.Show();
break;
case2:
B1.FindBook();
break;
case3:
B1.decrease();
break;
case4:
B1.increase();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江阴市人民医院医护人员招聘笔试参考题库及答案详解
- (2026年)病案管理制度
- (2026版)学校食堂采购询价管理制度
- 2026年上海市第一妇婴保健院西院医护人员招聘考试参考试题及答案详解
- 2026年江西省胸科医院医护人员招聘考试备考试题及答案详解
- 2026年聊城市中医院医护人员招聘笔试备考试题及答案详解
- 2026年中国人民解放军一八一医院医护人员招聘考试参考题库及答案详解
- 2026年重庆市大坪医院医护人员招聘考试备考试题及答案详解
- 2026年武汉大学人民医院东院医护人员招聘笔试备考试题及答案详解
- 2026年昆明市中医医院医护人员招聘笔试参考题库及答案详解
- 2025年江苏徐州市八年级地生会考真题试卷(含答案)
- 2026龙虾OpenClaw部署手册指南
- 红色强化红线意识促进安全生产模板
- 2026年高考物理全国一卷真题卷附答案
- 司美格鲁肽、替尔泊肽、玛仕度肽三种肠促胰素类减重药物的循证定位与临床选择策略
- 2026年强基哲学测试题及答案
- 2026年度青岛市市属事业单位公开遴选工作人员(51人)考试参考题库及答案解析
- 2026年防范非法集资宣传月题库
- 初中语文七年级上册第20课《狼》大单元视域下的深度学习教案
- 初中物理滑轮基础练习题及答案
- 2026年中小学教师的培训需求问题调研与分析报告
评论
0/150
提交评论