C++7.3销售系统练习

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;
}

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

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug-cq2020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值