C语言编写的自动售货机程序可以模拟真实自动售货机的基本功能,例如选择商品、显示价格、付款和找零。下面是一个简单的示例代码,展示了一个基本的自动售货机程序:
#include <stdio.h>// 商品结构体
typedef struct {char name[30];int price;
} Product;// 函数声明
void showMenu(Product products[], int size);
void purchase(Product products[], int size);int main() {// 商品列表Product products[] = {{"可乐", 3},{"雪碧", 3},{"巧克力", 5},{"薯片", 4},{"饼干", 2}};int size = sizeof(products) / sizeof(products[0]);// 显示菜单并购买商品showMenu(products, size);purchase(products, size);return 0;
}// 显示菜单
void showMenu(Product products[], int size) {printf("欢迎使用自动售货机!\n");for (int i = 0; i < size; i++) {printf("%d. %s - 价格: %d元\n", i + 1, products[i].name, products[i].price);}
}// 购买商品
void purchase(Product products[], int size) {int choice, paid, change;printf("请选择您要购买的商品编号:");scanf("%d", &choice);if (choice >= 1 && choice <= size) {printf("您选择了%s,价格为%d元。\n", products[choice - 1].name, products[choice - 1].price);printf("请投入足够的金额:");scanf("%d", &paid);if (paid >= products[choice - 1].price) {change = paid - products[choice - 1].price;printf("找零:%d元\n", change);printf("感谢您的购买,商品正在出货...\n");} else {printf("投入金额不足,无法购买。\n");}} else {printf("选择错误,请输入有效的商品编号。\n");}
}
这个程序首先定义了一个Product
结构体来存储商品的名称和价格。然后,定义了一个商品数组products
,并在main
函数中调用showMenu
和purchase
函数。showMenu
函数显示所有商品及其价格,而purchase
函数允许用户选择商品并进行购买,包括付款和找零。
请注意,这个示例程序是基于控制台的,并没有实现自动售货机的物理交互,如硬币识别和商品分发。此外,程序没有实现错误处理和更复杂的用户交互,这些在实际应用中是必要的。