C语言----模拟自动售货机

模拟自动售货机

实例说明:

        设计一个自动售货机的程序,运行程序,提示用户输入要选择的选项,当用户输入以后,提示所选择的内容。本程序使用 switch分支结构,来解决程序中的选择问题。

实现过程:

        1. 在VC++6.0中创建一个C文件。

        2.引用头文件,代码如下:

#include <stdio.h>
#include <stdlib.h>

        3.程序主要代码如下:

#include <stdio.h>
#include <stdlib.h>
void main (){
	int button;
	system("cls");
	printf("***************************\n");
	printf("*      可选择的按键:     *\n");
	printf("*        1.巧克力         *\n");
	printf("*        2.蛋糕           *\n");
	printf("*        3.可口可乐       *\n");
	printf("***************************\n");
	printf("从1-3中选择按键\n");
	scanf("%d",&button);
	switch(button){
		case 1:
			printf("你选择了巧克力\n");
			break;
		case 2:
			printf("你选择了蛋糕\n");
			break; 
		case 3:
			printf("你选择了可口可乐\n");
			break; 
		default:
			printf("输入错误!\n");
			break;	 
	}
	printf("\n");
}

指点迷津:

        使用清屏语句system("cls");需要引用stdlib.h

运行结果:

 

技术要点:

        本实例中主要用到了switch语句。switch语句是多分支选择语句,其一般形式如下:

 swith(表达式)
 {
 	case 常量表达式 1: 语句1; 
 	case 常量表达式 2: 语句2; 
 	case 常量表达式 3: 语句3; 
 	......
 	case 常量表达式 n: 语句n; 
 	default:语句n+1; 
 }

        其语义是:计算表达式的值,并逐个与其后的常量表达式值比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面case 后的所有语句。当表达式的值与所有case后的常量表达式的值均不相同时,则执行default后的语句。

        关于switch语句有一下几点说明:

        1. 每一个case 的常量表达式的值必须互不相同,否则就会出现相互矛盾的现象。

        2. 各个case和default的出现次序不影响执行结果。

        3. 在执行一个 case 分支后,如果想使流程跳出switch结构,即终止switch语句的执行,可以在相应语句后加 break来实现。最后一个default 可以不加 break 语句。

好的,下面我为你介绍一下如何用C语言模拟一个自动售货机。 首先,我们需要定义商品的种类和价格。我们可以使用结构体来表示一个商品。例如: ``` struct Product { char name[20]; // 商品名称 int price; // 商品价格 int stock; // 商品库存 }; ``` 然后,我们需要定义一个商品数组来存储所有的商品信息。例如: ``` struct Product products[3] = { {"可乐", 3, 10}, {"雪碧", 3, 10}, {"矿泉水", 2, 10} }; ``` 接着,我们需要编写一个函数来显示所有的商品信息。例如: ``` void showProducts() { printf("编号\t名称\t价格\t库存\n"); for (int i = 0; i < 3; i++) { printf("%d\t%s\t%d\t%d\n", i+1, products[i].name, products[i].price, products[i].stock); } } ``` 然后,我们需要编写一个函数来处理用户购买商品的请求。例如: ``` void buyProduct(int index, int amount) { if (index < 1 || index > 3) { printf("输入的商品编号不正确!\n"); } else if (amount <= 0) { printf("输入的购买数量不正确!\n"); } else if (products[index-1].stock < amount) { printf("该商品库存不足!\n"); } else if (amount * products[index-1].price > balance) { printf("余额不足!\n"); } else { products[index-1].stock -= amount; balance -= amount * products[index-1].price; printf("购买成功!\n"); } } ``` 最后,我们需要编写一个主函数来实现自动售货机的主要功能。例如: ``` int main() { int choice; int amount; showProducts(); while (1) { printf("请选择要购买的商品编号(输入0退出):"); scanf("%d", &choice); if (choice == 0) break; printf("请输入购买数量:"); scanf("%d", &amount); buyProduct(choice, amount); } return 0; } ``` 以上就是一个简单的自动售货机C语言模拟代码,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值