超市商品管理系统C语言源代码.docx
- 文档编号:8766644
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:19
- 大小:17.59KB
超市商品管理系统C语言源代码.docx
《超市商品管理系统C语言源代码.docx》由会员分享,可在线阅读,更多相关《超市商品管理系统C语言源代码.docx(19页珍藏版)》请在冰豆网上搜索。
超市商品管理系统C语言源代码
#include
#include
#include
#include
#include
#defineMAX20
#definePRINT1printf("---------------------------------------------------------\n")
#definePRINT2printf("商品号--商品名称--商品种类--销售价格--生产日期(年-月-日)--保质期\n")
#definePRINT3printf("M%8s%8s崓----M\n",goods[i].num,goods[i].name,goods[i].kind,goods[i].out_price,goods[i].pro_time.year,goods[i].pro_time.month,goods[i].pro_time.day,goods[i].save_day)
intsum;
structdate
{
intyear;
intmonth;
intday;
};
structgoods_type/*定义结构体*/
{
intnum;
charname[10];
charkind[10];
intamount;
intin_price;
intout_price;
structdatepro_time;
intsave_day;
intprofit;
}goods[MAX];
Save_Message(intsum);/*函数声明*/
voidInquire_message(void);
voidInquire_goodskind(void);
voidInquire_goodsname(void);
intRead_Message(void);
voidRenew_Messahe(void);
voidRevise_Message(void);
voidDelete_Message(void);
voidInsert_Message();
voidShow_Message(void);
intInput_Message(void);
voidCount_Message();
longCount_Profit();
longCount_Amount();
voidSort_amount(void);
voidSort_Message(void);
voidSort_Message(void)
{
intchoice;
do
{
clrscr();
printf("\n\n\n*******商品信息排行********\n\n");
printf("1:
按库存量排行\n\n");
printf("0:
返回主菜单\n\n");
printf("请选择(0-1):
");
scanf("%d",&choice);
switch(choice)
{
case1:
Sort_amount();break;
case0:
break;
}
}while(choice!
=0);
}
voidSort_amount(void)/*库存量排序*/
{
structgoods_type*p,*q[MAX];
inti,j,k;
clrscr();
printf("库存排行");
PRINT1;
printf("\n\n排名商品号商品名称商品类别库存量\n\n");
p=goods;
for(i=0;i q[i]=p; for(i=0;i { k=i; for(j=i1;j if(q[k]->amount k=j; if(k! =i) { p=q[i]; q[i]=q[k]; q[k]=p; } } for(i=0;i { printf("%d",i1); printf("%d",q[i]->num); printf("%s",q[i]->name); printf("%s",q[i]->kind); printf("%d\n",q[i]->amount); } bioskey(0); } longCount_Amount()/*统计库存量*/ { inti,j=0,choice,count_num,Amount; charinquire_name[10]; clrscr(); printf("\n请输入想要统计的商品号: "); scanf("%d",&count_num); for(i=0;i if(goods[i].num==count_num) { Amount=goods[i].amount; printf("-------------------------"); printf("商品号库存量"); printf("\n崓",goods[i].num,Amount); } else j; if(j==sum) printf("该商品信息不存在! ! ! "); bioskey(0); } longCount_Profit()/*统计利润模块*/ { inti,choice,j=0,count_num,profit; clrscr(); printf("\n请输入想要统计的商品号: "); scanf("%d",&count_num); for(i=0;i if(goods[i].num==count_num) { profit=goods[i].out_price-goods[i].in_price; printf("\n商品利润"); printf("\n-------------------------------"); printf("\n商品号利润"); printf("\n崓\n",&goods[i].num,&profit); } else j; if(j==sum) printf("\n该商品不存在! ! ! "); printf("\n按任意键返回主菜单! ! "); bioskey(0); } voidCount_Message(void)/*统计模块*/ { intchoice; do{ clrscr(); printf("**************统计商品信息*************\n\n\n"); printf("*******1: 统计库存量************\n\n\n"); printf("*******2: 统计利润************\n\n\n"); printf("*******0: 返回主菜单************\n\n\n"); printf("*******请选择(0-2): ************\n\n\n"); scanf("%d",&choice); switch(choice) { case1: Count_Amount();break; case2: Count_Profit();break; case0: break; } }while(choice! =0); } intInput_Message(void)/*输入模块*/ { inti=0,s=MAX; charbd; clrscr(); printf("开始输入商品信息.\n"); printf("\n\n商品信息: (最多%d)\n",s); printf("===============================\n"); do { printf("\n第%d商品",i1); printf("\n商品号: "); scanf("%d",&goods[i].num); if(goods[i].num==0)break; printf("\n商品名称: "); scanf("%s",goods[i].name); printf("\n商品种类: "); scanf("%s",goods[i].kind); printf("\n商品库存量: "); scanf("%d",&goods[i].amount); printf("\n进货价格: "); scanf("%d",&goods[i].in_price); printf("\n销售价格: "); scanf("%d",&goods[i].out_price); printf("\n生产日期(yyyy-mm-dd): "); scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time.day); printf("\n保质期: "); scanf("%d",&goods[i].save_day); printf("继续输入信息,yorn? ? "); fflush(stdin); scanf("%c",&bd); if(bd=='y') i; else break; }while(i printf("\n--%d所有商品录入完毕! --\n\n\n",i1); getch(); printf("按任意键返回主菜单."); sum=i; printf("输入回车返回主菜单! ! ! "); bioskey(0); } voidShow_Message(void)/*显示输出模块*/ { inti=0,j=0,count,page=7; 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[i1].num! =0) { printf("按任意键继续! "); bioskey(0); clrscr(); printf("\n\n--------商品信息--------在第%d页\n\n",page); PRINT2; PRINT1; } } } i; }while(goods[i].num! =0); printf("按任意键返回主菜单! ! ! ! ! "); bioskey(0); } voidInsert_Message(void)/*添加商品信息模块*/ { inti=sum,j,flag=0; charchoice; clrscr(); printf("\n\n添加一种新商品\n\n"); printf("\n-------------------------------------------------\n"); do { goods[i].num=sum; printf("\n新商品号: %d",goods[i].num); printf("\n新商品名: "); scanf("%s",goods[i].name); printf("\n新商品种类: "); scanf("%s",goods[i].kind); printf("\n新商品数量: "); scanf("%d",&goods[i].amount); printf("\n进价: "); scanf("%d",&goods[i].in_price); printf("\n售价: "); scanf("%d",&goods[i].out_price); printf("\n生产日期(yyyy-mm-dd): "); scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time.day); printf("\n保质期: "); scanf("%d",&goods[i].save_day); i; printf("\n\n想继续添加商品吗? (Y/N)"); fflush(stdin); choice=getch(); if(choice=='y'||choice=='Y') { printf("继续"); flag=1; } else flag=0; }while(flag==1); printf("\n\n\n按任意键返回主菜单........."); bioskey(0); } voidDelete_Message(void)/*删除商品信息模块*/ { inti,j,numberkey,flag=0; charchoice; printf("开始删除......\n\n"); do { clrscr(); printf("请输入你要删除的商品号: \n"); scanf("%d",&numberkey); for(i=0;i { if(goods[i].num==numberkey) { for(j=i;j goods[j]=goods[j1]; sum--; flag=1; printf("删除成功! ! \n\n\n"); break; } } if(flag==0) { printf("不存在该商品信息! ! ! "); bioskey(0); } printf("\n\n是否继续输入(y/n)? \n"); getchar(); scanf("%c",&choice); }while(choice=='y'||choice=='Y'); printf("\n按任意键返回"); bioskey(0); } voidRevise_Message(void)/*修改商品信息模块*/ { inti,j,flag,choice,revise_num; charch; do { clrscr(); printf("\n\n开始修改..."); printf("\n\n请输入你想输入的商品号: \n"); scanf("%d",&revise_num); for(i=0;i { if(goods[i].num==revise_num) { printf("确定修改此商品信息吗? (y/n)"); PRINT1; PRINT2; PRINT3; getchar(); ch=getchar(); if(ch='y') { printf("\n\n\n修改商品信息的哪一项? "); printf("\n\n1: 商品名称"); printf("\n\n2: 商品类型"); printf("\n\n3: 销售价格"); printf("\n\n4: 生产日期"); printf("\n\n5: 保质期"); printf("\n\n请选择(0-5)\n"); scanf("\n%d",&choice); switch(choice) { case1: printf("请输入修改后的商品名\n"); scanf("%s",&goods[i].name);break; case2: printf("请输入修改后的商品类型\n"); scanf("%s",&goods[i].kind);break; case3: printf("请输入修改后的商品销售价格\n"); scanf("%d",&goods[i].out_price);break; case4: printf("请输入修改后的商品生产日期\n"); scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time.day);break; case5: printf("请输入修改后的商品保质期\n"); scanf("%d",&goods[i].save_day);break; case0: break; } printf("修改商品信息: \n"); PRINT2; PRINT3; } else break; } else j; if(j==sum) printf("不存在该商品信息.."); } printf("\n\n继续修改商品信息吗(y/n)? "); getchar(); ch=getchar(); if(ch=='y') { printf("继续.\n"); flag=1; } else flag=0; }while(flag==1); printf("修改完成! ! \n\n"); getch(); } voidRenew_Message(void)/*更新商品信息模块*/ { intchoice; do { clrscr(); printf("\n\n*********更新商品信息*********"); printf("\n\n1: 添加商品信息.\n\n"); printf("\n\n2: 删除商品信息.\n\n"); printf("\n\n3: 修改商品信息.\n\n"); printf("\n\n0: 返回上一级.\n\n"); printf("\n\n请选择(0-3): "); scanf("%d",&choice); switch(choice) { case1: Insert_Message();break; case2: Delete_Message();break; case3: Revise_Message();break; case0: break; } }while(choice! =0); } intRead_Message(void)/*读取信息模块*/ { FILE*fp; inti=0; if((fp=fopen("999.txt","rb"))==NULL) { printf("\n\t现在还没有保存全部信息,按回车键回到主菜单输入商品信息! ! "); printf("\n\t按任意键返回! ! ! ! \n"); getch(); return; } while(feof(fp)! =1) { fread(&goods[i],sizeof(structgoods_type),1,fp); if(goods[i].num==0) break; else i; } fclose(fp); return(i); } voidInquire_goodsname(void)/*按商品名称查询*/ { inti,j,choice; charnamekey[10]; j=0; printf("开始查询..."); printf("请输入你要查询的商品号: \n"); scanf("%s",namekey); for(i=0;i if(strcmp(goods[i].name,namekey)==0&&goods[i].num! =0) { printf("---商品信息----"); PRINT1; PRINT2; PRINT3; } else j; if(j==sum) printf("该商品不存在! "); printf("按任意键返回主菜单."); getch(); } voidInquire_goodskind(void)/*按商品类型查询*/ { inti,j,choice; charkindkey[10]; j=0; printf("开始查询..."); printf("请输入你要查询的商品种类: \n"); scanf("%s",kindkey); for(i=0;i if(strcmp(goods[i].kind,kindkey)==0&&goods[i].num! =0) { printf("---商品信息----"); PRINT1; PRINT2; PRINT3; } else j; if(j==sum) printf("该商品不存在! "); printf("按任意键返回主菜单."); getch(); } voidInquire_Message(void)/*查询模块*/ { intchoice; do { printf("\n*****查询商品信息*****\n"); printf("\n*****1: 按商品名称.*****\n"); printf("\n*****2: 按商品种类.*****\n"); printf("\n*****0: 返回上一级.*****\n"); printf("\n请选择(0-2): *****\n"); scanf("%d",&choice); switch(choice) { case1: Inquire_goodsname();break; case2: Inquire_goodskind();break; case0: break; } }while(choice! =0); } Save_Message(intsum)/*保存模块*/ { FILE*fp; inti; if((fp=fopen("999.txt","wb"))==NULL) { printf("\n\n不能打开文件! \n\n"); exit(); } for(i=0;i<=sum;i) if(fwrite(&goods[i],sizeof(structgoods_type),1,fp)! =1) printf("写文件出错! "); fclose(fp);amount)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 商品 管理 系统 语言 源代码