用C语言实现有一个售货柜员机,内有多种商品供人购买(商品种类不超过100个),每种商品有名称、数量、价等信息。编程完成n种商品信息的输入输出。
时间: 2023-06-18 17:07:18 浏览: 214
以下是一个简单的实现,包括商品信息的输入、输出和查询功能。请注意,此代码仅供参考,可能需要根据实际情况进行修改。
```c
#include <stdio.h>
#include <string.h>
#define MAX_ITEMS 100
struct item {
char name[20];
int quantity;
float price;
};
struct item items[MAX_ITEMS];
int num_items = 0;
void add_item() {
if (num_items == MAX_ITEMS) {
printf("Error: too many items\n");
return;
}
struct item new_item;
printf("Enter name: ");
scanf("%s", new_item.name);
printf("Enter quantity: ");
scanf("%d", &new_item.quantity);
printf("Enter price: ");
scanf("%f", &new_item.price);
items[num_items] = new_item;
num_items++;
}
void print_items() {
printf("%-20s %-10s %-10s\n", "Name", "Quantity", "Price");
for (int i = 0; i < num_items; i++) {
printf("%-20s %-10d %-10.2f\n", items[i].name, items[i].quantity, items[i].price);
}
}
void find_item() {
char name[20];
printf("Enter name: ");
scanf("%s", name);
for (int i = 0; i < num_items; i++) {
if (strcmp(items[i].name, name) == 0) {
printf("%-20s %-10d %-10.2f\n", items[i].name, items[i].quantity, items[i].price);
return;
}
}
printf("Item not found\n");
}
int main() {
int choice;
do {
printf("\n1. Add item\n");
printf("2. Print items\n");
printf("3. Find item\n");
printf("4. Quit\n");
printf("Enter choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add_item();
break;
case 2:
print_items();
break;
case 3:
find_item();
break;
case 4:
printf("Goodbye\n");
break;
default:
printf("Invalid choice\n");
}
} while (choice != 4);
return 0;
}
```
在此实现中,我们使用了一个结构体 `item` 来代表每个商品,它包含了名称、数量和价格等信息。我们使用一个全局数组 `items` 来存储所有商品,以及一个变量 `num_items` 来记录商品数量。函数 `add_item` 可以让用户输入一个新商品的信息,并将其添加到 `items` 数组中。函数 `print_items` 可以输出所有商品的信息。函数 `find_item` 可以让用户输入一个商品名称,并在 `items` 数组中查找该商品,如果找到则输出其信息,否则输出错误信息。最后,我们使用一个循环来实现菜单选择功能,让用户可以不断地进行添加、查询和输出操作,直到选择退出程序。
阅读全文