c语言写的售货机,源码虽少,作用很大

版权声明:本文为博主原创文章,可以转载,但必须注明来源。 https://blog.csdn.net/qq_40176716/article/details/78806360

自动售货机

 系统以菜单方式工作: a-购买,b-显示库存,c-设备维护
2、按1键表示购买矿泉水,屏幕显示“矿泉水1元,请付费”,此时付费1显示付款成
功。2键表示购买可乐,
屏幕显示“可乐2.5元,请付费”,此时付费2.5显示付款成
功。按3键表示购买橙汁,屏幕显示“橙汁3.5元,请付费”,此时付费3.5显示付款成
功。按4键表示购买奶茶,屏幕显示“奶茶5元,请付费”,此时按5显示付款成功。
若付款金额少于商品价格显示“金额不足,请重新付费”字样,
若付款金额多余商品
价格显示“找零钱x元,请收好”字样。
3、每种商品每天库存10瓶,可显示当前库存量。当剩余个数为0时不能再继续购买。
4、.按C键系统进入“设备维修”状态,不允许购买,此状态可以添加库存。

代码部分解释的自认为挺详细的

代码主要为
system("cls")
switch()
if语句

正式源码:
/*
作者QQ:1179307527
欢迎加QQ聊天,本源码纯原创,可能存在bug和一些不恰当的地方
肯定有比这源码更好的,欢迎一起交流
请联系我,CSDN昵称为为 莫言情难忘
本人是计算机系大学生,欢迎加QQ探讨经验
  2017.12.14  留
*/

#include <stdio.h>
#include <stdlib.h>//包含背景颜色和清空
void a();//购买
void b();//显示库存
void c();//设备维护
int z=1;//状态,z=1时设备没有维修。z=0时,设备维修中
struct huowu//定义货物信息
{
float jiage;//价格
int kucun;//库存
}yp[4]={1,10,2.5,10,3.5,10,5,10};//s水kl可乐nc奶茶cj橙汁

int main()
{	char sr;//定义电脑接受的字符
	system("color 2E");//背景颜色为绿色,库函数是stdlib
	printf("QQ:1179307527莫言制作\n");//声明作者信息
system("title 自动售货机——莫言情难忘");
start://起始位置
printf("				自动售货机\n\n   ");
printf("				a-----  购买   \n");
printf("				b-----显示库存 \n  ");
printf("				c-----设备维护 \n  " );
printf("				d-----退出系统 \n  " );
scanf("%c",&sr);
switch(sr)
 {
 case 'a' : a();break;
 case 'b' : b();break;
 case 'c': c();break;
 case 'd': exit(0);break;
}
goto start;//回到起始位置
}//main括号



void a()//购买
{
	float j;
	int i;
	system("cls");//清空,库函数是stdlib

printf("					饮品\n    ");
printf("					1-----矿泉水\n ");
printf("					2-----可乐 \n   ");
printf("					3-----橙汁 \n   ");
printf("					4-----橙汁 \n   ");
printf("					你买啥?  \n     ");
if(z==0) {printf("\n\n\n					正处于维修状态\n\n\n"); 
		  printf("\n\n\n					暂时无法购买\n\n\n");	
		  main();
			};
scanf("%d",&i);
switch(i)
{
case 1:{
		if(yp[0].kucun !=0) //判断库存是否为0
		  {
			printf("矿泉水1元,请付费\n");
			while(1)//循环,保证j<1时的循环
			{
				scanf("%f",&j);
				if(j>1) {printf("付款成功,找零钱%.1f元,请收好\n",j-1);yp[0].kucun=yp[0].kucun-1;break;}//你给的钱>=1,则购买成功且相应库存-1
				if(j==1) {printf("付款成功\n");yp[0].kucun=yp[0].kucun-1;break;}//你给的钱>=1,则购买成功且相应库存-1
				if(j<1) printf("金额不足,请重新付款\n");
			};
		  }
		else printf("				库存为0\n			请购买其他饮品");
		break;
	   }
case 2:{if(yp[1].kucun !=0) //判断库存是否为0
	   {
		printf("可乐2.5元,请付费\n");
		while(1)//循环,保证j<2.55时的循环
		{
		scanf("%f",&j);
		if(j>2.5) {printf("付款成功,找零钱%.1f元,请收好\n",j-2.5);yp[1].kucun=yp[1].kucun-1;break;}//你给的钱>=2.5,则购买成功且相应库存-1
		if(j==2.5) {printf("付款成功\n");yp[1].kucun=yp[1].kucun-1;break;}//你给的钱>=2.5,则购买成功且相应库存-1
        if(j<2.5) printf("金额不足,请重新付款\n");
	   };
	   }
	 	else printf("				库存为0\n			请购买其他饮品");
		break;
	   }
case 3:{if(yp[2].kucun !=0)//判断库存是否为0
	   {
		   printf("橙汁3.5元,请付费\n");
			while(1)//循环,保证j<3.5时的循环
			{
			scanf("%f",&j);
			if(j>3.5) {printf("付款成功,找零钱%.1f元,请收好\n",j-3.5);yp[2].kucun=yp[2].kucun-1;break;}//你给的钱>=3.5,则购买成功且相应库存-1
			if(j==3.5) {printf("付款成功\n");yp[2].kucun=yp[2].kucun-1;break;}//你给的钱>=3.5,则购买成功且相应库存-1
		    if(j<3.5) printf("金额不足,请重新付款\n");
			};
	   }
		else printf("				库存为0\n			请购买其他饮品");
		break;
	   }
case 4:{
			if(yp[3].kucun !=0)//判断库存是否为0
	   {
	printf("奶茶5元,请付费\n");
		while(1)//循环,保证j<5时的循环
		{
		scanf("%f",&j);
		if(j>5) {printf("付款成功,找零钱%.1f元,请收好\n",j-5);yp[3].kucun=yp[3].kucun-1;break;}//你给的钱>=5,则购买成功且相应库存-1
		if(j==5) {printf("付款成功\n");yp[3].kucun=yp[3].kucun-1;break;}//你给的钱>=5,则购买成功且相应库存-1
        if(j<5) printf("金额不足,请重新付款\n");
		};
	   }
	else printf("				库存为0\n			请购买其他饮品");
	break;
} //case4大括号
}//switch大括号
}//a()大括号


void b()
{
system("cls"); //清空屏幕
printf("				矿泉水库存:%d\n",yp[0].kucun);
printf("				可乐库存:%d\n",yp[1].kucun );
printf("				橙汁库存:%d\n",yp[2].kucun);
printf("				奶茶库存:%d\n", yp[3].kucun);
}


void c()
{
		int q;//临时弄得变量
        system("cls"); //清空屏幕
        printf("						进入系统维修状态\n\n\n");
		z=0;//系统维修状态
		printf("						你可以添加库存\n");
		printf("				是否添加库存,是则按1,否则按其他键返回\n");
		scanf("%d",&q);
		if(q==1)
		{
				yp[0].kucun=10;//添加库存,即库存都为10
				yp[1].kucun=10;//添加库存,即库存都为10
				yp[1].kucun=10;//添加库存,即库存都为10
				yp[2].kucun=10;//添加库存,即库存都为10
				system("cls");//清空屏幕
				printf("				库存已添加满\n\n\n");
				z=1;//库存添加完毕,进入正常售货状态
		}
		main();//回到主函数
}





猜你喜欢

转载自blog.csdn.net/qq_40176716/article/details/78806360