用C语言编写自动售货机

Python012

用C语言编写自动售货机,第1张

#include<stdio.h>

bool GetCharge(int Sum,int Money)

void Getsmalcharge(int Money,int *ChargeNum)

void main()

{

char state='N'

int Sum=0

char Pro

printf("\n********************************\n")

while(true)

{

state='N'

Sum=0

while(state=='N'||state=='n')

{

printf("\n输入购买物品(a,b,c):")

scanf("%c",&Pro)

getchar()

switch(Pro)

{

case 'a':

Sum=Sum+1

break

case 'A':

Sum=Sum+1

break

case 'b':

Sum=Sum+5

break

case 'B':

Sum=Sum+5

break

case 'c':

Sum=Sum+10

break

case 'C':

Sum=Sum+10

break

default:

printf("\n输入物品有误!!!!\n")

break

}

printf("\n是否完成(Y/N):")

scanf("%c",&state)

getchar()

}

int Money

printf("\n购买总价为:%d",Sum)

bool st=false

while(!st)

{

printf("\n输入金额:")

scanf("%d",&Money)

getchar()

st=GetCharge(Sum,Money)

}

printf("\n----------------购买结束------------\n")

printf("\n")

printf("\n")

printf("\n")

}

}

//----------------------------------------------------

bool GetCharge(int Sum,int Money)

{

int ChargeNum[4]

for(int i=0i<4i++)

{

ChargeNum[i]=0

}

if(Sum>Money)

{

printf("\n金额不够,请重新输入.....")

return false

}

else if(Sum==Money)

{

printf("\n余额为0")

return true

}

else

{

int Result=Money-Sum

Getsmalcharge(Result,ChargeNum)

printf("\n余额为%d元,应找零\n1 元%d张\n2 元%d张\n5 元%d张\n10元%d张\n",Result,ChargeNum[0],ChargeNum[1],ChargeNum[2],ChargeNum[3])

}//end if

return true

}

//------------------------------------

void Getsmalcharge(int Money,int *ChargeNum)

{

if(Money<0)

return

int Sum=Money

int charge[4]={1,2,5,10}

ChargeNum[3]=Sum/charge[3]

Sum=Sum%charge[3]

ChargeNum[2]=Sum/charge[2]

Sum=Sum%charge[2]

ChargeNum[1]=Sum/charge[1]

Sum=Sum%charge[1]

ChargeNum[0]=Sum/charge[0]

Sum=Sum%charge[0]

}

#include "stdio.h"

#include "conio.h"

struct stDrink

{

float fPrice // 价格

int iLeft // 剩余数

}

void Pay(stDrink* pstPay)

{

float fPay = 0.0f

if ( pstPay->iLeft<=0 )

{

printf("商品已经售完\r\n")

return

}

while(1)

{

scanf("%f",&fPay)

if ( fPay<pstPay->fPrice )

{

printf("金额不足,请重新付费\r\n")

}

else if ( fPay>pstPay->fPrice)

{

printf("找零钱%.1f元,请收好\r\n",fPay-pstPay->fPrice)

break

}

else

{

printf("付费成功\r\n")

break

}

}

pstPay->iLeft--

}

int main()

{

stDrink stCoca = {2.5f,5} // 可乐

stDrink stOrage = {3.5f,5} // 橙汁

stDrink stMilkTea = {5.0f,5} // 奶茶

char cInput = 0

while(1)

{

cInput = getch()

switch(cInput)

{

case '1':

// 可乐

printf("可乐2.5元,请付费\r\n")

Pay(&stCoca)

break

case '2':

// 橙汁

printf("橙汁3.5元,请付费\r\n")

Pay(&stOrage)

break

case '3':

// 奶茶

printf("奶茶5元,请付费\r\n")

Pay(&stMilkTea)

break

case '#':

// 设备维修中

printf("设备维修中\r\n")

break

case 'e':

// 退出程序

return 0

}

}

return 0

}

#include<stdio.h>

main()

{

int x,n,y

float sum=0.0

printf("请选择: 1.日用品 2.文具 3. 食品\n")

scanf("%d",&x)

switch(x)

{

case 1: printf("请选择:1.牙刷(3.5元/支) 2.牙膏(6.2元支)\n")

printf(" 3.肥皂(2元/块) 4.毛巾(8.6元/条)\n")

scanf("%d",&y)

printf("数量?")

scanf("%d",&n)

switch(y)/*匹配顾客选择的具体商品*/

{

case 1: sum=3.5*n break

case 2: sum=6.2*n break

case 3: sum=2*n break

case 4: sum=8.6*n break

}

break

case 2: printf("请选择:1.笔( 3元/支) 2.笔记本(1.2元/个)\n")

printf(" 3.文件夹(12元/个) 4.文具盒(8.6元/个)\n")

scanf("%c",&y)

printf("数量?")

scanf("%d",&n)

switch(y)

{

case 1: sum=3*nbreak

case 2: sum=1.2*nbreak

case 3: sum=12*nbreak

case 4: sum=8.6*nbreak

}

break

case 3: printf("请选择:1.白糖(3.6元/包) 2.盐(1元/包)\n")

printf(" 3.饼(2元/个) 4.方便面(3.6元/条)\n")

scanf("%c",&y)

printf("数量?")

scanf("%d",&n)

switch(y)

{

case 1: sum=3.6*nbreak

case 2: sum=1*nbreak

case 3: sum=2*nbreak

case 4: sum=3.6*nbreak

}

break

}

printf("总计:%.2f 元\n",sum)

}