用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>

int main()

{

    int n

    float m

    printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

    while(scanf("%d",&n)&&n!=0)

    {

        if(n==1)

        {

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

            scanf("%.2f",&m)

            if(m==2.5)

            {

                printf("付费成功,请继续!\n")

                printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

            }else if(m>2.5)

            {

                float sum = m - 2.5

                printf("付费成功,找零钱:%.2f",sum)

                printf("元\n")

                printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

            }else

            {

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

                printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

            }

        }else if(n==2)

        {

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

            scanf("%.2f",&m)

            if(m==3.5)

            {

                printf("付费成功,请继续!\n")

                printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

            }else if(m>3.5)

            {

                float sum = m - 3.5

                printf("付费成功,找零钱:%.2f",sum)

                printf("元\n")

                printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

            }else 

            {

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

                printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

            }

        }else if(n==3)

        {

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

            scanf("%.2f",&m)

            if(m==5)

            {

                printf("付费成功,请继续!\n")

                printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

            } else if(m>5)

            {

                float sum = m - 5

                printf("付费成功,找零钱:%.2f",sum)

                printf("元\n")

                printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

            }else 

            {

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

                printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

            }

        } else 

        {

            printf("选择项不正确,请重新输入!\n")

            printf("请选择要购买的商品:1、可乐,2、橙汁,3、奶茶")

        }

    }

    return 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

}