1、超市仓库管理系统程序如下:
#include
2、init() { head=NULL; qhead=NULL; ihead=NULL; ohead=NULL; printf("\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★\n"); printf("\t\t★ ★\n"); printf("\t\t★ ★\n"); printf("\t\t★
3、 ★\n"); printf("\t\t★ ******************** ★\n"); printf("\t\t★ * * ★\n"); printf("\t\t★ * ♀ 欢迎进入 ♀ * ★\n"); printf("\t\t★ * *
4、 ★\n"); printf("\t\t★ * 超市仓库管理系统 * ★\n"); printf("\t\t★ * * ★\n"); printf("\t\t★ ******************** ★\n"); printf("\t\t★ ★\n"); pr
5、intf("\t\t★ ★\n"); printf("\t\t★ ★\n"); printf("\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n"); printf("\t\t\t\t 1: 入库管理\n"); printf("\t\t\t\t 2: 出库管理\n"); printf("\t\t\t\t 3: 退货管理\n");
6、 printf("\t\t\t\t 4: 商品统计\n"); printf("\t\t\t\t 0: 退出系统\n"); } void menu() { printf("\t\t\t\t 1: 添加数据\n"); printf("\t\t\t\t 2: 删除数据\n"); printf("\t\t\t\t 3: 修改数据\n"); printf("\t\t\t\t 4: 查看数据\n"); printf("\t\t\t\t其它: 退回上一级菜单\n"); }
7、 void menu2() { printf("\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★\n"); printf("\t\t★ ★\n"); printf("\t\t★ ★\n"); printf("\t\t★ ★\n"); printf("\t\t★
8、 ******************** ★\n"); printf("\t\t★ * * ★\n"); printf("\t\t★ * ♀ 欢迎进入 ♀ * ★\n"); printf("\t\t★ * * ★\n"); printf("\t\t★ * 超
9、市仓库管理系统 * ★\n"); printf("\t\t★ * * ★\n"); printf("\t\t★ ******************** ★\n"); printf("\t\t★ ★\n"); printf("\t\t★
10、 ★\n"); printf("\t\t★ ★\n"); printf("\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n"); printf("\t\t\t\t 1: 入库管理\n"); printf("\t\t\t\t 2: 出库管理\n"); printf("\t\t\t\t 3: 退货管理\n"); printf("\t\t\t\t 4: 商品统计\n"); printf("
11、\t\t\t\t 0: 退出系统\n"); printf("\n\t\t\t\t输入错误,请重新输入!\n"); } int Rkjl() //入库信息录入文件 { struct in_product p[N],s; int i=0,j,n; FILE *pf,*pf1; pf=fopen("入库信息记录.dat","rb+"); pf1=fopen("入库信息记录.xls","r+"); //printf("入库编号 商品编号 入库商品名 入库数量 入库价格 总价\n"); for(i=0;fread(&p[i],IL
12、EN,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;jp[n+1].num)//入库编号小的先录入 { s=p[n];p[n]=p[n+1];p[n+1]=s; } rewind(pf); fseek(pf1,56L,0);
13、 for(j=0;j
14、 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); f
15、or(j=0;jp[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
16、j].amount,p[j].price,p[j].t_price); } fclose(pf); fclose(pf1); return 0; } int Thjl() //退货信息录入文件 { struct quit_product p[N],s; int i,j,n; FILE *pf,*pf1; pf=fopen("退货信息记录.dat","rb+"); pf1=fopen("退货信息记录.xls","r+"); for(i=0;fread(&p[i],QLEN,
17、1,pf)!=NULL;i++); for(j=0;jp[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
18、].num,p[j].p_num,p[j].name,p[j].amount,p[j].price,p[j].t_price); } fclose(pf); fclose(pf1); return 0; } int insert_product() //添加商品数据并录入文件 { struct product *p1,*p; FILE *pf; if((pf=fopen("商品信息记录.xls","r"))==NULL) { pf=fopen("商品信息记录.xls","w");
19、fprintf(pf,"%s\t%s\t%s\t%s\t%s\t%s\n","商品编号","商品名","型号/规格","商品数量","进货价","销售 价"); fclose(pf); } pf=fopen("商品信息记录.xls","a+"); p1=(struct product *)malloc(LEN); p=head; if (p==NULL) { printf("\n下列数据将录入\"商品信息记录\"文件中!\n"); printf("\n商品编号:"); scanf("%s",&p1->p
20、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(
21、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; return 0; } while(p->next!=NULL)//把指针移到链表末端,在链表末端插入数据 p=p->next; p->next=p1; printf("\n下列数据将录入\"商品信息记录\"文件中!\n"); pr
22、intf("\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销售价:"); scan
23、f("%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; return 0; } int in_insert() //添加入库数据 { struct in_product *p1,*p2; int n=0; char c[5]; FILE *pf; system
24、"cls"); pf=fopen("入库信息记录.dat","ab+"); p1=p2=(struct in_product *)malloc(ILEN); printf("\t\t\t**输入入库商品信息**\n"); printf("\n下列数据将录入\"入库信息记录\"文件中!\n"); printf("\n入库编号:"); scanf("%ld",&p1
25、>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->
26、t_price); fwrite(p1,ILEN,1,pf); insert_product(); ihead=NULL; while(1) { n=n+1; if(n==1) ihead=p1; else p2->next=p1; p2=p1; p1=(struct in_product *)malloc(ILEN); while(1) { printf("\n退出输入请按Y/y键,任意键继续:")
27、 scanf("%s",c); if(strcmp(c,"y")==0||strcmp(c,"Y")==0) { fclose(pf); p2->next=NULL; return 0; } else break; } printf("\n下列数据将录入\"入库信息记录\"文件中!\n"); printf("\n入库编号:"); scanf("%ld",&p1->num); pr
28、intf("\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总价:"); print
29、f("%d\n",p1->t_price); fwrite(p1,ILEN,1,pf); insert_product(); } fclose(pf); p2->next=NULL; return 0; } int in_modify() //修改入库数据 { system("cls"); long m_num; FILE *fp,*fp1; int i,j,n; int t=3; struct in_product xg[N]; fp=fopen("
30、入库信息记录.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
31、 %-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
32、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",&
33、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 %-8
34、d %-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
35、xg[n].price,xg[n].t_price); } fclose(fp); fclose(fp1); printf("按回车键退回上一级菜单...."); getchar(); getchar(); return 0; } j++; } t--; if(t==0) return 0; printf("\n没有找到该入库编号,请重新输入,还有[%d]次机会:",t);
36、 goto IXG; } int in_select() //查询入库数据 { system("cls"); FILE *fp; int i,j; int t=3; long s_num; struct in_product cx[N]; if((fp=fopen("入库信息记录.dat","rb"))==NULL) { printf("can not open file\n"); exit(0); } printf("\t\t\t--------------------\n"); printf(
37、"\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
38、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"
39、s_num); j=0; while(j
40、].price,cx[j].t_price); printf("按回车键退回上一级菜单...."); getchar(); getchar(); return 0; } j++; } t--; if(t==0) return 0; printf("\n没有找到该入库编号,还有[%d]次机会,请重新输入:",t); goto ICX; } int in_d
41、elete() //删除入库数据,若所要取出的商品数量小于商品总数量,则是商品总数减少 //若取出所有商品数量,则删除那一行数据 { system("cls"); int i,n,j; int t=3; int s; long d_num; struct in_product sc[N]; FILE *fp,*fp1; fp=fopen("入库信息记录.dat","rb+"); for(i=0;fread(&sc[i],ILEN,1,fp)!=NULL;i++);
42、 printf("输入要取出的商品的入库编号:"); ISC:scanf("%ld",&d_num); printf("\n 输入要取出的商品的数量:"); scanf("%d",&s); j=0; while(j
43、
fprintf(fp1,"%s\t%s\t%s\t%s\t%s\t%s\n","入库编号","商品编号","入库商品名","入库数量","入库价格","总 价");
if((sc[j].amount-s)==0)
{
for(n=j;n 44、p);
fprintf(fp1,"%ld\t%s\t%s\t%d\t%d\t%d\n",sc[n].num,sc[n].p_num,sc[n].name,sc[n].amount,sc[n].price,sc[n].t_price);
}
}
else if((sc[j].amount-s)>0)
{
sc[j].amount-=s;
fseek(fp1,56L,0);
for(n=0;n 45、 { fwrite(&sc[n],ILEN,1,fp);
fprintf(fp1,"%ld\t%s\t%s\t%d\t%d\t%d\n",
sc[n].num,sc[n].p_num,sc[n].name,sc[n].amount,sc[n].price,sc[n].t_price);
}
}
else
{
printf("\n 没有这么多的库存量!\n");
printf 46、"\n按回车键退回上一级菜单....");
getchar();
getchar();
return 0;
}
fclose(fp);
fclose(fp1);
printf("\n ☆商品已成功取出!\n\n");
printf("按回车 47、键退回上一级菜单....");
getchar();
getchar();
return 0;
}
j++;
}
t--;
if(t==0)
return 0;
printf("\n没有找到该入库编号,还有[%d]次机会,请重新输入:",t);
goto ISC;
return 0;
}
int out_insert() //增加 48、出库数据
//删除了入库数据,则把该数据信息增加到“输入出库商品信息”文件中
{
system("cls");
struct out_product *p1,*p2;
int n=0;
char c[5];
FILE *pf;
pf=fopen("出库信息记录.dat","ab+");
p1=p2=(struct out_product *)malloc(OLEN);
printf("\t\t\t**输入出库商品信息**\n\n");
49、 printf("下列数据将录入\"出库信息记录\"文件中!\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- 50、>price);
p1->t_price=p1->amount*p1->price;
printf("\n总价:");
printf("%d\n",p1->t_price);
fwrite(p1,OLEN,1,pf);
ohead=NULL;
while(1)
{
n=n+1;
if(n==1)
ohead=p1;
else p2->next=p1;
p2=p1;
p1=(struct out
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818