分享
 
 
 

C++启蒙之用C++制作程序

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

上篇文章: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。为什么我们没有使用符合赋值操作符?

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有