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
函數允許用戶選擇商品并進行購買,包括付款和找零。
請注意,這個示例程序是基于控制臺的,并沒有實現自動售貨機的物理交互,如硬幣識別和商品分發。此外,程序沒有實現錯誤處理和更復雜的用戶交互,這些在實際應用中是必要的。