[笔记] 《c++ primer》书店程序 Chapter2
Sales_data.h
1 #ifndef SALES_DATA_H
2 #define SALES_DATA_H
3
4 #include "Version_test.h"
5
6 #include <string>
7
8 struct Sales_data {
9 std::string bookNo;
10 #ifdef IN_CLASS_INITS
11 unsigned units_sold = 0;
12 double revenue = 0.0;
13 #else
14 unsigned units_sold;
15 double revenue;
16 #endif
17 };
18 #endif
- 定义了Slaes_data类
- 作者想让读者自己定义一遍Sales_item类,所以在此没有定义操作
Sales_data.cpp
1 #include <iostream>
2 #include <string>
3 #include "Sales_data.h"
4
5 int main()
6 {
7 Sales_data data1, data2;
8
9 // code to read into data1 and data2
10 double price = 0; // price per book, used to calculate total revenue
11
12 // read the first transactions: ISBN, number of books sold, price per book
13 std::cin >> data1.bookNo >> data1.units_sold >> price;
14 // calculate total revenue from price and units_sold
15 data1.revenue = data1.units_sold * price;
16
17 // read the second transaction
18 std::cin >> data2.bookNo >> data2.units_sold >> price;
19 data2.revenue = data2.units_sold * price;
20
21 // code to check whether data1 and data2 have the same ISBN
22 // and if so print the sum of data1 and data2
23 if (data1.bookNo == data2.bookNo) {
24 unsigned totalCnt = data1.units_sold + data2.units_sold;
25 double totalRevenue = data1.revenue + data2.revenue;
26
27 // print: ISBN, total sold, total revenue, average price per book
28 std::cout << data1.bookNo << " " << totalCnt
29 << " " << totalRevenue << " ";
30 if (totalCnt != 0)
31 std::cout << totalRevenue/totalCnt << std::endl;
32 else
33 std::cout << "(no sales)" << std::endl;
34
35 return 0; // indicate success
36 } else { // transactions weren't for the same ISBN
37 std::cerr << "Data must refer to the same ISBN"
38 << std::endl;
39 return -1; // indicate failure
40 }
41 }
- 读入data1和data2的代码
- 检查data1和data2的ISBN是否相同
- 如相同,求data1和data2的和
[笔记] 《c++ primer》书店程序 Chapter2的更多相关文章
- C++primer书店程序
#include <iostream> #include <string> #include <cassert> #include <algorithm> ...
- [笔记] 《c++ primer》书店程序 Chapter 1
书店程序是<c++ primer>中重要的实例,涉及大部分重要知识点,但代码分散阅读不便,下面按照章节顺序总结 Sales_item.h #ifndef SALESITEM_H // we ...
- Lua学习笔记4. coroutine协同程序和文件I/O、错误处理
Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...
- 微信小程序开发:学习笔记[7]——理解小程序的宿主环境
微信小程序开发:学习笔记[7]——理解小程序的宿主环境 渲染层与逻辑层 小程序的运行环境分成渲染层和逻辑层. 程序构造器
- Linux进程线程学习笔记:运行新程序
Linux进程线程学习笔记:运行新程序 周银辉 在上一篇中我们说到,当启动一个新进程以后,新进程会复制父进程的大部份上下 ...
- 个人学习笔记:C语言程序结构
个人笔记:C语言程序 函数 语句 输入输出对象 标识符 关键字 函数 一个C语言源程序,是由一个或多个函数定义顺序组成的,其中必须有一个函数名为main的主函数.C语言源程序中的函数是指完成特定数据处 ...
- [笔记] 《c++ primer》书店程序 Chapter7
Sales_data.h 1 #ifndef SALES_DATA_H 2 #define SALES_DATA_H 3 4 #include "Version_test.h" 5 ...
- C++ Primer 学习笔记_88_用于大型程序的工具 --异常处理[续1]
用于大型程序的工具 --异常处理[续1] 四.又一次抛出 有可能单个catch不能全然处理一个异常.在进行了一些校正行动之后,catch可能确定该异常必须由函数调用链中更上层的函数来处理,catch能 ...
- C++ Primer 学习笔记_95_用于大型程序的工具 --多重继承与虚继承
用于大型程序的工具 --多重继承与虚继承 引言: 大多数应用程序使用单个基类的公用继承,可是,在某些情况下,单继承是不够用的,由于可能无法为问题域建模,或者会对模型带来不必要的复杂性. 在这些情况下, ...
随机推荐
- JS中dom操作的事件
Click--点击事件 优先级:dom.onclick 高于标签上的onClick属性 监听事件 --不会覆盖前面的事件效果 dom.addEventListener() 括号里面有三个参数 1 ...
- javascript是一种什么样的语言
javascript是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTM ...
- Python基础之:Python中的内部对象
目录 简介 内置函数 内置常量 内置类型 逻辑值检测 逻辑值的布尔运算 比较运算 数字类型 整数类型的位运算 整数类型的附加方法 浮点类型的附加方法 迭代器 序列类型 集合类型 映射类型 字典视图对象 ...
- Redis 6.1 redis-cluster-proxy 实践说明
背景 Redis3.0版本之后开始支持了Redis Cluster,Redis也开始有了分布式缓存的概念.关于Redis Cluster的相关说明,可以看之前的几篇文章:Redis Cluster ...
- 学习笔记-cordova 限制app横屏
禁止手机app横竖屏幕转换,只需在根目录下的 config.xml 中添加如下内容 <preference name="orientation" value="po ...
- Database | 浅谈Query Optimization (1)
综述 由于SQL是声明式语言(declarative),用户只告诉了DBMS想要获取什么,但没有指出如何计算.因此,DBMS需要将SQL语句转换成可执行的查询计划(Query Plan).但是对同样的 ...
- Dynamics CRM报表提示rsProcessingAborted解决方法
有时候CRM用的好好的突然报表提示了一个错误,rsProcessingAborted如下图: 开始以为是权限问题,在数据库捣鼓了很长时间,服务也重启了很多遍都没效果.后来试了一下重新安装一下报表服务器 ...
- 由孙悟空的七十二变看Java设计模式:装饰者模式
目录 应用场景 代码示例 改进代码 装饰者模式 定义 意图 主要解决问题 何时使用 优缺点 孙悟空的七十二变 应用场景 京东.天猫双十一,情人节商品大促销,各种商品有不同的促销活动 满减:满200减5 ...
- Day16_91_通过反射机制获取父类和父接口
通过反射机制获取父类和父接口 * 代码: import java.net.InterfaceAddress; public class ReflectTest14 { public static vo ...
- Day09_43_Set集合_HashSet_02(HashCode方法 与 equals方法 )
HashSet - 向Hash表中添加元素的过程? 1. 先调用将要被存储的值key的HashCode方法得出Hash值,如果该Hash值在现有Hash表中不存在,那么直接加入元素. 2. 如果该Ha ...