#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#defineN 50
void print()
void check()
void overdue()
int a
struct goods
{
int num
char name[2]
float price
int count
int chuchangriqi
int baozhiqi
int year
int month
int day
}goods[N]
void main()
{
int j
printf("** 超市售货系统 **\n")
printf("** 1. 输入所有商品信息 **\n")
printf("** 2. 查询某商品并显示其信息 **\n")
printf("** 3. 统计已过期商品 **\n")
printf("** 4. 退出 **\拿困毁n")
while(1)
{printf("请选择 *** 作:(1-4)")
scanf ("%d",&j)
switch(j)
{
case 1:print()break
case 2:check()break
case 3:overdue()break
case 4: exit(0)
break
default:printf("无此功能\n")
}
}
}
void read(struct goods * goods,int*n)
{
FILE*fp
int i=0
if((fp=fopen("h:\\goods.txt","rb"))==NULL)
{ printf("文件打开失败!\n")
return
}
else
{
*n==fread(n,sizeof(*n),1,fp)
for(i=0i<*ni++)
fread(&goods[i],sizeof(struct goods),1,fp)
}
fclose(fp)
}
void print()
{
FILE*fp
int i
if((fp=fopen("h:\\goods.txt","wb+"))==NULL)
{
printf("文件打开失败!\n")
return
}
scanf("%d",&a)
fwrite(&a,sizeof(a),1,fp)
for(i=0i<ai++)
{
printf("\n请输入商品编号:")
scanf("%d",&goods[i].num)
printf("\n请输入商品名称:")
scanf("%s",&goods[i].name)
printf("\n请输入商品价格:")
scanf("%f",&goods[i].price)
printf("\n请输入商品数量:")
scanf("%d",&goods[i].count)
printf("\n请输入商品出厂日期:")
scanf("%d,%d,%d",&goods[i].year,&goods[i].month,&goods[i].day)
printf("\n请输入商品保质期:")
scanf("%d",&goods[i].baozhiqi)
fwrite(&goods[i],sizeof(struct goods),1,fp)
}
fclose(fp)
}
void check()
{
FILE*fp
int i,m,n
int number
read(goods,&n)
printf("请输入编号:")
scanf("%d",&number)
fp=fopen("h:\\goods.txt","r")
for(i=0i<ni++)
{if(number==goods[i].num)
{
printf("商品信息为:\n")
printf(" 编号:%d\n",goods[i].num)
printf(" 名称:%s\n",goods[i].name)
printf(" 价格: %f\n",goods[i].price)
printf(" 数量: %d\n",goods[i].count)
printf("出产日期:%d,%d,%d\n",goods[i].year,goods[i].month,goods[i].day)
printf("保质期:%d\n",goods[i].baozhiqi)
}
}fclose(fp)
}
void overdue()
{
FILE*fp
int i,m=0,n,j,k
read(goods,&n)
fp=fopen("h:\\goods.txt","r")
struct date
{
int year
int month
int day
}today
printf("请输入今天的日期:")
scanf("%d,%d,%d",&today.year,&today.month,&today.day)
for(i=0i<ni++)
{
k=(today.year-goods[i].year)*365+(today.month-goods[i].month)*30+
(today.day-goods[i].day)
if(k>(goods[i].baozhiqi*30))
{
m=m++
printf("过期商品的编号为:%d\n",goods[i].num)
}
}
fwrite(&m,sizeof(m),1,fp)
{
printf(" 过期商品的个数为:%d\n",m)
printf(" 请把以上过期商品返回至厂家处 \n")
}
fclose(fp)
}
给亲些提示帮助吧,商品做一个结构体,包含价格,种类,库存数量,条形码,折扣。
超市的数据是按商品来的,和客人无关喔~超并梁市不需要知道客人的情况,只需要知道商品的情况。
如果非要客人信息,那么可以改成会员制度,那么客人的结构体就是是否会员,购买日期,购买商判蔽局品品种,购买数量,结账价格。
最后还需要一个购买事件结构体,就是购买总额,结账总额,找零总额。
接下来3大主要数据部分准备完毕,接下来就是过程编程了,就需要模拟一下购物过程来 *** 作以上的掘让3大数据结构就行了。
还有不懂请私信我私聊。
超市管理系统*/
#include<stdio.h>
#include<string.h>
//欢迎界面//
void welcome()
//功能浏览//
void mainMenu()
//购物结算//
void saleCalc()
//进货管理//
void addGoods()
//修改信息
void updateGoods()
//显示商品//
void showGoods()
//删除商品//
void deleteGoods()
//查询商品//
int searchGoods()
//购买结算
void saleCalc()
//更新库存//
void updateGoodsNum(int number,char name[50])
//结构体
struct goods
{
char name[50]//商品名称
int num//商品数量
float price//商品价格
}
int count/雀族袭/商品种类数量
goods list[1000]//声明goods的变量数组
char name[50]
void main()//主函数
{
int num
welcome()
do{
mainMenu()
printf("请选择功能:")
scanf("%d",&num)
switch(num)
{
case 1:
saleCalc()
break
case 2:
addGoods()
break
case 3:
updateGoods()
break
case 4:
showGoods()
break
case 5:
deleteGoods()
break
case 0:
break
}
}while(num!=0)
}
void welcome()//欢迎界面
{
printf("-------------------------------------------------------------------------\n")
printf("****************欢迎使用超市管理系统*******************\n")
printf("-------------------------------------------------------------------------\n")
}
void mainMenu()//功能浏览界面
{
printf("****1.购物结算****\n")
printf("****2.进货管理****\n")
printf("****3.修改商品****\n")
printf("****4.显示商品****\n")
printf("****5.删穗厅除商品****\n")
printf("****0.退出系统****\n")
}
//查询信息
int searchGoods()//查询商品信息
{
printf("请输入您要购买商品的名字:")
scanf("%s",name)
for(int i=0i<counti++)
{
if(stricmp(name,list[i].name)==0)
{
return 1
}
else
{
printf("对不起了,没有找到%c商品\n",name)
return -1
}
}
}
//购物结算
void saleCalc()//购物结算
{
int number,i,s
float priceGoods=0,sum=0,money
char c=' '
s=searchGoods()
do
{
if(s==-1)
{
s=searchGoods()
}else
{
printf("该商品b存在")
for(i=0i<counti++)
{
if(strcmp(name,list[i].name)==0)
{
priceGoods=list[i].price
break
}
}
printf("请顷兄输入您要购买的数量:")
scanf("%d",&number)
sum=priceGoods*number
updateGoodsNum(-number,name)
printf("是否继续购买(y/n)")
fflush(stdin)
c=getchar()
}
}while(c=='y'||c=='Y')
printf("本次消费总金额为:%.2f",sum)
printf("请输入您的实际付款金额:")
scanf("%f",&money)
printf("找零:%.2f\n",money-sum)
}
//进货管理
void addGoods() //商品的录入
{
int i=0
char c=' '
do
{
printf("请输入商品的名称:")
fflush(stdin)
scanf("%s",list[i].name)
printf("请输入商品的数量:")
scanf("%d",&list[i].num)
printf("请输入商品的单价:")
scanf("%f",&list[i].price)
printf("是否继续(y/n)")
fflush(stdin)
c=getchar()
}while(c=='Y'||c=='y')
}
//更新库存
void updateGoodsNum(int number,char name[50])
{
int i
for(i=0i<counti++)
{
list[i].num+=number//list[i].num=list[i].num+number
}
}
//显示货物信息
void showGoods()
{
printf("商品名称\t数量\t单价\n")
for(int i=0i<counti++)
{
printf("%s\t%d\t%.2f\n",list[i].name,list[i].num,list[i].price)
}
}
//修改商品信息
void updateGoods()
{
int i
printf("请输入您要修改商品的名字:")
scanf("%s",&name)
for(i=0i<counti++)
{
if(strcmp(name,list[i].name)==0)
{
printf("请输入新的商品名字:")
scanf("%s",list[i].name)
printf("请输入您要修改商品的数量:")
scanf("%d",list[i].num)
printf("请输入您要修改商品的单价:")
scanf("%f",list[i].price)
}
else
{
printf("对不起,没有找到该商品信息!")
}
}
}
//删除商品信息
void deleteGoods()
{
int index=-1
printf("请输入您要删除的商品名字:")
scanf("%s",name)
for(int i=0i<counti++)
{
if(strcmp(name,list[i].name)==0)
{
index=i
}
}if(index==-1)
{
printf("对不起!没有找到您要删除的商品信息!")
}
else{
for(int i=indexi<counti++)
{
list[i]=list[i+1]
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)