补Java基础之重生(8)ATM

1、需求说明

  1. 登录:请输入卡号,输入密码,登录判断,
  2. 功能:存款、取款、查看余额、转账、修改密码、退出系统
  3. 修改密码:请输入原始密码(核对)不正确请重新输入密码,输入新密码,确实输入新密码(比较)提示修改成功
  4. 张三-李四:转给谁,输入转账金额,去判断张三的余额够不够,提示,终止转账,
  5. 张三的余额-转账的钱。
  6. 李四的余额+转账的钱。

2、开户及登录

首先开户,需要输入用户的信息,姓名、身份证号码、卡号、密码和手机号码。然后定义相关变量。
代码如下:

import java.util.*;

/**
 * user:liaoxinyue
 **/
public class ATMDemo {
		public static void main ( String[] args ) {
//				个人信息进行开户
//				用户1
				Scanner  scanner = new Scanner ( System.in );
				String[] user1   = { "张三" , "510109200208070026" , "4321" , "1234" , "123456789" };
				double   money1  = 1000.0;
//				用户2
				String[] user2 = { "李四" , "510109200208070027" , "34567" , "76543" , "123456789" };
//				//为了调试简化,先定义简单一些
				
				double money2 = 5000.0;
//				2、登录
				String[] user;
				System.out.println ( "欢迎登录中国银行ATM机,请输入你的卡号" );
				String no = scanner.next ( );
				System.out.println ( "请输入密码" );
				String pwd = scanner.next ( );
//				必要操作,系统记录是那个用户登录了,使用什么进入?
				if ( no.equals ( user1[ 2 ] ) && pwd.equals ( user1[ 3 ] ) ) {
						System.out.println ( "登录成功" );
						user = user1;
				}
				if ( no.equals ( user2[ 2 ] ) && pwd.equals ( user2[ 3 ] ) ) {
						System.out.println ( "登录成功" );
						user = user2;
				}
		}
}

运行结果如下:
在这里插入图片描述

3、菜单显示

存款、取款、查看余额、转账、修改密码、退出系统
代码如下:

						String[] user = null;
						System.out.println ( "欢迎登录中国银行ATM机,请输入你的卡号" );
						String no = scanner.next ( );
						System.out.println ( "请输入密码" );
						String pwd = scanner.next ( );
//				必要操作,系统记录是那个用户登录了,使用什么进入?
						if ( no.equals ( user1[ 2 ] ) && pwd.equals ( user1[ 3 ] ) ) {
								System.out.println ( "登录成功" );
								user = user1;
						}
						if ( no.equals ( user2[ 2 ] ) && pwd.equals ( user2[ 3 ] ) ) {
								System.out.println ( "登录成功" );
								user = user2;
						}
						System.out.println ( user[ 0 ] + "登录成功!" );
do {
						System.out.println ( "===============中国银行ATM机自动存取系统=================" );
						System.out.println ( "1.存款\t2.取款\t3.转账、4.查询余额\t5.修改密码\t6、退出系统" );
						System.out.println ( "===================================================" );
						System.out.println ( "请输入你需要办理的业务编号" );
						String input = scanner.next ( );
						switch ( input ) {
								case "1":
										System.out.println ( "执行存款操作" );
										break;
								case "2":
										System.out.println ("执行取款操作" );
										break;
								case "3":
										System.out.println ("执行转账操作" );
										break;
								case "4":
										System.out.println ("查询余额" );
										break;
								case "5":
										System.out.println ( "修改密码");
										break;
								case "6":
										System.out.println ("谢谢使用,退出系统成功" );
										System.exit ( -1 );
										break;
						}
				}
				while ( true );

在这里插入图片描述

4、实现取款操作

设置取款变量,判断取款金额是否大于余额,或者是小于余额。

case "2":
										System.out.println ( "请输入需要取款金额" );
										int OutputMoney = scanner.nextInt ( );
										if ( OutputMoney < 0||OutputMoney>userMoney ) {
												System.out.println ( "输入错误" );
										}
										else {
														userMoney -= OutputMoney;
														System.out.println ( "取款成功,当前余额为:" + userMoney );
										}
										break;

运行结果如下:
在这里插入图片描述

5、实现转账操作

case "4":
										System.out.println ( "请输入收款方卡号" );
										String SkfNo = scanner.next ( );
										if ( user[ 2 ].equals ( SkfNo ) ) {
												System.out.println ( "不能给自己转账!" );
												continue;
										}
										System.out.println ( "请输入转账金额" );
										double mount = scanner.nextDouble ( );
										if ( mount < 0 ) {
												System.out.println ( "输入错误" );
												continue;
										}
										if ( user[ 3 ].equals ( "1234" ) ) {
												money1 -= mount;
												money2 += mount;
										}
										else if ( user[ 3 ].equals ( "76543" ) ) {
												money2 -= mount;
												money1 += mount;
										}
										break;

运行结果如下:
在这里插入图片描述

6、实现修改密码

代码如下:

case "5":
										System.out.println ( "请输入原始密码" );
										String OldPwd= scanner.next ( );
										if ( !(user[3].equals ( OldPwd )) ){
												System.out.println ("原始密码不一致" );
												continue;
										}
										System.out.println ("请输入新的密码" );
										String NewPwd= scanner.next ( );
										if ( OldPwd.equals ( NewPwd ) ){
												System.out.println ("密码相同请重新输入" );
												NewPwd= scanner.next ( );
												
										}
										System.out.println ("请再次输入新的密码" );
										String NewPwd2= scanner.next ( );
										if ( !NewPwd.equals ( NewPwd2 ) ){
												System.out.println ("两次密码不一致" );
												continue;
										}
										if ( user[3].equals ( "1234" ) ){
												user1[3]=NewPwd;
										}
										if ( user[3].equals ( "76543" ) ){
												user2[3]=NewPwd;
										}
										System.out.println ("密码修改成功" );
										break;

运行结果如下:
在这里插入图片描述

7、退出登录

代码如下:

case "6":
																								System.out.println ( "谢谢使用,退出系统成功" );
																								if ( input.equals ( "6" ) ) {
																												isFlag = false;
																												break;
																								}

运行结果:

8、完整代码

代码如下:

import java.util.*;

/**
	* user:liaoxinyue
	**/
public class ATMDemo {
				public static void main ( String[] args ) {
//				个人信息进行开户
//				用户1
								Scanner  scanner = new Scanner ( System.in );
								String[] user1   = { "张三" , "510109200208070026" , "4321" , "1234" , "123456789" };
								double   money1  = 1000.0;
//				用户2
								String[] user2 = { "李四" , "510109200208070027" , "34567" , "76543" , "123456789" };
//				//为了调试简化,先定义简单一些
								
								double money2 = 5000.0;
								boolean isFlag = true;
//				2、登录
								do {
												String[] user = null;
//						double   userMoney = 0;
												System.out.println ( "欢迎登录中国银行ATM机,请输入你的卡号" );
												String no = scanner.next ( );
												System.out.println ( "请输入密码" );
												String pwd = scanner.next ( );
//				必要操作,系统记录是那个用户登录了,使用什么进入?
												if ( no.equals ( user1[ 2 ] ) && pwd.equals ( user1[ 3 ] ) ) {
																System.out.println ( "登录成功" );
																user = user1;
//								userMoney = money1;
												}
												if ( no.equals ( user2[ 2 ] ) && pwd.equals ( user2[ 3 ] ) ) {
																System.out.println ( "登录成功" );
																user = user2;
//								userMoney = money2;
												}
												System.out.println ( user[ 0 ] + "登录成功!" );
												
												do {
																System.out.println ( "===============中国银行ATM机自动存取系统=================" );
																System.out.println ( "1.存款\t2.取款\t3.查询余额\t4.转账\t5.修改密码\t6.退出系统" );
																System.out.println ( "===================================================" );
																System.out.println ( "请输入你需要办理的业务编号" );
																String  input  = scanner.next ( );
																
																switch ( input ) {
																				case "1":
																								System.out.println ( "请输入存款金额" );
																								
																								double InputMoney = scanner.nextDouble ( );
//										if语句只有一行时,可以省略{}
																								if ( InputMoney < 0 ) {
																												System.out.println ( "输入错误" );
																												continue;
																								} else {
																												if ( user[ 3 ].equals ( "1234" ) ) {
																																money1 += InputMoney;
																																System.out.println ( "存款成功,当前余额为:" + money1 );
																												}
																												if ( user[ 3 ].equals ( "76543" ) ) {
																																money2 += InputMoney;
																																System.out.println ( "存款成功,当前余额为:" + money2 );
																																
																												}
																												
																								}
																								break;
																				case "2":
																								System.out.println ( "请输入需要取款金额" );
																								double OutputMoney = scanner.nextDouble ( );
																								if ( user[ 3 ].equals ( "1234" ) ) {
																												if ( OutputMoney < 0 ) {
																																System.out.println ( "输入错误" );
																												} else if ( OutputMoney > money1 ) {
																																System.out.println ( "余额不足" );
																												} else {
																																money1 -= OutputMoney;
																																System.out.println ( "取款成功,当前余额为:" + money1 );
																												}
																								} else if ( user[ 3 ].equals ( "76543" ) ) {
																												if ( OutputMoney < 0 ) {
																																System.out.println ( "输入错误" );
																												} else if ( OutputMoney > money2 ) {
																																System.out.println ( "余额不足" );
																												} else {
																																money2 -= OutputMoney;
																																System.out.println ( "取款成功,当前余额为:" + money2 );
																												}
																								}
																								break;
																				case "3":
																								if ( user[ 3 ].equals ( "1234" ) ) {
																												System.out.println ( "当前余额为:" + money1 );
																								} else if ( user[ 3 ].equals ( "76543" ) ) {
																												System.out.println ( "当前余额为:" + money2 );
																								}
																								break;
																				case "4":
																								System.out.println ( "请输入收款方卡号" );
																								String SkfNo = scanner.next ( );
																								if ( user[ 2 ].equals ( SkfNo ) ) {
																												System.out.println ( "不能给自己转账!" );
																												continue;
																								}
																								System.out.println ( "请输入转账金额" );
																								double mount = scanner.nextDouble ( );
																								if ( mount < 0 ) {
																												System.out.println ( "输入错误" );
																												continue;
																								}
																								if ( user[ 2 ].equals ( "4321" ) ) {
																												if ( mount > money1 ) {
																																System.out.println ( "转账失败,余额不足" );
																																continue;
																												}
																												if ( mount < money1 ) {
																																money1 -= mount;
																																money2 += mount;
																																System.out.println ( "转账成功,当前余额为:" + money1 );
																												}
																								} else if ( user[ 3 ].equals ( "34567" ) ) {
																												if ( mount > money2 ) {
																																System.out.println ( "转账失败,余额不足" );
																																continue;
																												}
																												if ( mount < money2 ) {
																																money2 -= mount;
																																money1 += mount;
																																System.out.println ( "转账成功,当前余额为:" + money2 );
																												}
																								}
																								break;
																				case "5":
																								System.out.println ( "请输入原始密码" );
																								String OldPwd = scanner.next ( );
																								if ( ! ( user[ 3 ].equals ( OldPwd ) ) ) {
																												System.out.println ( "原始密码不一致" );
																												continue;
																								}
																								System.out.println ( "请输入新的密码" );
																								String NewPwd = scanner.next ( );
																								if ( OldPwd.equals ( NewPwd ) ) {
																												System.out.println ( "密码相同请重新输入" );
																												NewPwd = scanner.next ( );
																												
																								}
																								System.out.println ( "请再次输入新的密码" );
																								String NewPwd2 = scanner.next ( );
																								if ( ! NewPwd.equals ( NewPwd2 ) ) {
																												System.out.println ( "两次密码不一致" );
																												continue;
																								}
																								if ( user[ 3 ].equals ( "1234" ) ) {
																												user1[ 3 ] = NewPwd;
																								}
																								if ( user[ 3 ].equals ( "76543" ) ) {
																												user2[ 3 ] = NewPwd;
																								}
																								System.out.println ( "密码修改成功" );
																								break;
																				case "6":
																								System.out.println ( "谢谢使用,退出系统成功" );
																								if ( input.equals ( "6" ) ) {
																												isFlag = false;
																												break;
																								}
																								
																								break;
																}
												}
												while ( isFlag );
								}
								while ( true );
				}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值