C语言进销存管理系统源程序.docx
- 文档编号:968552
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:11
- 大小:21.74KB
C语言进销存管理系统源程序.docx
《C语言进销存管理系统源程序.docx》由会员分享,可在线阅读,更多相关《C语言进销存管理系统源程序.docx(11页珍藏版)》请在冰豆网上搜索。
C语言进销存管理系统源程序
參止头埒秦皇岛分校
NorthEasternUniversityAtQinHuangDao
C语言课程设计综合性程序设计报告之源程序
设计题目:
电脑公司进销存管理系统
专业:
冶金工程
学号:
8090507
姓名:
刘欢
成绩:
设计时间:
2010年11月03日
二•开题说明
1•问题概要
该系统用于处理某电脑公司的设备买入,卖出,仓储等设备账目。
在买入设备时,记录设备的数量型号(如computer,keyboard和价钱,并在库房记录中添加设备,在卖出设备时从库房中减掉该设备,并根据卖出的数量型号和价钱得出每一笔买出的利润。
每个一段时间盘点库房和账目计算出利润等数据。
基本要求:
有货物管理(设备的添加,删除,修改)
有账目管理
可以查询账目清单
可以计算年度或月份或季度利润。
2•问题分析:
先定义合适的结构体,存储物品信息。
在程序中建立一个文件用于存储,
凡进行了进货操作的物品在文件中都有记录,进货时由于尚不知售货时间与售价、利润,故此三项(实际为四项,时间分为年、月两项)暂先赋值为零,待进行售货操作时再输入各数值,其中利润由系统自动计算得出并保存。
账目清单分为已售、仓储两部分,由此可看到所有购进、卖出的货物信息。
月利润查询可查得所输入年月的各类所售货物数量与利润。
功能模块
四•源程序
#include
#include
#includevconio.h>
#include
#include
#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)->num,(p1+i)->name,(p1+i)->inprice,(p1+i)->outprice,(p1+i)->profit,(p1+i)->inyear,(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();break;
case3:
modify();break;
case4:
show();break;
case5:
monthearn();break;
default:
break;
}
getch();
menu();
scanf("%d",&n);
}
}
voidmenu()//菜单
{
system("cls");
printf("\n\n\n\n\n\n");
***************
菜单
**************
\n");
printf("\t\t0.退出\n”);
printf("\t\t1.进货操作\n");
printf("\t\t
3•修改信息\n");
printf("\t\t
4.账目清单\n");
printf("\t\t
5月利润查询\n");
printf("\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)
printf("无记录!
\n");
printf("请确认是否进货?
(y/n)");
seanf("%s",ch);
while(strcmp(ch,"y")==0||strcmp(ch,"y")==0)
{
printf("请输入设备编号:
");
scanf("%d",&obj[m].num);
for(i=0;i if((p1+i)->num==obj[m].num) { printf("此号已存在,按任意键继续! "); getch(); fclose(p); return; } printf("设备名称: "); scanf("%s",obj[m].name); scanf("%f",&obj[m].inprice); printf("进货年、月: "); seanf("%d%d",&obj[m].inyear,&obj[m].inmonth);obj[m].outprice=0;obj[m].outyear=0;(p1+m)->outmonth=0; fopen("data","w");//打开文件用以向磁盘导入数据 for(i=0;i<=m;i++) fwrite(&obj[i],LEN,1,p); if(fwrite(&obj[m],LEN,1,p)! =1) { printf("无法保存! "); getch(); } else { printf("%s保存成功! \n",obj[m].name); m++; } printf("继续? (y/n)"); scanf("%s",ch); } fclose(p); printf("保存完毕! \n"); } voidsell()//售货操作 { FILE*p; intsnum,i,j,m=0; charch[2]; if((p二fopen("data","rb"))==NULL) { //打开文件 //读入 printf("无法打开文件! \n");return; } while(! feof(p)) if(fread(&obj[m],LEN,1,p)==1)m++; fclose(p); if(m==0) { printf("无记录! \n");return; }scanf("%d",&snum); for(i=0;i if(snum==(p1+i)->num) break; if(i { printf("查得此物品,确认出售? (y/n)”); scanf("%s",ch); if(strcmp(ch,"y")==O||strcmp(ch,"Y")==0)//判断2 { printf("请输入售价: "); scanf("%f",&(p1+i)->outprice); (p1+i)->profit=((p1+i)->outprice-(p1+i)->inprice); printf("\n请输入售出年、月: "); scanf("%d%d",&(p1+i)->outyear,&(p1+i)->outmonth); if((p=fopen("data","wb+"))==NULL) { printf("打不开文件! \n”); return; } for(j=0;j if(fwrite(&obj[j],LEN,1,p)! =1)printf("无法保存! \n”);getch(); } printf("售货成功! ");fclose(p); return; } else return;//判断2 } else printf("无此物品! "); return;〃判断1 } voidmodify()//修改信息 FILE*p; inti,j,m=O,snum; if((p二fopen("data","rb"))==NULL) {printf("打不开文件! \n”); return; } while(! feof(p)) if(fread(&obj[m],LEN,1,p)==1) m++; if(m==0) { printf("无记录! \n"); fclose(p); return; } printf("请输入欲修改信息的货物编号: "); scanf("%d",&snum); for(i=0;i if(snum==(p1+i)->num) break; if(i { printf("\n名称: ”); seanf("%s",(p1+i)->name); printf("\n进价: "); seanf("%f",&(p1+i)->inpriee); printf("\n进货年、月: "); seanf("%d%d",&(p1+i)->inyear,&(p1+i)->inmonth); if((p=fopen("data","wb+"))==NULL) { printf("打不开文件! \n"); return; } for(j=0;j if(fwrite(&obj[j],LEN,1,p)! =1) { printf("无法保存! "); getch(); } fclose(p); } elsereturn; voidshow()//账目清单 { FILE*p; inti,m=0; if((p二fopen("data","rb"))==NULL) printf("打不开! "); while(! feof(p)) if(fread(&obj[m],LEN,1,p)==1) m++; fclose(p); 进货时 printf("已售\n\t编号名称进价售价利润 间出售时间\t\n"); for(i=0;i { if((p1+i)->profit! =0) printf(FORMAT2,DATA2); } printf("仓储\n"); for(i=0;i { if((p1+i)->profit==0) printf(F0RMAT1,DATA1); } }voidmonthearn()〃月利润 { FILE*p; intm=0,s=0,a=0,b=0,c=0,d=0,y,z; floatsum1=0,sum2=0,sum3=0,su
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 进销存 管理 系统 源程序