贩卖机用C语言编程需要实现以下功能:
商品信息管理:
包括商品的编号、名称、价格和库存数量。
用户输入处理:
接收用户投入的钱币和选择购买的商品编号。
金额计算与找零:
计算用户购买商品的总金额,并给出找零。
商品库存管理:
在用户购买商品后,更新商品的库存数量。
数据存储与读取:
将商品信息和交易记录存储在文件中,以便下次使用。
```c
include include define N 10 typedef struct { int num;// 商品编号 char name; // 商品名称 int price; // 商品价格 int stock; // 商品库存 } Sell; Sell se[N] = { {1, "Table-water", 1, 10}, {2, "Table-water", 1, 10}, {3, "Table-water", 1, 10}, {4, "Coca-Cola", 2, 5}, {5, "Milk", 2, 5}, {6, "Beer", 3, 3}, {7, "Orange-Juice", 3, 3}, {8, "Sprite", 3, 3}, {9, "Oolong-Tea", 4, 2}, {10, "Green-Tea", 4, 2} }; int sum = 0; // 总金额 void input_money() { int coin; printf("请放入钱币:"); while (1) { scanf("%d", &coin); if (coin == -1) break; sum += coin; printf("当前金额:%d元\n", sum); } } void select_product(int *selected_items, int *num_items) { int i, item; printf("请选择商品(输入编号):"); for (i = 0; i < *num_items; i++) { scanf("%d", &item); for (int j = 0; j < *num_items; j++) { if (item == se[j].num) { selected_items[j] = 1; se[j].stock--; break; } } } *num_items = 0; for (i = 0; i < *num_items; i++) { if (selected_items[i] == 1) { printf("您选择了:%s\n", se[i].name); (*num_items)++; } } } void calculate_change() { int change = sum - 2 * 10; // 假设最大面额为20元 printf("找零:%d元\n", change); } int main() { int selected_items[N] = {0}; int num_items = 0; input_money(); select_product(selected_items, &num_items); calculate_change(); return 0; } ``` 代码说明: 定义了一个结构体`Sell`来存储商品信息,包括编号、名称、价格和库存。 在`main`函数中初始化了一个包含10种商品的数组`se`。 `input_money`函数用于接收用户投入的钱币,并更新总金额。 `select_product`函数用于接收用户选择的商品编号,并更新商品库存。 `calculate_change`函数用于计算并输出找零金额。 注意事项: 该示例代码是一个简易版本,实际应用中可能需要更复杂的功能,如商品库存管理、数据存储与读取等。 代码中假设最大面额为20元,可以根据实际需求进行调整。 代码中没有实现商品信息的录入和读取功能,实际应用中需要添加这部分功能。结构体定义:
商品信息:
输入钱币:
选择商品:
计算找零: