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的更多相关文章

  1. C++primer书店程序

    #include <iostream> #include <string> #include <cassert> #include <algorithm> ...

  2. [笔记] 《c++ primer》书店程序 Chapter 1

    书店程序是<c++ primer>中重要的实例,涉及大部分重要知识点,但代码分散阅读不便,下面按照章节顺序总结 Sales_item.h #ifndef SALESITEM_H // we ...

  3. Lua学习笔记4. coroutine协同程序和文件I/O、错误处理

    Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...

  4. 微信小程序开发:学习笔记[7]——理解小程序的宿主环境

    微信小程序开发:学习笔记[7]——理解小程序的宿主环境 渲染层与逻辑层 小程序的运行环境分成渲染层和逻辑层. 程序构造器

  5. Linux进程线程学习笔记:运行新程序

    Linux进程线程学习笔记:运行新程序                                         周银辉 在上一篇中我们说到,当启动一个新进程以后,新进程会复制父进程的大部份上下 ...

  6. 个人学习笔记:C语言程序结构

    个人笔记:C语言程序 函数 语句 输入输出对象 标识符 关键字 函数 一个C语言源程序,是由一个或多个函数定义顺序组成的,其中必须有一个函数名为main的主函数.C语言源程序中的函数是指完成特定数据处 ...

  7. [笔记] 《c++ primer》书店程序 Chapter7

    Sales_data.h 1 #ifndef SALES_DATA_H 2 #define SALES_DATA_H 3 4 #include "Version_test.h" 5 ...

  8. C++ Primer 学习笔记_88_用于大型程序的工具 --异常处理[续1]

    用于大型程序的工具 --异常处理[续1] 四.又一次抛出 有可能单个catch不能全然处理一个异常.在进行了一些校正行动之后,catch可能确定该异常必须由函数调用链中更上层的函数来处理,catch能 ...

  9. C++ Primer 学习笔记_95_用于大型程序的工具 --多重继承与虚继承

    用于大型程序的工具 --多重继承与虚继承 引言: 大多数应用程序使用单个基类的公用继承,可是,在某些情况下,单继承是不够用的,由于可能无法为问题域建模,或者会对模型带来不必要的复杂性. 在这些情况下, ...

随机推荐

  1. Redis扩展数据类型详解

    在Redis中有5种基本数据类型,分别是String, List, Hash, Set, Zset.除此之外,Redis中还有一些实用性很高的扩展数据类型,下面来介绍一下这些扩展数据类型以及它们的使用 ...

  2. ATMS中去pause Activity A.

    上文写完之后,感觉这个部分写的还是不清晰,本文继续补充一下. 首先还是看堆栈. obtain:78, PauseActivityItem (android.app.servertransaction) ...

  3. 什么是 Jenkins? 运用Jenkins持续集成

    [注]本文译自:https://www.edureka.co/blog/what-is-jenkins/   持续集成是 DevOps 最重要的部分,用于集成各个 DevOps 阶段.Jenkins ...

  4. 从wav到Ogg Opus 以及使用java解码OPUS

    PCM 自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码.PCM通过抽样.量化.编码三个步骤将连续变化的模拟信号转换为数字编码. 采样率 采样频率,也称为采样速度或 ...

  5. Leedcode算法专题训练(二分查找)

    二分查找实现 非常详细的解释,简单但是细节很重要 https://www.cnblogs.com/kyoner/p/11080078.html 正常实现 Input : [1,2,3,4,5] key ...

  6. 2、ASP.NET Core中服务的生命周期

    ASP.NET Core支持依赖注入软件设计模式,它允许在不同的组件中注入我们的服务,并且控制服务的初始化.有些服务可以在短时间内初始化,并且只能在某个特别的组件,以及请求中才能用到:而还有一些服务, ...

  7. python 爬取王者荣耀英雄皮肤代码

    import os, time, requests, json, re, sys from retrying import retry from urllib import parse "& ...

  8. 15- web安全测试与appscan Scrawlr的使用

    web应用安全性问题 认证与授权测试要点 认证与授权测试要点之授权 session与cookie之cookie测试点: session测试点: 上传文件漏洞 SQL注入 SQL注入原理 SQL注入检查 ...

  9. 针对中国政府机构的准APT攻击样本Power Shell的ShellCode分析

    本文链接网址:http://blog.csdn.net/qq1084283172/article/details/45690529 一.事件回放 网络管理员在服务器上通过网络监控软件检测到,有程序在不 ...

  10. hdu3460 字典树(打印机)

    题意:        给你一些名字,让你用一台打印机去打印这些名字,打印机只有三个操作 (1)打印的都是小写字母 (2)每次可以在当前字母的后面加一位,或删除一位. (3)打印当前串 问你最少多少步可 ...