java控制结构案例:模拟ATM机

模拟ATM机

1.模拟三张银行卡,1001,1002,1003,分别设置密码和余额(可以用九个变量分别保存卡号.密码和余额)

2.提示用户输入银行卡和密码

3.如果用户输入正确----提示用户选择取款,存款,还是退出,并提示余额多少,输入错误重新输入卡号密码.

4.选择取款----提示输入提款额度,如果超出余额,提示余额不足,否则,在余额上减掉相应金额;

5.选择存款----输入存款额度,余额上加上相应额度,并提示余额多少;

6.选择退出,重新输入卡号和密码.

课前自写(毫无参考价值,请看下方):

package cn.xtnotes.u4;

import java.util.Scanner;

public class T10_1 {

	public static void main(String[] args) {
		int cardName1=1001;
		double cardMoney1=591.66;
		int cardKey1=1001;
		int cardName2=1002;
		double cardMoney2=457.96;
		int cardKey2=1002;
		int cardName3=1003;
		double cardMoney3=1691.33;
		int cardKey3=1003;
		
		while(true) {
		Scanner input=new Scanner(System.in);
		System.out.println("请输入银行卡卡号:");
		int cardName=input.nextInt();
		System.out.println("请输入银行卡密码:");
		int cardKey=input.nextInt();
		
		if(cardName==cardName1 && cardKey==cardKey1) {
			System.out.println("密码正确,请继续操作:");
			System.out.println("1.存款---2.取款--3.退出");
			System.out.println("您当前余额为:"+cardMoney1);
			int op=input.nextInt();
			if(op==1) {
				System.out.println("请输入存款金额:");
				double inMoney=input.nextDouble();
				System.out.println("存款成功,当前余额:"+(inMoney+cardMoney1));
			}else if(op==2) {
				System.out.println("请输入余款金额:");
				double outMoney=input.nextDouble();
				if(outMoney>=cardMoney1) {
					System.out.println("余额不足");
				}else if(outMoney<=cardMoney1) {
					System.out.println("取款成功,当前余额:"+(cardMoney1-outMoney));
				}
			}else if(op==3) {
				continue;
			}
		}else if(cardName==cardName2 && cardKey==cardKey2) {
			System.out.println("密码正确,请继续操作:");
			System.out.println("1.存款---2.取款--3.退出");
			System.out.println("您当前余额为:"+cardMoney2);
			int op=input.nextInt();
			if(op==1) {
				System.out.println("请输入存款金额:");
				double inMoney=input.nextDouble();
				System.out.println("存款成功,当前余额:"+(inMoney+cardMoney2));
			}else if(op==2) {
				System.out.println("请输入余款金额:");
				double outMoney=input.nextDouble();
				if(outMoney>=cardMoney2) {
					System.out.println("余额不足");
				}else if(outMoney<=cardMoney2) {
					System.out.println("取款成功,当前余额:"+(cardMoney2-outMoney));
				}
			}else if(op==3) {
				continue;
			}
		
		}else if(cardName==cardName3 && cardKey==cardKey3) {
			System.out.println("密码正确,请继续操作:");
			System.out.println("1.存款---2.取款--3.退出");
			System.out.println("您当前余额为:"+cardMoney3);
			int op=input.nextInt();
			if(op==1) {
				System.out.println("请输入存款金额:");
				double inMoney=input.nextDouble();
				System.out.println("存款成功,当前余额:"+inMoney+cardMoney3);
			}else if(op==2) {
				System.out.println("请输入余款金额:");
				double outMoney=input.nextDouble();
				if(outMoney>=cardMoney3) {
					System.out.println("余额不足");
				}else if(outMoney<=cardMoney1) {
					System.out.println("取款成功,当前余额:"+(cardMoney3-outMoney));
				}
			}else if(op==3) {
				continue;
			}
		
		}else {
			System.out.println("输入错误请重新输入");
			continue;
		}
		}
	}
}

老师写的更好的写法:

package com.unit5.test;

import java.util.Scanner;

public class Test1 {

	public static void main(String[] args) {
		
		Scanner in=new Scanner(System.in);
		
		String cardNum1="1001";
		String password1="123456";
		double banlance1=10000;
		
		String cardNum2="1002";
		String password2="123456";
		double banlance2=20000;
		
		String cardNum3="1003";
		String password3="123456";
		double banlance3=30000;
		
		System.out.println("欢迎来到银行!");
		int count=0;
		while(1==1) {
			System.out.println("请输入卡号:");
			String cardNum=in.next();
			System.out.println("请输入密码:");
			String password=in.next();
			
			double banlance=0;
			if(cardNum.equals(cardNum1) && password.equals(password1)) {
				banlance=banlance1;
				System.out.println("输入正确!用户:卡1 余额:"+banlance);
			}else if(cardNum.equals(cardNum2) && password.equals(password2)) {
				banlance=banlance2;
				System.out.println("输入正确!用户:卡2 余额:"+banlance);
			}else if(cardNum.equals(cardNum3) && password.equals(password3)) {
				banlance=banlance3;
				System.out.println("输入正确!用户:卡3 余额:"+banlance);
			}else {
				count++;
				if(count>=3) {
					System.out.println("您已经三次输入错误,银行卡已被锁定!");
					break;
				}else {
					System.out.println("您已经"+count+"次输入错误!还有"+(3-count)+"次机会");
					continue;
				}
			}
			
			while(1==1) {
				System.out.println("请输入要办理的业务:1.存款 2.取款 3.退出:");
				int choice=in.nextInt();
				
				if(choice==1) {
					System.out.println("请输入存款金额:");
					double money1=in.nextDouble();
					if(money1>0) {
						banlance=banlance+money1;
						System.out.println("存款成功,存入"+money1+"元,余额"+banlance+"元");
					}else {
						System.out.println("存款金额输入错误!");
					}
				}else if(choice==2) {
					System.out.println("请输入取款金额:");
					double money2=in.nextDouble();
					if(money2>0 && money2<=banlance) {
						banlance=banlance-money2;
						System.out.println("取款成功,取出"+money2+"元,余额"+banlance+"元");
					}else {
						System.out.println("取款金额输入错误!");
					}
					
				}else if(choice==3) {
					System.out.println("办理结束,请收好卡片!!");
					break;
				}else {
					System.out.println("输入错误,请重新选择!");
					continue;
				}
			}
		}
	}
}

 

阅读剩余
THE END