#include "shop.h"
void menu()
{
printf("------shopping mall------\n");
printf("-------显示商品(1)-------\n");
printf("-------添加商品(2)-------\n");
printf("-------删除商品(3)-------\n");
printf("-----更改商品价格(4)-----\n");
printf("-------查找商品(5)-------\n");
printf("-------购买商品(6)-------\n");
printf("--------退出(0)----------\n");
}
void init(struct Goods *p)
{
// printf("序号\t名字\t价格\t数量\t\n");
for(int i=0;i<n;i++)
{
p[i].num=i+1;
}
strcpy(p[0].name,"西瓜");
p[0].price=22;
p[0].left_num=3;
strcpy(p[1].name,"苹果");
p[1].price=21;
p[1].left_num=4;
strcpy(p[2].name,"梨子");
p[2].price=23;
p[2].left_num=6;
strcpy(p[3].name,"芒果");
p[3].price=23;
p[3].left_num=10;
strcpy(p[4].name,"香蕉");
p[4].price=21;
p[4].left_num=7;
strcpy(p[5].name,"葡萄");
p[5].price=22;
p[5].left_num=8;
}
void showAll(struct Goods *p)
{
printf("序号\t名字\t价格\t数量\t\n");
for(int i=0;i<n;i++)
printf("%d\t%s\t%d\t%d\n",p[i].num,p[i].name,p[i].price,p[i].left_num);
}
struct Goods * insert(struct Goods *p)
{
p=(struct Goods *)realloc(p,(++n)*sizeof(struct Goods));
printf("输入商品信息\n");
printf("序号\t名字\t价格\t数量\t\n");
scanf("%d%s%d%d",&p[n-1].num,p[n-1].name,&p[n-1].price,&p[n-1].left_num);
printf("添加成功!\n");
return p;
}
struct Goods * delLineInfo(struct Goods *p,int m)
{
for(int i=m;i<n-1;i++)
{
p[i]=p[i+1];
}
p=(struct Goods *)realloc(p,(--n)*sizeof(struct Goods));
return p;
}
int getNum()
{
int num;
printf("输入序号:");
scanf("%d",&num);
return num;
}
char *getName()
{
printf("输入名字:");
char *name=malloc(sizeof(char)*MAXNAME);
scanf("%s",name);
return name;
}
struct Goods * delGoodsWays(struct Goods *p,int op)
{
int flag=1;
char *name=NULL;
int num= INT_MIN;
if(op==1)
{
num = getNum();
}
else if(op==2)
{
name =getName();
}
for(int i=0;i<n;i++)
{
if((op==1&&p[i].num==num)||(op==2&&strcmp(p[i].name,name)==0))
{
p = delLineInfo(p,i);
printf("删除成功!\n");
flag=0;
break;
}
}
if(flag)
printf("未找到该物品!\n");
return p;
}
int chooseOp()
{
int op;
printf("选择方式(1:序号 2:名字): ");
scanf("%d",&op);
return op;
}
struct Goods * chooseDelLineInfo(struct Goods *p)
{
int op=chooseOp();
switch(op)
{
case 1:
p = delGoodsWays(p,op);
break;
case 2:
p = delGoodsWays(p,op);
break;
default:
printf("输入有误请重新输入!\n");
op=chooseOp();
}
return p;
}
struct Goods * chgGoodsWays(struct Goods *p,int op)
{
int flag=0;
char *name=NULL;
int num= INT_MIN;
if(op==1)
{
num = getNum();
}
else if(op==2)
{
name =getName();
}
for(int i=0;i<n;i++)
{
if((op==1&&p[i].num==num)||(op==2&&strcmp(p[i].name,name)==0))
{
flag=0;
printf("请输入修改价格:");
scanf("%d",&p[i].price);
printf("修改成功!\n");
break;
}
else
{
flag=1;
}
}
if(flag)
printf("未找到需要修改的物品!\n");
return p;
}
struct Goods * changeLineInfo(struct Goods *p)
{
int op=chooseOp();
switch(op)
{
case 1:
p = chgGoodsWays(p,op);
break;
case 2:
p = chgGoodsWays(p,op);
break;
default:
printf("输入有误请重新输入!\n");
op=chooseOp();
}
return p;
}
void searchGoodsWays(struct Goods *p,int op)
{
int flag=0;
char *name=NULL;
int num= INT_MIN;
if(op==1)
{
num = getNum();
}
else if(op==2)
{
name =getName();
}
for(int i=0;i<n;i++)
{
if((op==1&&p[i].num==num)||(op==2&&strcmp(p[i].name,name)==0))
{
flag=0;
printf("\n序号\t名字\t价格\t数量\t\n");
printf("%d\t%s\t%d\t%d\n",p[i].num,p[i].name,p[i].price,p[i].left_num);
break;
}
else
{
flag=1;
}
}
if(flag)
printf("未找到该物品!\n");
}
void searchLineInfo(struct Goods *p)
{
int op=chooseOp();
switch(op)
{
case 1:
searchGoodsWays(p,op);
break;
case 2:
searchGoodsWays(p,op);
break;
default:
printf("输入有误请重新输入!\n");
op=chooseOp();
}
}
// struct Goods *payMoney(int num,int price)
// {
// }
void buyGoodsWays(struct Goods *p,int op)
{
int flag=0;
int flag2=1;
char *name=NULL;
int num= INT_MIN;
if(op==1)
{
num = getNum();
}
else if(op==2)
{
name =getName();
}
for(int i=0;i<n;i++)
{
if((op==1&&p[i].num==num)||(op==2&&strcmp(p[i].name,name)==0))
{
flag=0;
int buyNum=0;
int price=0;
printf("请输入购买的数量: ");
scanf("%d",&buyNum);
if(buyNum>p[i].price)
{
printf("剩余的商品数量不足\n");
break;
}
else
{
int ackNum=0;
price = p[i].price*buyNum;
// payMoney(price,buyNumnum);
printf("需要支付的金额:%d\n",price);
printf("是否确认支付(1:确认支付,2:返回): ");
scanf("%d",&ackNum);
if(ackNum==1)
{
p[i].left_num -= buyNum;
printf("购买成功!\n");
flag2=0;
}
else
break;
}
break;
}
else
{
flag=1;
}
}
if(flag&&flag2)
printf("未找到需要修改的物品!\n");
return ;
}
void buyGoods(struct Goods *p)
{
int op=chooseOp();
switch(op)
{
case 1:
buyGoodsWays(p,op);
break;
case 2:
buyGoodsWays(p,op);
break;
default:
printf("输入有误请重新输入!\n");
op=chooseOp();
}
return ;
}
评论0