C++ primer第五版 7.1.3节练习
来源:互联网 发布:淘宝网外贸店 编辑:程序博客网 时间:2024/06/05 19:02
定义Sales_data的头文件
#ifndef CH6_H_INCLUDED#define CH6_H_INCLUDED#include <iostream>#include <string>using namespace std;struct Sales_data{string isbn() const { return bookNo; }Sales_data& Combine(const Sales_data&);double avg_price() const;string bookNo;unsigned units_sold = 0;double revenue = 0.0;};istream& read(istream &, Sales_data &);ostream& print(ostream &, Sales_data &);void add_data(Sales_data &, Sales_data &);#endif
.cpp文件
#include <iostream>#include "Ch6.h"Sales_data& Sales_data::Combine(const Sales_data &rhs){units_sold += rhs.units_sold;revenue += rhs.revenue;return *this;}double Sales_data::avg_price() const{if (units_sold)return revenue / units_sold;elsereturn 0;}//输入的信息包括ISBN,售出总数,售出价格istream& read(istream &is, Sales_data &item){double price = 0.0;is >> item.bookNo >> item.units_sold >> price;item.revenue = price*item.units_sold;return is;}//输出信息包括ISBN,售出总数,售出总价,售出均价ostream& print(ostream &os, Sales_data &item){os << item.isbn() << " " << item.units_sold << " " << item.revenue << " " << item.avg_price();return os;}void add_data(Sales_data &litem, Sales_data &ritem){litem.Combine(ritem);}
#include <iostream> #include <string>#include <vector>#include "Ch6.h"using namespace std;int main(){cout << "请输入交易记录(ISBN,售出总数,售出价格)" << endl;Sales_data total; //首先读取第一条记录if (read(cin, total)){Sales_data trans;//读取第二条记录while (read(cin, trans)){if (total.isbn() == trans.isbn()){add_data(total, trans);}else{//输出旧书号的记录print(cout, total)<<endl;total = trans;//类的拷贝实际上是拷贝数据成员}}print(cout, total) << endl;//输出最后一条记录}elsecerr << "没有交易记录" << endl;system("pause");return 0;}
阅读全文
0 0
- C++Primer第五版 7.1.3节练习
- C++Primer 第五版 1.1节练习
- C++Primer第五版 1.3节练习
- C++Primer第五版 1.6节练习
- C++Primer第五版 2.4节练习
- C++Primer第五版 3.1节练习
- C++Primer第五版 4.2节练习
- C++Primer第五版 4.3节练习
- C++Primer第五版 4.4节练习
- C++Primer第五版 4.6节练习
- C++Primer第五版 4.7节练习
- C++Primer第五版 4.8节练习
- C++Primer第五版 4.9节练习
- C++Primer第五版 4.5节练习
- C++Primer第五版 5.1节练习
- C++Primer第五版 5.2节练习
- C++Primer第五版 6.1节练习
- C++Primer第五版 6.4节练习
- 【状压DP】NOIP2016Day2T3[愤怒的小鸟]题解
- ORB SLAM2 ROS单目摄像头环境搭建
- 【欧拉函数 && 求gcd(n, x) = y,x的个数】UVA
- (008) java后台开发之java程序中的控制结构
- L2-016. 愿天下有情人都是失散多年的兄妹
- C++ primer第五版 7.1.3节练习
- php设计模式---工厂模式
- Octave中句柄@的用法
- SGU103代码能力训练
- windows10 U盘启动盘制作
- 内联函数与宏定义的区别
- 缓冲运动 //缓冲运动 (目标值
- Connection请求数据工具类
- 分层背包 [HNOI2007]梦幻岛宝珠