1、超市商品管理系统C语言源代码#include #include #include #include#include#include#define MAX 20#define PRINT1 printf(-n)#define PRINT2 printf(商品号-商品名称-商品种类-销售价格-生产日期(年-月-日)-保质期n)#define PRINT3 printf(M%8s%8s崓-Mn,goodsi.num,goodsi.name,goodsi.kind,goodsi.out_price,goodsi.pro_time.year,goodsi.pro_time.month,goodsi.pr
2、o_time.day,goodsi.save_day)int sum;struct date int year; int month; int day;struct goods_type /*定义结构体*/ int num; char name10; char kind10; int amount; int in_price; int out_price; struct date pro_time; int save_day; int profit;goodsMAX;Save_Message(int sum); /*函数声明*/void Inquire_message(void);void I
3、nquire_goodskind(void);void Inquire_goodsname(void);int Read_Message(void);void Renew_Messahe(void);void Revise_Message(void);void Delete_Message(void);void Insert_Message();void Show_Message(void);int Input_Message(void);void Count_Message();long Count_Profit();long Count_Amount();void Sort_amount(
4、void);void Sort_Message(void);void Sort_Message(void) int choice; do clrscr(); printf(nnn *商品信息排行*nn); printf( 1:按库存量排行nn); printf( 0:返回主菜单nn); printf( 请选择(0-1): ); scanf(%d,&choice); switch(choice) case 1:Sort_amount();break; case 0:break; while(choice!=0);void Sort_amount(void) /*库存量排序*/ struct go
5、ods_type *p,*qMAX; int i,j,k; clrscr(); printf( 库存排行); PRINT1; printf(nn排名 商品号 商品名称 商品类别 库存量nn); p=goods; for(i=0;isum;i ) qi=p ; for(i=0;isum;i ) k=i; for(j=i 1;jamountamount) k=j; if(k!=i) p=qi; qi=qk; qk=p; for(i=0;inum); printf( %s ,qi-name); printf( %s ,qi-kind); printf( %d n ,qi-amount); biosk
6、ey(0);long Count_Amount() /*统计库存量*/ int i,j=0,choice,count_num,Amount; char inquire_name10; clrscr(); printf(n 请输入想要统计的商品号: ); scanf(%d,&count_num); for(i=0;isum;i ) if(goodsi.num=count_num) Amount=goodsi.amount; printf(-); printf( 商品号 库存量); printf(n崓,goodsi.num,Amount); else j ; if(j=sum) printf(该商
7、品信息不存在!); bioskey(0);long Count_Profit() /*统计利润模块*/ int i,choice,j=0,count_num,profit; clrscr(); printf(n 请输入想要统计的商品号: ); scanf(%d,&count_num); for(i=0;isum;i ) if(goodsi.num=count_num) profit=goodsi.out_price-goodsi.in_price; printf(n 商品利润); printf(n -); printf(n 商品号 利润); printf(n 崓n,&goodsi.num,&p
8、rofit); else j ; if(j=sum) printf(n 该商品不存在!); printf(n 按任意键返回主菜单!); bioskey(0);void Count_Message(void) /*统计模块*/ int choice; do clrscr(); printf(*统计商品信息*nnn); printf(* 1:统计库存量 *nnn); printf(* 2:统计利润 *nnn); printf(* 0:返回主菜单 *nnn); printf(* 请选择(0-2): *nnn); scanf(%d,&choice); switch(choice) case 1:Cou
9、nt_Amount();break; case 2:Count_Profit();break; case 0:break; while(choice!=0);int Input_Message(void) /*输入模块*/ int i=0,s=MAX; char bd; clrscr(); printf(开始输入商品信息.n); printf(nn 商品信息:(最多 %d) n,s); printf( =n); do printf(n 第 %d 商品,i 1); printf(n 商品号: ); scanf(%d,&goodsi.num); if(goodsi.num=0) break; pr
10、intf(n 商品名称: ); scanf (%s,goodsi.name); printf(n 商品种类: ); scanf (%s,goodsi.kind); printf(n 商品库存量: ); scanf (%d,&goodsi.amount); printf(n 进货价格: ); scanf (%d,&goodsi.in_price); printf(n 销售价格: ); scanf (%d,&goodsi.out_price); printf(n 生产日期(yyyy-mm-dd): ); scanf (%d-%d-%d,&goodsi.pro_time.year,&goodsi.p
11、ro_time.month,&goodsi.pro_time.day); printf(n 保质期: ); scanf (%d,&goodsi.save_day); printf(继续输入信息,y or n ?); fflush(stdin); scanf(%c,&bd); if(bd=y) i ; else break; while(iMAX); printf(n-%d 所有商品录入完毕!-nnn,i 1); getch(); printf( 按任意键返回主菜单.); sum=i; printf(输入回车返回主菜单!); bioskey(0);void Show_Message(void)
12、/*显示输出模块*/ int i=0,j=0,count,page=7; clrscr(); printf(nn -商品信息- 在第 %d 页nn,page); PRINT2; PRINT1; do if(goodsi.num!=0) j ; if(j%page!=0) PRINT3; PRINT1; else PRINT3; PRINT1; if(goodsi 1.num!=0) printf(按任意键继续!); bioskey(0); clrscr(); printf(nn -商品信息-在第 %d 页nn, page); PRINT2; PRINT1; i ; while(goodsi.n
13、um!=0); printf(按任意键返回主菜单!); bioskey(0);void Insert_Message(void)/*添加商品信息模块*/ int i=sum,j,flag=0; char choice; clrscr(); printf(nn 添加一种新商品nn ); printf(n-n); do goodsi.num= sum; printf(n 新商品号:%d,goodsi.num); printf(n 新商品名: ); scanf(%s,goodsi.name); printf(n 新商品种类: ); scanf(%s,goodsi.kind); printf(n 新商
14、品数量: ); scanf(%d,&goodsi.amount); printf(n 进价: ); scanf(%d,&goodsi.in_price); printf(n 售价: ); scanf(%d,&goodsi.out_price); printf(n 生产日期(yyyy-mm-dd): ); scanf(%d-%d-%d,&goodsi.pro_time.year,&goodsi.pro_time.month,&goodsi.pro_time.day); printf(n 保质期: ); scanf(%d,&goodsi.save_day); i ; printf(nn 想继续添加
15、商品吗?(Y/N); fflush(stdin); choice=getch(); if(choice=y|choice=Y) printf(继续); flag=1; else flag=0; while(flag=1); printf(nnn 按任意键返回主菜单.); bioskey(0);void Delete_Message(void)/*删除商品信息模块*/ int i,j,numberkey,flag=0; char choice; printf(开始删除.nn); do clrscr(); printf(请输入你要删除的商品号: n); scanf(%d,&numberkey);
16、for(i=0;isum;i ) if(goodsi.num=numberkey) for(j=i;jsum;j ) goodsj=goodsj 1; sum-; flag=1; printf(删除成功!nnn); break; if(flag=0) printf(不存在该商品信息!); bioskey(0); printf(nn是否继续输入(y/n)?n); getchar(); scanf(%c,&choice); while(choice=y|choice=Y); printf(n按任意键返回); bioskey(0);void Revise_Message(void)/*修改商品信息模
17、块*/ int i,j,flag,choice,revise_num; char ch; do clrscr(); printf(nn 开始修改.); printf(nn 请输入你想输入的商品号:n); scanf(%d,&revise_num); for(i=0;isum;i ) if(goodsi.num=revise_num) printf(确定修改此商品信息吗?(y/n); PRINT1; PRINT2; PRINT3; getchar(); ch=getchar(); if(ch=y) printf(nnn修改商品信息的哪一项?); printf(nn 1:商品名称); printf
18、(nn 2:商品类型); printf(nn 3:销售价格); printf(nn 4:生产日期); printf(nn 5:保质期); printf(nn 请选择(0-5)n); scanf(n %d,&choice); switch(choice) case 1:printf(请输入修改后的商品名n); scanf(%s,&goodsi.name);break; case 2:printf(请输入修改后的商品类型n); scanf(%s,&goodsi.kind);break; case 3:printf(请输入修改后的商品销售价格n); scanf(%d,&goodsi.out_pric
19、e);break; case 4:printf(请输入修改后的商品生产日期n); scanf(%d-%d-%d,&goodsi.pro_time.year,&goodsi.pro_time.month,&goodsi.pro_time.day);break; case 5:printf(请输入修改后的商品保质期n); scanf(%d,&goodsi.save_day);break; case 0:break; printf(修改商品信息:n); PRINT2; PRINT3; else break; else j ; if(j=sum) printf(不存在该商品信息.); printf(n
20、n 继续修改商品信息吗(y/n)?); getchar(); ch=getchar(); if(ch=y) printf(继续.n); flag=1; else flag=0; while(flag=1); printf(修改完成!nn); getch();void Renew_Message(void) /*更新商品信息模块*/ int choice; do clrscr(); printf(nn*更新商品信息*); printf(nn 1:添加商品信息.nn); printf(nn 2:删除商品信息.nn); printf(nn 3:修改商品信息.nn); printf(nn 0:返回上一
21、级.nn); printf(nn 请选择(0-3): ); scanf(%d,&choice); switch(choice) case 1:Insert_Message();break; case 2:Delete_Message();break; case 3:Revise_Message();break; case 0:break; while(choice!=0);int Read_Message(void) /*读取信息模块*/ FILE *fp; int i=0; if(fp=fopen(999.txt,rb)=NULL) printf(nt 现在还没有保存全部信息,按回车键回到主
22、菜单输入商品信息!); printf(nt 按任意键返回!n); getch(); return; while(feof(fp)!=1) fread(&goodsi,sizeof(struct goods_type),1,fp); if(goodsi.num=0) break; else i ; fclose(fp); return(i);void Inquire_goodsname(void)/*按商品名称查询*/ int i,j,choice; char namekey10; j=0; printf(开始查询.); printf(请输入你要查询的商品号:n); scanf(%s,namek
23、ey); for(i=0;isum;i ) if(strcmp(goodsi.name,namekey)=0&goodsi.num!=0) printf( -商品信息-); PRINT1; PRINT2; PRINT3; else j ; if(j=sum) printf(该商品不存在!); printf(按任意键返回主菜单.); getch();void Inquire_goodskind(void)/*按商品类型查询*/ int i,j,choice; char kindkey10; j=0; printf(开始查询.); printf(请输入你要查询的商品种类:n); scanf(%s,
24、kindkey); for(i=0;isum;i ) if(strcmp(goodsi.kind,kindkey)=0&goodsi.num!=0) printf( -商品信息-); PRINT1; PRINT2; PRINT3; else j ; if(j=sum) printf(该商品不存在!); printf(按任意键返回主菜单.); getch();void Inquire_Message(void) /*查询模块*/ int choice; do printf(n *查询商品信息 * n); printf(n *1:按商品名称.* n); printf(n *2:按商品种类.* n)
25、; printf(n *0:返回上一级.* n); printf(n 请选择(0-2): * n); scanf(%d,&choice); switch(choice) case 1:Inquire_goodsname();break; case 2:Inquire_goodskind();break; case 0:break; while(choice!=0);Save_Message(int sum) /*保存模块*/ FILE *fp; int i; if(fp=fopen(999.txt,wb)=NULL) printf(nn不能打开文件!nn); exit(); for(i=0;i=sum;i ) if(fwrite(&goodsi,sizeof(struct goods_type),1,fp)!=1) printf(写文件出错!); fclose(fp);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1