<b>C++发蒙之用C++制作程序</b>[VC/C++编程]
本文“<b>C++发蒙之用C++制作程序</b>[VC/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.为什么我们没有利用符合赋值操作符?
以上是“<b>C++发蒙之用C++制作程序</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |