模拟ATM机(C语言版)

该实例主要练习函数的定义与函数的调用
主要涉及的语法有全局变量、循环结构(for/while),选择结构(if/switch)
功能描述:
1.输入密码(设定好),正确时进入ATM系统,密码输入错误最多3次,否则显示吞卡
2.ATM系统包括4个功能:查询余额、取款、存款、退卡
模拟ATM机(C语言版)_第1张图片
3.分别实现上述4个功能

一、首页

该功能只需简单的输出函数输出首页
并利用转义字符 “\t” (水平制表符,相当于Tab)和 “\n” (换行,相当于回车)调整页面到想要的格式
在这里插入图片描述

void index(){
     
	printf("\t\t\t\t\t\t     欢迎使用ATM机\n");//"\t"为制表符,在本程序中主要是用来将显示内容置于页面中间
    printf("\t\t\t\t\t\t----------------------\n");
    printf("\n");
    printf("\t\t\t\t\t\t     中国**银行\n");
    printf("\n");
    printf("\t\t\t\t\t\t----------------------\n");
    printf("\t\t\t\t\t\t                   请插入您的银行卡\n");
    system("pause");
	system("cls");
}

二、密码判断

利用if语句判断输入的密码是否与设定(这里简单的默认为123456,没有做复杂处理)一致
如一致则进入主菜单
错误显示重新输入,并设置计数器记录输入次数,大于3次则退出程序
在这里插入图片描述

void password(){
     
	int password;       //设置整形变量password,存储密码
	int count=0;        //设置计数器count,记录密码输入次数
	
	while(count<=3){
         //循环判断,控制密码输入次数最多3次
		printf("\t\t\t\t\t请输入密码:");
		scanf("%d",&password);
		system("cls");
		count++;        //每输入一次密码,计数器自加1

		//下面判断密码是否与设定密码相等
		if(password==123456){
        //相等,则说明密码输入正确,进入主菜单
			menu();
			
			break;
		}               
		else {
                       //不相等,下面设计密码错误最多3次机会,否则吞卡
			if(count<3){
             //如果计数器不超过3,说明还有输入机会
				printf("\t\t\t\t\t密码错误,还可以输入%d次\n",3-count);//剩余次数是:(总次数3)-(已经输入的次数)
				printf("\t\t\t\t\t(如果密码错误超过3次,ATM机将自动吞卡)\n");
				system("pause");
				system("cls");
			}
			else{
                   //此时密码已经输入3次,但依然不正确,则显示吞卡
				printf("\t\t\t\t\t   已吞卡!(服务热线:999999)");
				break;         //跳出循环,程序结束
			}
		}
					
	}
	
}

三、主菜单

只要选择不是“0”,则循环显示主菜单,并利用清屏函数将之前循环数次的内容清除,控制每次循环只出现一个主菜单
利用switch语句将选项对应到相应函数
模拟ATM机(C语言版)_第2张图片

void menu(){
     
	int select;//设置整形变量select,临时存储用户选择
	while(select!=0){
     //如果用户选择不是0,则循环执行该菜单
		printf("\t\t\t\t\t        ---欢迎使用ATM机---\n");
		printf("\t\t\t\t\t           1---查询余额\n");
		printf("\t\t\t\t\t           2---取款\n");
		printf("\t\t\t\t\t           3---存款\n");
		printf("\t\t\t\t\t           0---退卡\n");
		printf("\t\t\t\t\t          请输入您的选项");
		scanf("%d",&select);
		system("cls");
		if(select!=0&&select!=1&&select!=2&&select!=3){
     //判断输入的选项是否合法,不合法重新输入
			printf("您输入的选项有误,请重新输入\n");
			continue;//结束本次循环,开始下一次
		}
		//判断输入选项,相应选择对应相应函数
		switch(select){
     
			case 1:one();break;
			case 2:two();break;
			case 3:three();break;	
		}
	}
	//如果选择是0,则while循环停止,此时select变量中存放的是0,则调用zero()函数
	if(select==0)
		zero();	
}

四、查询余额功能

访问全局变量deposit,并输出
在这里插入图片描述

int deposit=1000;//设置变量deposit存放账户余额,该变量作用于整个系统,因此设置为全局变量
void one(){
     
	printf("\t\t\t\t\t      您的余额为%d\n",deposit);//访问余额变量deposit,并输出
    system("pause");
	system("cls");
}

五、取款

变量take暂存取款额
if语句判断输入值是否合法
当不合法时,while语句循环输入取款额,直到输入正确为止
合法时,改变余额(deposit-take)
模拟ATM机(C语言版)_第3张图片

void two(){
     
	int take;                               //局部变量take,暂存输入的取款额
	while(take>deposit||take%100!=0){
            //如果输入不合法,则重新输入
		printf("\t\t\t\t\t      请输入取款金额");
		scanf("%d",&take);
		system("cls");
		if(take<deposit&&take%100==0){
           //输入合法
			deposit=deposit-take;           //修改余额
			printf("\t\t\t\t\t        请取出现金\n");
			system("pause");
			system("cls");
		}
		else{
     
			printf("\t\t\t\t\t          输入有误\n");
			printf("\t\t\t\t\t          请重新输入\n");
			system("pause");
			system("cls");
		}
	}

}

六、存款

变量save暂存存款额
if语句判断输入值是否合法
当不合法时,while语句循环输入存款额,直到输入正确为止
合法时,改变余额(deposit+save)
与取款函数套路一致
模拟ATM机(C语言版)_第4张图片

void three(){
     
	int save;                                  //局部变量save,暂存输入的存款额
	while(save%100!=0){
                             //如果输入不合法,则重新输入
		printf("\t\t\t\t\t      请输入存款金额");
		scanf("%d",&save);
		system("cls");
		if(save%100==0){
                            //输入合法
			deposit=deposit+save;              //修改余额
			printf("\t\t\t\t\t         将现金放入存款口\n");
			system("pause");
			system("cls");
			printf("\t\t\t\t\t            存款成功\n");
			system("pause");
			system("cls");
		}
		else{
     
			printf("\t\t\t\t\t          输入有误\n");
			printf("\t\t\t\t\t          请重新输入\n");
			system("pause");
			system("cls");
		}
	}
}

七、退卡

在这里插入图片描述

void zero()
{
     
	printf("\t\t\t\t\t     欢迎您再次使用中国**银行\n");
}

主函数

int main(){
     
	index();
	password();
	return 0;
}

补充

1.system()函数用来调用系统命令
system(“pause”);(起暂停作用,不用的话会导致输出结果一闪而 过,继续之后的命令)
system(“cls”); (起清屏作用)

2.之前上课时老师教的main()函数是void型,也一直都是这样用。但最近看到一个网课上的老师说:main()函数系统调用结束后要返回一个值给操作系统,所以c99标准规定main()函数必须定义成int型,所以我就把程序改了过来*(对main()函数定义成int型有疑问的同学可以参考这条)*

如发现文章有误,请各大佬们不吝赐教

你可能感兴趣的:(笔记,c语言,案例,项目开发)