用c写一个酒水系统
时间: 2023-12-14 18:38:54 浏览: 22
好的,下面是一个基本的酒水系统的 C 语言实现,包含添加酒水、查询酒水和删除酒水的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义酒水结构体
typedef struct {
char name[20]; // 酒名
char brand[20]; // 酒品牌
float price; // 酒价格
int quantity; // 酒数量
} Drink;
// 添加酒水
void add_drink(Drink drinks[], int *count) {
Drink new_drink;
printf("请输入酒名:");
scanf("%s", new_drink.name);
printf("请输入酒品牌:");
scanf("%s", new_drink.brand);
printf("请输入酒价格:");
scanf("%f", &new_drink.price);
printf("请输入酒数量:");
scanf("%d", &new_drink.quantity);
drinks[*count] = new_drink;
(*count)++;
printf("添加成功!\n");
}
// 查询酒水
void query_drink(Drink drinks[], int count) {
char name[20];
printf("请输入要查询的酒名:");
scanf("%s", name);
for (int i = 0; i < count; i++) {
if (strcmp(name, drinks[i].name) == 0) {
printf("%s %s %.2f %d\n", drinks[i].name, drinks[i].brand, drinks[i].price, drinks[i].quantity);
return;
}
}
printf("没有找到该酒水!\n");
}
// 删除酒水
void delete_drink(Drink drinks[], int *count) {
char name[20];
printf("请输入要删除的酒名:");
scanf("%s", name);
for (int i = 0; i < *count; i++) {
if (strcmp(name, drinks[i].name) == 0) {
for (int j = i; j < *count - 1; j++) {
drinks[j] = drinks[j+1];
}
(*count)--;
printf("删除成功!\n");
return;
}
}
printf("没有找到该酒水!\n");
}
int main() {
Drink drinks[100];
int count = 0;
int choice;
while (1) {
printf("请输入操作:\n");
printf("1. 添加酒水\n");
printf("2. 查询酒水\n");
printf("3. 删除酒水\n");
printf("4. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_drink(drinks, &count);
break;
case 2:
query_drink(drinks, count);
break;
case 3:
delete_drink(drinks, &count);
break;
case 4:
exit(0);
break;
default:
printf("请输入正确的操作!\n");
break;
}
}
return 0;
}
```
上述代码使用了结构体来表示酒水,并定义了添加、查询和删除酒水的函数。在主函数中,使用一个无限循环来读取用户的操作,根据用户输入的操作调用相应的函数。