c语言销售管理系统Word格式.docx
《c语言销售管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《c语言销售管理系统Word格式.docx(33页珍藏版)》请在冰豆网上搜索。
//打印报表
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
//销售员编号
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--;
////保持实际时间与数组一致
请输入销售人员编号:
\n1:
xx2:
xx3:
xx4:
xx:
%d"
i);
i--;
请输入具体要录入的商品种类1~5对应商品1-5:
//用于查找所需的具体数据
x);
x--;
输入销售数量:
m[month].d[day].sell[i].good[x].sum);
完成!
save();
seek()
查找
voidseek()
charch;
inti=0,j=0,choose=0,day=0,t=0,all=0,month;
//保持实际时间与数组一致
xx:
请选择1,当天具体商品销售情况2,当天该销售员销售情况:
choose);
switch(choose)
case1:
printf("
请输入具体要查找的商品种类1~5对应商品1-5\n"
scanf("
t);
t--;
该销售员这天销售本商品的数量为:
m[month].d[day].sell[i].good[t].sum);
break;
case2:
产品代号\n"
1.牛奶2.西瓜3.苹果4.白菜5.萝卜销售之和\n"
for(j=0;
j<
5;
j++)all+=m[month].d[day].sell[i].good[j].sum;
%-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:
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;
//用于存放明细
//读取数据及判断
请选择1销售数量报表2销售额报表:
if(i==1)
for(i=0;
price[i]=1;
//利用价格为1时计算数量
else
sj=1;
x=MessageBox(NULL,"
是否使用内置价格?
提示"
if(x==7)
{
请依次输入五种商品价格:
%d%d%d%d%d"
price[0],&
price[1],&
price[2],&
price[3],&
price[4]);
//上次输入作为内置价格
}
输入两个月份及日期:
例如315126(前者早上到后者晚上):
%d%d%d%d"
mo,&
a,&
th,&
b);
a--;
b--;
mo--;
th--;
clear();
if(sj==0)
时间段:
%d月%d日--%d月%d日的销售数量汇总报表\n"
mo+1,a+1,th+1,1+b);
%d月%d日--%d月%d日的销售额汇总报表\n"
五种商品对应价格为:
%d%d%d%d%d\n"
price[0],price[1],price[2],price[3],price[4]);
\n产品代号及名称\n"
姓名编号\t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n"
//计算间隔整月
if(th-mo>
0)
for(month=mo+1;
month<
=(th-1);
for(day=0;
day++)
{
for(i=0;
{
for(j=0;
j<
=4;
j++)
{
mx[i][j]=mx[i][j]+m[month].d[day].sell[i].good[j].sum*price[j];
//累加计算所有他的所有销售情况
}
}
for(j=0,partsum=0;
partsum+=m[month].d[day].sell[j].good[i].sum*price[i];
}//统计同种商品数目,一维数组当天4个销售员同种商品数目
partallsum[i]+=partsum;
}
//间隔整月前一段
for(day=a;
for(i=0;
for(j=0;
mx[i][j]=mx[i][j]+m[mo].d[day].sell[i].good[j].sum*price[j];
for(j=0,partsum=0;
partsum+=m[mo].d[day].sell[j].good[i].sum*price[i];
partallsum[i]+=partsum;
//统计同种商品数目,一维数组当天4个销售员同种商品数目
//间隔整月后一段
for(day=0;
day<
=b;
mx[i][j]=mx[i][j]+m[th].d[day].sell[i].good[j].sum*price[j];
partsum+=m[th].d[day].sell[j].good[i].sum*price[i];
elseif((th-mo)==0)
//输出报表
%-6s"
sell[i].name);
for(j=0;
\t%d"
mx[i][j]);
mxsum+=mx[i][j];
//二维数组记录销售员
\t%d\n"
mxsum);
mxsum=0;
//用于下次循环的初始化
//输出表格同类商品总计
同类商品"
partallsum[i]);
//统计同种商品数目,一维数组
alldat+=partallsum[i];
//合计所有的商品
\t合计:
alldat);
//所有商品合计
是否打印扇形形图?
if(x==6)
clear();
%d月%d日--%d月%d日"
销售扇形图"
sxt(partallsum[0],partallsum[1],partallsum[2],partallsum[3],partallsum[4]);
del()
删除
voiddel()
inti=0,day=0,x=0,month;
intchoose;
请输入要查找日期如1月1日输入11:
请选择1.删除该销售员整天的销售信息2.具体商品销售信息:
for(x=0;
x<
x++)m[month].d[day].sell[i].good[x].sum=0;
请输入具体要删除的商品种类1~5对应商品1-5:
x--;
m[month].d[day].sell[i].good[x].sum=0;
已删除指定销售员信息"
def()
销售数据初始化
voiddef()
fp=fopen(filename,"
w"
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"
//日期间隔
初始化操作完成!
filepath()
判断及修改文件位置
voidfilepath()
charchoose;
intx;
if(file_choose==0)
现在为默认文件\n是否使用?
请输入文件绝对路径:
fflush(stdin);
gets(filename);
file_choose=1;
//其他位置文件标志
else
x=MessageBox(NULL,"
不在提醒?
if(x==6)
file_choose=2;
printf("
设置成功\n"
save()
保存数据
voidsave(people)
intday,i,month;
for(month=