|
- #include <stdio.h>
- #include <conio.h>
- #define TYPE_NUM 7
- int Moneyvalue [TYPE_NUM]={100,50,20,10,5,2,1}; //取款面值
- int Moneydata [TYPE_NUM]={0,0,0,0,0,0,0}; //各种面值币种数量
- int Moneybox [TYPE_NUM]={10,10,10,10,10,10,10}; //取款机所剩各种币种的数量(真正钱箱)
- int Moneyboxtmp[TYPE_NUM]; //模拟钱箱
- void Display();
-
- void OutMoney() //取款操作
- {
- int i,tmp;
- int money;
- printf("请输入所取金额:");
- scanf("%d",&money);
- for (i=0;i<TYPE_NUM;i++)
- {
- Moneyboxtmp[i]=Moneybox[i]; //模拟钱箱装值,避免取款失败后真正钱箱数值发生改变
- }
- for (i=0;i<TYPE_NUM;i++)
- {
- tmp=money/Moneyvalue[i];
- if (tmp>Moneyboxtmp[i]) //例如:当所取100元的数量大于模拟钱箱数量
- Moneydata[i]=Moneybox[i]; //把真正钱箱所有100元的数量全取出
- else
- Moneydata[i]=tmp; //所取数量等于计算数量
- money=money-Moneydata[i]*Moneyvalue[i];
- Moneyboxtmp[i]-=Moneydata[i];
- }
- if (money==0)
- {
- printf("交易成功!\n");
- Display();
- for (i=0;i<TYPE_NUM;i++)
- {
- Moneybox[i]=Moneyboxtmp[i];
- }
- }
- else
- {
- printf("<余额不足>交易失败!\n");
- }
- }
- void InputMoney() //存款操作
- {
- int i;
- int money;
- for (i=0;i<TYPE_NUM;i++)
- {
- printf("请输入%3d元的数量:",Moneyvalue[i]);
- scanf("%d",&money);
- Moneybox[i]+=money;
- }
- }
-
- void Display() //显示各币种的数量
- {
- int i;
- for (i=0;i<7;i++)
- {
- if (Moneydata[i])
- {
- printf("%3d 元数量: %d张\n",Moneyvalue[i],Moneydata[i]);
- }
- }
- }
-
- void main(void)
- {
- char keynum;
- while (1)
- {
- printf(" 请选择您所需的操作:\n");
- printf("取款<1> 存款<2>\n");
- keynum=getche();
- printf("\n");
- switch(keynum)
- {
- case '1':OutMoney(); //取款
- break;
- case '2':InputMoney(); //存款
- break;
- default:
- break;
- }
- }
- }
复制代码
|
|