C语言进销存管理系统源程序Word格式文档下载.docx
《C语言进销存管理系统源程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言进销存管理系统源程序Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
![C语言进销存管理系统源程序Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/24/2dc229d5-ddc1-4e79-aaa9-eeccdf6588ce/2dc229d5-ddc1-4e79-aaa9-eeccdf6588ce1.gif)
月利润查询可查得所输入年月的各类所售货物数量与利润。
三.功能模块
四.源程序
#include<
stdio.h>
stdlib.h>
conio.h>
dos.h>
string.h>
#defineLENsizeof(structobject)
#defineFORMAT1"
\t%-8d%-11s%-9.2f%-6d%-4d\n"
#defineDATA1(p1+i)->
num,(p1+i)->
name,(p1+i)->
inprice,(p1+i)->
inyear,(p1+i)->
inmonth
#defineFORMAT2"
\t%-8d%-11s%-9.2f%-9.2f%-7.2f%-6d%-4d%-6d%-4d\n"
#defineDATA2(p1+i)->
outprice,(p1+i)->
profit,(p1+i)->
inmonth,(p1+i)->
outyear,(p1+i)->
outmonth
voidin();
voidshow();
voidmodify();
voidsell();
voidmenu();
voidmonthearn();
structobject
{
intnum,inyear,inmonth,outyear,outmonth;
charname[10];
floatinprice,outprice,profit;
}obj[100];
structobject*p1=obj;
main()
{
intn;
menu();
while(n)
{
switch(n)
{
case1:
in();
break;
case2:
sell();
case3:
modify();
case4:
show();
case5:
monthearn();
default:
}
getch();
menu();
scanf("
%d"
&
n);
}
}
voidmenu()//菜单
system("
cls"
);
printf("
\n\n\n\n\n\n"
\t\t**************菜单**************\n"
\t\t0.退出\n"
\t\t1.进货操作\n"
\t\t2.售货操作\n"
\t\t3.修改信息\n"
\t\t4.账目清单\n"
\t\t5.月利润查询\n"
\t\t********************************\n"
}
voidin()//进货操作
inti,m=0;
charch[2];
FILE*p;
if((p=fopen("
data"
"
a+"
))==NULL)
{
printf("
打不开文件!
\n"
//打开文件
return;
}
while(!
feof(p))
if(fread(&
obj[m],LEN,1,p)==1)
m++;
//将数据读入内存
fclose(p);
if(m==0)
无记录!
请确认是否进货?
(y/n)"
scanf("
%s"
ch);
while(strcmp(ch,"
y"
)==0||strcmp(ch,"
)==0)
请输入设备编号:
"
scanf("
obj[m].num);
for(i=0;
i<
m;
i++)
if((p1+i)->
num==obj[m].num)
printf("
此号已存在,按任意键继续!
fclose(p);
return;
printf("
设备名称:
scanf("
obj[m].name);
进价:
%f"
obj[m].inprice);
进货年、月:
%d%d"
obj[m].inyear,&
obj[m].inmonth);
obj[m].outprice=0;
obj[m].outyear=0;
(p1+m)->
outmonth=0;
fopen("
w"
//打开文件用以向磁盘导入数据
for(i=0;
=m;
fwrite(&
obj[i],LEN,1,p);
if(fwrite(&
obj[m],LEN,1,p)!
=1)
无法保存!
else
%s保存成功!
m++;
继续?
保存完毕!
voidsell()//售货操作
intsnum,i,j,m=0;
if((p=fopen("
rb"
无法打开文件!
}//打开文件
obj[m],LEN,1,p)==1)
//读入
fclose(p);
if(m==0)
{
return;
请输入编号:
snum);
if(snum==(p1+i)->
num)
break;
if(i<
m)//判断1
查得此物品,确认出售?
if(strcmp(ch,"
Y"
)==0)//判断2
请输入售价:
(p1+i)->
outprice);
(p1+i)->
profit=((p1+i)->
outprice-(p1+i)->
inprice);
\n请输入售出年、月:
outyear,&
outmonth);
if((p=fopen("
wb+"
for(j=0;
j<
j++)
if(fwrite(&
obj[j],LEN,1,p)!
printf("
getch();
售货成功!
return;
//判断2
无此物品!
//判断1
voidmodify()//修改信息
inti,j,m=0,snum;
{printf("
return;
fclose(p);
请输入欲修改信息的货物编号:
m)
找到此货物!
\n名称:
(p1+i)->
name);
\n进价:
\n进货年、月:
inyear,&
inmonth);
无此货物!
voidshow()//账目清单
打不开!
已售\n\t编号名称进价售价利润进货时间出售时间\t\n"
if((p1+i)->
profit!
=0)
printf(FORMAT2,DATA2);
仓储\n"
\t编号名称进价进货时间\t\n"
profit==0)
printf(FORMAT1,DATA1);
voidmonthearn()//月利润
intm=0,s=0,a=0,b=0,c=0,d=0,y,z;
floatsum1=0,sum2=0,sum3=0,sum4=0;
请输入欲查询的年份、月份:
y,&
z);
for(s=0;
s<
s++)
if((strcmp(obj[s].name,"
zhuji"
)==0)&
&
(y==obj[s].outyear)&
(z==obj[s].outmonth))
a++;
sum1+=obj[s].profit;
xianshiqi"
b++;
sum2+=obj[s].profit;
if((strcmp(obj[s].name,"
jianpan"
c++;
sum3+=obj[s].profit;
shubiao"
d++;
sum4+=obj[s].profit;
本月共售出\n"
\t主机%d台,总利润%7.2f元\n"
a,sum1);
\t显示器%d台,总利润%7.2f元\n"
b,sum2);
\t键盘%d台,总利润%7.2f元\n"
c,sum3);
\t鼠标%d台,总利润%7.2f元\n"
d,sum4);