当前位置: 首页 > news >正文

【C++ Primer Plus习题】9.4

问题:

这里是引用

解答:
main.cpp

#include <iostream>
#include "sales.h"
using namespace std;
using namespace SALES;int main()
{Sales s1, s2;double de[QUARTERS] = { 12.1,32.1,42.1,51.1 };setSales(s1, de, QUARTERS);showSales(s1);cout << endl;setSales(s2);showSales(s2);return 0;
}

sales.h

#pragma once
namespace SALES
{const int QUARTERS = 4;struct Sales{double sales[QUARTERS];double average;double max;double min;};void setSales(Sales& s,  double ar[], int n);void setSales(Sales& s);void showSales(const Sales& s);
}

sales.cpp

#include "sales.h"
#include <iostream>using namespace std;
using namespace SALES;void SALES::setSales(Sales& s, double ar[], int n)
{double sum = 0;if (n >= QUARTERS){for (int i = 0; i < QUARTERS; i++){s.sales[i] = ar[i];}}else{for (int i = 0; i < n; i++){s.sales[i] = ar[i];}for (int i = n; i < QUARTERS; i++){s.sales[i] = 0;}}s.max = s.min = s.average = s.sales[0];for (int i = 0; i < QUARTERS; i++){sum += s.sales[i];if (s.max < s.sales[i]){s.max = s.sales[i];}if (s.min > s.sales[i]){s.min = s.sales[i];}}s.average = sum / QUARTERS;
}
void SALES::setSales(Sales& s)
{double ar[QUARTERS] = { 0.0 };int i = 0;do{cout << "请输入第" << i + 1 << "季度的销量:";cin >> ar[i];if (!cin){cin.clear();while (cin.get() != '\n'){continue;}cout << "输入有误,请重新输入:";cin >> ar[i];}i++;} while (i<QUARTERS);setSales(s, ar, QUARTERS);}
void SALES::showSales(const Sales& s)
{for (int i = 0; i < QUARTERS; i++){cout << "第" << i + 1 << "季度的销售额为: " << s.sales[i] << endl;}cout << "平均为: " << s.average << endl;cout << "最大值为: " << s.max << endl;cout << "最小值为: " << s.min << endl;
}

运行结果:
在这里插入图片描述

考查点:

  • 命名空间
  • 多文件

2024年9月2日20:56:02


http://www.mrgr.cn/news/18282.html

相关文章:

  • CSS瀑布流实现
  • 【操作系统】详述linux系统性能调优及技巧
  • 算法训练营|图论第10天 Bellman_ford:优化算法,判断负权算法,单源有限最短路
  • 【框架】在Spring Cloud分布式微服务框架中,一个请求的流转和处理的步骤
  • 干货含源码!如何用Java后端操作Docker(命令行篇)
  • 获取 包 的类名信息以及 使用类名信息反向实例化类
  • 网络是怎样连接的
  • LinkedList与链表
  • nginx配置代理https端口的要点
  • Java项目:128 基于Spring Boot的装饰工程管理系统
  • 【小呆的热力学笔记】典型热机-燃气轮机的理想热力循环
  • Java基础——十一、Lambda
  • 【C++】C++ 多态的底层实现
  • 26. 在集合中删除元素时,为什么使用Iterator.remove()而不是Collection.remove()?
  • 第二十章 rust多平台编译
  • 两个月冲刺软考——概念+求已知内存按字节编址从(A)…到(B)…的存储容量+求采用单/双缓冲区需要花费的时间计算 类型题目讲解
  • 投保单号和保单号码
  • 【Rust】005-Rust 结构体
  • c++修炼之路之C++11
  • 数据链路层(MAC地址)