偶然看到的一段代码,代码虽然简单,但是挺有意思:

#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 main()
{
	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;
}

最新文章

  1. 利用HTML5定位功能,实现在百度地图上定位
  2. Gollum 安装笔记
  3. makfile
  4. C#多线程编程总结
  5. 【转载】Fast Inserts to PostgreSQL with JDBC and COPY FROM
  6. Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯
  7. Sikuli简介
  8. HDU 3916 Sequence Decomposition 【贪心】
  9. Webpack 开发工具与模块热替换
  10. CENTOS/RHEL 7 系统中设置SYSTEMD SERVICE的ULIMIT资源限制
  11. ORACLE透明加密
  12. Android Studio 运行找不到夜神模拟器
  13. JVM内存管理--分代搜集算法
  14. Navicat Premium 将sqlserver 数据库 导入mysql 中
  15. App.js实现使用js开发app的应用,此文是中文文档
  16. 数字和表达式(python)
  17. react篇章-React Props
  18. 手机应用:非功能需求 Check List
  19. js中var a={}什么意思
  20. Windows同时安装python3和python2

热门文章

  1. 关于jsp中的文件下载
  2. 【Tensorflow系列】使用Inception_resnet_v2训练自己的数据集并用Tensorboard监控
  3. face-alignment:用 pytorch 实现的 2D 和 3D 人脸对齐库
  4. Mysql锁机制--乐观锁 &amp; 悲观锁
  5. Jackson工具
  6. lvs+keepalive实现双主模式(采用DR),同时实现TCP和UDP检测实现非web端的负载均衡,同时实现跨网段的通讯
  7. python中input()和raw_input()的区别
  8. python笔记五(条件判断/循环/break和continue)
  9. hibernate5学习之理解数据库级并发
  10. 如何扩展/删除swap分区