收藏 分销(赏)

超市管理系统程序.docx

上传人:xrp****65 文档编号:8929856 上传时间:2025-03-08 格式:DOCX 页数:14 大小:14.24KB 下载积分:10 金币
下载 相关 举报
超市管理系统程序.docx_第1页
第1页 / 共14页
超市管理系统程序.docx_第2页
第2页 / 共14页


点击查看更多>>
资源描述
/******** 超市管理系统程序*******/ /*董能相*/ #include<stdio.h> #include<string.h> #define MAX 20 #define N 3 #define PAGE 2 #define PRINT1 printf("-----------------------\n"); #define PRINT2 printf("商品号--商品名称--商品种类--销售价格--生产日期(年-月-日)--保质期\n"); #define PRINT3 printf("%4d%8s%8s%8d%15d%15d%15-2%d-2%d%10d\n",goods[i].num,goods[i].name,goods[i].kind,goods[i].in_price,goods[i].out_price,goods[i].pro_time,goods[i].save_day) int sum;/*用来记录商品数目*/ /*日期结构体类型*/ struct date { int year; int month; int date; }; /*商品结构体类型*/ struct goods_type { int num; /* 商品数量*/ char name[10]; /*商品名称*/ char kind[10]; /*商品种类*/ int amount; /*商品总量*/ int left_amount;/*商品剩余数量*/ int total_price; /*商品总价格*/ int goods_up; /*商品上限*/ int goods_down; /* 商品下限 */ int in_price; /*进货价格*/ int out_price; /*销售价格*/ int in_num; /*进货数量*/ int out_num; /*售出数量*/ struct date in_time;/* 进货日期*/ struct date pro_time; /*生产日期*/ char factory[10]; /*生产厂家*/ int save_day; /*保质期 */ int profit; /* 获得利润*/ }goods[MAX];/*存放[MAX]种商品记录的结构体数组*/ /*保存信息*/ save_message(int sum) { FILE*fp; int i; if((fp=fopen("supermarket.txt","wb"))==NULL) { printf("读文件错误!\n"); return; } for(i=0;i<sum;i++) if(fwrite(&goods[i],sizeof(struct goods_type),1,fp)!=1) printf("写文件错误!\n"); fclose(fp); } /*输入模块*/ input_message() { int i=0,s=MAX; clrscr(); printf("\n\n录入商品信息(最多%d种)\n",s); printf("--------------------------------\n"); do { printf("\n good%d",i+1); printf("\n num:"); scanf("%d",&goods[i].num); printf("\n name:"); scanf("%s",&goods[i].name); printf("\n kind:"); scanf("%s",&goods[i].kind); printf("\n amount:"); scanf("%d",&goods[i].amount); printf("\n goods_up:"); scanf("%d",&goods[i].goods_up); printf("\n goods_down:"); scanf("%d",&goods[i].goods_down); printf("\n in_price:"); scanf("%d",&goods[i].in_price); printf("\n out_price:"); scanf("%d",&goods[i].out_price); printf("\n in_num:"); scanf("%d",&goods[i].in_num); printf("\n in_date(yyyy-mm-dd):"); scanf("%d-%d-%d",&goods[i].in_time.year,&goods[i].in_time.month,&goods[i].in_time.date); printf("\n pro_date(yyyy-mm-dd):"); scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time.date); printf("\n factory:"); scanf("%s",&goods[i].factory); printf("\n save_day:"); scanf("%d",&goods[i].save_day); i++; }while(i<MAX); printf("\n--%d种商品信息输入完毕!--\n",i); sum=i; printf("\n press any key return menu!"); bioskey(0); } /*读取信息*/ int read_message() { FILE *fp; int i=0; if((fp=fopen("supermarket.txt","rb"))==NULL) { printf("\n\n**暂时还没有任何库存信息,按任意键进入主菜单选择基本信息的录入!**\n"); return; }while(feof(fp)!=1) { fread(&goods[i],sizeof(struct goods_type),1,fp); if(goods[i].num==0) break; else i++; } fclose(fp); return(i); } /*输出模块*/ void output_message() { int i=0,j=0,count,page=1; clrscr(); printf("\n\n----%d\n\n",page); PRINT2; PRINT1; do { if(goods[i].num!=0) { j++; if(j%PAGE!=0) { PRINT3; PRINT1; } else { PRINT3; PRINT1; if(goods[i+1].num!=0); { printf("按任意键继续!"); bioskey(0); clrscr(); printf("\n\n--商品信息表--第%d页\n\n",++page); PRINT2; PRINT1; } } } i++; }while(goods[i].num!=0); printf("press any key return menu!"); bioskey(0); } /*添加商品信息*/ insert_message() { int i=sum,j,flag=0; char choice; clrscr(); printf("\n\n 添加一种新商品\n"); printf("--------------\n"); do { goods[i].num=++sum; printf("new num:%d",goods[i].num); printf("\n name:"); scanf("%s",goods[i].name); printf("\n kind:"); scanf("%s",goods[i].kind); printf("\n amount:"); scanf("%d",goods[i].amount); printf("\n goods_up:"); scanf("%d",goods[i].goods_up); printf("\n goods_down:"); scanf("%d",goods[i].goods_down); printf("\n in_price:"); scanf("%d",goods[i].in_price); printf("\n out_price:"); scanf("%d",goods[i].out_price); printf("\n in_num:"); scanf("%d",goods[i].num); printf("\n in_time:"); scanf("%d%d%d",goods[i].in_time.year,goods[i].in_time.month,goods[i].in_time.date); printf("\n pro_time:"); scanf("%d%d%d",goods[i].pro_time.year, goods[i].pro_time.month, goods[i].pro_time.date); printf("\n factory:"); scanf("%s",goods[i].factory); printf("\n save_day:"); scanf("%d",goods[i].save_day); printf("要继续吗?(Y/N)"); choice=getch(); if(choice=='Y'||choice=='y') { printf("\n 继续!\n"); i++; flag=1; } else flag=0; }while(flag==1); printf("\n press any key return menu!"); bioskey(0); } /*删除商品信息*/ del_message() { int i=sum,j,flag=0; char choice; clrscr(); printf("\n\n\n"); printf("------------------\n"); do { goods[i].num=--sum; printf("\n num:"); printf("\n name:"); scanf("%s",goods[i].name); printf("\n kind:"); scanf("%s",goods[i].kind); printf("\n left_amount:"); scanf("%d",goods[i].left_amount); printf("\n total_price:"); scanf("%d",goods[i].total_price); printf("\n 要继续吗? (Y/N)"); choice=getch(); if(choice=='Y'||choice=='y'); { printf("\n 继续!\n"); i++; flag=1;} }while(flag==1); printf("\n press any key enter the menu!"); bioskey(0); } /*修改模块*/ revise_message() { int i=0,choice,revise_num,flag; do { clrscr(); printf("\n input the number of the good :"); scanf("%d",&revise_num); for(i=0;i<sum;i++) if(goods[i].num==revise_num) { printf("\n----\n"); PRINT1; PRINT2; PRINT3; printf("\n 您要修改哪一项?\n"); printf("\n 1.name\n"); printf("\n 2.kind\n"); printf("\n 3.out_price\n"); printf("\n 4.pro_time\n"); printf("\n 5.save_day\n"); printf("\n please make your choice(1-5):"); scanf("%d",&choice); switch(choice) { case 1:printf("\n name:"); scanf("%s",&goods[i].name);break; case 2:printf("\n kind:"); scanf("%s",&goods[i].kind);break; case 3:printf("\n out_price:"); scanf("%d",&goods[i].out_price);break; case 4:printf("\n pro_time:"); scanf("%d%d%d",&goods[i].pro_time.year,&goods[i].pro_time.month, &goods[i].pro_time.date);break; case 5:printf("\n save_day:"); scanf("%d",&goods[i].save_day);break; } PRINT1; PRINT2; PRINT3; break; } if(i==sum) { printf("\n该商品不存在!"); bioskey(0); } printf("\n\n 要继续吗?(Y/N)"); choice=getch(); if(choice=='Y'||choice=='y') { flag=1; printf("\n 继续!\n"); } else flag=0; }while(flag==1); printf("\n press any key return menu!"); bioskey(0); } /*更新模块*/ renew_message() { int choice; do { clrscr(); printf("\n\n\n*******更新商品信息*********\n\n"); printf(" 1.insert_message\n\n"); printf(" 2.del_message\n\n"); printf(" 3.revise_message\n\n"); printf(" 0.return menu\n\n"); printf(" please make your choice(0-3):"); scanf("%d",&choice); switch(choice) { case 1:insert_message();break; case 2:del_message();break; case 3:revise_message();break; case 0:break; } }while(choice!=0); } /*按名称查询*/ inquire_name() { int i,choice,j=0,inquire_in_price; char inquire_name[10]; clrscr(); printf("\n input the name of the good:"); scanf("%s",inquire_name); for(i=0;i<sum;i++) if(strcmp(goods[i].name,inquire_name)==0&&goods[i].num!=0) { printf("\n --商品信息--\n"); PRINT1; PRINT2; PRINT3; } else j++; if(j==sum) printf("\n 该商品不存在!"); bioskey(0); } /*按类别查询*/ inquire_kind() { int i=0,choice,j=0,inquire_in_price; char inquire_kind[10]; clrscr(); printf("\n input the kind of the good:"); scanf("%s",inquire_kind); if(strcmp(goods[i].kind,inquire_kind)==0&&goods[i].num==!0); { printf("\n --商品信息--\n"); PRINT1; PRINT2; PRINT3; } if(j==sum) printf("\n 该商品不存在!"); bioskey(0); } /*按进货时间查询*/ inquire_in_time() { int i,choice,j=0,inquire_in_price; struct date in_time; clrscr(); printf("\n input the in time of the good:"); scanf("%d",inquire_in_time); for(i=0;i<sum;i++) if(goods[i].num!=0) { printf("\n--商品信息--\n"); PRINT1; PRINT2; PRINT3; } else j++; if(j==sum) printf("该商品不存在!\n"); bioskey(0); } /*按进货量查询*/ inquire_in_num() { int i,choice,j=0,inquire_in_price; int inquire_in_num; clrscr(); printf("\n input the in number of the good:"); scanf("%d",inquire_in_time); for(i=0;i<sum;i++) if(goods[i].num!=0) { printf("\n--商品信息--\n"); PRINT1; PRINT2; PRINT3; } else j++; if(j==sum) printf("该商品不存在!\n"); bioskey(0); } /*查询模块*/ inquire_message() { int choice; do { clrscr(); printf("\n\n\n*****查询商品信息*******\n\n"); printf(" 1.inquire_name\n\n"); printf(" 2.inquire_kind\n\n"); printf(" 3.inquire_in_time\n\n"); printf(" 4.inquire_in_num\n\n"); printf(" 0.return menu\n\n"); printf("please make your choice (0-4):"); scanf("%d",&choice); switch(choice) { case 1:inquire_name();break; case 2:inquire_kind();break; case 3:inquire_in_time();break; case 4:inquire_in_num();break; case 0:break; } } while(choice!=0); } /*统计利润*/ count_profit() { int i,choice,j=0,count_num,profit; char inquire_name[10]; clrscr(); printf("\n input the number of the good :"); scanf("%d",&count_num); for(i=0;i<sum;i++) if(goods[i].num==count_num) { profit=goods[i].out_price-goods[i].in_price; printf("\n profit:"); printf("\n-----------------------------------\n"); printf("\n num profit"); printf("\n%25d%13d\n",goods[i].num,profit); } else j++; if(j==sum) printf("\n 该商品不存在!"); bioskey(0); } /*统计进货量*/ count_in_num() { int i,choice,j=0,count_num,in_num; char inquire_name[10]; clrscr(); printf("\n input the amount of the good:"); scanf("%d",&count_in_num); for(i=0;i<sum;i++) if(goods[i].in_num!=0) printf("\n %d\n",in_num); else j++; if(j==sum) printf("\n 该商品不存在!"); bioskey(0); } /*统计库存量*/ count_full() { int i,choic,j=0,count_num,full; int in_num; int out_num; char inquire_name[10]; clrscr(); printf("\n input the number of the good:"); scanf("%d",&count_full); for(i=0;i<sum;i++) if(goods[i].num!=0) { full=goods[i].in_num-goods[i].out_num; printf("\n full:"); printf("\n-----------------------------------\n"); printf("\n num full"); printf("\n%25d%13d\n",goods[i].num,full); } else j++; if(j==sum) printf("\n 该商品不存在!"); bioskey(0); } /*统计模块*/ count_message() { int choice; do { clrscr(); printf("\n\n\n*****统计商品信息******\n\n"); printf(" 1.count_profit\n\n"); printf(" 2.count_in_num\n\n"); printf(" 3.count_full\n\n"); printf(" 0.return menu\n\n"); printf("please make your choice (0-3):"); scanf("%d",&choice); switch(choice) { case 1:count_profit();break; case 2:count_in_num();break; case 3:count_full();break; case 0:break; } } while(choice!=0); } /*库存排行*/ sort_amount() { struct goods_type *p,*q[MAX]; int i,j,k; clrscr(); printf("\n 库存排行 \n"); printf("----------------------------------\n"); printf("\n 排名 商品号 商品名称 商品类别 库存量\n"); p=goods; for(i=0;i<sum;i++) q[i]=p++; for(i=0;i<sum;i++) { k=i; for(j=i+1;j<sum;j++) if(q[k]->amount<q[i]->amount) k=j; if(k!=i) { q[i]=q[i];q[i]=q[k];q[k]=p;} } for(i=0;i<sum;i++) printf("\n%18d %6d %8s %11d\n",i+1,q[i]->name,q[i]->kind,q[i]->amount); bioskey(0); } /*利润排行*/ sort_profit() { struct goods_type *p,*q[MAX]; int i,j,k; clrscr(); printf("\n 利润排行 \n"); printf("----------------------------------\n"); printf("\n 排名 商品号 商品名称 商品类别 利润 \n"); p=goods; for(i=0;i<sum;i++) q[i]=p++; for(i=0;i<sum;i++) { k=i; for(j=i+1;j<sum;j++) if(q[k]->profit<q[i]->profit) k=j; if(k!=i) { q[i]=q[i];q[i]=q[k];q[k]=p;} } for(i=0;i<sum;i++) printf("\n%18d %6d %8s %11d\n",i+1,q[i]->name,q[i]->kind,q[i]->profit); bioskey(0); } /*销售量排行*/ sort_out_num() { struct goods_type *p,*q[MAX]; int i,j,k; clrscr(); printf("\n 销售量排行 \n"); printf("----------------------------------\n"); printf("\n 排名 商品号 商品名称 商品类别 销售量 \n"); p=goods; for(i=0;i<sum;i++) q[i]=p++; for(i=0;i<sum;i++) { k=i; for(j=i+1;j<sum;j++) if(q[k]->out_num<q[i]->out_num) k=j; if(k!=i) { q[i]=q[i];q[i]=q[k];q[k]=p;} } for(i=0;i<sum;i++) printf("\n%18d %6d %8s %11d\n",i+1,q[i]->name,q[i]->kind,q[i]->out_num); bioskey(0); } /*排序模块*/ sort_message() { int choice; do { clrscr(); printf("\n\n\n*****商品排行信息******\n\n"); printf(" 1.sort_amount\n\n"); printf(" 2.sort_profit\n\n"); printf(" 3.sort_out_num\n\n"); printf(" 0.return menu\n\n"); printf("please make your choice (0-3):"); scanf("%d",&choice); switch(choice) { case 1:sort_amount();break; case 2:sort_profit();break; case 3:sort_out_num();break; case 0:break; } } while(choice!=0); } /* 主程序*/ main() { int choice; sum=read_message(); bioskey(0); do { clrscr(); printf("\n\n\n****超市管理系统*****\n\n"); printf(" 1.录入商品信息\n\n"); printf(" 2.打印商品信息\n\n"); printf(" 3.更新商品信息\n\n"); printf(" 4.查询商品信息\n\n"); printf(" 5.统计商品信息\n\n"); printf(" 6.商品排行信息\n\n"); printf(" 0.推出系统\n\n"); printf("please make your choice (0-6):"); scanf("%d",&choice); switch(choice) { case 1: input_message();break; case 2: output_message();break; case 3: renew_message();break; case 4: inquire_message();break; case 5: count_message();break; case 6: sort_message();break; case 0: break; } }while(choice!=0); save_message(sum); printf("\n-以上商品信息已保存!-(:supermarket.txt)\n"); getch(); }
展开阅读全文

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


开通VIP      成为共赢上传

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

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服