问题分析
服装信息管理及销售管理系统。方便对库存服装的信息管理和添加新服装数据,同时兼具库存数量管理功能。
功能实现
1、建立服装信息库,包括:服装代码、型号、规格、面料、颜色、单价、数量;
2、建立销售信息库,包括:服装代码,数量,日期,售价,小记
3、程序分为两大模块:库存模块和销售模块。库存模块主要用于对服装信息的增加、删除、修改。销售模块主要用于管理库存数量;
4、浏览:管理员可以查询库存信息和销售信息。
5、查找或修改:可以通过编号查找服装。可以根据编号进行修改、删除信息;
6、登记:可以通过编号登记库存情况、销售情况,同时改变库存信息。
现在来看,这个项目最大的难点就是利用c语言的文件系统实现同时修改多个文件,例如服装下单时,要先检查剩余库存;购买时不仅要扣减库存,还要写入购买记录。在没有数据库时实现这一功能比较麻烦。
代码实现
/*该程序运行编译器为Dev-C++ 5.4.0 ,64位系统*/
#include<stdio.h>
#include<string.h>
typedef struct _clothes{
int nu; //nu as number,服装代码
char name[30];
char si[10]; //si as size
char ma[20]; //ma as material
char co[10]; //co as color
float pr; //pr as prize
int qu; //qu as quantity
}Clothes; //建立clothes结构类型,方便进行读写
typedef struct _sale{
int rn; //rn as real number,means the sequence of infomation
int nu; //nu as number,服装代码
int qu; //qu as quantity
char da[9]; //da as date,save by 8 bytes char;
float pr; //pr as prize
char note[20];
}Sale; //建立sale结构类型,方便进行读写
//键盘输入新的库存信息
void cgetlist(Clothes aClo[],int number,int innumber){
int i;
for(i=0;i<number;i++,innumber++){
//输入number个数据
printf("服装代码为(系统自动分配):%d\n",innumber+1);
aClo[i].nu=innumber;
printf("\t输入型号:");
scanf("%29s",aClo[i].name);
printf("\t输入规格:");
scanf("%9s",aClo[i].si);
printf("\t输入面料:");
scanf("%19s",aClo[i].ma);
printf("\t输入颜色:");
scanf("%9s",aClo[i].co);
printf("\t输入单价:");
scanf("%f",&aClo[i].pr);
printf("\t输入库存数量:");
scanf("%d",&aClo[i].qu);
}
}
//键盘输入新的销售信息
int sgetlist(Sale aSal[],int number,int innumber){
int i;
for(i=0;i<number;i++,innumber++){
printf("销售记录代码为:%d\n",innumber+1);
aSal[i].rn=innumber;
printf("\t输入服装代码:");
scanf("%d",&aSal[i].nu);
printf("\t输入销售数量:");
scanf("%d",&aSal[i].qu);
if(reducecheck(aSal[i].nu,aSal[i].qu)==-1) {
return -1;} //检查库存是否足够,不够就返回,中止后面的输入
printf("\t输入日期:");
scanf("%s",aSal[i].da);
printf("\t输入售价:");
scanf("%f",&aSal[i].pr);
printf("\t小记:");
scanf("%s",aSal[i].note);
}
return 0

8884

被折叠的 条评论
为什么被折叠?



