C++编写ATM(2)

//上一个程序,密码不能被隐藏和该ATM可以让人取大于余额的乐币,疑问这肯定不行的。所以再次改了下,解决这两个问题。

// ATM的初始.cpp : 定义控制台应用程序的入口点。
//
/*************************************************
运行环境: VS2008
作者:USinging
******************************************************/

#include "stdafx.h"
#include "iostream"
#include <conio.h>

//全局变量
float sum_money= 9999;
float money= 0;

//标记作用
int flag= 1;
int mark;

//打印星号
void start(void)
{
    for(int i= 0; i<45; i++)
	{
		std::cout<<"*";
	}
	std::cout<<"\n";
}
//显示功能选项
void display_function(void)
{
	std::cout<<"1.查询"<<std::endl;
	std::cout<<"2.取款"<<std::endl;
	std::cout<<"3.存款"<<std::endl;
	std::cout<<"4.转账"<<std::endl;
	std::cout<<"0.退出"<<std::endl;
}

int  display_number(int num)
{
    switch(num)
	{
	     case 0:
			 {   
				 start();
				 std::cout<<"谢谢,您选择0号功能:退出"<<std::endl;
				 start();
				 return 0;
			 }
		 case 1:
			 {
				 start();
				 std::cout<<"谢谢,您选择1号功能:查询"<<std::endl;
				 std::cout<<"您的账号有:";
				 std::cout<<sum_money<<"元乐币"<<std::endl;
				 start();
				 return 1;
			 }
		 case 2:
			 {
				 start();
				 std::cout<<"谢谢,您选择2号功能:取款"<<std::endl;
				 std::cout<<"请输入您要取的乐币:";
			     std::cin>>money;
				 if(money> sum_money)
				 {
					 std::cout<<"您要取的乐币大于余额,此操作终结!"<<std::endl;
					 start();
					 return 1;
				 }
				 sum_money-= money;
				 std::cout<<"您的账户有:";
				 std::cout<<sum_money<<"乐币"<<std::endl;
				 start();
				 return 1;
			 }
		 case 3:
			 {
				 start();
				 std::cout<<"谢谢,您选择3号功能:存款"<<std::endl;
				 std::cout<<"请输入您要存的乐币:";
				 std::cin>>money;
				 sum_money+= money;
				 std::cout<<"您的账户有:"<<sum_money<<"乐币"<<std::endl;
				 start();
				 return 1;
			 }
		 case 4:
			 {
				 start();
				 std::cout<<"谢谢,您选择4号功能:转账"<<std::endl;
				 std::cout<<"请输入您要转的乐币:"<<std::endl;
				 std::cin>>money;
				 if(money> sum_money)
				 {
					 std::cout<<"您要转乐币大于余额,此操作被终结!"<<std::endl;
					 start();
					 return 1;
				 }
				 sum_money-= money;
				 std::cout<<"您账户有:"<<sum_money<<"乐币"<<std::endl;
				 start();
				 return 1;
			 }
	}
	std::cout<<"您输入的数字没有相应的功能!, 不要着急,再来一次。"<<std::endl;
	return 1;     //当num没有匹配时返回1
}

int _tmain(int argc, _TCHAR* argv[])
{
	std::cout<<"************************欢迎来到乐多多一号银行***********************"<<std::endl<<std::endl;

	char password[7]="123456";
	char keep_password[7];
    
	//打印星号
	start();

	for(int j=0; j<3; j++)
	{
		std::cout<<"请输入您的密码(六位数哦):";

		for(int k=0; k< 7; k++)
		{
		    keep_password[k]=getch();
			if(k<6)
			{
			   std::cout<<"*";
			}
		}
		std::cout<<"\n";
		
		for(int i=0; i< 6; i++)
		{			
			if(password[i]== keep_password[i])
			{
			   flag= 1;  //第i位相同
			}
			else
			{
			   flag=0;     
			   break;
			}
		}

		if(j<3 && flag==0)
		{
			std::cout<<"您的密码错误"<<std::endl;
		}
		else if(j< 3)
		{
			std::cout<<"密码正确,请继续操作."<<std::endl;
			break;
		}
		else if(j>= 3)
		{
			std::cout<<"您已输入错误密码3次,银行卡被锁住!"<<std::endl;
			return -1;
		}
	}
    
	display_function();

	int num;
	while(1)
	{
		std::cout<<"输入您选择的功能号:";
		std::cin>>num;
	    
		mark=display_number(num);

		if(mark==0)
		{
			std::cout<<"您已经退出乐多多一号银行,欢迎再次使用"<<std::endl;
		   break;
		}
	}
    
	//打印星号
	start();

	return 0;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值