/**
	项目名称:模拟银行ATM机
	作    者:捷哥
	开发日期:2011年12月3日
**/
#include <stdio.h>
#include <stdlib.h>

//全局变量声明
float account=0;
float money=0;

/*  showMenu模块
	功能:显示功能菜单,读取用户的操作选择
	输入:无
	输出:返回用户输入的功能选择
*/
int showMenu()
{
	int choice;
	
	system("cls");		//调用DOS命令cls,清除屏幕
	printf("*****欢迎使用ATM机*****\n");
	printf("\n1、查询余额\t2、存款\t3、取款\t0、退出\n");
	printf("\n请选择服务种类:");
	
	scanf("%d",&choice);
	return choice;
}

/*getMoney模块
	功能:显示用户账号的余额
	输入:无
	输出:返回用户账号的余额
*/
float getMoney()
{
	return account;
}

/*
deposit模块
	功能:根据用户输入的钱数进行账号余额的增加
	输入:待存款的金额
	输出:无
*/
void deposit(float money)
{
	account=account+money;
}

/*
withdraw模块
	功能:根据用户输入的钱数进行减少,如果余额不够则提示不能完成
	输入:待取的金额
	输出:无
*/
void withdraw(float money)
{
	if(account<money)
	{
		printf("抱歉,余额不足\n");
	}	
	else
	{
		account=account-money;
	}
}

//主函数
int main(void)
{
	int choice=0;
	float tmp;				//临时存放存款或取款的地方

	choice=showMenu();		//choice变量的值来自于showMenu()返回值
	
//当选择不是0时,进入循环开始办理业务
	while(choice!=0)
	{
		//.2%f表示只取两位小数
		switch(choice)
		{
			case 1:
			printf("当前余额:%.2f\n",getMoney());
			break;

			case 2:
			printf("请输入存款金额:");
			scanf("%f",&tmp);
			deposit(tmp);				//调用deposit
			printf("存入成功,当前余额是:%.2f\n",getMoney());
			break;
			case 3:
			printf("请输入存款金额:");
			scanf("%f",&tmp);
			withdraw(tmp);				//调用withdraw
			printf("当前余额是:%.2f\n",getMoney());
			break;
		}
		getch();		//用户按任意键退出
		choice=showMenu();		//改变循环条件,重新赋值
	}
	printf("欢迎使用银行ATM机,再见!\n");
	return 0;
}