阅读下面项目需求,编程实现。 餐饮服务质量调查打分 在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图的形式显示出来。例如,一个公司的主管可能需要了解一年来公司的营业状况,比较一下各月份的销售收入状况。如果仅给出一大堆数据,这显然太不直观了,如果能将这些数据以条形图(直方图)的形式表示,将会大大增加这些数据的直观性,也便于数据的分析与对比。下面以顾客对餐饮服务打分为例,练习这方面的程序编写方法。假设有40个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。 Grade Count Histogram 1 5 ***** 2 10 ********** 3 7 ******* ...
时间: 2023-07-18 17:40:46 浏览: 108
好的,这是一个统计直方图的问题,需要编写一个统计程序,可以实现以下功能:
1. 统计40个学生对餐饮服务的打分情况,分数范围为1~10。
2. 统计每个分数的数量,输出直方图。
以下是一个可能的解决方案:
```
#include <iostream>
using namespace std;
int main() {
const int N = 40; // 学生数量
const int M = 10; // 分数范围
int scores[N]; // 打分数组
int counts[M] = {0}; // 统计数组
// 输入学生打分
cout << "请输入40个学生的打分,分数范围为1~10:" << endl;
for (int i = 0; i < N; i++) {
cout << "学生" << i+1 << "的打分是:";
cin >> scores[i];
while (scores[i] < 1 || scores[i] > 10) {
cout << "分数范围错误,请重新输入:" << endl;
cout << "学生" << i+1 << "的打分是:";
cin >> scores[i];
}
counts[scores[i]-1]++; // 统计每个分数的数量
}
// 输出直方图
cout << "Grade\tCount\tHistogram" << endl;
for (int i = 0; i < M; i++) {
cout << i+1 << "\t" << counts[i] << "\t";
for (int j = 0; j < counts[i]; j++) {
cout << "*";
}
cout << endl;
}
return 0;
}
```
运行程序后,输入40个学生的打分,程序将自动统计每个分数的数量,并输出直方图。例如,如果有5个学生给1分,10个学生给2分,7个学生给3分,则输出结果如下:
```
Grade Count Histogram
1 5 *****
2 10 **********
3 7 *******
4 0
5 0
6 0
7 0
8 0
9 0
10 0
```
其中,第一列为分数等级,第二列为该等级的人数,第三列为用*表示的直方图。
阅读全文