为一个花店编写一个库存管理程序,花点库存的花用花的名称、颜色、单价和株的数量来表示。(可直接运行)

为一个花店编写一个库存管理程序,花点库存的花用花的名称、颜色、单价和株的数量来表示。

要求:

(1)说明一个结构数组,存储库存的鲜花数据。

(2)编写一个函数input_data(),输入现有的鲜花数据,读取数据时,向用户提供一个可以选择颜色的菜单,供用户选择。颜色使用枚举值表示。

(3)编写一个函数buy(),向用户询问需要购买的鲜花的种类和株的数量,计算总价格,并从库存中减去用户购买的花的数量,返回总价格。

(4)编写主函数调用上述函数。

enum color{
	red,yellow,purple,white
};
struct Flower{
	char name[20];
	enum color a;
	int money;
	int num;
};
int main(){
	void input_data(struct Flower *f,int *a);
	void output_data(struct Flower *f,int size);
	int buy(struct Flower *f,int size);
	struct Flower f[20];
	int price,size=0;
	input_data(f,&size);
	output_data(f,size);
	price=buy(f,size);
	printf("总价格为:%d",price);
	return 0;
}
void input_data(struct Flower *f,int *a){
	int i=0;
	do{
		printf("输入姓名:"); 
		scanf("%s",(f+i)->name);
		printf("请选择颜色:\n");
		printf("0----red\n");
		printf("1----yellow\n");
		printf("2----purple\n");
		printf("3----white\n");
		scanf("%d",&(f+i)->a);
		printf("输入价格:");
		scanf("%d",&(f+i)->money);
		printf("输入数量:");
		scanf("%d",&(f+i)->num); 
		(*a)++;
	}while((f+i)->money!=0&&(f+i++)->num!=0);
}
void output_data(struct Flower *f,int size){
	int i;
	for(i=0;i<size-1;i++){
		printf("%s\t",(f+i)->name);
		switch((f+i)->a){
			case 0:printf("red\t");break;
			case 1:printf("yellow\t");break;
			case 2:printf("purple\t");break;
			case 3:printf("white\t");break;
		}
		printf("%d\t",(f+i)->money);
		printf("%d\n",(f+i)->num);
	}
}
int buy(struct Flower *f,int size){
	int price,i;
	struct Flower k;
	printf("购买花的种类:");
	printf("0----red\n");
	printf("1----yellow\n");
	printf("2----purple\n");
	printf("3----white\n");
	scanf("%d",&k.a);
	printf("要购买的数量:");
	scanf("%d",&k.num);
	for(i=0;i<size-1;i++){
		if(k.a==(f+i)->a){
			price=(f+i)->money*k.num;
			(f+i)->num=(f+i)->num-k.num;
			break;
		}
	}
	output_data(f,size);
	return price;
}

运行结果:

这段代码还是比较简单的,大家直接运行就好,没有什么太大的问题,也可以根据需要在必要的地方进行修改~

  • 12
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值