C++7.3销售系统练习

C++练习:7-3销售系统

题目要求

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:
(1)销售员的代号 、(2)产品的代号 、(3)这种产品的当天的销售额 。  每位销售员每天可能上缴0-5张便条。
假设,收集到了10天的便条,编写一个处理系统,读取10天的销售情况(数额自己设定),进行如下处理:
	1、计算每个人每种产品的销售额。(编写输入函数) 
	2、按每人总销售额对销售员进行排序,输出排序结果(销售员代号) (编写销售员排序函数)
	3、统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额) (编写产品排序函数)
	4、主函数调用以上函数,实现程序要求

由于你们的19级学长只写到了7.2,所以你们的20级学长程崎继续造福你们
——致未来的21级小学弟

该题较难

代码部分

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

运行结果
C++7.3销售系统练习_第1张图片

你可能感兴趣的:(C++,c++)