C语言课程设计
综合性程序设计报告之源程序
设计题目:电脑公司进销存管理系统
专业:冶金工程
学号:8090507
姓名:刘欢
成绩: ____________
设计时间: 2010年 11月 03 日
二.开题说明
1.问题概要
该系统用于处理某电脑公司的设备买入,卖出,仓储等设备账目。
在买入设备时,记录设备的数量型号(如computer,keyboard)和价钱,并在库房记录中添加设备,在卖出设备时从库房中减掉该设备,并根据卖出的数量型号和价钱得出每一笔买出的利润。
每个一段时间盘点库房和账目计算出利润等数据。
基本要求:
有货物管理(设备的添加,删除,修改)
有账目管理
可以查询账目清单
可以计算年度或月份或季度利润。
2.问题分析:
先定义合适的结构体,存储物品信息。
在程序中建立一个文件用于存储,凡进行了进货操作的物品在文件中都有记录,进货时由于尚不知售货时间与售价、利润,故此三项(实际为四项,时间分为年、月两项)暂先赋值为零,待进行售货操作时再输入各数值,其中利润由系统自动计算得出并保存。
账目清单分为已售、仓储两部分,由此可看到所有购进、卖出的货物信息。
月利润查询可查得所输入年月的各类所售货物数量与利润。
三.功能模块
四.源程序
#include <>
#include <>
#include <>
#include <>
#include <>
#define LEN sizeof(struct object)
#define FORMAT1 "\t%-8d%-11s%%-6d%-4d\n"
#define DATA1 (p1+i)->num,(p1+i)->name,(p1+i)->inprice,(p1+i)->inyear,(p1+i)->inm onth
#define FORMAT2 "\t%-8d%-11s%%%%-6d%-4d%-6d%-4d\n"
#define DATA2 (p1+i)->num,(p1+i)->name,(p1+i)->inprice,(p1+i)->outprice,(p1+i)->p rofit,(p1+i)->inyear,(p1+i)->inmonth,(p1+i)->outyear,(p1+i)->outmon
th
void in();
void show();
void modify();
void sell();
void menu();
void monthearn();
struct object
{
int num,inyear,inmonth,outyear,outmonth;
char name[10];
float inprice,outprice,profit;
} obj[100];
struct object *p1=obj;
main()
{
int n;
menu();
while(n)
{
switch(n)
{
case 1: in();break;
case 2:sell();break;
case 3:modify();break;
case 4:show();break;
case 5:monthearn();break;
default:break;
}
getch();
menu();
scanf("%d",&n);
}
}
void menu()出\n");
printf("\t\t 1.进货操作\n");
printf("\t\t 2.售货操作\n");
printf("\t\t 3.修改信息\n");
printf("\t\t 4.账目清单\n");
printf("\t\t 5.月利润查询\n");
printf("\t\t********************************\n");
}
void in() um);
for(i=0;i<m;i++)
if((p1+i)->num==obj[m].num)
{
printf("此号已存在,按任意键继续!");
getch();
fclose(p);
return;
}
printf("设备名称:");
scanf("%s",obj[m].name);
printf("进价:");
scanf("%f",&obj[m].inprice);
printf("进货年、月:");
scanf("%d%d",&obj[m].inyear,&obj[m].inmonth);
obj[m].outprice=0;obj[m].outyear=0;(p1+m)->outmonth=0;
fopen("data","w"); ame);
m++;
}
printf("继续(y/n)");
scanf("%s",ch);
}
fclose(p);
printf("保存完毕!\n");
}
void sell() ame,"zhuji")==0)&&(y==obj[s].outyear)&&(z==obj[s].outmonth))
{
a++;
sum1+=obj[s].profit;
}
if((strcmp(obj[s].name,"xianshiqi")==0)&&(y==obj[s].outyear)&&(z ==obj[s].outmonth))
{
b++;
sum2+=obj[s].profit;
}
if((strcmp(obj[s].name,"jianpan")==0)&&(y==obj[s].outyear)&&(z==obj [s].outmonth))
{
c++;
sum3+=obj[s].profit;
}
if((strcmp(obj[s].name,"shubiao")==0)&&(y==obj[s].outyear)&&(z==obj [s].outmonth))
{
d++;
sum4+=obj[s].profit;
}
}
printf("本月共售出\n");
printf("\t主机 %d台,总利润 % 元\n",a,sum1);
printf("\t显示器 %d台,总利润 % 元\n",b,sum2);
printf("\t键盘 %d台,总利润 % 元\n",c,sum3);
printf("\t鼠标 %d台,总利润 % 元\n",d,sum4);
}。