当前位置:网站首页 > Java基础 > 正文

java集合练习题基础

package com.china.atm;

import java.util.ArrayList;

import java.util.Random;

import java.util.Scanner;

/

* ATM系统的入口类

*/

public class ATMSystem {

public static void main(String[] args) {

// 1,定义账户类

// 2,定义一个集合容器,负责以后存储全部的账户对象,进行相关业务的操作

ArrayList<Account> accounts = new ArrayList<>();

Scanner scanner = new Scanner(System.in);

while (true) {

// 3,展示系统的首页

System.out.println("===============小岛ATM系统===============");

System.out.println("1、账户登录");

java集合练习题基础 System.out.println("2、账户开户");

System.out.println("请您选择操作");

int commands = scanner.nextInt();

// swsitch:先执行表达式的值,拿表达式的值去与case后的值匹配,哪个case匹配的值为true,就执行哪个case。

// 遇到break就跳出switch分支。

// 如果case后的值都不匹配则执行default代码

switch (commands) {

case 1:

// 用户登录操作

login(accounts, scanner);

break;

case 2:

// 登陆账户开户(ALT + Enter,快捷键)

regist(accounts, scanner);

break;

default:

System.out.println("您输入的操作命令不存在!");

}

}

}

/

* 登录功能

*

* @param accounts 全部账户对象的集合

* @param scanner 扫描器

*/

private static void login(ArrayList<Account> accounts, Scanner scanner) {

System.out.println("===============系统登陆操作===============");

// 1,判断账户集合中是否存在账户,如果不存在账户,登录功能不能执行

if (accounts.size() == 0) {

System.out.println("当前系统中,无任何账户,请先开户,再来登录~~~");

regist(accounts,scanner);

return; //结束方法

}

//2,正式进行登录操作

while (true) {

System.out.println("请输入登录卡号:");

String cardId = scanner.next();

//3,判断卡号是否存在,根据卡号去账户集合查询账户对象

Account acc = getAccountByCardId(cardId, accounts);//接收的是String cardId = scanner.next();

if (acc != null) {//说明该账户卡号和输入的字符串卡号匹配,则说明输入的卡号存在

while (true) {

// 卡号存在,让用户输入密码

System.out.println("请您输入密码");

String passWord = scanner.next();

// 判断当前账户对象的密码是否与用户输入的密码一致

if (acc.getPassWord().equals(passWord)) {

// 登录成功

System.out.println("恭喜您," + acc.getUserName() + "先生/女士进入系统,您的卡号是:" + acc.getCardId());

// ……查询 转账 取款

// 展示登录后的操作页

showUserCommand(scanner, acc, accounts);

break; // 干掉登录方法

}

else {

System.out.println("您输入的密码有误,请重新输入");//继续while循环

}

}

}

break;

else {

System.out.println("系统中不存在该账户卡号");

}

}

}

/

* 展示登陆后的操作页

*/

private static void showUserCommand(Scanner scanner, Account acc, ArrayList<Account> accounts) {

while (true) {

System.out.println("===============用户操作页===============");

System.out.println("1,查询账户");

System.out.println("2,存款");

System.out.println("3,取款");

System.out.println("4,转账");

System.out.println("5,修改密码");

System.out.println("6,退出");

System.out.println("7,注销账户");

System.out.println("请选择:");

int command = scanner.nextInt();

switch (command) {

case 1:

// 查询账户(展示当前登录的账户信息)

showAccount(acc);

break;

case 2:

// 存款

depositMoney(acc, scanner);

break;

case 3:

// 取款

drawMoney(acc, scanner);

break;

case 4:

// 转账

transferMoney(scanner, acc, accounts);

break;

case 5:

// 修改密码

updatePassWord(scanner, acc);

return; // 让当前方法停止执行,跳出去

case 6:

// 退出

System.out.println("退出成功,欢迎下次光临");

return; // 让当前方法停止执行,跳出去

case 7:

// 注销账户

deleteAccount(acc, scanner, accounts);

break;

default:

System.out.println("您输入的操作命令不正确");

}

}

}

/

* 销户功能

*

* @param acc 当前登录成功的对象

* @param scanner 扫描器

* @param accounts 当前账户中所有集合

*/

private static void deleteAccount(Account acc, Scanner scanner, ArrayList<Account> accounts) {

System.out.println("===============用户密码修改===============");

System.out.println("您真的要销户吗!?y/n");

String re = scanner.next();

switch (re) {

case "y":

// 真的销户

// 从当前账户集合中,删除当前账户对象,销毁就完成了

if (acc.getMoney() > 0) {

System.out.println("您账户中还有钱没有取完,不允许销户");

} else {

accounts.remove(acc);

System.out.println("您的账户销户完成");

}

break;

default:

System.out.println("当前账户继续保留");

}

}

/

* 修改密码

*

* @param scanner 扫描器

* @param acc 当前登录成功的账户对象

*/

private static void updatePassWord(Scanner scanner, Account acc) {

System.out.println("===============用户密码修改===============");

while (true) {

System.out.println("请您输入当前密码");

String passWord = scanner.next();

// 1, 判断这个密码是否正确

if (acc.getPassWord().equals(passWord)) {

while (true) {

// 密码正确

// 2,输入新密码

System.out.println("请您输入新密码");

String newPassWord = scanner.next();

System.out.println("请您输入在次新密码");

String okPassWord = scanner.next();

if (newPassWord.equals(okPassWord)) {

// 2次密码一致,可以修改

版权声明


相关文章:

  • java基础包括哪些知识框架2024-11-15 19:58:04
  • java三层基础实例2024-11-15 19:58:04
  • 老九君java基础2024-11-15 19:58:04
  • Java基础视频教程自学网2024-11-15 19:58:04
  • java封装基础2024-11-15 19:58:04
  • 学基础java的话跟哪个博主2024-11-15 19:58:04
  • java基础可以当笔记的书2024-11-15 19:58:04
  • java运算基础知识2024-11-15 19:58:04
  • java零基础入门全集2024-11-15 19:58:04
  • java基础代码猜数字2024-11-15 19:58:04