C++启蒙之用C++建造措施
当前位置:以往代写 > C/C++ 教程 >C++启蒙之用C++建造措施
2019-06-13

C++启蒙之用C++建造措施

C++启蒙之用C++建造措施

此刻我们已包办理了原始的书店问题了:我们必需读取销售记录文件并生成一个陈诉,显示出每本书的总共收入、平均售价和销售数量。

操练24:

编写一个措施来读取几个事务记录。对付每个新读取的事务记录,检测它的ISBN是否与前面的沟通,计较每个ISBN有几多个事务记录。通过给出几条事务记录来测试这个措施。这些事务应该有多个ISBN,可是每个ISBN的记录应该荟萃在一起。

我们假设某个给定的ISBN的所有事务记录是在一起呈现的。我们的措施将把每个ISBN的数据组合到Sales_item工具total中。我们从尺度输入中读取的每个事务都被生存在第二个Sales_item工具trans中。每次读取新事务的时候,我们城市把它与total中的Sales_item工具较量。假如两个工具的ISBN沟通,我们就更新total。不然我们就打印total中的值,并把它配置为适才读取的事务记录的值。

#include <iostream>
#include "Sales_item.h"
int main()
{
 // 界说变量来生存举办中的和与下一个记录
 Sales_item total, trans;
 // 需要处理惩罚数据吗?
 if (std::cin >> total) {
  // 是的,读取事务记录
  while (std::cin >> trans)
   if (total.same_isbn(trans))
    // 匹配,更新total
    total = total + trans;
   else {
    // 不匹配,打印和赋值
    std::cout << total << std::endl;
    total = trans;
   }
   // 记得打印最后的记录
   std::cout << total << std::endl;
 } else {
  // 没有输入!提示用户
  std::cout << "No data?!" << std::endl;
  return -1; // 暗示失败
 }
 return 0;
}

这个措施是我们到今朝为止见到的最巨大的一个,可是它只利用了我们已经碰着的一些东西。像凡是一样,我们开始包括了尺度类库中的iostream和本身的类中的Sales_item.h头文件。

在main中我们界说了所需要的工具:total用于统计给定ISBN的数据和,trans将生存我们读取的事务记录。我们先把一个事务读入total中并测试读取是否乐成。假如读取失败了,那么就没有记录了,我们跳到最外面的else分支,打印一条动静告诫用户没有输入信息。

假设乐成地读取了一笔记录,我们将执行if分支中的代码。第一个语句是while,它将在所有剩余的记录中举办轮回。与前面的例子中的操纵雷同,我们的while条件从尺度的输入中读取值并测试是否读取了有效的数据。在例子中,我们把Sales_item工具读入trans。只要读取乐成,我们就执行while的主体。

While的主体是一个if语句。我们测试两个ISBN是否沟通,假如沟通,我们就把两个工具相加并把功效存储在total中。假如ISBN差异,我们就打印出total中存储的值并把trans赋给total。在执行if之后,我们返回while条件,读取下一个事务记录,直到读完记录。

一旦while完成了,我们仍然必需写出与最后的ISBN关联的数据。当while竣事的时候,total包括了文件中最后的ISBN,可是我们没有时机打印它。我们在最后的语句代码块实现这个成果,它包括了最外面的if语句。

操练25:

利用Web站点中的Sales_item.h头文件,编译和执行这一部门中的书店措施。

操练26:

在书店措施中我们利用了加操纵符而没有利用切合赋值操纵符把trans加上total。为什么我们没有利用切合赋值操纵符?

    关键字:

在线提交作业