### 设计一个控制台程序，模拟 ATM 机界面程序

相信许多人都用过 ATM 取款机。当我们在 ATM 取款机中插入银行卡后，它显示一个信息窗口，提示输入密码。下面我们就利用 C++语言模拟一个 ATM 取款机界面。效果如图 1 所示。

图 1 ATM 取款机界面

实例设计过程如下：

（1）创建一个控制台应用程序。

（2）在 main 函数添加代码绘制 ATM 取款机界面。

void main()

{ char Key,CMoney;

int password,password1=123,i=1,a=1000; /*定义变量*/

while(1)

{

do{

//clrscr();

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

printf("* Please select key: *\n");

printf("* 1. password *\n");

printf("* 2. get money *\n");

printf("* 3. Return *\n");

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

Key = getch();

}while( Key!='1' && Key!='2' && Key!='3' );

switch(Key) /*当输入值不是 1、2、3 中任意值时显示 do 循环体中的内容*/

{

case '1': /*但输入值为 1 时执行 case1*/

// clrscr();

do

{

i++;

printf(" please input password ");

scanf("%d",&password);

if(password1!=password) /*如果输入密码不正确，执行下面语句*/

{

if(i>3) /*如果三次密码输入均不正确将退出程序*/

{

printf(" Wrong! Press any key to exit... ");

getch();

return ;

}

else

puts("wrong,try again"); /*输入次数未到三次，可继续输入*/

}

}

while(password1!=password&&i<=3);

/*如果密码不正确且输入次数小于等于 3 次，执行 do 循环体中语句*/

printf("OK! Press any key to continue... "); /*密码正确返回初始界面开始其他操作*/

getch();

break;

case '2': /*输入值为 2 时执行 case2*/

do{

// clrscr();

if(password1!=password)

{printf("please logging in,press any key to continue..."); /*如果在 case1 中密码输入不正确将无法进行后面操作*/

getch();

break;}

else

{printf("*********************************\n");

printf(" Please select:\n");

printf("* 1. $100 *\n");

printf("* 2. $200 *\n");

printf("* 3. $300 **\n");

printf("* 4. Return *\n");

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

CMoney = getch(); }

}while( CMoney!='1' && CMoney!='2' && CMoney!='3'&&CMoney!='4');

/*但输入值不是 1，2，3，4 中任意数将继续执行 do 循环体中语句*/

switch(CMoney)

{

case '1': /*输入 1 时执行 case1 中的操作*/

a=a-100;

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

printf("* Your Credit money is $100,Thank you! *\n");

printf("* The balance is $%d. *\n",a);

printf("* Press any key to return... *\n");

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

getch();

break;

case '2':

/*输入 2 时执行 case2 中的操作*/

a=a-200;

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

printf("* Your Credit money is $200,Thank you! *\n");

printf("* The balance is $%d. *\n",a);

printf("* Press any key to return... *\n");

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

getch();

break;

case '3': /*输入 3 时执行 case3 中的操作*/

a=a-300;

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

printf("* Your Credit money is $300,Thank you! *\n");

printf("* the balance is $%d *\n",a);

printf("* Press any key to return... *\n");

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

getch();

break;

case '4': /*输入 4 时执行 case4 中的操作*/

break; }

break;

case '3':

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

printf("* Thank you for your using! *\n");

printf("* Goodbye! *\n");

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

getch();

break;

}

break;

}

}