/*c++程序设计:图书管理系统
要求:实现一个小型的图书管理系统。具体功能如下所示:
1、 图书管理:包括新增图书、图书查询以及图书的删除等。
新增图书:当新增加图书时,判断现书库中是否有此书。若有,则修改库存信息,若没有,则添加。
图书查询:可以按照图书编号,书名或作者查询
删除图书:输入编号,将图书相关信息删除
2、 借书:要求读者提供书目号,每位读者限借5本,执行后修改图书信息
3、 还书:输入读者的姓名,所还图书的编号,执行后修改相关信息
4、 显示:输出全部图书和全部读者信息
5、 读者管理:增加和删除读者信息*/
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
class Date //定义日期类
{
public:
void set_date(); //设置日期
void show_date(); //显示日期
int year;
int mouth;
int day;
};
void Date:: set_date()
{
cout<<"输入year mouth day:";
cin>>year>>mouth>>day;
bool teap=true;
while(teap==true)
{
if(year>2020||mouth>12||mouth<0||day<0||day>31)//默认输入年必须在2020年以前
{
cout<<"\t您的输入有错误!请重新输入!\n";
cout<<"输入year mouth day:";
cin>>year>>mouth>>day;
}
else teap=false;
}
}
void Date:: show_date()
{
cout<<year<<'/'<<mouth<<'/'<<day;
}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
class books //定义图书类
{
public:
void get_books(); //录入图书信息
void display(); //显示图书的信息
void display2(); //显示图书的信息
void chang_sum1(); //借书修改
void chang_sum2();//还书修改
void chang_sum3();//增加图书修改
void chang_sum4();//删除图书修改
void name_show(); //根据书名查询某本图书的信息
int sum; //库存量
Date date; //日期
string name;
private:
string num; // 书号
string serial_num; //编号
string pub_comp; //出版社
string Author; // 作者
float price;
};
books book[200];
int t=0; //定义全局变量t累计书的种类
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
void books::get_books() //录入图书信息
{
//cout<<"书名:";
//cin>>name;
cout<<"\n书号(出版序列号):";
cin>>num;
cout<<"\n编号:";
cin>>serial_num;
cout<<"\n出版社:";
cin>>pub_comp;
cout<<"\n作者:";
cin>>Author;
cout<<"\n定价:";
cin>>price;
//cout<<"\n库存量:";
//cin>>sum;
cout<<"\n出版日期:";
date.set_date();
}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
void books::display()//显示图书的信息
{
cout<<"书名"<<setw(10)<<"书号"<<setw(10)<<"编号"<<setw(10)<<"出版社"
<<setw(10)<<"作者"<<setw(10)<<"定价"<<setw(10)<<"库存量"<<setw(10)
<<"出版日期\n";
cout<<name<<setw(10)<<num<<setw(10)<<serial_num
<<setw(10)<<pub_comp<<setw(10)<<Author<<setw(10)<<price
<<setw(10)<<sum<<" ";
date.show_date();
cout<<endl;
}
void books::display2()//显示图书的信息
{
cout<<name<<setw(10)<<num<<setw(10)<<serial_num
<<setw(10)<<pub_comp<<setw(10)<<Author<<setw(10)<<price
<<setw(10)<<sum<<" ";
date.show_date();
cout<<endl;
}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
void books::chang_sum1()//借书修改
{
int a;
cout<<endl<<name<<"原库存量:"<<sum<<"\n\n";
cout<<"借书数量:";
cin>>a;
if(a>5){
cout<<"每人最多借5本。请重新输入:";
cin>>a;
}
sum=sum-a;
cout<<endl<<name<<"现在库存量:"<<sum<<"\n\n";
}
void books::chang_sum2()//还书修改
{
int a;
cout<<endl<<name<<"原库存量:"<<sum<<"\n\n";
cout<<"还书数量:";
cin>>a;
sum=sum+a;
cout<<endl<<name<<"现在库存量:"<<sum<<"\n\n";
}
void books::chang_sum3()//增加图书修改
{
int a;
cout<<endl<<name<<"原库存量:"<<sum<<"\n\n";
cout<<"增加图书数量:";
cin>>a;
sum=sum+a;
cout<<endl<<name<<"现在库存量:"<<sum<<"\n\n";
}
void books::chang_sum4()//删除图书修改
{
int a;
cout<<endl<<name<<"原库存量:"<<sum<<"\n\n";
cout<<"删除图书数量:";
cin>>a;
sum=sum-a;
cout<<endl<<name<<"现在库存量:"<<sum<<"\n\n";
}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
void get_in() // 新增图书函数
{
int i=1;
char c; string name;
cout<<"\t输入图书信息\n";
// book[t].get_books(); //录入图书信息
while(i!=0)
{
cout<<"书名:";
cin>>name;
i++;
t=t+i-1;
int a=0;
//book[i].get_books(); //录入图书信息
for(int j=1;j<i;j++){
if(name==book[j].name){
book[j].chang_sum3();
book[j].name=name;
j=i+1;
a=1;
}
}
if(a==0){
book[i].get_books();
book[i].name=name;
cout<<"\n输入增加图书数量:";
cin>>book[i].sum;
cout<<"\n";
}
cout<<"要继续录入请按任意键,否则按n键退出录入!\n";
cin>>c;
if(c=='n'||c=='N')
i=0;
}
}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
void serchbook()//根据书名查询某本图书的信息
{
cout<<"\t查询图书信息\n";
string nam;
int k=0;
cout<<"\t\n输入你要查询书的书名:";
cin>>nam;
for(int i=1;i<t+1;i++)
{
if(book[i].name ==nam){
book[i].display();
i=t+1;
}
else k++;
}
if(k==t)
{
k=0;
cout<<"\t没找到与你的输入对应的书名!\n";
}
int c=1;
char ch;
while(c==1)
{
cout<<"\n\t请按任意键继续查询,否则按n键退出!\n";
cin>>ch;
if(ch=='n'||ch=='N')
c=-1;
else
{
cout<<"\t输入你要查询书的书名:";
cin>>nam;
for(int i=0;i<t+1;i++)
{
if(book[i].name ==nam)
book[i].display();
else k++;
}
if(k==t)
{
k=0;
cout<<"\t没找到与你的输入对应的书名!\n";
}
}
}
}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
void deletebook()//删除图书
{
string na;
int k=0;
cout<<"\t删除图书信息\n\n";
cout<<"您要删除的书的书名是:";
cin>>na;
for(int i=1;i<t+1;i++)
{
if(book[i].name==na)
book[i].chang_sum4();
else k++;
}
if(k==t)
{
k=0;
cout<<"\t没找到与你的输入对应的书名!\n";
}
k=0;
int c=1;
char ch;
while(c==1)
{
cout<<"\t请按任意键继续删除,否则按n键退出!\n";
cin>>ch;
if(ch=='n'||ch=='N')
c=-1;
else
{
cout<<"您要修改库存量的书名是:";
cin>>na;
for(i=1;i<t+1;i++)
{
if(book[i].name==na)
book[i].chang_sum1();
else k++;
}
if(k==t)
{
k=0;
cout<<"\t没找到与你的输入对应的书名!\n";
}
}
}
}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
void bookmanage()
{
int c;
bool tp=1;
while(tp==1)
{
cout<<"\n\t图书管理\n\n"
<<"\t1.新增图书\n\n"
<<"\t2.图书查询\n\n"
<<"\t3.删除图书\n\n"
<<"\t4.返回\n\n"
<<"请选择(1,2,3,4):";
cin>>c;
cout<<"\n你选择了"<<c<<"操作!\n\n";
switch(c) {
case 1: get_in();tp=1;break;
case 2: serchbook();tp=1;break;
case 3: deletebook();tp=1;break;
case 4:tp=0;cout<<"\t已退出图书管理!";break;
default: cout<<"\n\n\t错误选择!\n";tp=1;break;
}
}
}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
void borrow() //借书
{
string na;
int k=0;
cout<<"\t借书\n\n";
cout<<"您要借的书的书名是:";
cin>>na;
for(int i=1;i<t+1;i++)
{
if(book[i].name==na){
book[i].chang_sum1();
i=t+1;
}
else k++;
}
if(k==t)
{
k=0;
cout<<"\t没找到与你的输入对应的书名!\n";
}
k=0;
int c=1;
char ch;
while(c==1)
{
cout<<"\t请按任意键继续修改,否则按n键退出!\n";
cin>>ch;
if(ch=='n'||ch=='N')
c=-1;
else
{
cout<<"您要修改库存量的书名是:";
cin>>na;
for(i=1;i<t+1;i++)
{
if(book[i].name==na)
book[i].chang_sum1();
else k++;
}
if(k==t)
{
k=0;
cout<<"\t没找到与你的输入对应的书名!\n";
}
}
C++图书管理系统(包括源码,论文,以及演示的PPT)
5星 · 超过95%的资源 需积分: 32 164 浏览量
2010-03-28
12:52:12
上传
评论 20
收藏 1.09MB RAR 举报
One-_-Piece
- 粉丝: 26
- 资源: 6
最新资源
- CVE-2019-0708漏洞检测与利用工具
- STM32单片机FPGA毕设电路原理论文报告利用c8051f020系列单片机实现智能仪器开发
- STM32单片机FPGA毕设电路原理论文报告利用8位单片机实现与Internet网络通信应用研究
- STM32单片机FPGA毕设电路原理论文报告利用80C196单片机测量三相异步电动机功率因数
- STM32单片机FPGA毕设电路原理论文报告力学传感器与单片机的接口设计
- p107-u07FLT2.wav
- STM32单片机FPGA毕设电路原理论文报告雷达幅频特性测试仪的智能化研究
- STM32单片机FPGA毕设电路原理论文报告可组网电子温湿度测量仪的设计与实现
- STM32单片机FPGA毕设电路原理论文报告可在单片机上实现的语音混沌保密通信方法
- STM32单片机FPGA毕设电路原理论文报告可实现的基于MCS51单片机的恒温控制系统的设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
- 6
前往页