當前位置:偏方大全网 - 藥品查詢 - 跪求 C 語言編程報告 - 銷售管理系統 Thanks!!!!

跪求 C 語言編程報告 - 銷售管理系統 Thanks!!!!

/* 計算上個月每人每種產品的銷售額。

1)按銷售額對銷售員進行排序,並輸出排序結果(銷售員代碼)

2)統計每個產品的總銷售額,並對這些產品按從高到低的順序輸出排序結果(需要輸出產品代碼和銷售額)

3)輸出統計報表如下:*/

#include < stdio.h>

#include <string.h>

#include <conio.h>

#include <stdlib.h>

#define Z 5

#define R 4 /*定義宏常量,便於程序泛化*/ /*R代表銷售人員的數量*/

typedef struct /*縮短結構變量名*/

{

int shangpin[Z];/*定義結構便於信息的存儲和讀寫識別*//*R為數字類型,最後壹位為營業員商品總數*/

}data;

void menu()

{ printf(" *******************************************************\n");

printf(" 0.End operation\n");

printf(" 1.計算每個人上個月每種產品的銷售額 (n");

printf(" 2. 按銷售額對銷售人員進行排序,輸出排序結果 (n");

printf(" 3. 統計每種產品的總銷售額,輸出排序結果 (n");

printf(" 4.輸出統計報告/n");

printf(" ******************************************************\n");

}

void data_read(data *x) /* 讀取函數,使程序簡潔 */

{

FILE *fp;

char fname[10];

int i;

printf("Which month would you like to query?\n");

printf("請輸入月份:");/* 輸入文件名以便讀取每個月份的信息*/

scanf("%s",fname);

strcat(fname,".txt");/* 連接文件屬性*/

if((fp= fopen(fname, "rb"))==NULL) /* 打開文件**

{

printf("can not open the file\n");

exit(0);

}

for(i=0;i<R;i++) /* 讀取信息*/

if(fread(x+i,sizeof(data),1,fp)!=1)

printf("Error reading in information!\n");

}

void data_count(data *x) /*計算上個月每人每種產品的銷售額*/

{

FILE *fp;

char fname[10];

int j,t;/*用於控制循環 */

int i,k,s; /* 用於定義員工序列號、產品序列號、產品數量 */

system("cls");

printf("Which month do you want to calculate?\n");

printf("請輸入月份:"); /* 輸入文件名,以便寫入每個月的信息 */

scanf("%s",fname);

strcat(fname,".txt");

if((fp=fopen( fname, "wb"))==NULL) /*打開文件**

{

printf("can not open the file\n");

exit(0);

}

for(j=0;j<R.;j++) /*項目數清零 */

for(t=0;t<Z;t++)

(x+j)->shangpin[t]=0;

printf("please put the information about the employee number, product number, sales quantity\n");/* 寫入信息 */

for(j=0;;j++)

{

scanf("%d%d%d",&i,&k,&s);

if(i==0) /* 當輸入雇員為 0 時結束信息輸入 */

break;

if(i >R||i<0||k>Z||k<0)

{

printf("the information error!\n"); /*避免輸入信息錯誤 */

continue;

}

else

< p> (x+i-1)->shangpin[k-1]=(x+i-1)->shangpin[k-1]+s;/* 計算每個人的產品數量,-1 以便與數組中的序列號匹配 */

}

for(j=0;j<R;j++)

if(fwrite((x+j),sizeof(data),1,fp)!=1) /* 將信息寫入文件,以便以後調用*/

printf("write error!\n");

fclose(fp); /* 關閉文件,避免丟失信息*/

}

void range_sxy(data *x) /* 按銷售額對銷售人員進行排序,輸出排序結果。按銷售額排序,輸出排序結果 */

{

FILE *fp;

char fname[10];

int i,k,j,t,bianhao[R]={0},z;

system("cls");

printf("you want which month?\n");

printf("請輸入月份:");/* 輸入文件名,以便讀取每個月份的信息*

scanf("%s",fname);

strcat(fname,".txt");

if ((fp=fopen( fname, "rb"))==NULL) /* 打開文件**/

{

printf("can not open the file\n");

exit(0);

}

for(i=0;i<R;i++) /*讀出信息**/< /p>

if(fread(x+i,sizeof(data),1,fp)!=1)

printf("Error reading information!") ; /* 讀取信息提示 */

for(i=0;i<R;) /* 用於存儲員工編號 */

bianhao[i]=i++;

printf("Please enter the product by which to sort \n");

scanf("%d",&k);

k=k-1; /*易於與結構中的數組值相對應 */

for(i=0;i<;R;i++) /* 按 K 種產品對業務員進行排序,排序方式為選擇方式 */

{

t=i;

for(j=i+1;j<R;j++)

if((x +bianhao[t])->;shangpin[k]<(x+bianhao[j])->shangpin[k])/*調用工人各自對應結構中的產品數量*

t=j;

if(t!=i)

{

z= bianhao[i];

bianhao[i]=bianhao[t];

bianhao[t]=z;

}

}

printf("Sorting the salesmen by %d products is:\n",k+1);

for(i=0;i& lt;R;i++)

printf("%5d",bianhao[i]+1);

getch();

fclose(fp);

}

void range_shangpin(data *x) /*統計各產品的銷售總額,輸出排序結果 */

{

FILE *fp;

char fname[10];

int i,j,sum[Z]={0},bianhao[Z]={0},z,t,k;

system("cls");

printf("Which month do you want to calculate?\n");

printf("Please enter the month:"); /* 輸入文件名,以便讀取每個月的信息 */

scanf("%s",fname);

strcat(fname,".txt");

if ((fp=fopen( fname, "rb"))==NULL) /*打開文件**/

{

printf("can not open the file\n");

exit(0);

}

for(i=0;i<R;i++) /*讀出信息**/< /p>

if(fread(x+i,sizeof(data),1,fp)!=1)

printf("Error reading information!") )

for(i=0;i<Z;i++) /* 用於求各種商品的總和 */

for(j=0;j<R;j++)

sum[i]=sum[i]+(x+j)->shangpin[i];

for(i=0;i<Z;) /* 用於存儲項目編號 */

bianhao[i]=i++;

for(i=0;i<Z;i++)

printf("%3d",bianhao[i]);

for(i=0;i<Z;i++) /* 對產品從高到低進行排序,即選擇法排序*/

{

t=i;

for(j=i+1;j<Z;j++) /* 當產品發生變化時,產品編號也隨之變化,以便於輸出*/

if(sum[t]<sum[j])

t=j;

if(t!=i )

{

k=sum[i];

sum[i]=sum[t];

sum[t]=k;

z=bianhao[i];

bianhao[i]=bianhao[t];

bianhao[t]=z ;

}

}

printf("Output product sorting\n");

printf("Product number Quantity\n");

for(i=0;i<Z;i++)

printf("%-10d%-10d\n", bianhao[i]+1,sum[i]);

getch();

fclose(fp);

}

{

FILE *fp;

char fname[10];

int i,j,sum[Z+1]={0};

system("cls");

printf("Which month do you want to calculate?\n");

printf("請輸入月份:"); /* 輸入文件名,以便讀取每個月的信息 */

scanf("%s",fname);

strcat(fname,".txt");

if ((fp=fopen( fname, "rb"))==NULL) /*打開文件**/

{

printf("can not open the file\n");

exit(0);

}

for(i=0;i<R;i++) /*讀出信息**/< /p>

if(fread(x+i,sizeof(data),1,fp)!=1)

printf("Error reading information!") )

for(i=0;i<Z;i++) /* 各種商品的總和 */

for(j=0;j<R;j++)

sum[i]=sum[i]+(x+j)->shangpin[i];

for(i=0;i<Z;i ++) /* 求貨物總和 */

sum[Z]=sum[Z]+sum[i];

printf("Output the statistical report as follows:\n"); /* 按要求輸出統計表 */

printf("Product Code Sum of Sales Salesman Code \n");

for(i=0;i<R;i++); /* 按要求輸出統計表 *

printf("Product Code Salesman Code \n");

for(i=0;i <R;i++)

for(j=0;j<Z;j++)

printf("%-10d%-10d%-10d\n",j+1,(x+i)->shangpin[j],i+1);

printf("************** *********************\n");

for(i=0;i<Z;i++)

{

if(i==0)

printf("%d sum of products %-10d sum %-10d\n",i+1,sum[i],sum[Z]) ;

else

printf("%d sum of products %-10d\n",i+1,sum[i]);

}

getch();

}

void main()

{

int i,choice;<

data sxy[R]; /*R表示工人數,前面是宏常量*/

for(i=0;;i++)

{

system("cls"); /*清頻命令*/

menu(); /*菜單函數提示用戶如何做出選擇*/

printf("What do you want to do?\n");

printf("Please choose:"); /* 輸入要執行的操作*/

scanf("%d",&choice);

if(choice==0) /* 退出程序*/

break;

else

switch(choice)

{

case 1 :data_count(sxy);break; /*計算每個人在上個月每個產品的銷售額*/

case 2 :range_sxy(sxy);break; /*按銷售額對銷售人員進行排序,輸出排序結果*/

case 3 : range_shangpin(sxy);break; /*計算每個產品的總銷售額,輸出排序結果*/

case 4 : data_out(sxy);break; /*輸出統計報告*/

}

}

}

  • 上一篇:服藥期間可以喝茶水嗎?
  • 下一篇:河北省計量監督管理條例(2014修正)
  • copyright 2024偏方大全网