c语言模拟ATM机界面

问题描述:

相信大家都在ATM机上取过钱吧,本博客将模拟ATM机的界面以及实现简易的功能(账户密码修改,账户余额查询,取款,存款)

鉴于水平有限,如有不足之处,请多多指教

头文件:ATM.H

#ifndef _ATM_H__
#define _ATM_H__

//包含的头文件
#include<stdio.h>          //printf scanf
#include<stdlib.h>         //exit

//功能模块
void chaXun(int *balance); //查询余额
int quKuan(int *balance);  //取款
int gaiMiMa(int CODE);     //修改密码
int cunKuan(int *balance); //存款
void meau();               //功能菜单

#endif
函数实现:ATM.cpp

#include"ATM.h"
/*初始密码CODE:123456,账号ID:123456,账户余额**balance1000*/

//查询账户余额
void chaXun(int *balance)
{
	int n = *balance;

	printf("您的当前账户余额为:%d\n",n);
}
//取款
int quKuan(int *balance)
{
	int moneyTaken;//取款金额
	int moneyLeft;//取款之后剩余金额

	printf("请输入您取款的金额:\n");
	scanf("%d",&moneyTaken);

	moneyLeft = *balance - moneyTaken;

	if(moneyLeft < 0)
	{
		printf("对不起,您的余额不足!\n");
	}
	else
	{
		printf("请您收好你所取得金额:%d\n",moneyTaken);
		*balance = *balance - moneyTaken;  //更新余额
	}
	return *balance;
}
//修改密码
int gaiMiMa(int CODE)
{
	int oldCode;   //旧密码
	int newCode;   //新密码
	int n = 3;     //开始有三次输入密码的机会
 
	while(n)
	{
		printf("请输入您的旧密码:\n");
		scanf("%d",&oldCode);
		if(CODE == oldCode)
		{
			printf("请输入六位新密码:\n");
			scanf("%d",&newCode);
			CODE = newCode;
			n = 0;
			printf("密码修改完毕,请妥善保管\n");
		}
		else
		{
			printf("密码错误,您还剩余%d次机会\n",n-1);
			n--;
			if(n == 0)
			{
				printf("账号已锁,请到有关部门处理!\n");
				return 0;
			}
		}
	}
	return CODE;
}
//存款
int cunKuan(int *balance)
{
	int moneyPut;
	printf("请输入您要存款的金额:\n");
	scanf("%d",&moneyPut);
	if(moneyPut > 0)
	{
		printf("金额存入成功!\n");
		*balance = *balance + moneyPut;
	}
	else
	{
		printf("对不起,没有负金额!\n");
	}
	return *balance;
}

void meau()
{
	printf("功能目录如下:\n");
	printf("1:取款\n");
	printf("2:存款\n");
	printf("3:修改密码\n");
	printf("4:查询余额\n");
	printf("0:退出\n");
}
主函数:main.cpp

#include"ATM.h"
int main()
{
	int balance = 1000;  //账户余额
	int CODE = 123456;   //初始密码
	int ID = 123456;     //初始账号
	int b = 1;           //登入系统标志位
	int id;              //用户输入的账号
	int code;            //用户输入的密码
	int n = 1;           //功能选择标志位以及标号

	printf("**********欢迎使用ATM**********\n");
	while(1 == b)
	{
		printf("请输入您的账号:\n");
		scanf("%d",&id);
		printf("请输入您的密码:\n");
		scanf("%d",&code);
		if(CODE == code && ID == id)
		{
			b = 0;
			printf("您当前账户余额为:%d\n",balance);
		}
		else
		{
			printf("输入有误,请重新输入!\n");
		}
	}
	
	while(n)
	{
		meau();
		printf("请选择您所需的功能:\n");
		scanf("%d",&n);
		switch(n)
		{
			case 1:
				quKuan(&balance);
				break;
			case 2:
				cunKuan(&balance);
				break;
			case 3:
				gaiMiMa(CODE);
				break;
			case 4:
				chaXun(&balance);
				break;
			case 0:
				printf("感谢您的使用,再见!\n");
				exit(0);
				break;
			default:
				break;
		}
	}
	return 0;
}

/*
#include<stdio.h>
#include<stdlib.h>

int main()
{
	printf("      * * * * * *\n");
	printf("      *         *\n");
	printf("      *         *\n");
	printf("      *         *\n");
	printf("      *         *\n");
	printf("      * * * * * *\n");
	printf("                *\n");
	printf("              *   *\n");
	printf("            *       *\n");
	printf("          * * * * * * *\n");
	system("pause");
	return 0;
}
*/
执行结果:

c语言模拟ATM机界面_第1张图片c语言模拟ATM机界面_第2张图片
c语言模拟ATM机界面_第3张图片



你可能感兴趣的:(模块化,C语言,ATM)