C++练习:7-3销售系统
题目要求
某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:
(1)销售员的代号 、(2)产品的代号 、(3)这种产品的当天的销售额 。 每位销售员每天可能上缴0-5张便条。
假设,收集到了10天的便条,编写一个处理系统,读取10天的销售情况(数额自己设定),进行如下处理:
1、计算每个人每种产品的销售额。(编写输入函数)
2、按每人总销售额对销售员进行排序,输出排序结果(销售员代号) (编写销售员排序函数)
3、统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额) (编写产品排序函数)
4、主函数调用以上函数,实现程序要求
PS:我用的是visual studio 2019,所以不用加一些头文件
由于你们的19级学长只写到了7.2,所以你们的20级学长程崎继续造福你们
——致未来的21级小学弟
该题较难
代码部分
#include<iostream>
using namespace std;
/*
某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:
(1)销售员的代号 、(2)产品的代号 、(3)这种产品的当天的销售额 。 每位销售员每天可能上缴0-5张便条。
假设,收集到了10天的便条,编写一个处理系统,读取10天的销售情况(数额自己设定),进行如下处理:
1、计算每个人每种产品的销售额。(编写输入函数)
2、按每人总销售额对销售员进行排序,输出排序结果(销售员代号) (编写销售员排序函数)
3、统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额) (编写产品排序函数)
4、主函数调用以上函数,实现程序要求
*/
void input(int a[][6], int r)
{
int num01, num02, s, i;
//num01:销售员代号 num02:产品代号 s:销售额
for (i = 1; i < r; i++)
{
a[i][0] = i;
}
for (i = 1; i < 6; i++)
{
a[0][i] = i;
}
for (i = 1; i < 3; i++)
{
cout << "请输入第" << i << "天的销售情况" << endl;
while (1)
{
cout << "请输入销售员、产品代号和销售额,若想结束本日数据的输入,请输入-1" << endl;
cin >> num01 >> num02 >> s;
if (num01 == -1)
{
break;
}
a[num01][num02] += s;
}
}
}
void output(int a[][6], int r)
{
cout << "===================销售情况===================" << endl;
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 6; j++)
{
cout << a[i][j] << "\t";
}
cout << endl;
}
}
void sort01(int a[][6], int r)
{
//记录销售员代号,累加销售额
int sort[4][2] = { 0 }, t;
int i, j;
for (i = 1; i < r; i++)
{
sort[i - 1][0] = a[i][0];
for (j = 1; j < 6; j++)
{
sort[i - 1][1] += a[i][j];
}
}
//根据销售额对销售员进行排序
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3 - i; j++)
{
if (sort[j][1] > sort[j + 1][1])
{
for (int k = 0; k < 2; k++)
{
t = sort[j][k];
sort[j][k] = sort[j + 1][k];
sort[j + 1][k] = t;
}
}
}
}
//输出排序结果
cout << "销售员升序排序后的结果为:" << endl;
for (i = 0; i < 4; i++)
{
cout << sort[i][0] << " " << endl;
}
}
void sort02(int a[][6], int r)
{
//记录产品代号,累加销售额
int sort[5][2] = { 0 }, t;
int i, j;
for (i = 1; i < 6; i++)
{
sort[i - 1][0] = a[0][i];
for (j = 1; j < r; j++)
{
sort[i - 1][1] += a[j][i];
}
}
//根据销售额对产品进行排序
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4 - i; j++)
{
if (sort[j][1] < sort[j + 1][1])
{
for (int k = 0; k < 2; k++)
{
t = sort[j][k];
sort[j][k] = sort[j + 1][k];
sort[j + 1][k] = t;
}
}
}
}
//输出降序排序结果
cout << "产品排序后的结果为:" << endl;
cout << "产品代号" << "\t" << "销售额" << endl;
for (i = 0; i < 5; i++)
{
cout << sort[i][0] << "\t\t" << sort[i][1] << endl;
}
}
int main()
{
int s[5][6] = { 0 };
input(s, 5);
output(s, 5);
sort01(s, 5);//对销售员排序
sort02(s, 5);//对产品排序
return 0;
}
运行结果