找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3190|回复: 0
打印 上一主题 下一主题
收起左侧

c语言写的取款机的模拟程序

[复制链接]
跳转到指定楼层
楼主
ID:85764 发表于 2015-7-15 23:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  1. #include <stdio.h>
  2. #include <conio.h>
  3. #define TYPE_NUM  7
  4. int Moneyvalue [TYPE_NUM]={100,50,20,10,5,2,1};             //取款面值
  5. int Moneydata  [TYPE_NUM]={0,0,0,0,0,0,0};                       //各种面值币种数量
  6. int Moneybox   [TYPE_NUM]={10,10,10,10,10,10,10};         //取款机所剩各种币种的数量(真正钱箱)
  7. int Moneyboxtmp[TYPE_NUM];                                            //模拟钱箱
  8. void Display();

  9. void OutMoney()                                    //取款操作
  10. {
  11.        int i,tmp;
  12.        int money;
  13.        printf("请输入所取金额:");
  14.        scanf("%d",&money);
  15.        for (i=0;i<TYPE_NUM;i++)
  16.        {
  17.                  Moneyboxtmp[i]=Moneybox[i];           //模拟钱箱装值,避免取款失败后真正钱箱数值发生改变
  18.        }
  19.        for (i=0;i<TYPE_NUM;i++)
  20.       {
  21.                 tmp=money/Moneyvalue[i];
  22.                 if (tmp>Moneyboxtmp[i])                     //例如:当所取100元的数量大于模拟钱箱数量
  23.                           Moneydata[i]=Moneybox[i];       //把真正钱箱所有100元的数量全取出
  24.                else
  25.                          Moneydata[i]=tmp;                     //所取数量等于计算数量
  26.                 money=money-Moneydata[i]*Moneyvalue[i];
  27.                Moneyboxtmp[i]-=Moneydata[i];         
  28.        }
  29.       if (money==0)
  30.      {
  31.                printf("交易成功!\n");
  32.                Display();
  33.               for (i=0;i<TYPE_NUM;i++)
  34.               {
  35.                         Moneybox[i]=Moneyboxtmp[i];
  36.                }
  37.      }
  38.      else
  39.      {
  40.                printf("<余额不足>交易失败!\n");
  41.       }
  42. }

  43. void InputMoney()                                     //存款操作
  44. {
  45.         int i;
  46.         int money;
  47.         for (i=0;i<TYPE_NUM;i++)
  48.         {
  49.                    printf("请输入%3d元的数量:",Moneyvalue[i]);
  50.                   scanf("%d",&money);
  51.                   Moneybox[i]+=money;
  52.          }
  53. }

  54. void Display()                                 //显示各币种的数量
  55. {
  56.          int i;
  57.          for (i=0;i<7;i++)
  58.          {
  59.                  if (Moneydata[i])
  60.                  {
  61.                                 printf("%3d  元数量: %d张\n",Moneyvalue[i],Moneydata[i]);
  62.                   }
  63.         }
  64. }

  65. void main(void)
  66. {
  67.              char keynum;
  68.              while (1)
  69.              {
  70.                           printf(" 请选择您所需的操作:\n");
  71.                           printf("取款<1>       存款<2>\n");
  72.                           keynum=getche();
  73.                           printf("\n");
  74.                           switch(keynum)
  75.                           {
  76.                                        case '1':OutMoney();       //取款
  77.                                                      break;
  78.                                        case '2':InputMoney();    //存款
  79.                                                      break;
  80.                                        default:
  81.                                                      break;
  82.                            }
  83.               }
  84. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表