Article Outline
1.6 书店程序
TOC
Collection Outline
1.6 书店程序
现在我们已经准备好完成书店程序了。我们需要从一个文件中读取销售记录,生成每本书的销售报告,显示售出册数、总销售额和平均售价。我们假定每个ISBN书号的所有 销售记录在文件中是聚在一起保存的。
我们的程序会将每个ISBN的所有数据合并起来,存入名为total的变量中。我们使用另一个名为trans的变量保存读取的每条销售记录。如果trans和total指向相同的ISBN,我们会更新total的值。否则,我们会打印total的值,并将其重置为刚刚读取的数据(trans):
#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item total; // 保存和的变量
// 读入第一条交易记录,并确保有数据可以处理
if (std::cin >> total)
{
Sales_item trans; // 保存下一条交易记录的变量
// 读入并处理剩余交易记录
while (std::cin >> trans)
if (total.isbn() == trans.isbn()) // 如果我们仍在处理相同的书
total += trans; // 更新总销售额
else
{
// 打印前一本书的结果
std::cout << total << std::endl;
total = trans; // total现在表示下一本书的销售额
}
std::cout << total << std::endl; // 打印最后一本书的结果
}
else
{
// 没有输入!警告读者
std::cout << "No data?!" << std::endl;
return -1; // 表示失败
}
return 0;
}