HOME/CPP Primer/

1.6 书店程序

Article Outline
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;   
}