/*
struct Sales_data{
string bookNo;
unsigned units_sold=0;//销售数量
double revenue =0.0;//销售收入
};
练习7.3:向上述Sales_data类添加combine和isbn成员。
struct Sales_data{
string isbn() const { return bookNo; }
Sales_data& combine(const Sales_data&);
string bookNo;
unsigned units_sold=0;//销售数量
double revenue =0.0;//销售收入
};
Sales_data& Sales_data::combine(const Sales_data &rhs)
{
units_sold += rhs.units_sold;
revenue += rhs.revenue;
return *this;
}
*/
#include "TouWenJian_7.h"
int main()
{
Sales_data total;
double price_total;//单价
if(cin>>total.bookNo>>total.units_sold>>price_total){
total.revenue=total.units_sold*price_total;
Sales_data trans;
double price_trans;
while(cin>>trans.bookNo>>trans.units_sold>>price_trans){
trans.revenue=trans.units_sold*price_trans;
if(total.isbn()==trans.isbn()){
total.combine(trans);
}
else{
cout<<total.isbn()<<"\t"<<total.units_sold<<"\t"
<<total.revenue<<"\t\t"
<<total.revenue/total.units_sold<<"\t"
<<endl;
total=trans;//参考答案里的写法
/*********自己写的**************************************
total.bookNo=trans.bookNo;
total.units_sold=trans.units_sold;
total.revenue=trans.revenue;
***************************************************/
}
}
cout<<total.isbn()<<"\t"<<total.units_sold<<"\t"
<<total.revenue<<"\t\t"
<<total.revenue/total.units_sold<<"\t"
<<endl;
} else{
cerr << "No data?!" << endl;
return -1;
}
return 0;
}
C++Primer第五版第七章练习7.3
最新推荐文章于 2024-10-04 17:07:53 发布