销售管理系统(c++)简单易解
某公司有四個(gè)銷(xiāo)售員(編號(hào):1-4),負(fù)責(zé)銷(xiāo)售五種產(chǎn)品(編號(hào):1-5).每個(gè)銷(xiāo)售員都將當(dāng)天出售的每種產(chǎn)品各寫(xiě)一張便條交上來(lái).每張便條包含內(nèi)容:(選做)
1)銷(xiāo)售員的代號(hào)
2)產(chǎn)品的代號(hào)
3)這種產(chǎn)品的當(dāng)天的銷(xiāo)售額
每位銷(xiāo)售員每天可能上繳0-5張便條.假設(shè),收集到了上個(gè)月的所有便條,編寫(xiě)一個(gè)處理系統(tǒng),讀取上個(gè)月的銷(xiāo)售情況(自己設(shè)定),進(jìn)行如下處理.
1)計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷(xiāo)售額.
2)按銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排序,輸出排序結(jié)果(銷(xiāo)售員代號(hào))
3)統(tǒng)計(jì)每種產(chǎn)品的總銷(xiāo)售額,對(duì)這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果(需輸出產(chǎn)品的代號(hào)和銷(xiāo)售額)
4)輸出統(tǒng)計(jì)報(bào)表
銷(xiāo)售統(tǒng)計(jì)報(bào)表
產(chǎn)品代號(hào) 銷(xiāo)售之和
創(chuàng)作不易,感謝支持!!!(這只是比較簡(jiǎn)易的,還能繼續(xù)添加!)
代碼:
功能的實(shí)現(xiàn):
void Scrip::readdata() {FILE* fp = 0;if ((fp = fopen("list.txt", "r")) == NULL){printf("Feil opening falling!\n");exit(0);}elsefor (n = 0; !feof(fp); n++){fscanf(fp, "%d %d %d\n", ¬e[n].id, ¬e[n].num, ¬e[n].sale);//保存文件數(shù)據(jù)到結(jié)構(gòu)體}fclose(fp); }void Scrip::collating()//整理讀取的信息并分類(lèi) {int i;for (i = 0; i < n; i++)//遍歷所有紙條{switch (note[i].num)//按產(chǎn)品分大類(lèi),銷(xiāo)售員分小類(lèi),累加每個(gè)人各類(lèi)產(chǎn)品銷(xiāo)售量{case 1://產(chǎn)品1switch (note[i].id)//銷(xiāo)售員代號(hào){case 1:Ely[0].sale[0] += note[i].sale; break;case 2:Ely[1].sale[0] += note[i].sale; break;case 3:Ely[2].sale[0] += note[i].sale; break;case 4:Ely[3].sale[0] += note[i].sale; break;}break;case 2: //產(chǎn)品2switch (note[i].id)//銷(xiāo)售員代號(hào){case 1:Ely[0].sale[1] += note[i].sale; break;case 2:Ely[1].sale[1] += note[i].sale; break;case 3:Ely[2].sale[1] += note[i].sale; break;case 4:Ely[3].sale[1] += note[i].sale; break;}break;case 3://產(chǎn)品3switch (note[i].id)//銷(xiāo)售員代號(hào){case 1:Ely[0].sale[2] += note[i].sale; break;case 2:Ely[1].sale[2] += note[i].sale; break;case 3:Ely[2].sale[2] += note[i].sale; break;case 4:Ely[3].sale[2] += note[i].sale; break;}break;case 4://產(chǎn)品4switch (note[i].id)//銷(xiāo)售員代號(hào){case 1:Ely[0].sale[3] += note[i].sale; break;case 2:Ely[1].sale[3] += note[i].sale; break;case 3:Ely[2].sale[3] += note[i].sale; break;case 4:Ely[3].sale[3] += note[i].sale; break;}break;case 5://產(chǎn)品5switch (note[i].id)//銷(xiāo)售員代號(hào){case 1:Ely[0].sale[4] += note[i].sale; break;case 2:Ely[1].sale[4] += note[i].sale; break;case 3:Ely[2].sale[4] += note[i].sale; break;case 4:Ely[3].sale[4] += note[i].sale; break;}break;}} }void Scrip::detail()//顯示銷(xiāo)售情況 {int i, j;for (i = 0; i < 4; i++)//遍歷銷(xiāo)售員{cout << "\n\t\t" << i + 1 << "號(hào)銷(xiāo)售員銷(xiāo)售情況:" << endl;for (j = 0; j < 5; j++)/*按銷(xiāo)售員分類(lèi)遍歷所有產(chǎn)品并顯示信息*/cout << "\t\t" << j + 1 << "號(hào)產(chǎn)品銷(xiāo)售數(shù)量:" << Ely[i].sale[j] << endl;} }void Scrip::seller_sort()//按銷(xiāo)量對(duì)銷(xiāo)售員排序 {int i, j, k;int a[4] = { 0,0,0,0 };//用于儲(chǔ)存四個(gè)銷(xiāo)售員各自的銷(xiāo)售總量for (i = 0; i < 4; i++)for (j = 0; j < 5; j++)a[i] += Ely[i].sale[j];//統(tǒng)計(jì)每個(gè)銷(xiāo)售員所有產(chǎn)品總銷(xiāo)售量for (i = 0; i < 4; i++){k = 0;//用于標(biāo)記本輪最大數(shù)for (j = 0; j < 4; j++)if (a[k] < a[j])k = j;cout << "銷(xiāo)量第" << i + 1 << ";" << "\t" << k + 1 << "號(hào)銷(xiāo)售員" << "\t銷(xiāo)量: " << a[k] << endl;a[k] = -1;///*輸出最大數(shù)和排名,將最大數(shù)標(biāo)記為負(fù)*/} } void Scrip::product_sort()//按產(chǎn)品銷(xiāo)量對(duì)該類(lèi)產(chǎn)品排序 {int i, j, k;int b[5] = { 0,0,0,0,0 };//存放五種產(chǎn)品總銷(xiāo)量for (i = 0; i < 5; i++)for (j = 0; j < 4; j++)b[i] += Ely[j].sale[i];//統(tǒng)計(jì)每件產(chǎn)品的總銷(xiāo)量for (i = 0; i < 5; i++){k = 0;//用于標(biāo)記本輪最大數(shù)for (j = 0; j < 5; j++)if (b[k] < b[j])k = j;cout << "銷(xiāo)量第" << i + 1 << "的產(chǎn)品:" << "\t" << k + 1 << "號(hào)產(chǎn)品" << "\t銷(xiāo)量: " << b[k] << endl;b[k] = -1;///*輸出最大數(shù)和排名,將最大數(shù)標(biāo)記為負(fù)*/} } void Scrip::total()//輸出報(bào)表 {int i, j;printf("\n\t銷(xiāo)售員\t產(chǎn)品\t銷(xiāo)量\n");for (i = 0; i < 4; i++)for (j = 0; j < 5; j++)cout << "\t " << i + 1 << "\t " << j + 1 << "\t" << Ely[i].sale[j] << endl; } void Menu::MainMenu() {cout << "\t\t********************菜單*********************\n" << endl;cout << "\t\t 1.查看每人每種產(chǎn)品的銷(xiāo)售額" << endl;cout << "\t\t 2.按銷(xiāo)售額對(duì)銷(xiāo)售員排序(銷(xiāo)售員代號(hào))" << endl;;cout << "\t\t 3.對(duì)每種產(chǎn)品總銷(xiāo)售額從高到低排序(產(chǎn)品代號(hào)和銷(xiāo)售額)" << endl;cout << "\t\t 4.輸出統(tǒng)計(jì)報(bào)表" << endl;cout << "\t\t 5.導(dǎo)入前一個(gè)月銷(xiāo)售情況" << endl;cout << "\t\t 0.退出" << endl;cout << "\n\n\t\t*********************************************" << endl;cout << "請(qǐng)選擇(1-5):[ ]\b\b"; }void start() {int select;while (true){Menu::MainMenu();cin >> select;switch (select){case 1://查看每人每種產(chǎn)品的銷(xiāo)售額Scrip::detail();break;case 2://按銷(xiāo)售額對(duì)銷(xiāo)售員排序(銷(xiāo)售員代號(hào))Scrip::seller_sort();break;case 3://對(duì)每種產(chǎn)品總銷(xiāo)售額從高到低排序(產(chǎn)品代號(hào)和銷(xiāo)售額)Scrip::product_sort();break;case 4://輸出統(tǒng)計(jì)報(bào)表Scrip::total();break;case 5://導(dǎo)入前一個(gè)月銷(xiāo)售情況{Scrip::readdata();//讀取文件Scrip::collating();//對(duì)信息整理分類(lèi)}break;case 0://退出系統(tǒng)cout << "歡迎下次使用" << endl;system("pause");exit(0);default:cout << "輸入錯(cuò)誤!" << endl;break;}system("pause");system("cls");} } int main() {start();system("pause");return 0; }文件的格式可以參考這個(gè),不放到d盤(pán)的話,也可以直接將文件放到你的工作路徑下。
總結(jié)
以上是生活随笔為你收集整理的销售管理系统(c++)简单易解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Delphi易主Embarcadero
- 下一篇: [课业] | 软件安全 | 使用Amer