C++ primer第五版 7.1.3节练习

C++ primer 第五版 中文版 9.3.1 节练习  C++ primer 第五版 中文版 9.3.1 练习 9.18: 阅读详情

定义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;
	else
		return 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;//输出最后一条记录
	}
	else
		cerr << "没有交易记录" << endl;

	system("pause");
	return 0;
}


算法-基于MACD的Adaboost股价涨跌预测模型 MACD是一个指标,具体用法是MACD>0看涨,反之看跌,果真是这样的吗?由于所有的技术指标都基于对历史数据的统计,指标的滞后性也就难免,有时候MACD明明大于0,股价仍然跌,有时候macd小于0,股价仍然涨。 本文基于Adaboost算法提出了一种基于macd的线性阀值分类器作为若分类器,通过在限定的解空间内寻找使得错误率最小的阀值和偏置,这样做避免了训练若分类器的复杂性,经验证,这种方法有效。 阅读详情

相关推荐

用友U8库龄分析避坑指南:物料出入库日期计算的5个常见错误

本文深入剖析了在用友U8系统中进行库龄分析时,物料出入库日期计算的五个常见陷阱。从数据源选择、业务类型过滤、计价方式逻辑、期初数据处理到查询性能优化,逐一解析错误根源并提供避坑指南,帮助企业获得准确的库龄数据,有效管理库存与资金风险。

weixin_29209801的博客 455

C++Primer第五版 7.1.3节练习

练习7.6:对于add, read和print,定义你自己的版本。 答案:见Sales_data.h头文件 练习7.7:使用这些新函数重写7.1.2节(第233页)练习中的交易处理程序。 答:见云盘程序 练习7.7.cpp练习7.8:为什么read函数将其Sales_data参数定义为普通的引用,而print将其参数定义成常量引用? 答:read里面涉及到revenue的计算,item.re

Nick Feng 的小屋 1904

波束形成算法:LCMV实现(MATLAB)

阵列信号处理,波束成形,

weixin_43601588的博客 1万+

c++primer练习7.1、7.2、7.3、7.4、7.5、7.6、7.7、7.8、7.9、7.10

练习7.1 使用65页练习定义的Sales_data类为21页的书店交易处理程序编写一个新版本 #include <iostream> #include <string> using std::cin; using std::cout; using std::endl; using std::string; using std::cerr; struct Sales_data{ string bookNo; unsigned units_sold = 0;

一个搬运知识的笨小孩 609

【EB-02】TC397 Tresos 最小工程配置

主要设置McalLibPublishedInformation 参数,会根据ResourceM配置的芯片自动加载。可以看到再工程目录中生成了output文件夹,里面由这些模块生成的头文件,编译脚本和epc文件。如果选择生成swcd,可以生成xxx_Bswmd.arxml给别的工具使用。如果没有Error和Problems就可以点击生成代码。点击工程校验看看工程是否由错误。

libuping2023的博客 327

杰理JL7033C芯片运行SoundFont音色库教程

本教程介绍如何在杰理JL7033C芯片上移植TinySoundFont音色库,实现MIDI播放功能。关键步骤包括:获取TinySoundFont开源代码,创建音色库声音播放数据流,封装核心功能文件。硬件需配备外部PSRAM和NOR FLASH存储音色库,软件使用杰理SDK和工具链。移植后系统可支持40个voice,满足MIDI播放和电子琴演奏需求。教程详细说明了代码移植过程,包括音色库文件处理、内存配置和音频流水线设置。

qq_42014563的博客 611

C++ Primer 第七章 7.3 类的其他特性 练习和总结

7.3 类的其他特性 7.3.1类成员再探 在类中,我们也可以使用为数据类型启类型别名。 class Screen{ public: using pos = string::size_type; private: pos width=0,height=0;//类内初始值初始化 pos cursor {0};//初始化列表初始化 string contents; }; 至于为什么这个类...

大琪子的博客 332

用 sapgenpse 把 SAPCRYPTOLIB 的 SNC 真正配通

摘要: 在SAP系统中配置SNC(Secure Network Communications)时,sapgenpse工具是关键,尤其在旧版本或组件缺乏图形化维护工具时。核心步骤包括安装SAP Cryptographic Library、创建PSE(Personal Security Environment)、生成运行凭据,并确保证书交换顺序正确。常见问题如RFC连接失败或握手错误,往往源于PSE创建或凭据配置不当。需特别注意SECUDIR目录设置、PSE身份管理(单一或独立PSE方案)、以及服务账号凭据的权

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 66

《C++ Primer》7.3.1节练习

练习7.23: class Screen { private: unsigned height = 0,width =0; unsigned cursor = 0; string contents; } /*对于Screen类来说,必不可少的数据成员有:屏幕的宽度和高度、屏幕的内容以及光标的当前位置*/ 练习7.24: class Screen { private: unsigned height = 0,width =0; unsigned cursor = 0; stri

m0_51955470的博客 332

【Simulink教程案例18】基于simulink的基础OFDM+64QAM发射接收链路仿真

OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(Multi Carrier Modulation),多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力,能够支持多用户接入。OFDM技术由MCM(Multi-Carrier Modulation,多载波调制)发展而来。OFDM技术是多载波传输方案的实现方式之一,它的。

FPGA/MATLAB学习教程/源码/项目合作开发 1988

Oracle EBS AP 应付模块核心实现逻辑(极简骨架 + 分层拆解 + 业务流转 + 分录 + 核心表)

Oracle EBS AP应付模块采用四层逻辑架构:1)主数据层统一管控供应商基础信息;2)发票负债层通过三单匹配校验生成应付账款;3)付款核销层实现负债冲减;4)SLA层自动生成财务凭证。核心流程包括发票验证(匹配PO/收货单)、付款核销(全额/部分冲账)、会计分录自动生成(通过SLA引擎)。模块严格遵循"无匹配不负债、无验证不入账"原则,与采购、库存等模块深度集成,实现从供应商创建到付款核销的完整业务闭环,确保应付账款准确性和审计追溯能力。

金牌架构师 440

C++primer 7.1.3节练习

练习7.6 1 #include <iostream> 2 #include <string> 3 #include "factmain.h" 4 using namespace std; 5 6 struct Sales_data { 7 string isbn() const { return bookNo; } 8 ...

weixin_30640291的博客 247

YOLOv11改进策略【模型轻量化】| 替换轻量化骨干网络:ShuffleNet V1

本文记录的是基于ShuffleNet V1的YOLOv11轻量化改进方法研究。ShuffleNet利用和操作降低计算成本,克服了现有先进架构在极小网络中因 1×1 卷积计算成本高而效率低的问题。相比一些传统的网络架构,能更好地。本文配置了原论文中和四种模型,以满足不同的需求。

Limiiiing的博客 1228

C++ Primer(第五版) 7.3.1--7.3.4节练习

7.23 #ifndef SCREEN_H #define SCREEN_H class Screen { public: using pos = std::string::size_type; Screen() = default; Screen(pos ht, pos wd): height(ht), width(wd), contents(ht * wd, ' ') { ...

wlli1985的博客 618

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C++ Primer(第五版) 7.1.1--7.1.3节练习

7.1 Sales_data类: #ifndef SALES_DATA_H #define SALES_DATA_H #include <iostream> #include <string> using namespace std; struct Sales_data { string bookNo; unsigned units_sold = 0; ...

wlli1985的博客 540

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C++Primer第五版 7.3.1节练习

练习7.23:编写你自己的Screen类 答:见云盘程序 练习7.23.cpp练习7.24:给你的Screen类添加三个构造函数:一个默认的构造函数;另一个构造函数接受宽和高的值,然后将contents初始化成给定数量的空白;第三个构造函数接受宽和高的值以及一个字符,该字符作为初始化之后屏幕的内容。 答:见云盘程序 练习7.24.cpp练习7.25:Screen能安全地依赖于拷贝和赋值操作的默认

Nick Feng 的小屋 1933

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C++Primer第五版 2.1.3节练习

练习2.5:指出下述字面值的数据类型并说明每一组内几种字面值的区别。 (a).‘a’,L’a’, “a”,L”a”  (b).10 , 10u , 10L, 10uL, 012, 0xC  (c).3.14 , 3.14f , 3.14L  (d).10 , 10u, 10. ,10e-2   练习2.6:下面两组定义是否有区别,如果有,请叙述之? Int month = 9, da

Nick Feng 的小屋 2331

C++ Primer(第五版) 6.7节练习

C++ Primer(第五版) 6.7节练习

阿木寺的博客 1330

C++ Primer(第五版)7.1.4节练习

7.11 添加构造函数 struct Sales_data { Sales_data()= default; Sales_data(const string &s): bookNo(s) { } Sales_data(const string &s, unsigned n, double p): bookNo(s), units_sold(n), reve...

wlli1985的博客 418

C++ Primer(第五版)3.3.1--3.4.1节练习

3.12 (a)正确;(b)错误,元素类型不匹配;(c)正确。 3.13 (a)元素数量0;(b)元素数量10,每个都为0;(c)元素数量10,每个都为42;(d)元素数量1,值为10; (e)元素数量2,值为10和42;(f)元素数量10,都为空串;(g)元素数量10,每个字符串都为"hi"。 3.14 #include <iostream...

wlli1985的博客 447

C++ primer(第五版) 练习 3.21 个人code

 C++ primer(第五版) 练习 3.21 题目:

jierandefeng的专栏 791

C++ Primer(第五版) 2.6.1--2.6.3节练习

2.39 类定义的最后要加上分号。 2.40 struct Sales_data { string bookNo; unsigned units_sold = 0; double revenue = 0.0; }; 2.41 见2.42题 2.42 Sales_data.h头文件 #ifndef SALES_DATA_H #defin...

wlli1985的博客 563

C++ primer 第五版 中文版 9.3.3 节练习

C++ primer 第五版 中文版 9.3.3 节练习 练习 9.25:对于t

jierandefeng的专栏 1138

C++ Primer(第五版) 17.3.4节练习

17.24 #include <iostream> #include <regex> using namespace std; int main() { string phone = "(\\()?(\\d{3})(\\))?([-. ])?(\\d{3})([-. ])?(\\d{4})"; regex r(phone); smatch m; ...

wlli1985的博客 278

C++ Primer(第五版) 3.5.1--3.5.3节练习

3.27 (a)非法,buf_size不是常量表达式; (b)合法; (c)非法,只有当txt_size()是constexpr的才合法; (d)非法,字符串以'\0'结尾,数组长度不够。 3.28 string都被初始化为空串;ia元素值为0;ia2元素值未定义。 3.29 数组大小是固定的,不能随意增加元素...

wlli1985的博客 562

C++ primer 第五版 中文版 9.2.7 节练习

C++ primer 第五版 中文版 9.2.7 节练习 练习 9.15:编写程序,判定两个vector是否相等。 答: #include <iostream> #include <vector> using std::vector; using std::cout; using std::endl; int main(void) { vector<int> a{1,2,3,4,5,6,7},b{1,2,3,4}; if(a==b) cout<&lt

aa7758458的博客 334
上一篇: C++primeer 6.7节练习(函数指针,函数指针形参)
下一篇: main函数的两个参数
WJSZMD
博客等级 码龄10年 9粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值