[笔记] 《c++ primer》书店程序 Chapter2
2024-10-19 19:37:05
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的和
最新文章
- [WCF编程]12.事务:服务事务编程(上)
- java 项目创建中的问题汇总
- 【洛谷P2889】Milking Time
- Xamarin安装和跳坑指南
- 7.7---找只含3,5,7的数(CC150)
- SharePoint 2010 文档管理之文档推送
- 什么是J2EE,包括哪些规范!
- 运用Ntop监控网络流量(视频Demo)
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡
- C语言的指针移位问题
- 深入分析Cookie的安全性问题
- myeclipse的新建severlet不见解决方法
- CODEVS 1638 修复公路
- Date对象
- 有用的jQuery布局插件推荐
- 学派Delphi方法(推荐)——————————【Badboy】
- eclipse android ndk 提示Type &#39;JNIEnv&#39; could not be resolved 等信息解决办法
- DML触发器1
- Angular组件——中间人模式
- [转] CMake