C++練習:7-3銷售系統
題目要求
某公司有四個銷售員(編號:1-4),負責銷售五種產品(編號:1-5),每個銷售員都將當天出售的每種產品各寫一張便條交上來,每張便條包含內容:
(1)銷售員的代號 、(2)產品的代號 、(3)這種產品的當天的銷售額 , 每位銷售員每天可能上繳0-5張便條,
假設,收集到了10天的便條,撰寫一個處理系統,讀取10天的銷售情況(數額自己設定),進行如下處理:
1、計算每個人每種產品的銷售額,(撰寫輸入函式)
2、按每人總銷售額對銷售員進行排序,輸出排序結果(銷售員代號) (撰寫銷售員排序函式)
3、統計每種產品的總銷售額,對這些產品按從高到底的順序,輸出排序結果(需輸出產品的代號和銷售額) (撰寫產品排序函式)
4、主函式呼叫以上函式,實作程式要求
由于你們的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;
}
運行結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/280693.html
標籤:其他
上一篇:最短路之Dijkstra演算法
