c语言销售管理系统.docx
《c语言销售管理系统.docx》由会员分享,可在线阅读,更多相关《c语言销售管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
c语言销售管理系统
C语言销售管理系统—课设满分作品
带报表和折线图显示
#includeh>#include〈windows。h〉#include〈wincon。h>#include〈string。h>#includeh>#include#includeh>#defineNULL0CONSOLE_SCREEN_BUFFER_INFOcsbiInfo;externWINBASEAPIHWNDWINAPIGetConsoleWindow();voidinput();//实现手动输入销售信息voidmenu();//程序菜单主界面显示voiddaoru();//函数声明voidseek();//销售信息查询voidsave();//销售信息保存voiddel();//销售信息删除voiddef();//销售信息初始化voidhistory(people);//实现销售历史查询voidclear();//实现清屏voidfilepath();//判断是否为默认文件位置,及询问是否要求修改文件位置voidbaobiao();//打印报表voidtxt(zx);//折线图voidsxt(g1,g2,g3,g4,g5);//扇形图intghj=1;intfile_choose=0;//文件导入初始状态//全局变量charfilename[30]=”sell.txt";//默认文件位置intprice[5]={2,2,2,2,2};//默认商品价格structgood{intnum;//产品编号intf_name[10];//产品名称floatprice;//产品价格商品属性intdate;//销售日期intsum;//销售数量}good[5];//定义商品属性结构体,及五个商品structseller{intnum;//销售员编号charname[8];//销售员姓名charsex;//销售员性别structgoodgood[5];//五种商品}sell[4];//定义销售员结构体,及四个销售员structday{structsellersell[4];}d[31];structyear{structdayd[31];}m[12];intmain(intargc,char*argv[]){intx=0;x=MessageBox(NULL,”欢迎使用销售管理系统\n作者:xx\n班级:xxxx",”欢迎",MB_YESNO);if(x==6)menu();return0;}/************************************************************函数名:daoru()*描述:从文件导入数据*入口参数:无;*出口参数:无;******************************************************************/voiddaoru(){FILE*fp;inti,day,month;if((fp=fopen(filename,"r”))==NULL){printf("文件不存在!”);return;}for(month=0;month〈12;month++)for(day=0;day<31;day++)//把文件读取到内存中for(i=0;i<4;i++)fscanf(fp,"%6d%6d%6d%6d%6d\n”,&m[month].d[day].sell[i]。good[0].sum,&m[month]。d[day]。sell[i]。good[1].sum,&m[month].d[day]。sell[i].good[2].sum,&m[month]。d[day].sell[i]。good[3]。sum,&m[month].d[day].sell[i]。good[4].sum);fclose(fp);}/************************************************************函数名:inpit()*描述:数据的手动输入*入口参数:无;*出口参数:无;******************************************************************/voidinput(){inti=0,day=0,x=0,month=0;filepath();daoru();//文件导入及判断printf(”请输入要查找的日期如11即一月一日:");scanf(”%d%d”,&month,&day);month—-;day-—;////保持实际时间与数组一致printf(”请输入销售人员编号:\n1:xx2:xx3:xx4:xx:”);scanf("%d”,&i);i——;printf(”请输入具体要录入的商品种类1~5对应商品1-5:”);//用于查找所需的具体数据scanf("%d",&x);x--;printf(”输入销售数量:");scanf("%d”,&m[month]。d[day]。sell[i].good[x]。sum);printf(”完成!”);save();}/************************************************************函数名:seek()*描述:查找*入口参数:无;*出口参数:无;******************************************************************/voidseek(){charch;inti=0,j=0,choose=0,day=0,t=0,all=0,month;filepath();daoru();printf(”请输入要查找的日期如11即一月一日:");scanf(”%d%d",&month,&day);month--;day—-;//保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx2:xx3:xx4:xx:”);scanf(”%d",&i);i-—;printf("请选择1,当天具体商品销售情况2,当天该销售员销售情况:”);scanf("%d",&choose);switch(choose){case1:{printf(”请输入具体要查找的商品种类1~5对应商品1—5\n");scanf("%d”,&t);t——;printf(”该销售员这天销售本商品的数量为:%d”,m[month]。d[day]。sell[i].good[t].sum);}break;case2:{printf(”产品代号\n”);printf("1。牛奶2。西瓜3.苹果4.白菜5.萝卜销售之和\n");for(j=0;j<5;j++)all+=m[month].d[day]。sell[i]。good[j].sum;printf("%—8d%-8d%—8d%—8d%-8d%—10d\n",m[month].d[day]。sell[i]。good[0]。sum,m[month]。d[day].sell[i].good[1]。sum,m[month].d[day]。sell[i].good[2].sum,m[month]。d[day].sell[i].good[3]。sum,m[month]。d[day].sell[i].good[4]。sum,all);}default:break;}}/************************************************************函数名:baobiao()*描述:打印报表*入口参数:无;*出口参数:无;******************************************************************/voidbaobiao(){charchoose='y’;inti,j,x=0,a=0,b=0,mo=0,th=0,partsum=0,month=0,sj=0;intday=0,alldat=0,partallsum[5]={0};intmx[4][5]={0},mxsum=0;//用于存放明细filepath();daoru();//读取数据及判断printf(”请选择1销售数量报表2销售额报表:");scanf(”%d",&i);if(i==1){for(i=0;i〈5;i++)price[i]=1;//利用价格为1时计算数量}else{sj=1;x=MessageBox(NULL,"是否使用内置价格?”,"提示”,MB_YESNO);if(x==7){printf(”请依次输入五种商品价格:");scanf("%d%d%d%d%d",&price[0],&price[1],&price[2],&price[3],&price[4]);//上次输入作为内置价格}}printf("输入两个月份及日期:例如315126(前者早上到后者晚上):”);scanf("%d%d%d%d”,&mo,&a,&th,&b);a—-;b——;//保持实际时间与数组一致mo——;th——;clear();if(sj==0){printf("时间段:%d月%d日--%d月%d日的销售数量汇总报表\n”,mo+1,a+1,th+1,1+b);}else{printf("时间段:%d月%d日-—%d月%d日的销售额汇总报表\n",mo+1,a+1,th+1,1+b);printf(”五种商品对应价格为:%d%d%d%d%d\n”,price[0],price[1],price[2],price[3],price[4]);}printf(”\n产品代号及名称\n");printf("姓名编号\t1。牛奶\t2。西瓜\t3。苹果\t4。白菜\t5.萝卜\t销售之和\n”);//计算间隔整月if(th—mo〉0){for(month=mo+1;month〈=(th-1);month++){for(day=0;day<31;day++){for(i=0;i〈4;i++){for(j=0;j<=4;j++){mx[i][j]=mx[i][j]+m[month]。d[day]。sell[i]。good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i〈5;i++){for(j=0,partsum=0;j〈4;j++){partsum+=m[month]。d[day]。sell[j]。good[i].sum*price[i];}//统计同种商品数目,一维数组当天4个销售员同种商品数目partallsum[i]+=partsum;}}}//间隔整月前一段for(day=a;day〈31;day++){for(i=0;i〈4;i++){for(j=0;j<=4;j++){mx[i][j]=mx[i][j]+m[mo]。d[day]。sell[i]。good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i〈5;i++){for(j=0,partsum=0;j〈4;j++){partsum+=m[mo]。d[day].sell[j]。good[i]。sum*price[i];}partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目}}//间隔整月后一段for(day=0;day<=b;day++){for(i=0;i<4;i++){for(j=0;j<=4;j++){mx[i][j]=mx[i][j]+m[th].d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i<5;i++){for(j=0,partsum=0;j<4;j++){partsum+=m[th].d[day].sell[j].good[i]。sum*price[i];}partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目}}}elseif((th-mo)==0){for(day=a;day〈=b;day++){for(i=0;i〈4;i++){for(j=0;j〈=4;j++){mx[i][j]=mx[i][j]+m[mo]。d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i<5;i++){for(j=0,partsum=0;j<4;j++){partsum+=m[mo]。d[day]。sell[j].good[i]。sum*price[i];}partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目}}}//输出报表for(i=0;i<4;i++){printf("%—6s",sell[i].name);//销售员姓名for(j=0;j<5;j++){printf(”\t%d”,mx[i][j]);mxsum+=mx[i][j];//二维数组记录销售员}printf("\t%d\n”,mxsum);mxsum=0;//用于下次循环的初始化}//输出表格同类商品总计printf(”同类商品”);for(i=0;i<5;i++){printf(”\t%d”,partallsum[i]);//统计同种商品数目,一维数组alldat+=partallsum[i];//合计所有的商品}printf(”\t合计:%d",alldat);//所有商品合计x=MessageBox(NULL,”是否打印扇形形图?",”提示",MB_YESNO);if(x==6){clear();printf(”时间段:%d月%d日--%d月%d日",mo+1,a+1,th+1,1+b);printf(”销售扇形图”);sxt(partallsum[0],partallsum[1],partallsum[2],partallsum[3],partallsum[4]);}}/************************************************************函数名:del()*描述:删除*入口参数:无;*出口参数:无;******************************************************************/voiddel(){inti=0,day=0,x=0,month;intchoose;filepath();daoru();printf("请输入要查找日期如1月1日输入11:");scanf(”%d%d”,&month,&day);month--;day—-;//保持实际时间与数组一致printf(”请输入销售人员编号:\n1:xx2:xx3:xx4:xx:”);scanf(”%d”,&i);i—-;printf("请选择1.删除该销售员整天的销售信息2。具体商品销售信息:”);scanf("%d”,&choose);switch(choose){case1:{for(x=0;x<5;x++)m[month].d[day].sell[i].good[x].sum=0;}break;case2:{printf("请输入具体要删除的商品种类1~5对应商品1-5:”);scanf(”%d",&x);x--;m[month]。d[day]。sell[i]。good[x].sum=0;}break;default:break;}printf(”已删除指定销售员信息");save();}/************************************************************函数名:def()*描述:销售数据初始化*入口参数:无;*出口参数:无;******************************************************************/voiddef(){FILE*fp;inti,day,month;filepath();fp=fopen(filename,”w");for(month=0;month〈12;month++)for(day=0;day〈31;day++){for(i=0;i〈4;i++)//保存信息到文件fprintf(fp,”%—6d%—6d%—6d%—6d%—6d\n",m[month].d[day]。sell[i]。good[0]。sum=0,m[month]。d[day]。sell[i]。good[1].sum=0,m[month].d[day]。sell[i].good[2].sum=0,m[month]。d[day]。sell[i]。good[3].sum=0,m[month].d[day].sell[i]。good[4]。sum=0);fprintf(fp,"\n”);//日期间隔}printf(”初始化操作完成!");fclose(fp);}/************************************************************函数名:filepath()*描述:判断及修改文件位置*入口参数:无;*出口参数:无;******************************************************************/voidfilepath(){charchoose;intx;clear();if(file_choose==0){x=MessageBox(NULL,"现在为默认文件\n是否使用?",”提示”,MB_YESNO);if(x==7){printf("请输入文件绝对路径:");fflush(stdin);gets(filename);file_choose=1;//其他位置文件标志}else{x=MessageBox(NULL,”不在提醒?",”提示",MB_YESNO);if(x==6){file_choose=2;//其他位置文件标志printf(”设置成功\n");}}}}/************************************************************函数名:save()*描述:保存数据*入口参数:无;*出口参数:无;******************************************************************/voidsave(people){FILE*fp;intday,i,month;fp=fopen(filename,"w");for(month=
h>
#include〈windows。
h〉
#include〈wincon。
#include〈string。
#includeh>#include#includeh>#defineNULL0CONSOLE_SCREEN_BUFFER_INFOcsbiInfo;externWINBASEAPIHWNDWINAPIGetConsoleWindow();voidinput();//实现手动输入销售信息voidmenu();//程序菜单主界面显示voiddaoru();//函数声明voidseek();//销售信息查询voidsave();//销售信息保存voiddel();//销售信息删除voiddef();//销售信息初始化voidhistory(people);//实现销售历史查询voidclear();//实现清屏voidfilepath();//判断是否为默认文件位置,及询问是否要求修改文件位置voidbaobiao();//打印报表voidtxt(zx);//折线图voidsxt(g1,g2,g3,g4,g5);//扇形图intghj=1;intfile_choose=0;//文件导入初始状态//全局变量charfilename[30]=”sell.txt";//默认文件位置intprice[5]={2,2,2,2,2};//默认商品价格structgood{intnum;//产品编号intf_name[10];//产品名称floatprice;//产品价格商品属性intdate;//销售日期intsum;//销售数量}good[5];//定义商品属性结构体,及五个商品structseller{intnum;//销售员编号charname[8];//销售员姓名charsex;//销售员性别structgoodgood[5];//五种商品}sell[4];//定义销售员结构体,及四个销售员structday{structsellersell[4];}d[31];structyear{structdayd[31];}m[12];intmain(intargc,char*argv[]){intx=0;x=MessageBox(NULL,”欢迎使用销售管理系统\n作者:xx\n班级:xxxx",”欢迎",MB_YESNO);if(x==6)menu();return0;}/************************************************************函数名:daoru()*描述:从文件导入数据*入口参数:无;*出口参数:无;******************************************************************/voiddaoru(){FILE*fp;inti,day,month;if((fp=fopen(filename,"r”))==NULL){printf("文件不存在!”);return;}for(month=0;month〈12;month++)for(day=0;day<31;day++)//把文件读取到内存中for(i=0;i<4;i++)fscanf(fp,"%6d%6d%6d%6d%6d\n”,&m[month].d[day].sell[i]。good[0].sum,&m[month]。d[day]。sell[i]。good[1].sum,&m[month].d[day]。sell[i].good[2].sum,&m[month]。d[day].sell[i]。good[3]。sum,&m[month].d[day].sell[i]。good[4].sum);fclose(fp);}/************************************************************函数名:inpit()*描述:数据的手动输入*入口参数:无;*出口参数:无;******************************************************************/voidinput(){inti=0,day=0,x=0,month=0;filepath();daoru();//文件导入及判断printf(”请输入要查找的日期如11即一月一日:");scanf(”%d%d”,&month,&day);month—-;day-—;////保持实际时间与数组一致printf(”请输入销售人员编号:\n1:xx2:xx3:xx4:xx:”);scanf("%d”,&i);i——;printf(”请输入具体要录入的商品种类1~5对应商品1-5:”);//用于查找所需的具体数据scanf("%d",&x);x--;printf(”输入销售数量:");scanf("%d”,&m[month]。d[day]。sell[i].good[x]。sum);printf(”完成!”);save();}/************************************************************函数名:seek()*描述:查找*入口参数:无;*出口参数:无;******************************************************************/voidseek(){charch;inti=0,j=0,choose=0,day=0,t=0,all=0,month;filepath();daoru();printf(”请输入要查找的日期如11即一月一日:");scanf(”%d%d",&month,&day);month--;day—-;//保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx2:xx3:xx4:xx:”);scanf(”%d",&i);i-—;printf("请选择1,当天具体商品销售情况2,当天该销售员销售情况:”);scanf("%d",&choose);switch(choose){case1:{printf(”请输入具体要查找的商品种类1~5对应商品1—5\n");scanf("%d”,&t);t——;printf(”该销售员这天销售本商品的数量为:%d”,m[month]。d[day]。sell[i].good[t].sum);}break;case2:{printf(”产品代号\n”);printf("1。牛奶2。西瓜3.苹果4.白菜5.萝卜销售之和\n");for(j=0;j<5;j++)all+=m[month].d[day]。sell[i]。good[j].sum;printf("%—8d%-8d%—8d%—8d%-8d%—10d\n",m[month].d[day]。sell[i]。good[0]。sum,m[month]。d[day].sell[i].good[1]。sum,m[month].d[day]。sell[i].good[2].sum,m[month]。d[day].sell[i].good[3]。sum,m[month]。d[day].sell[i].good[4]。sum,all);}default:break;}}/************************************************************函数名:baobiao()*描述:打印报表*入口参数:无;*出口参数:无;******************************************************************/voidbaobiao(){charchoose='y’;inti,j,x=0,a=0,b=0,mo=0,th=0,partsum=0,month=0,sj=0;intday=0,alldat=0,partallsum[5]={0};intmx[4][5]={0},mxsum=0;//用于存放明细filepath();daoru();//读取数据及判断printf(”请选择1销售数量报表2销售额报表:");scanf(”%d",&i);if(i==1){for(i=0;i〈5;i++)price[i]=1;//利用价格为1时计算数量}else{sj=1;x=MessageBox(NULL,"是否使用内置价格?”,"提示”,MB_YESNO);if(x==7){printf(”请依次输入五种商品价格:");scanf("%d%d%d%d%d",&price[0],&price[1],&price[2],&price[3],&price[4]);//上次输入作为内置价格}}printf("输入两个月份及日期:例如315126(前者早上到后者晚上):”);scanf("%d%d%d%d”,&mo,&a,&th,&b);a—-;b——;//保持实际时间与数组一致mo——;th——;clear();if(sj==0){printf("时间段:%d月%d日--%d月%d日的销售数量汇总报表\n”,mo+1,a+1,th+1,1+b);}else{printf("时间段:%d月%d日-—%d月%d日的销售额汇总报表\n",mo+1,a+1,th+1,1+b);printf(”五种商品对应价格为:%d%d%d%d%d\n”,price[0],price[1],price[2],price[3],price[4]);}printf(”\n产品代号及名称\n");printf("姓名编号\t1。牛奶\t2。西瓜\t3。苹果\t4。白菜\t5.萝卜\t销售之和\n”);//计算间隔整月if(th—mo〉0){for(month=mo+1;month〈=(th-1);month++){for(day=0;day<31;day++){for(i=0;i〈4;i++){for(j=0;j<=4;j++){mx[i][j]=mx[i][j]+m[month]。d[day]。sell[i]。good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i〈5;i++){for(j=0,partsum=0;j〈4;j++){partsum+=m[month]。d[day]。sell[j]。good[i].sum*price[i];}//统计同种商品数目,一维数组当天4个销售员同种商品数目partallsum[i]+=partsum;}}}//间隔整月前一段for(day=a;day〈31;day++){for(i=0;i〈4;i++){for(j=0;j<=4;j++){mx[i][j]=mx[i][j]+m[mo]。d[day]。sell[i]。good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i〈5;i++){for(j=0,partsum=0;j〈4;j++){partsum+=m[mo]。d[day].sell[j]。good[i]。sum*price[i];}partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目}}//间隔整月后一段for(day=0;day<=b;day++){for(i=0;i<4;i++){for(j=0;j<=4;j++){mx[i][j]=mx[i][j]+m[th].d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i<5;i++){for(j=0,partsum=0;j<4;j++){partsum+=m[th].d[day].sell[j].good[i]。sum*price[i];}partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目}}}elseif((th-mo)==0){for(day=a;day〈=b;day++){for(i=0;i〈4;i++){for(j=0;j〈=4;j++){mx[i][j]=mx[i][j]+m[mo]。d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i<5;i++){for(j=0,partsum=0;j<4;j++){partsum+=m[mo]。d[day]。sell[j].good[i]。sum*price[i];}partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目}}}//输出报表for(i=0;i<4;i++){printf("%—6s",sell[i].name);//销售员姓名for(j=0;j<5;j++){printf(”\t%d”,mx[i][j]);mxsum+=mx[i][j];//二维数组记录销售员}printf("\t%d\n”,mxsum);mxsum=0;//用于下次循环的初始化}//输出表格同类商品总计printf(”同类商品”);for(i=0;i<5;i++){printf(”\t%d”,partallsum[i]);//统计同种商品数目,一维数组alldat+=partallsum[i];//合计所有的商品}printf(”\t合计:%d",alldat);//所有商品合计x=MessageBox(NULL,”是否打印扇形形图?",”提示",MB_YESNO);if(x==6){clear();printf(”时间段:%d月%d日--%d月%d日",mo+1,a+1,th+1,1+b);printf(”销售扇形图”);sxt(partallsum[0],partallsum[1],partallsum[2],partallsum[3],partallsum[4]);}}/************************************************************函数名:del()*描述:删除*入口参数:无;*出口参数:无;******************************************************************/voiddel(){inti=0,day=0,x=0,month;intchoose;filepath();daoru();printf("请输入要查找日期如1月1日输入11:");scanf(”%d%d”,&month,&day);month--;day—-;//保持实际时间与数组一致printf(”请输入销售人员编号:\n1:xx2:xx3:xx4:xx:”);scanf(”%d”,&i);i—-;printf("请选择1.删除该销售员整天的销售信息2。具体商品销售信息:”);scanf("%d”,&choose);switch(choose){case1:{for(x=0;x<5;x++)m[month].d[day].sell[i].good[x].sum=0;}break;case2:{printf("请输入具体要删除的商品种类1~5对应商品1-5:”);scanf(”%d",&x);x--;m[month]。d[day]。sell[i]。good[x].sum=0;}break;default:break;}printf(”已删除指定销售员信息");save();}/************************************************************函数名:def()*描述:销售数据初始化*入口参数:无;*出口参数:无;******************************************************************/voiddef(){FILE*fp;inti,day,month;filepath();fp=fopen(filename,”w");for(month=0;month〈12;month++)for(day=0;day〈31;day++){for(i=0;i〈4;i++)//保存信息到文件fprintf(fp,”%—6d%—6d%—6d%—6d%—6d\n",m[month].d[day]。sell[i]。good[0]。sum=0,m[month]。d[day]。sell[i]。good[1].sum=0,m[month].d[day]。sell[i].good[2].sum=0,m[month]。d[day]。sell[i]。good[3].sum=0,m[month].d[day].sell[i]。good[4]。sum=0);fprintf(fp,"\n”);//日期间隔}printf(”初始化操作完成!");fclose(fp);}/************************************************************函数名:filepath()*描述:判断及修改文件位置*入口参数:无;*出口参数:无;******************************************************************/voidfilepath(){charchoose;intx;clear();if(file_choose==0){x=MessageBox(NULL,"现在为默认文件\n是否使用?",”提示”,MB_YESNO);if(x==7){printf("请输入文件绝对路径:");fflush(stdin);gets(filename);file_choose=1;//其他位置文件标志}else{x=MessageBox(NULL,”不在提醒?",”提示",MB_YESNO);if(x==6){file_choose=2;//其他位置文件标志printf(”设置成功\n");}}}}/************************************************************函数名:save()*描述:保存数据*入口参数:无;*出口参数:无;******************************************************************/voidsave(people){FILE*fp;intday,i,month;fp=fopen(filename,"w");for(month=
#include
#includeh>#defineNULL0CONSOLE_SCREEN_BUFFER_INFOcsbiInfo;externWINBASEAPIHWNDWINAPIGetConsoleWindow();voidinput();//实现手动输入销售信息voidmenu();//程序菜单主界面显示voiddaoru();//函数声明voidseek();//销售信息查询voidsave();//销售信息保存voiddel();//销售信息删除voiddef();//销售信息初始化voidhistory(people);//实现销售历史查询voidclear();//实现清屏voidfilepath();//判断是否为默认文件位置,及询问是否要求修改文件位置voidbaobiao();//打印报表voidtxt(zx);//折线图voidsxt(g1,g2,g3,g4,g5);//扇形图intghj=1;intfile_choose=0;//文件导入初始状态//全局变量charfilename[30]=”sell.txt";//默认文件位置intprice[5]={2,2,2,2,2};//默认商品价格structgood{intnum;//产品编号intf_name[10];//产品名称floatprice;//产品价格商品属性intdate;//销售日期intsum;//销售数量}good[5];//定义商品属性结构体,及五个商品structseller{intnum;//销售员编号charname[8];//销售员姓名charsex;//销售员性别structgoodgood[5];//五种商品}sell[4];//定义销售员结构体,及四个销售员structday{structsellersell[4];}d[31];structyear{structdayd[31];}m[12];intmain(intargc,char*argv[]){intx=0;x=MessageBox(NULL,”欢迎使用销售管理系统\n作者:xx\n班级:xxxx",”欢迎",MB_YESNO);if(x==6)menu();return0;}/************************************************************函数名:daoru()*描述:从文件导入数据*入口参数:无;*出口参数:无;******************************************************************/voiddaoru(){FILE*fp;inti,day,month;if((fp=fopen(filename,"r”))==NULL){printf("文件不存在!”);return;}for(month=0;month〈12;month++)for(day=0;day<31;day++)//把文件读取到内存中for(i=0;i<4;i++)fscanf(fp,"%6d%6d%6d%6d%6d\n”,&m[month].d[day].sell[i]。good[0].sum,&m[month]。d[day]。sell[i]。good[1].sum,&m[month].d[day]。sell[i].good[2].sum,&m[month]。d[day].sell[i]。good[3]。sum,&m[month].d[day].sell[i]。good[4].sum);fclose(fp);}/************************************************************函数名:inpit()*描述:数据的手动输入*入口参数:无;*出口参数:无;******************************************************************/voidinput(){inti=0,day=0,x=0,month=0;filepath();daoru();//文件导入及判断printf(”请输入要查找的日期如11即一月一日:");scanf(”%d%d”,&month,&day);month—-;day-—;////保持实际时间与数组一致printf(”请输入销售人员编号:\n1:xx2:xx3:xx4:xx:”);scanf("%d”,&i);i——;printf(”请输入具体要录入的商品种类1~5对应商品1-5:”);//用于查找所需的具体数据scanf("%d",&x);x--;printf(”输入销售数量:");scanf("%d”,&m[month]。d[day]。sell[i].good[x]。sum);printf(”完成!”);save();}/************************************************************函数名:seek()*描述:查找*入口参数:无;*出口参数:无;******************************************************************/voidseek(){charch;inti=0,j=0,choose=0,day=0,t=0,all=0,month;filepath();daoru();printf(”请输入要查找的日期如11即一月一日:");scanf(”%d%d",&month,&day);month--;day—-;//保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx2:xx3:xx4:xx:”);scanf(”%d",&i);i-—;printf("请选择1,当天具体商品销售情况2,当天该销售员销售情况:”);scanf("%d",&choose);switch(choose){case1:{printf(”请输入具体要查找的商品种类1~5对应商品1—5\n");scanf("%d”,&t);t——;printf(”该销售员这天销售本商品的数量为:%d”,m[month]。d[day]。sell[i].good[t].sum);}break;case2:{printf(”产品代号\n”);printf("1。牛奶2。西瓜3.苹果4.白菜5.萝卜销售之和\n");for(j=0;j<5;j++)all+=m[month].d[day]。sell[i]。good[j].sum;printf("%—8d%-8d%—8d%—8d%-8d%—10d\n",m[month].d[day]。sell[i]。good[0]。sum,m[month]。d[day].sell[i].good[1]。sum,m[month].d[day]。sell[i].good[2].sum,m[month]。d[day].sell[i].good[3]。sum,m[month]。d[day].sell[i].good[4]。sum,all);}default:break;}}/************************************************************函数名:baobiao()*描述:打印报表*入口参数:无;*出口参数:无;******************************************************************/voidbaobiao(){charchoose='y’;inti,j,x=0,a=0,b=0,mo=0,th=0,partsum=0,month=0,sj=0;intday=0,alldat=0,partallsum[5]={0};intmx[4][5]={0},mxsum=0;//用于存放明细filepath();daoru();//读取数据及判断printf(”请选择1销售数量报表2销售额报表:");scanf(”%d",&i);if(i==1){for(i=0;i〈5;i++)price[i]=1;//利用价格为1时计算数量}else{sj=1;x=MessageBox(NULL,"是否使用内置价格?”,"提示”,MB_YESNO);if(x==7){printf(”请依次输入五种商品价格:");scanf("%d%d%d%d%d",&price[0],&price[1],&price[2],&price[3],&price[4]);//上次输入作为内置价格}}printf("输入两个月份及日期:例如315126(前者早上到后者晚上):”);scanf("%d%d%d%d”,&mo,&a,&th,&b);a—-;b——;//保持实际时间与数组一致mo——;th——;clear();if(sj==0){printf("时间段:%d月%d日--%d月%d日的销售数量汇总报表\n”,mo+1,a+1,th+1,1+b);}else{printf("时间段:%d月%d日-—%d月%d日的销售额汇总报表\n",mo+1,a+1,th+1,1+b);printf(”五种商品对应价格为:%d%d%d%d%d\n”,price[0],price[1],price[2],price[3],price[4]);}printf(”\n产品代号及名称\n");printf("姓名编号\t1。牛奶\t2。西瓜\t3。苹果\t4。白菜\t5.萝卜\t销售之和\n”);//计算间隔整月if(th—mo〉0){for(month=mo+1;month〈=(th-1);month++){for(day=0;day<31;day++){for(i=0;i〈4;i++){for(j=0;j<=4;j++){mx[i][j]=mx[i][j]+m[month]。d[day]。sell[i]。good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i〈5;i++){for(j=0,partsum=0;j〈4;j++){partsum+=m[month]。d[day]。sell[j]。good[i].sum*price[i];}//统计同种商品数目,一维数组当天4个销售员同种商品数目partallsum[i]+=partsum;}}}//间隔整月前一段for(day=a;day〈31;day++){for(i=0;i〈4;i++){for(j=0;j<=4;j++){mx[i][j]=mx[i][j]+m[mo]。d[day]。sell[i]。good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i〈5;i++){for(j=0,partsum=0;j〈4;j++){partsum+=m[mo]。d[day].sell[j]。good[i]。sum*price[i];}partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目}}//间隔整月后一段for(day=0;day<=b;day++){for(i=0;i<4;i++){for(j=0;j<=4;j++){mx[i][j]=mx[i][j]+m[th].d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i<5;i++){for(j=0,partsum=0;j<4;j++){partsum+=m[th].d[day].sell[j].good[i]。sum*price[i];}partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目}}}elseif((th-mo)==0){for(day=a;day〈=b;day++){for(i=0;i〈4;i++){for(j=0;j〈=4;j++){mx[i][j]=mx[i][j]+m[mo]。d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况}}for(i=0;i<5;i++){for(j=0,partsum=0;j<4;j++){partsum+=m[mo]。d[day]。sell[j].good[i]。sum*price[i];}partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目}}}//输出报表for(i=0;i<4;i++){printf("%—6s",sell[i].name);//销售员姓名for(j=0;j<5;j++){printf(”\t%d”,mx[i][j]);mxsum+=mx[i][j];//二维数组记录销售员}printf("\t%d\n”,mxsum);mxsum=0;//用于下次循环的初始化}//输出表格同类商品总计printf(”同类商品”);for(i=0;i<5;i++){printf(”\t%d”,partallsum[i]);//统计同种商品数目,一维数组alldat+=partallsum[i];//合计所有的商品}printf(”\t合计:%d",alldat);//所有商品合计x=MessageBox(NULL,”是否打印扇形形图?",”提示",MB_YESNO);if(x==6){clear();printf(”时间段:%d月%d日--%d月%d日",mo+1,a+1,th+1,1+b);printf(”销售扇形图”);sxt(partallsum[0],partallsum[1],partallsum[2],partallsum[3],partallsum[4]);}}/************************************************************函数名:del()*描述:删除*入口参数:无;*出口参数:无;******************************************************************/voiddel(){inti=0,day=0,x=0,month;intchoose;filepath();daoru();printf("请输入要查找日期如1月1日输入11:");scanf(”%d%d”,&month,&day);month--;day—-;//保持实际时间与数组一致printf(”请输入销售人员编号:\n1:xx2:xx3:xx4:xx:”);scanf(”%d”,&i);i—-;printf("请选择1.删除该销售员整天的销售信息2。具体商品销售信息:”);scanf("%d”,&choose);switch(choose){case1:{for(x=0;x<5;x++)m[month].d[day].sell[i].good[x].sum=0;}break;case2:{printf("请输入具体要删除的商品种类1~5对应商品1-5:”);scanf(”%d",&x);x--;m[month]。d[day]。sell[i]。good[x].sum=0;}break;default:break;}printf(”已删除指定销售员信息");save();}/************************************************************函数名:def()*描述:销售数据初始化*入口参数:无;*出口参数:无;******************************************************************/voiddef(){FILE*fp;inti,day,month;filepath();fp=fopen(filename,”w");for(month=0;month〈12;month++)for(day=0;day〈31;day++){for(i=0;i〈4;i++)//保存信息到文件fprintf(fp,”%—6d%—6d%—6d%—6d%—6d\n",m[month].d[day]。sell[i]。good[0]。sum=0,m[month]。d[day]。sell[i]。good[1].sum=0,m[month].d[day]。sell[i].good[2].sum=0,m[month]。d[day]。sell[i]。good[3].sum=0,m[month].d[day].sell[i]。good[4]。sum=0);fprintf(fp,"\n”);//日期间隔}printf(”初始化操作完成!");fclose(fp);}/************************************************************函数名:filepath()*描述:判断及修改文件位置*入口参数:无;*出口参数:无;******************************************************************/voidfilepath(){charchoose;intx;clear();if(file_choose==0){x=MessageBox(NULL,"现在为默认文件\n是否使用?",”提示”,MB_YESNO);if(x==7){printf("请输入文件绝对路径:");fflush(stdin);gets(filename);file_choose=1;//其他位置文件标志}else{x=MessageBox(NULL,”不在提醒?",”提示",MB_YESNO);if(x==6){file_choose=2;//其他位置文件标志printf(”设置成功\n");}}}}/************************************************************函数名:save()*描述:保存数据*入口参数:无;*出口参数:无;******************************************************************/voidsave(people){FILE*fp;intday,i,month;fp=fopen(filename,"w");for(month=
#defineNULL0
CONSOLE_SCREEN_BUFFER_INFOcsbiInfo;
externWINBASEAPIHWNDWINAPIGetConsoleWindow();
voidinput();//实现手动输入销售信息
voidmenu();//程序菜单主界面显示
voiddaoru();//函数声明
voidseek();//销售信息查询
voidsave();//销售信息保存
voiddel();//销售信息删除
voiddef();//销售信息初始化
voidhistory(people);//实现销售历史查询
voidclear();//实现清屏
voidfilepath();//判断是否为默认文件位置,及询问是否要求修改文件位置
voidbaobiao();//打印报表
voidtxt(zx);//折线图
voidsxt(g1,g2,g3,g4,g5);//扇形图
intghj=1;
intfile_choose=0;//文件导入初始状态//全局变量
charfilename[30]=”sell.txt";//默认文件位置
intprice[5]={2,2,2,2,2};//默认商品价格
structgood
{
intnum;//产品编号
intf_name[10];//产品名称
floatprice;//产品价格商品属性
intdate;//销售日期
intsum;//销售数量
}good[5];//定义商品属性结构体,及五个商品
structseller
intnum;//销售员编号
charname[8];//销售员姓名
charsex;//销售员性别
structgoodgood[5];//五种商品
}sell[4];//定义销售员结构体,及四个销售员
structday
structsellersell[4];
}d[31];
structyear
{
structdayd[31];
}m[12];
intmain(intargc,char*argv[])
intx=0;
x=MessageBox(NULL,”欢迎使用销售管理系统\n作者:
xx\n班级:
xxxx",”欢迎",MB_YESNO);
if(x==6)menu();
return0;
}
/***********************************************************
*函数名:
daoru()
*描述:
从文件导入数据
*入口参数:
无;
*出口参数:
无;
******************************************************************/
voiddaoru()
FILE*fp;
inti,day,month;
if((fp=fopen(filename,"r”))==NULL)
printf("文件不存在!
”);
return;
}
for(month=0;month〈12;month++)
for(day=0;day<31;day++)//把文件读取到内存中
for(i=0;i<4;i++)
fscanf(fp,"%6d%6d%6d%6d%6d\n”,&m[month].d[day].sell[i]。
good[0].sum,&m[month]。
d[day]。
sell[i]。
good[1].sum,&m[month].d[day]。
sell[i].good[2].sum,&m[month]。
d[day].sell[i]。
good[3]。
sum,&m[month].d[day].sell[i]。
good[4].sum);
fclose(fp);
/***********************************************************
inpit()
*描述:
数据的手动输入
*入口参数:
*出口参数:
******************************************************************/
voidinput()
inti=0,day=0,x=0,month=0;
filepath();
daoru();//文件导入及判断
printf(”请输入要查找的日期如11即一月一日:
");
scanf(”%d%d”,&month,&day);
month—-;
day-—;////保持实际时间与数组一致
printf(”请输入销售人员编号:
\n1:
xx2:
xx3:
xx4:
xx:
scanf("%d”,&i);
i——;
printf(”请输入具体要录入的商品种类1~5对应商品1-5:
”);//用于查找所需的具体数据
scanf("%d",&x);
x--;
printf(”输入销售数量:
scanf("%d”,&m[month]。
d[day]。
sell[i].good[x]。
sum);
printf(”完成!
”);
save();
/***********************************************************
*函数名:
seek()
*描述:
查找
******************************************************************/
voidseek()
charch;
inti=0,j=0,choose=0,day=0,t=0,all=0,month;
daoru();
printf(”请输入要查找的日期如11即一月一日:
scanf(”%d%d",&month,&day);
month--;
day—-;//保持实际时间与数组一致
printf("请输入销售人员编号:
\n1:
scanf(”%d",&i);
i-—;
printf("请选择1,当天具体商品销售情况2,当天该销售员销售情况:
scanf("%d",&choose);
switch(choose)
case1:
printf(”请输入具体要查找的商品种类1~5对应商品1—5\n");
scanf("%d”,&t);
t——;
printf(”该销售员这天销售本商品的数量为:
%d”,m[month]。
sell[i].good[t].sum);
break;
case2:
printf(”产品代号\n”);
printf("1。
牛奶2。
西瓜3.苹果4.白菜5.萝卜销售之和\n");
for(j=0;j<5;j++)all+=m[month].d[day]。
sell[i]。
good[j].sum;
printf("%—8d%-8d%—8d%—8d%-8d%—10d\n",m[month].d[day]。
sell[i]。
good[0]。
sum,m[month]。
d[day].sell[i].good[1]。
sum,m[month].d[day]。
sell[i].good[2].sum,m[month]。
d[day].sell[i].good[3]。
d[day].sell[i].good[4]。
sum,all);
default:
/***********************************************************
baobiao()
打印报表
*出口参数:
******************************************************************/
voidbaobiao()
charchoose='y’;
inti,j,x=0,a=0,b=0,mo=0,th=0,partsum=0,month=0,sj=0;
intday=0,alldat=0,partallsum[5]={0};
intmx[4][5]={0},mxsum=0;//用于存放明细
daoru();//读取数据及判断
printf(”请选择1销售数量报表2销售额报表:
scanf(”%d",&i);
if(i==1)
for(i=0;i〈5;i++)
price[i]=1;//利用价格为1时计算数量
else
sj=1;
x=MessageBox(NULL,"是否使用内置价格?
”,"提示”,MB_YESNO);
if(x==7)
printf(”请依次输入五种商品价格:
scanf("%d%d%d%d%d",&price[0],&price[1],&price[2],&price[3],&price[4]);//上次输入作为内置价格
printf("输入两个月份及日期:
例如315126(前者早上到后者晚上):
scanf("%d%d%d%d”,&mo,&a,&th,&b);
a—-;
b——;//保持实际时间与数组一致
mo——;
th——;
clear();
if(sj==0)
printf("时间段:
%d月%d日--%d月%d日的销售数量汇总报表\n”,mo+1,a+1,th+1,1+b);
printf("时间段:
%d月%d日-—%d月%d日的销售额汇总报表\n",mo+1,a+1,th+1,1+b);
printf(”五种商品对应价格为:
%d%d%d%d%d\n”,price[0],price[1],price[2],price[3],price[4]);
printf(”\n产品代号及名称\n");
printf("姓名编号\t1。
牛奶\t2。
西瓜\t3。
苹果\t4。
白菜\t5.萝卜\t销售之和\n”);
//计算间隔整月
if(th—mo〉0)
for(month=mo+1;month〈=(th-1);month++)
for(day=0;day<31;day++)
for(i=0;i〈4;i++)
for(j=0;j<=4;j++)
mx[i][j]=mx[i][j]+m[month]。
sell[i]。
good[j].sum*price[j];//累加计算所有他的所有销售情况
for(i=0;i〈5;i++)
for(j=0,partsum=0;j〈4;j++)
partsum+=m[month]。
d[day]。
sell[j]。
good[i].sum*price[i];
}//统计同种商品数目,一维数组当天4个销售员同种商品数目
partallsum[i]+=partsum;
//间隔整月前一段
for(day=a;day〈31;day++)
for(i=0;i〈4;i++)
for(j=0;j<=4;j++)
mx[i][j]=mx[i][j]+m[mo]。
d[day]。
good[j].sum*price[j];//累加计算所有他的所有销售情况
for(j=0,partsum=0;j〈4;j++)
partsum+=m[mo]。
d[day].sell[j]。
good[i]。
sum*price[i];
partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目
//间隔整月后一段
for(day=0;day<=b;day++)
for(i=0;i<4;i++)
for(j=0;j<=4;j++)
mx[i][j]=mx[i][j]+m[th].d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况
for(i=0;i<5;i++)
for(j=0,partsum=0;j<4;j++)
partsum+=m[th].d[day].sell[j].good[i]。
sum*price[i];
elseif((th-mo)==0)
for(day=a;day〈=b;day++)
for(j=0;j〈=4;j++)
mx[i][j]=mx[i][j]+m[mo]。
d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况
for(i=0;i<5;i++)
for(j=0,partsum=0;j<4;j++)
partsum+=m[mo]。
sell[j].good[i]。
sum*price[i];
partallsum[i]+=partsum;//统计同种商品数目,一维数组当天4个销售员同种商品数目
//输出报表
for(i=0;i<4;i++)
printf("%—6s",sell[i].name);//销售员姓名
for(j=0;j<5;j++)
printf(”\t%d”,mx[i][j]);
mxsum+=mx[i][j];//二维数组记录销售员
printf("\t%d\n”,mxsum);
mxsum=0;//用于下次循环的初始化
//输出表格同类商品总计
printf(”同类商品”);
printf(”\t%d”,partallsum[i]);//统计同种商品数目,一维数组
alldat+=partallsum[i];//合计所有的商品
printf(”\t合计:
%d",alldat);//所有商品合计
x=MessageBox(NULL,”是否打印扇形形图?
",”提示",MB_YESNO);
if(x==6)
clear();
printf(”时间段:
%d月%d日--%d月%d日",mo+1,a+1,th+1,1+b);
printf(”销售扇形图”);
sxt(partallsum[0],partallsum[1],partallsum[2],partallsum[3],partallsum[4]);
/***********************************************************
*函数名:
del()
删除
******************************************************************/
voiddel()
inti=0,day=0,x=0,month;
intchoose;
daoru();
printf("请输入要查找日期如1月1日输入11:
");
scanf(”%d%d”,&month,&day);
day—-;//保持实际时间与数组一致
printf(”请输入销售人员编号:
xx3:
xx4:
scanf(”%d”,&i);
i—-;
printf("请选择1.删除该销售员整天的销售信息2。
具体商品销售信息:
scanf("%d”,&choose);
for(x=0;x<5;x++)m[month].d[day].sell[i].good[x].sum=0;
case2:
printf("请输入具体要删除的商品种类1~5对应商品1-5:
scanf(”%d",&x);
x--;
m[month]。
good[x].sum=0;
printf(”已删除指定销售员信息");
save();
/***********************************************************
def()
销售数据初始化
*入口参数:
******************************************************************/
voiddef()
filepath();
fp=fopen(filename,”w");
for(day=0;day〈31;day++)
for(i=0;i〈4;i++)//保存信息到文件
fprintf(fp,”%—6d%—6d%—6d%—6d%—6d\n",m[month].d[day]。
good[0]。
sum=0,m[month]。
good[1].sum=0,m[month].d[day]。
sell[i].good[2].sum=0,m[month]。
good[3].sum=0,m[month].d[day].sell[i]。
good[4]。
sum=0);
fprintf(fp,"\n”);//日期间隔
printf(”初始化操作完成!
/***********************************************************
filepath()
判断及修改文件位置
******************************************************************/
voidfilepath()
charchoose;
intx;
if(file_choose==0)
x=MessageBox(NULL,"现在为默认文件\n是否使用?
",”提示”,MB_YESNO);
printf("请输入文件绝对路径:
fflush(stdin);
gets(filename);
file_choose=1;//其他位置文件标志
x=MessageBox(NULL,”不在提醒?
",”提示",MB_YESNO);
file_choose=2;//其他位置文件标志
printf(”设置成功\n");
/***********************************************************
save()
*描述:
保存数据
******************************************************************/
voidsave(people)
FILE*fp;
intday,i,month;
fp=fopen(filename,"w");
for(month=
下载文档到电脑,查找使用更方便
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
copyright@ 2008-2022 冰点文档网站版权所有
经营许可证编号:鄂ICP备2022015515号-1