From 35d356e84525a1da04876389cbc259f196582135 Mon Sep 17 00:00:00 2001 From: "18408000311@stu.hut.edu.cn" <18408000311@stu.hut.edu.cn> Date: Thu, 10 Jan 2019 09:27:32 +0800 Subject: [PATCH] first commit --- 123lf.c | 301 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 301 insertions(+) create mode 100644 123lf.c diff --git a/123lf.c b/123lf.c new file mode 100644 index 0000000..4c26f09 --- /dev/null +++ b/123lf.c @@ -0,0 +1,301 @@ +#include +#include +#include +#define SIZE 100 +struct product//数据结构 +{ + long number; //商品编号 + char name[20]; //商品名称 + float inprice; //商品进价 + float outprice; //商品售价 + int count; //商品数量 + } ; + int main(){ + system("color 8A"); + FILE *fp; + void Remined();//打印清单函数声明 + void menu();//菜单函数声明 + void In();//商品进库管理函数声明 + void Out();//商品出库管理函数声明 + void Add();//创建新商品信息函数声明 + void Del();//清楚商品信息函数声明 + void Sale();//销售统计函数声明 + void Exit();//退出函数声明 + fp=fopen("商品信息","a+");//创建商品信息文件 + fclose(fp); + fp=fopen("清单","w+");//创建清单文件 + fclose(fp); + menu(); + } + + //增加新商品函数 + void Add(){ + FILE *fp; + char m; + struct product inf; + void menu(); + //录入各个信息 + printf("<=====请输入商品编号=====>\n");//编号 + scanf("%ld",&inf.number); + printf("<=====请输入商品数量=====>\n");//数量 + scanf("%d",&inf.count); + printf("<=====请输入商品进价=====>\n"); + scanf("%f",&inf.inprice); + printf("<=====请输入商品售价=====>\n"); + scanf("%f",&inf.outprice); + printf("<=====请输入商品名称=====>\n"); + scanf("%s",&inf.name); + fp=fopen("商品信息","a+"); + if(fp==NULL) + printf(""); + fwrite(&inf,sizeof(struct product),1,fp); + fclose(fp); + //询问是否继续输入 + printf("<=====是否继续输入? 是 输入'Y';返回主菜单 输入'N'=====>\n"); + getchar(); + m=getchar(); + if(m=='Y'||m=='y') + Add(); + if(m=='N'||m=='n') + menu(); + } + //进货模块 + void In(){ + FILE *fp; + void menu(); + int i,b; + char m; + long number; + int count; + struct product inf[SIZE]; + struct product inf1; + //输入商品的各种信息 + fp=fopen("商品信息","r"); + if((fp=fopen("商品信息","r"))==NULL) + printf("打开商品信息文件出错\n"); + printf("<=====请输入商品编号=====>\n");//编号 + scanf("%ld",&number); + printf("<=====请输入商品数量=====>\n");//数量 + scanf("%d",&count); + //将所有信息从文件中读出,进行修改 + i=0; + while(fread(&inf1,sizeof(struct product),1,fp)!=(int)NULL){ + if(inf1.number!=number){ + inf[i].number=inf1.number; + strcpy(inf[i].name,inf1.name); + inf[i].inprice=inf1.inprice; + inf[i].outprice=inf1.outprice; + inf[i].count=inf1.count; + i++; + } + else{ + inf[i].number=inf1.number; + inf[i].inprice=inf1.inprice; + inf[i].outprice=inf1.outprice; + inf[i].count=count+inf1.count; + strcpy(inf[i].name,inf1.name); + i++; + } + } + fclose(fp); + if((fp=fopen("商品信息","w+"))==NULL) + printf("打开商品信息文件出错\n"); + for(b=0;b\n"); + getchar(); + m=getchar(); + if(m=='Y'||m=='y') + In(); + if(m=='N'||m=='n') + menu(); + } + //出货模块 + void Out(){ + FILE *fp; + void menu(); + char m; + float money=0; + long number; + int count,i,b; + struct product inf[SIZE],inf1; + struct product list; + //输入商品的各种信息 + if((fp=fopen("商品信息","rb"))==NULL) + printf("打开商品信息文件出错\n"); + printf("<=====请输入商品编号=====>\n");//编号 + scanf("%ld",&number); + printf("<=====请输入商品数量=====>\n");//数量 + scanf("%d",&count); + i=0; + while(fread(&inf1,sizeof(struct product),1,fp)!=(int)NULL){ + if(inf1.number!=number){ + inf[i].number=inf1.number; + strcpy(inf[i].name,inf1.name); + inf[i].inprice=inf1.inprice; + inf[i].outprice=inf1.outprice; + inf[i].count=inf1.count; + i++; + } + else{ + inf[i].number=number; + inf[i].inprice=inf1.inprice; + inf[i].outprice=inf1.outprice; + inf[i].count=(inf1.count-count); + strcpy(inf[i].name,inf1.name); + list.number=number; + list.count=count; + list.inprice=inf1.inprice; + list.outprice=inf1.outprice; + strcpy(list.name,inf1.name); + money=(list.count)*(list.outprice); + i++; + } + } + fclose(fp); + if((fp=fopen("商品信息","w+"))==NULL) + printf("打开商品信息文件出错\n"); + for(b=0;b\n"); + getchar(); + m=getchar(); + if(m=='y'||m=='Y') + printf("商品编号 商品名称 进价 售价 金额\n"); + printf("%3l%s%3.lf%3.lf\n",list.number,list.name,list.inprice,list.outprice,money); + printf("<=====是否继续输入?是 输入'Y'或'y';否 输入'N'或'n'=====>\n"); + getchar(); + m=getchar(); + if(m=='y'||m=='Y') + Out(); + if(m=='N'||m=='n') + menu(); + } + + //清除模块 + void Del(){ + int i,b; + void menu(); + long number; + struct product inf[SIZE],infd; + char m; + FILE *fp; + printf("<=====请输入商品编号=====>\n"), + scanf("%ld",&number); + fp=fopen("商品信息","r"); + if(fp=NULL) + printf("打开文件出错\n"); + //将文件内容读出后重新写入 + i=0; + while(fread(&infd,sizeof(struct product),1,fp)!=(int)NULL) +{ + if(infd.number!=number){ + inf[i].number=infd.number; + inf[i].count=infd.count; + inf[i].inprice=infd.inprice; + inf[i].outprice=infd.outprice; + strcpy(inf[i].name,infd.name); + i++; + } + } + fclose(fp); + if(fopen("商品信息","w+")==NULL) + printf("打开商品信息文件出错\n"); + for(b=0;b\n"); + getchar(); + m=getchar(); + if(m=='Y'||m=='y') + Del(); + if(m=='N'||m=='n') + menu(); + } + //退出模块 + void Exit(){ + char m; + void menu(); + printf("<=====是否确认? 是 输入'Y'或'y';否 输入'N'或'n'=====>\n"); + getchar(); + m=getchar(); + if(m=='Y'||m=='y') + exit(1); + if(m=='N'||m=='n') + menu(); + } + //清单模块 + void Sale() + { + char m; + void menu(); + struct product list; + FILE *fp; + printf("<=====确认打印?是 输入y; 不是输入n=====>\n"); + getchar(); + m=getchar(); + if(m=='Y'||m=='y'){ + fp=fopen("清单","r"); + printf("商品名称 商品编号 商品售价 总金额 销售数量\n"); + while(fread(&list,sizeof(struct product),1,fp)!=(int)NULL) + printf("%s %5ld %3.lf %3.lf %d\n",list.name,list.number,list.outprice,(list.count*list.outprice),list.count); + } + printf("按任意键返回菜单\n"); + getchar(); + getchar(); + menu(); + if(m=='n'||m=='N') + menu(); +} +//显示库存函数 +void Remined(){ + struct product list1; + FILE *fp; + void menu(); + fp=fopen("商品信息","r"); + printf("商品编号 商品名称 商品进价 商品售价 库存量\n"); + while(fread(&list1,sizeof(struct product),1,fp)!=(int)NULL) + printf("%ld %s %f %f %d\n",list1.number,list1.name,list1.inprice,list1.outprice,list1.count); + printf("按任意键返回菜单\n"); + getchar(); + getchar(); + menu(); +} +void menu()//菜单模块 + { + int choice; + printf("#######################################################################\n"); + printf("# #\n"); + printf("#------------------欢 迎 来 到 商 店 销 售 管 理 系 统----------------#\n"); + printf("# #\n"); + printf("#######################################################################\n"); +printf("<=====请输入你要使用的功能编号\n"); +printf("0-------------退出\n"); +printf("1-------------商品进库管理\n"); +printf("2-------------商品出库管理\n"); +printf("3-------------创建新商品信息\n"); +printf("4-------------清除商品信息\n"); +printf("5-------------销售统计\n"); +printf("6-------------显示库存量\n"); + scanf("%d",&choice); + switch(choice){ + case 0:Exit(); + case 1:In();break; + case 2:Out();break; + case 3:Add();break; + case 4:Del();break; + case 5:Sale();break; + case 6:Remined();break; + default:main(); + } + }