#include<iostream>
#include<map>
#include<string>
using namespace std;
map<string,int> book;
class Book
{
private:
static int number;//借出书数量
static int all_price;//借出总价值
public:
void show()
{
if(book.empty()) cout<<"\n当前没有任何借出的书"<<endl;
else
{
cout<<"\n当前图书借出量为 "<<number<<endl
<<"输出借出的所有图书的名字和价格"<<endl;
map<string,int>::iterator p=book.begin();
for(p;p!=book.end();p++) cout<<p->first<<' '<<p->second<<endl;
cout<<"当前图书借出总价值为 "<<all_price<<endl;
}
}
void borrow()
{
cout<<"输入借出的书名和价格"<<endl;
string name;int price;
cin>>name>>price;
book.insert(pair<string,int>(name,price));
all_price+=price;
number++;
}
void restore()
{
while(true)
{
cout<<"输入归还的书名"<<endl;
string name;
cin>>name;
map<string,int>::iterator i=book.find(name);
if(i==book.end())
{
cout<<"查无此书,检查书名是否正确"<<endl;
continue;
}
else
{
cout<<"书名: "<<i->first<<" 归还成功"<<endl;
number--;
all_price-=i->second;
book.erase(i);
break;
}
}
}
};
int Book::number=0;
int Book::all_price=0;
int main()
{
Book test;
cout<<"借出几本书?"<<endl;
int t=0;
cin>>t;
while(t--){test.borrow();}
test.show();
cout<<"\n归还几本书?"<<endl;
cin>>t;
while(t--){test.restore();}
test.show();
}
运行结果:
借出几本书?
3
输入借出的书名和价格
三体 58
输入借出的书名和价格
细胞生命的礼赞 30
输入借出的书名和价格
百年孤独 20
当前图书借出量为 3
输出借出的所有图书的名字和价格
百年孤独 20
三体 58
细胞生命的礼赞 30
当前图书借出总价值为 108
归还几本书?
1
输入归还的书名
三体
书名: 三体 归还成功
当前图书借出量为 2
输出借出的所有图书的名字和价格
百年孤独 20
细胞生命的礼赞 30
当前图书借出总价值为 50
请按任意键继续. . .