版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C++实现简单版图书管理系统本文实例为大家分享了C++实现简单版图书管理系统的具体代码,供大家参考,具体内容如下
1、系统需求
图书管理系统是一个可以记录图书借记和存储的工具。
本教程主要利用C++来实现一个图书管理系统
系统中需要实现的功能如下:
添加书籍:向图书管理系统中添加新书,信息包括(书名、书的价格、书的编号)最多记录1000本
显示书籍:显示图书的所有书籍信息
书籍删除:按照书名进行删除指定书籍
查找书籍:按照姓名查看指定书籍信息
修改书籍:按照姓名重新修改指定书籍
清空书架:清空书架中所有信息
退出图书管理系统:退出当前使用的系统
2、菜单功能
功能描述:用户选择功能的界面
步骤:
封装函数显示该界面,如:voidmenu()
在main函数中调用封装好的函数
voidmean(){
cout"*************************"endl;
cout"*******1、加入图书********"endl;//OK
cout"*******2、按名删除图书*****"endl;//OK
cout"*******3、按名查找图书*****"endl;//OK
cout"*******4、清空图书架*******"endl;//OK
cout"*******5、修改图书名*******"endl;
cout"*******6、显示图书架*******"endl;//OK
cout"*******0、退出系统*********"endl;//OK
cout"**************************"endl;
}
3、退出功能
功能描述:退出通讯录系统
思路:根据用户不同的选择,进入不同的功能,可以选择switch分支结构,将整个架构进行搭建
当用户选择0的时候,执行退出,选择其他先不做操作,也不会退出程序
intoutSystem(){
cout"欢迎下次使用"endl;
return0;
}
4、添加联系人
功能描述:
实现添加书籍功能,书籍上限为1000人,联系人信息包括(书籍名称、书籍价格、书籍编号)
添加书籍实现步骤:
设计图书系统结构体
设计图书系统结构体
main函数中创建系统
封装添加书籍函数
测试添加图书功能
4.1设计书籍结构体
书籍信息包括:书籍姓名、书籍价格、书籍编号
voidaddBooks(Arraybooks*abs){
if(abs-length=MAX){
cout"书籍已满"endl;
}else{
stringname;
cout"请输入书籍的名字:"endl;
cinname;
abs-book[abs-length].name=name;
intprice;
cout"请输入书的价格:"endl;
cinprice;
abs-book[abs-length].price=price;
stringnum;
cout"请输入书的编号:"endl;
cinnum;
abs-book[abs-length].number=num;
abs-length++;
cout"添加成功"endl;
}
}
5、显示书籍
功能描述:显示图书系统中已有的书籍信息
显示图书实现步骤:
封装显示图书函数
测试显示图书功能
voidshowbooks(Arraybooks*abs){
if(abs-length==0){
cout"书架为空"endl;
}else{
for(inti=0;iabs-length;++i){
cout"书籍名字:"abs-book[i].name"\t";
cout"书籍价格:"abs-book[i].price"\t";
cout"书籍编号:"abs-book[i].numberendl;
}
}
}
6、删除图书
实现步骤:
1、封装检测图书是否存在
2、封装删除图书函数
3、测试删除图书功能
6.1封装检测图书是否存在
设计思路:
删除图书前,我们需要先判断图书是否存在,如果存在删除,不存在提示图书系统没有要删除的书籍,因此我们可以把检测联系人是否存在封装成一个函数中,如果存在,返回联系人在图书系统中的位置,不存在返回-1。
intisExist(Arraybooks*abs,stringname){
for(inti=0;iabs-length;++i){
if(abs-book[i].name==name){
returni;
}
}
return-1;
}
6.2封装删除图书函数
根据用户输入的图书名判断该系统中是否有此书
查找到进行删除,并提示删除成功
查不到提示查无此书
voiddalateBooks(Arraybooks*abs){
cout"请输入你要删除的书籍"endl;
stringname;
cinname;
intret=isExist(abs,name);
if(ret!=-1){
for(inti=0;iabs-length;i++){
abs-book[i].name=abs-book[i+1].name;
abs-length--;
}
cout"删除成功"endl;
}else{
cout"查无此书"endl;
}
}
7、查找书籍
功能描述:按照姓名查看指定书籍信息
查找书籍实现步骤
1、封装查找书籍函数
2、测试查找指定书籍
7.1封装查找书籍函数
实现思路:判断用户指定的书籍是否存在,如果存在显示信息,不存在则提示查无此书。
voidCheckBook(Arraybooks*abs){
cout"输入你要查找的书籍"
endl;
stringname;
cinname;
intret=isExist(abs,name);
if(ret!=-1){
cout"书名为:"abs-book[ret].name"\t";
cout"书价格为:"abs-book[ret].price"\t";
cout"书编号为:"abs-book[ret].numberendl;
}
else{
cout"查无此书"endl;
}
}
8、修改书籍
功能描述:按照姓名重新修改指定书籍
修改书籍实现步骤
1、封装修改书籍函数
2、测试修改书籍功能
8.1封装修改书籍函数
实现思路:查找用户输入的书籍,如果查找成功进行修改操作,查找失败提示查无此书。
voidchangebooks(Arraybooks*abs){
cout"输入你要修改的图书"endl;
stringname;
cinname;
intret=isExist(abs,name);
if(ret!=-1){
cout"请输入名字:"endl;
stringname;
cinname;
abs-book[ret].name=name;
cout"请输入价格:"endl;
intprice;
cinprice;
abs-book[ret].price=price;
cout"请输入编号:"endl;
stringnum;
cinnum;
abs-book[ret].number=num;
}else{
cout"查无此书"endl;
}
}
9、清空书籍
功能描述:清空书籍中所有信息
清空书籍实现步骤
1、封装清空书籍函数
2、测试清空书籍
9.1封装清空书籍函数
实现思路:将书籍所有书籍信息清楚掉,只要将图书管理系统记录的书籍数量置为0,做逻辑清空即可。
voidcleanbooks(Arraybooks*abs){
abs-length=0;
cout"清理完成"endl;
}
完整代码
#includeiostream
#includestring
usingnamespacestd;
#defineMAX1000
structPerson{
stringname;
intprice;
stringnumber;
structArraybooks{
structPersonbook[MAX];
intlength;
voidmean();
intoutSystem();
voidaddBooks(Arraybooks*abs);
voiddalateBooks(Arraybooks*abs);
intisExist(Arraybooks*abs,stringname);
voidCheckBook(Arraybooks*abs);
voidcleanbooks(Arraybooks*abs);
voidshowbooks(Arraybooks*abs);
voidchangebooks(Arraybooks*abs);
intmain(){
intx;
Arraybooksabs;
abs.length=0;
while(true){
mean();
cinx;
switch(x){
case1:
addBooks(abs);
break;
case2:
dalateBooks(abs);
break;
case3:
CheckBook(abs);
break;
case4:
cleanbooks(abs);
break;
case5:
changebooks(abs);
break;
case6:
showbooks(abs);
break;
case0:
outSystem();
break;
}
}
return0;
voidaddBooks(Arraybooks*abs){
if(abs-length=MAX){
cout"书籍已满"endl;
}else{
stringname;
cout"请输入书籍的名字:"endl;
cinname;
abs-book[abs-length].name=name;
intprice;
cout"请输入书的价格:"endl;
cinprice;
abs-book[abs-length].price=price;
stringnum;
cout"请输入书的编号:"endl;
cinnum;
abs-book[abs-length].number=num;
abs-length++;
cout"添加成功"endl;
}
}
intisExist(Arraybooks*abs,stringname){
for(inti=0;iabs-length;++i){
if(abs-book[i].name==name){
returni;
}
}
return-1;
voiddalateBooks(Arraybooks*abs){
cout"请输入你要删除的书籍"endl;
stringname;
cinname;
intret=isExist(abs,name);
if(ret!=-1){
for(inti=0;iabs-length;i++){
abs-book[i].name=abs-book[i+1].name;
abs-length--;
}
cout"删除成功"endl;
}else{
cout"查无此书"endl;
}
voidCheckBook(Arraybooks*abs){
cout"输入你要查找的书籍"
endl;
stringname;
cinname;
intret=isExist(abs,name);
if(ret!=-1){
cout"书名为:"abs-book[ret].name"\t";
cout"书价格为:"abs-book[ret].price"\t";
cout"书编号为:"abs-book[ret].numberendl;
}
else{
cout"查无此书"endl;
}
voidcleanbooks(Arraybooks*abs){
abs-length=0;
cout"清理完成"endl;
voidchangebooks(Arraybooks*abs){
cout"输入你要修改的图书"endl;
stringname;
cinname;
intret=isExist(abs,name);
if(ret!=-1){
cout"请输入名字:"endl;
stringname;
cinname;
abs-book[ret].name=name;
cout"请输入价格:"endl;
intprice;
cinprice;
abs-book[ret].price=price;
cout"请输入编号:"endl;
stringnum;
cinnum;
abs-book[ret].number=num;
}else{
cout"查无此书"endl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 事业单位法律岗面试易错题题库试卷及参考答案2026
- 事业单位法律岗面试高频考题题库试卷及参考答案
- 2027年备考会计基础 【零基础学员必练】全真模拟考试试题卷含答案
- 2027年备考会计基础 【零基础学员必练】通关提分题库及完整答案
- 2026年湖南生物机电职业技术学院高职单招笔试职业适应性测验历年参考题库含答案解析
- 2026年湖南外贸职业学院高职单招笔试语文历年参考题库含答案解析
- 2026年渤海理工职业学院高职单招笔试英语历年参考题库含答案解析
- 2026年海南外国语职业学院高职单招笔试综合素质历年参考题库含答案解析
- 2026年河北劳动关系职业学院高职单招笔试职业技能测验历年参考题库含答案解析
- 2026年江西财经职业学院高职单招笔试数学历年参考题库含答案解析
- 人教版四年级(上)英语1-6单元语法专项训练
- 2026年高级园林绿化工职业技能鉴定理论考试题库及答案
- 第6课 人民当家作主 第1课时 课件(内嵌视频)2026-2027学年道德与法治五年级上册统编版
- 2026年初级车险理赔试题及答案
- 光伏发电并网工程接入系统设计方案
- 《新能源汽车电工电子技术》课程标准
- 中医胆囊结石护理要点说课
- 2026中国机床检测市场投资前景研究与可持续发展规划研究报告
- 2026年医疗器械基础知识培训资料
- 2026北京市公安局监所管理总队招聘勤务辅警300人考试参考题库及答案解析
- 环境工程学就业前景分析
评论
0/150
提交评论