超市仓库管理系统程序.docx
《超市仓库管理系统程序.docx》由会员分享,可在线阅读,更多相关《超市仓库管理系统程序.docx(57页珍藏版)》请在冰豆网上搜索。
超市仓库管理系统程序
超市仓库管理系统程序如下:
#include
#include
#include
#include
#include"仓库管理系统.h"
#defineN500
#defineLENsizeof(structproduct)
#defineILENsizeof(structin_product)
#defineOLENsizeof(structout_product)
#defineQLENsizeof(structquit_product)
voidinit()
{
head=NULL;
qhead=NULL;
ihead=NULL;
ohead=NULL;
printf("\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t\t★★\n");
printf("\t\t★★\n");
printf("\t\t★★\n");
printf("\t\t★********************★\n");
printf("\t\t★**★\n");
printf("\t\t★*♀欢迎进入♀*★\n");
printf("\t\t★**★\n");
printf("\t\t★*超市仓库管理系统*★\n");
printf("\t\t★**★\n");
printf("\t\t★********************★\n");
printf("\t\t★★\n");
printf("\t\t★★\n");
printf("\t\t★★\n");
printf("\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n");
printf("\t\t\t\t1:
入库管理\n");
printf("\t\t\t\t2:
出库管理\n");
printf("\t\t\t\t3:
退货管理\n");
printf("\t\t\t\t4:
商品统计\n");
printf("\t\t\t\t0:
退出系统\n");
}
voidmenu()
{
printf("\t\t\t\t1:
添加数据\n");
printf("\t\t\t\t2:
删除数据\n");
printf("\t\t\t\t3:
修改数据\n");
printf("\t\t\t\t4:
查看数据\n");
printf("\t\t\t\t其它:
退回上一级菜单\n");
}
voidmenu2()
{
printf("\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("\t\t★★\n");
printf("\t\t★★\n");
printf("\t\t★★\n");
printf("\t\t★********************★\n");
printf("\t\t★**★\n");
printf("\t\t★*♀欢迎进入♀*★\n");
printf("\t\t★**★\n");
printf("\t\t★*超市仓库管理系统*★\n");
printf("\t\t★**★\n");
printf("\t\t★********************★\n");
printf("\t\t★★\n");
printf("\t\t★★\n");
printf("\t\t★★\n");
printf("\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n");
printf("\t\t\t\t1:
入库管理\n");
printf("\t\t\t\t2:
出库管理\n");
printf("\t\t\t\t3:
退货管理\n");
printf("\t\t\t\t4:
商品统计\n");
printf("\t\t\t\t0:
退出系统\n");
printf("\n\t\t\t\t输入错误,请重新输入!
\n");
}
intRkjl()//入库信息录入文件
{structin_productp[N],s;
inti=0,j,n;
FILE*pf,*pf1;
pf=fopen("入库信息记录.dat","rb+");
pf1=fopen("入库信息记录.xls","r+");
//printf("入库编号商品编号入库商品名入库数量入库价格总价\n");
for(i=0;fread(&p[i],ILEN,1,pf)!
=NULL;i++);
//printf("%ld\t%s\t%s\t%d\t%d\t%d\n",p[i].num,p[i].p_num,p[i].name,p[i].amount,p[i].price,p[i].t_price);
for(j=0;j
for(n=0;nif(p[n].num>p[n+1].num)//入库编号小的先录入
{
s=p[n];p[n]=p[n+1];p[n+1]=s;
}
rewind(pf);
fseek(pf1,56L,0);
for(j=0;j
{
fwrite(&p[j],ILEN,1,pf);
fprintf(pf1,"%ld\t%s\t%s\t%d\t%d\t%d\n",p[j].num,p[j].p_num,p[j].name,p[j].amount,p[j].price,p[j].t_price);
}
fclose(pf);
fclose(pf1);
return0;
}
intCkjl()//出库信息录入文件
{structout_productp[N],s;
inti,j,n;
FILE*pf,*pf1;
pf=fopen("出库信息记录.dat","rb+");
pf1=fopen("出库信息记录.xls","r+");
//printf("出库编号商品编号出库商品名出库数量出库价格总价\n");
for(i=0;fread(&p[i],OLEN,1,pf)!
=NULL;i++);
//printf("%ld\t%s\t%s\t%d\t%d\t%d\n",p[i].num,p[i].p_num,p[i].name,p[i].amount,p[i].price,p[i].t_price);
for(j=0;j
for(n=0;nif(p[n].num>p[n+1].num)//出库编号小的先录入
{
s=p[n];p[n]=p[n+1];p[n+1]=s;
}
rewind(pf);
fseek(pf1,56L,0);
for(j=0;j
{
fwrite(&p[j],OLEN,1,pf);
fprintf(pf1,"%ld\t%s\t%s\t%d\t%d\t%d\n",p[j].num,p[j].p_num,p[j].name,p[j].amount,p[j].price,p[j].t_price);
}
fclose(pf);
fclose(pf1);
return0;
}
intThjl()//退货信息录入文件
{structquit_productp[N],s;
inti,j,n;
FILE*pf,*pf1;
pf=fopen("退货信息记录.dat","rb+");
pf1=fopen("退货信息记录.xls","r+");
for(i=0;fread(&p[i],QLEN,1,pf)!
=NULL;i++);
for(j=0;j
for(n=0;nif(p[n].num>p[n+1].num)//退货编号小的先录入
{
s=p[n];p[n]=p[n+1];p[n+1]=s;
}
rewind(pf);
fseek(pf1,56L,0);
for(j=0;j
{
fwrite(&p[j],QLEN,1,pf);
fprintf(pf1,"%ld\t%s\t%s\t%d\t%d\t%d\n",p[j].num,p[j].p_num,p[j].name,p[j].amount,p[j].price,p[j].t_price);
}
fclose(pf);
fclose(pf1);
return0;
}
intinsert_product()//添加商品数据并录入文件
{
structproduct*p1,*p;
FILE*pf;
if((pf=fopen("商品信息记录.xls","r"))==NULL)
{
pf=fopen("商品信息记录.xls","w");
fprintf(pf,"%s\t%s\t%s\t%s\t%s\t%s\n","商品编号","商品名","型号/规格","商品数量","进货价","销售价");
fclose(pf);
}
pf=fopen("商品信息记录.xls","a+");
p1=(structproduct*)malloc(LEN);
p=head;
if(p==NULL)
{printf("\n下列数据将录入\"商品信息记录\"文件中!
\n");
printf("\n商品编号:
");
scanf("%s",&p1->p_num);
printf("\n商品名:
");
scanf("%s",&p1->name);
printf("\n型号/规格:
");
scanf("%s",&p1->spec);
printf("\n商品数量:
");
scanf("%d",&p1->amount);
printf("\n进货价:
");
scanf("%d",&p1->price);
printf("\n销售价:
");
scanf("%d",&p1->s_price);
fprintf(pf,"%s\t%s\t%s\t%d\t%d\t%d\n",p1->p_num,p1->name,p1->spec,p1->amount,p1->price,p1->s_price);
fclose(pf);
head=p1;
head->next=NULL;
return0;
}
while(p->next!
=NULL)//把指针移到链表末端,在链表末端插入数据
p=p->next;
p->next=p1;
printf("\n下列数据将录入\"商品信息记录\"文件中!
\n");
printf("\n商品编号:
");
scanf("%s",&p1->p_num);
printf("\n商品名:
");
scanf("%s",&p1->name);
printf("\n型号/规格:
");
scanf("%s",&p1->spec);
printf("\n商品数量:
");
scanf("%d",&p1->amount);
printf("\n进货价:
");
scanf("%d",&p1->price);
printf("\n销售价:
");
scanf("%d",&p1->s_price);
fprintf(pf,"%s\t%s\t%s\t%d\t%d\t%d\n",p1->p_num,p1->name,p1->spec,p1->amount,p1->price,p1->s_price);
fclose(pf);
p1->next=NULL;
return0;
}
intin_insert()//添加入库数据
{
structin_product*p1,*p2;
intn=0;
charc[5];
FILE*pf;
system("cls");
pf=fopen("入库信息记录.dat","ab+");
p1=p2=(structin_product*)malloc(ILEN);
printf("\t\t\t**输入入库商品信息**\n");
printf("\n下列数据将录入\"入库信息记录\"文件中!
\n");
printf("\n入库编号:
");
scanf("%ld",&p1->num);
printf("\n商品编号:
");
scanf("%s",&p1->p_num);
printf("\n入库商品名:
");
scanf("%s",&p1->name);
printf("\n入库数量:
");
scanf("%d",&p1->amount);
printf("\n入库价格:
");
scanf("%d",&p1->price);
p1->t_price=p1->amount*p1->price;
printf("\n总价:
");
printf("%d\n",p1->t_price);
fwrite(p1,ILEN,1,pf);
insert_product();
ihead=NULL;
while
(1)
{
n=n+1;
if(n==1)
ihead=p1;
elsep2->next=p1;
p2=p1;
p1=(structin_product*)malloc(ILEN);
while
(1)
{
printf("\n退出输入请按Y/y键,任意键继续:
");
scanf("%s",c);
if(strcmp(c,"y")==0||strcmp(c,"Y")==0)
{fclose(pf);
p2->next=NULL;
return0;
}
elsebreak;
}
printf("\n下列数据将录入\"入库信息记录\"文件中!
\n");
printf("\n入库编号:
");
scanf("%ld",&p1->num);
printf("\n商品编号:
");
scanf("%s",&p1->p_num);
printf("\n入库商品名:
");
scanf("%s",&p1->name);
printf("\n入库数量:
");
scanf("%d",&p1->amount);
printf("\n入库价格:
");
scanf("%d",&p1->price);
p1->t_price=p1->amount*p1->price;
printf("\n总价:
");
printf("%d\n",p1->t_price);
fwrite(p1,ILEN,1,pf);
insert_product();
}
fclose(pf);
p2->next=NULL;
return0;
}
intin_modify()//修改入库数据
{
system("cls");
longm_num;
FILE*fp,*fp1;
inti,j,n;
intt=3;
structin_productxg[N];
fp=fopen("入库信息记录.dat","rb+");
fp1=fopen("入库信息记录.xls","r+");
printf("入库编号商品编号入库商品名入库数量入库价格总价\n");
printf("-----------------------------------------------------------------------\n");
for(i=0;fread(&xg[i],ILEN,1,fp)!
=NULL;i++)
{printf("%-8ld%-8s%-10s%-8d%-8d%-8d\n",
xg[i].num,xg[i].p_num,xg[i].name,xg[i].amount,xg[i].price,xg[i].t_price);
printf("-----------------------------------------------------------------------\n");
}
printf("输入要修改的商品的入库编号:
");
IXG:
scanf("%ld",&m_num);
j=0;
while(j
{
if(xg[j].num==m_num)
{
printf("\t\t\t输入新的入库商品信息!
\n");
printf("\n商品编号:
");
scanf("%s",&xg[j].p_num);
printf("\n入库商品名:
");
scanf("%s",&xg[j].name);
printf("\n入库数量:
");
scanf("%d",&xg[j].amount);
printf("\n入库价格:
");
scanf("%d",&xg[j].price);
xg[j].t_price=xg[j].amount*xg[j].price;
printf("\n总价:
");
printf("%d\n",xg[j].t_price);
printf("\t\t\t商品信息修改成功!
\n");
printf("入库编号商品编号入库商品名入库数量入库价格总价\n");
printf("%-8ld%-8s%-10s%-8d%-8d%-8d\n",
xg[j].num,xg[j].p_num,xg[j].name,xg[j].amount,xg[j].price,xg[j].t_price);
rewind(fp);
fseek(fp1,56L,0);
for(n=0;n
{
fwrite(&xg[n],ILEN,1,fp);
fprintf(fp1,"%ld\t%s\t%s\t%d\t%d\t%d\n",xg[n].num,xg[n].p_num,xg[n].name,xg[n].amount,xg[n].price,xg[n].t_price);
}
fclose(fp);
fclose(fp1);
printf("按回车键退回上一级菜单....");
getchar();
getchar();
return0;
}
j++;
}
t--;
if(t==0)
return0;
printf("\n没有找到该入库编号,请重新输入,还有[%d]次机会:
",t);
gotoIXG;
}
intin_select()//查询入库数据
{
system("cls");
FILE*fp;
inti,j;
intt=3;
longs_num;
structin_productcx[N];
if((fp=fopen("入库信息记录.dat","rb"))==NULL)
{
printf("cannotopenfile\n");
exit(0);
}
printf("\t\t\t--------------------\n");
printf("\t\t\t★入库货物统计如下★\n");
printf("\t\t\t--------------------\n\n");
printf("入库编号商品编号入库商品名入库数量入库价格总价\n");
printf("-----------------------------------------------------------------------\n");
for(i=0;fread(&cx[i],ILEN,1,fp)!
=NULL;i++)
{printf("%-8ld%-8s%-10s%-8d%-8d%-8d\n",
cx[i].num,cx[i].p_num,cx[i].name,cx[i].amount,cx[i].price,cx[i].t_price);
printf("-----------------------------------------------------------------------\n");
}
fclose(fp);
printf("输入要查询的入库编号:
");
ICX:
scanf("%ld",&s_num);
j=0;
while(j
{
if(cx[j].num==s_num)
{
printf("\n查询结果如下:
\n\n");
printf("入库编号商品编号入库商品名入库数量入库价格总价\n");
printf("%-8ld%-8s%-10s%-8d%-8d%-8d\n",
cx[j].num,cx[j].p_num,cx[j].name,cx[j].amount,cx[j].price,cx[j].t_price);
printf("按