#include <stdio.h>
#include <string.h>
int count=4;
int i,j;
typedef struct commodity
{
char name[20];
float price;
float vip_p;
int num;
char bar_codes[10];
}goods,*goods_p;
int purchase_page(goods_p p)//购买界面
{
int spbm;//记录商品编码
float money;
int h;//判断是否为会员
while(1)
{
printf("商品编码\t商品名称\t普通价格\t会员价格\t商品数量\n");
for(i=0 ; i<count ; i++)
{
printf("%d\t\t%s\t\t%.2f\t\t%.2f\t\t%d\n",
i+1,(p+i)->name,(p+i)->price,(p+i)->vip_p,(p+i)->num);
}
printf("--------------------------------------------------------------------------\n");
printf("----------------------------输入0返回上一级!-----------------------------\n");
printf("请选择要购买商品的商品编码:");
scanf("%d",&spbm);
if(spbm == 0)
{
return 0;
}
printf("你有小店会员吗?有请输入'1'\n");
getchar();
scanf("%d",&h);
if(h == 1)
{
printf("%s\t%.2f人民币\n",(p+spbm-1)->name,(p+spbm-1)->vip_p);
printf("请输入你放入钞票的面值:");
scanf("%f",&money);
if(money < (p+spbm-1)->vip_p)
{
printf("金额不足,购买失败!");
return 0;
}
printf("本次找零%.2f人民币!\n*********感谢你的消费,欢迎下次光临!*********\n*******如有问题,请拨打售后电话:1238438*******\n\n\n",
money-((p+spbm-1)->vip_p));
}
else
{
printf("%s\t%.2f人民币\n",(p+spbm-1)->name,(p+spbm-1)->price);
printf("请输入你放入钞票的面值:");
scanf("%f",&money);
printf("本次找零%.2f人民币!\n感谢你的消费,欢迎下次光临!\n如有任何问题或不满意,请拨打售后电话:1238438\n\n\n",
money-(p+spbm-1)->price);
}
((p+spbm-1)->num)--;
}
}
int management_page()//登录管理界面
{
int error;
char man_id[]="yyd";
char man_mm[]="yyd";
char id[20],mm[20];
for(error=0 ; error<3 ; error++)
{
printf("账号:");
scanf("%s",id);
printf("密码:");
scanf("%s",mm);
if(strcmp(man_id,id) == 0)
{
if(strcmp(man_mm,mm) == 0)
{
printf("登录成功!\n");
return 0;
}
}
else
{
printf("账号有误,请重新输入,还有%d输入机会。\n",2-error);
}
if(error == 3)
{
return -1;
}
}
}
void add_goods(goods_p p)//添加商品
{
printf("请输入要添加商品的信息:\n");
printf("商品名称:");
scanf("%s",(p+count)->name);
printf("普通价格:");
scanf("%f",&(p+count)->price);
printf("会员价格:");
scanf("%f",&(p+count)->vip_p);
printf("商品数量:");
scanf("%d",&(p+count)->num);
printf("商品条码:");
scanf("%s",(p+count)->bar_codes);
count++;
}
void cat_goods(goods_p p)//查看商品
{
printf("商品名称\t商品条码\t普通价格\t会员价格\t商品数量\n");
for(i=0 ; i<count ; i++)
{
printf("%s \t\t%s \t\t%.2f \t\t%.2f \t\t%d\n",
(p+i)->name,(p+i)->bar_codes,(p+i)->price,(p+i)->vip_p,(p+i)->num);
}
}
void modify_goods(goods_p p)//修改商品
{
char txbm[10]={0};
printf("请输入要修改的商品的条形编码:\n");
scanf("%s",txbm);
for(i=0 ; i<count ; i++)
{
if(strcmp((p+i)->bar_codes,txbm) == 0)
{
printf("该条形编码所对应的商品名称是:%s\n",(p+i)->name);
printf("商品名称:");
scanf("%s",(p+i)->name);
printf("普通价格:");
scanf("%f",&(p+i)->price);
printf("会员价格:");
scanf("%f",&(p+i)->vip_p);
printf("商品数量:");
scanf("%d",&(p+i)->num);
printf("商品条码:");
scanf("%s",(p+i)->bar_codes);
}
}
}
int delete_goods(goods_p p)//删除商品
{
char txbm[10]={0};
printf("请输入要删除的商品的条形编码:\n");
scanf("%s",txbm);
for(i=0 ; i<count ; i++)
{
if(strcmp((p+i)->bar_codes,txbm) == 0)
{
for(j=i ; j<count ; j++)
{
strcpy((p+j)->name,(p+j+1)->name);
(p+j)->price=(p+j+1)->price;
(p+j)->vip_p=(p+j+1)->vip_p;
(p+j)->num=(p+j+1)->num;
strcpy((p+j)->bar_codes,(p+j+1)->bar_codes);
}
}
else
{
printf("没有找到该条形编码所对应的商品!\n");
return 0;
}
}
count--;
}
int choose_function(goods_p p)//选择功能
{
while(1)
{
int a,b,c;
printf("---------------------------1:购买模式---------------------------\n");
printf("---------------------------2:管理模式---------------------------\n");
printf("---------------------------0:退出系统---------------------------\n");
scanf("%d",&a);
switch(a)
{
case 0:return 0;
break;
case 1:
purchase_page(p);
break;
case 2:
b=management_page();
if(b == 0)
{
while(1)
{
printf("------------------------1:添加商品种类------------------------\n");
printf("------------------------2:修改商品信息------------------------\n");
printf("------------------------3:删除商品信息------------------------\n");
printf("------------------------4:查看商品信息------------------------\n");
printf("------------------------0:返回上一级 ------------------------\n");
scanf("%d",&c);
switch(c)
{
case 0:
break;
case 1:
add_goods(p);
break;
case 2:
modify_goods(p);
break;
case 3:
delete_goods(p);
break;
case 4:
cat_goods(p);
break;
default :
break;
}
if(c==0) break;
}
}
break;
default:
break;
}
}
}
int main(int argc, char const *argv[])
{
goods g_type[20] = {{"可乐",2.5,2.0,10,"00001"},
{"绿茶",3.0,2.5,10,"00002"},
{"桶面",4.0,3.5,10,"01003"},
{"卫生纸",8.5,8.0,16,"02004"}};
goods_p p= g_type;
choose_function(p);
return 0;
}