C++实现简单版图书管理系统_第1页
C++实现简单版图书管理系统_第2页
C++实现简单版图书管理系统_第3页
C++实现简单版图书管理系统_第4页
C++实现简单版图书管理系统_第5页
已阅读5页,还剩10页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论