1.5.1节练习

作者:源力解离 更新时间:2017/9/4 18:00:24 字数:670

1.5.1节练习

练习1.20:在网站http://www.informit.com/title/o321714113上,第1章的代码目录中包含了头文件Sales_item.h。将它拷贝到你自己的工作目录(源码文件所在的文件夹)中。用它编写一个程序,读取一组书籍销售记录,将每条记录打印到标准输出上。

出题思路:练习如何使用其他人定义的类来创建、使用对象。

解答:

#include <iostream>

#include "Sales_item.h"

int main()

{

Sales_item book;

std::cout << "请输入销售记录: " << std::endl;

while (std::cin >> book){

std::cout << "ISBN、售出本数、销售额和平均售价为" << book << std::endl;

}

return 0;

}

练习1.21:编写程序,读取两个ISBN相同的Sales_item对象,输出它们的和。

出题思路:类对象的更复杂的使用,利用类接口进行运算。

解答:

#include <iostream>

#include "Sales_item.h"

int main()

{

Sales_item trans1, trans2;

std::cout << "请输入两条ISBN相同的销售记录:" << std::endl;

std::cin >> trans1 >> trans2;

if (compareIsbn(trans1, trans2))

std::cout << "汇总信息:ISBN、售出本数、销售额和平均售价为" << trans1 + trans2 << std:endl;

else

std::cout << "两条销售记录的ISBN不同" << std::endl;

return 0;

}

练习1.22:编写程序,读取多个具有相同ISBN的销售记录,输出所有记录的和。

出题思路:练习在处理数据流的过程中“状态”(是否是相同的ISBN)的保存和变迁。

解答:

#include <iostream>

#include "Sales_item.h"

int main()

{

Sales_item total, trans;

std::cout << "请输入几条ISBN相同的销售记录:" << std::endl;

if (std::cin >> total){

while (std::cin >> trans)

if (compareIsbn(total, trans)) // ISBN相同

total = total + trans;

else { // ISBN不同

std::cout << "ISBN不同" << std::endl;

return -1;

}

std::cout << "汇总信息:ISBN、售出本数、销售额和平均售价为" << total << std::endl;

}

else {

std::cout << "没有数据" << std::endl;

return -1;

}

return 0;

}


设置
阅读主题:
字体大小:
字体格式:
简体 繁体
页面宽度:
手机阅读
菠萝包轻小说

iOS版APP
安卓版APP

扫一扫下载