c语言销售管理系统.docx
- 文档编号:9847684
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:37
- 大小:51.47KB
c语言销售管理系统.docx
《c语言销售管理系统.docx》由会员分享,可在线阅读,更多相关《c语言销售管理系统.docx(37页珍藏版)》请在冰点文库上搜索。
c语言销售管理系统
C吾言销售管理系统一■课设满分作品
带报表和折线图显示
#include
#include
#include
#include
#include
#include
#include
#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_YESN);Oif(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_YESN);O
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("时间段:
%4月%c0--%d月%cB的销售数量汇总报表\n",mo+1,a+1,th+1,1+
b);
}
else
{
printf("时间段:
%d月%c0--%d月%cB的销售额汇总报表\n",mo+1,a+1,th+1,1+b);
printf("五种商品对应价格为:
%c%c%c%c%c\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_YESN);O
if(x==6)
{
clear();
printf("时间段:
%4月%c0--%d月%cB",mo+1,a+1,th+1,1+b);printf("销售扇形图");
sxt(partallsum[0],partallsum[1],partallsum[2],partallsum[3],partallsum[4]);}}
/***********************************************************
*函数名:
cel()
*描述:
删除
*入口参数:
无;
*出口参数:
无;
******************************************************************/
voiccel()
{
inti=0,cay=0,x=0,month;
intchoose;filepath();caoru();
printf("请输入要查找日期如1月1日输入11:
");scanf("%c%c",&month,&cay);
month--;
cay--;//保持实际时间与数组一致printf("请输入销售人员编号:
\n1:
xx2:
xx3:
xx4:
xx:
");
scanf("%c",&i);
i--;
printf("请选择1.删除该销售员整天的销售信息2.具体商品销售信息:
");
scanf("%c",&choose);
switch(choose)
{
case1:
{
for(x=0;x<5;x++)m[month].c[cay].sell[i].gooc[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=MessageBoXNULL"现在为默认文件\n是否使用?
",“提示",MB_YESNO
if(x==7)
printf("请输入文件绝对路径:
");
fflush(stdin);gets(filename);
file_choose=1;//其他位置文件标志
}
else
{
x=MessageBox(NULL,"不在提醒?
","提示",MB_YESN);O
if(x==6)
{file_choose=2;//其他位置文件标志printf("设置成功\n");
}
}
}
}
/***********************************************************
*函数名:
save()
*描述:
保存数据
*入口参数:
无;
*出口参数:
无;******************************************************************/voidsave(people)
{
FILE*fp;
intday,i,month;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,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);
fprintf(fp,"\n");
}//写入文件fclose(fp);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 销售 管理 系统