写在前面
内容主要是自己写,遇到瓶颈时可能会参考一下git-hub上的标准答案,特此说明,请大家尊重知识产权。
第一章 开始
练习1.1~1.21
题目比较简单,就不说了。
练习1.22
题干
编写程序,读取多个具有相同 ISBN 的销售记录,输出所有记录的和。
分析
- 有多条消息纪录,且没说有多少条,可以采用while实现不定量数据读取;
- 除了定义类型时和书本前面的例题不同外,其余区别不大;
- 有一点需要注意的是需要先读入一条纪录,否则输出会缺少ISBN;
源代码
#include <iostream>
#include "Sales_item.h"
using namespace std;
int main(){
Sales_item item,sum;
cin >> sum; //先读入一条纪录
while(cin >> item){
//不定量数据的读入
sum = sum + item; //求和
}
cout << sum; //输出
return 0;
}
练习 1.23/1.24
题干
1.23 编写程序,读取多条销售记录,并统计每个 ISBN(每本书)有几条销售记录。
1.24 输入表示多个 ISBN 的多条销售记录来测试上一个程序,每个 ISBN 的记录应该聚在一起。
分析
- 1.23题目中没有说清楚 ,相同的ISBN是否是连续的?以我的理解应该是连续的,否则要用到更复杂的知识;
- 可以参考书本前面的例题,区别不大;
源代码
#include <iostream>
#include "Sales_item.h"
using namespace std;
int main(){
Sales_item item1,item2;
int sum=1;
cin >> item1; //读入第一条纪录
while(cin >> item2){
//读入下一条纪录
if(item1.isbn()==item2.isbn()){
//isbn相等则加1计数
sum++;
}
else{
//isbn不等则输出结果,item1仍作为比较的参考,sum重新初始化
cout << "ISBN: " << item1.isbn() << " has " << sum << "records;" << endl;
item1 = item2;
sum = 1;
}
}
cout << "ISBN: " << item1.isbn() << " has " << sum << "records;" << endl; //输出最后一次的结果
return 0;
}