收藏 分销(赏)

超市仓库管理系统_程序.docx

上传人:xrp****65 文档编号:8949993 上传时间:2025-03-09 格式:DOCX 页数:35 大小:22.88KB
下载 相关 举报
超市仓库管理系统_程序.docx_第1页
第1页 / 共35页
超市仓库管理系统_程序.docx_第2页
第2页 / 共35页
点击查看更多>>
资源描述
超市仓库管理系统程序如下: #include <stdio.h> #include<stdlib.h> #include <string.h> #include<malloc.h> #include"仓库管理系统.h" #define N 500 #define LEN sizeof(struct product) #define ILEN sizeof(struct in_product) #define OLEN sizeof(struct out_product) #define QLEN sizeof(struct quit_product) void init() { 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\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 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"); } void menu2() { 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\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 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],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<i;j++) for(n=0;n<i-1;n++) if(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<i;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); return 0; } int Ckjl() //出库信息录入文件 { struct out_product p[N],s; int i,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<i;j++) for(n=0;n<i-1;n++) if(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<i;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); 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,1,pf)!=NULL;i++); for(j=0;j<i;j++) for(n=0;n<i-1;n++) if(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<i;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); return 0; } int insert_product() //添加商品数据并录入文件 { struct product *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=(struct product *)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; return 0; } 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; return 0; } int in_insert() //添加入库数据 { struct in_product *p1,*p2; int n=0; char c[5]; FILE *pf; system("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->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; else p2->next=p1; p2=p1; p1=(struct in_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; return 0; } else break; } 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; 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("入库信息记录.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<i) { 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<i;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(); return 0; } j++; } t--; if(t==0) return 0; printf("\n没有找到该入库编号,请重新输入,还有[%d]次机会:",t); 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("\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<i) { 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("按回车键退回上一级菜单...."); getchar(); getchar(); return 0; } j++; } t--; if(t==0) return 0; printf("\n没有找到该入库编号,还有[%d]次机会,请重新输入:",t); goto ICX; } int in_delete() //删除入库数据,若所要取出的商品数量小于商品总数量,则是商品总数减少 //若取出所有商品数量,则删除那一行数据 { 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++); printf("输入要取出的商品的入库编号:"); ISC:scanf("%ld",&d_num); printf("\n 输入要取出的商品的数量:"); scanf("%d",&s); j=0; while(j<i) { if(sc[j].num==d_num) { fp=fopen("入库信息记录.dat","wb+"); fp1=fopen("入库信息记录.xls","w"); fprintf(fp1,"%s\t%s\t%s\t%s\t%s\t%s\n","入库编号","商品编号","入库商品名","入库数量","入库价格","总 价"); if((sc[j].amount-s)==0) { for(n=j;n<i-1;n++) sc[n]=sc[n+1]; fseek(fp1,56L,0); for(n=0;n<i-1;n++) { 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 if((sc[j].amount-s)>0) { sc[j].amount-=s; fseek(fp1,56L,0); for(n=0;n<i;n++) { 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("\n按回车键退回上一级菜单...."); getchar(); getchar(); return 0; } fclose(fp); fclose(fp1); printf("\n ☆商品已成功取出!\n\n"); printf("按回车键退回上一级菜单...."); getchar(); getchar(); return 0; } j++; } t--; if(t==0) return 0; printf("\n没有找到该入库编号,还有[%d]次机会,请重新输入:",t); goto ISC; return 0; } int out_insert() //增加出库数据 //删除了入库数据,则把该数据信息增加到“输入出库商品信息”文件中 { 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"); 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->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
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服