练习7.1:使用2.6.1节练习定义的Sales_data类为1.6节(第21页)的交易处理程序编写一个新版本。
答案:见云盘程序 练习7.1.cpp。
练习7.1
/*
*练习7.1
*日期:2015/6/30
*问题描述:练习7.1:使用2.6.1节练习定义的Sales_data类为1.6节(第21页)的交易处理程序编写一个新版本。
*功能;使用一个定义的结构体来重写21页那个程序
*说明:这个程序我写的及其糟糕,只是为了能用Sales_data而写
*作者:Nick Feng
*邮箱:nickgreen23@163.com
*/
#include<iostream>
using namespace std;
struct Sales_data {
std::string bookNo;
unsigned units_sold = 0;
double revenue = 0.0;
};
int main()
{
Sales_data total;//保存下一条交易记录的变量
//读入第一条交易记录,并确保有数据可以处理
total.bookNo = "abcdefg";
total.revenue = 0.2;
total.units_sold = 10;
if (total.bookNo != ""){
Sales_data trans; //保存和的变量
//读入并处理剩余交易记录
trans.bookNo = "abcdefg";
trans.revenue = 0.2;
trans.units_sold = 10;
//如果我们仍在处理相同的书
if (total.bookNo == trans.bookNo)
total.units_sold += trans.units_sold;
//更新总销售额
else {
//打印前一本书的结果
std::cout << total.units_sold * total.revenue << std::endl;
total.units_sold = trans.units_sold;
//total现在表示下一本书的销售额
}
}
std::cout << total.units_sold * total.revenue << std::endl;
//打印最后一本书的结果
if(total.bookNo=="") {
//没有输入!警告读者
std::cerr << "No data?" << std::endl;
return -1; //表示失败
}
return 0;
}