package ATM;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class AtmSystem {
public static void main(String[] args) {
ArrayList<Account> accounts = new ArrayList<>();
accounts.add(new Account("561201", "令狐冲", "123456", 50, 5000));
accounts.add(new Account("561202", "东方不败", "123456", 200, 5000));
accounts.add(new Account("561203", "谢颖颖", "123456", 2500, 5000));
System.out.println("==========欢迎您进入黑心银行ATM系统============");
while (true) {
System.out.println("1、登录账户");
System.out.println("2、注册账户");
System.out.println("3、退出");
System.out.println("请选择您的操作");
Scanner scanner = new Scanner(System.in);
int command = scanner.nextInt();
switch (command) {
case 1: {
// 登录
login(accounts, scanner);
break;
}
case 2: {
// 注册
register(accounts, scanner);
break;
}
case 3: {
// 退出
return;
}
default: {
System.out.println("您输入的操作有误,请您重新输入!");
break;
}
}
}
}
/**
* 登录
*
* @param accounts 全部集合
* @param scanner 输入
*/
private static void login(ArrayList<Account> accounts, Scanner scanner) {
System.out.println("========== 欢迎您进入黑心银行ATM系统--登录 ============");
if (accounts.size() == 0) {
System.out.println("对不起,当前系统中,无任何账户,请先开户,再来登录~~");
return;
}
while (true) {
System.out.println("请输入您的卡号");
String cardId = scanner.next();
Account account = getAccountByCardId(accounts, cardId);
if (account == null) {
System.out.println("系统中不存在该账号");
} else {
while (true) {
System.out.println("请输入您的密码");
String password = scanner.next();
if (!password.equals(account.getPassword())) {
// 密码错误
System.out.println("对不起,您输入的密码有误");
} else {
System.out.println("欢迎," + account.getUsername() + "先生/女士,进入系统,您的卡号是:" + account.getCardId());
// 登陆后的操作页面
showUserCommand(accounts, scanner, account);
return;
}
}
}
}
}
/**
* 用户操作页面
*
* @param accounts 全部集合
* @param scanner 输入
* @param account 用户对象
*/
private static void showUserCommand(ArrayList<Account> accounts, Scanner scanner, Account account) {
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(account);
break;
case 2:
// 存款
depositMoney(account, scanner);
break;
case 3:
// 取款
drawMoney(account, scanner);
break;
case 4:
// 转账
transferMoney(accounts, account, scanner);
break;
case 5:
// 修改密码
updatePassword(account, scanner);
return;
case 6:
// 退出
System.out.println("退出成功,欢迎下次光临");
return;
case 7:
// 注销账户
if (deleteAccount(accounts, account, scanner)) {
return;
} else {
break;
}
default:
System.out.println("您输入的命令不正确!");
}
}
}
/**
* 销户功能
*
* @param accounts 全部集合
* @param account 当前用户
* @param scanner 扫描器
*/
private static boolean deleteAccount(ArrayList<Account> accounts, Account account, Scanner scanner) {
System.out.println("您是要跑路吗?y/n");
String rs = scanner.next();
if ("Y".equalsIgnoreCase(rs)) {
accounts.remove(account);
System.out.println("您的账户销户成功!");
} else {
System.out.println("还算你识抬举!");
return false;
}
System.out.println("已注销,欢迎下次光临");
return true;
}
/**
* 修改密码
*
* @param account 当前对象
* @param scanner 扫描器
*/
private static void updatePassword(Account account, Scanner scanner) {
System.out.println("==========修改密码=============");
while (true) {
System.out.println("请您输入当前密码");
String password = scanner.next();
if (account.getPassword().equals(password)) {
// 密码正确
while (true) {
System.out.println("请您输入新密码");
String password_1 = scanner.next();
System.out.println("请您确认新密码");
String password_2 = scanner.next();
if (password_1.equals(password_2)) {
if (password_1.equals(account.getPassword())) {
System.out.println("新密码不能与旧密码一致!");
} else {
account.setPassword(password_1);
System.out.println("恭喜您,密码修改成功!");
return;
}
} else {
System.out.println("两次密码不一致!");
}
}
} else {
System.out.println("密码错误!");
}
}
}
/**
* 用户转账
*
* @param accounts 全部集合
* @param account 当前转账对象
* @param scanner 扫描器
*/
private static void transferMoney(ArrayList<Account> accounts, Account account, Scanner scanner) {
System.out.println("==========用户转账=============");
// 判断全部账户是否足够两个账户
if (accounts.size() < 2) {
System.out.println("当前系统中不存在两个账户,不能进行转账,请先去开户吧");
return;
}
if (account.getMoney() == 0) {
System.out.println("你没钱转个der!");
showAccount(account);
return;
}
while (true) {
System.out.println("请您输入对方卡号");
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
JAVAse学习过程的代码
Java学习资料 (300个子文件)
Season.class 902B
SportManInterface.class 254B
04.异常处理.html 189KB
day02.iml 423B
day03.iml 423B
day05.iml 423B
day02.iml 423B
day03.iml 423B
api-lambda-app.iml 423B
stream-exception-log-app.iml 423B
collection-app.iml 423B
day01.iml 423B
collection-map-app2.iml 423B
day04.iml 423B
day01.iml 423B
AtmSystem.java 14KB
Test7.java 4KB
ShopCarTest.java 4KB
StreamDemo4.java 3KB
MapDemo.java 3KB
StreamDemo3.java 3KB
Test.java 3KB
ExceptionDemo2.java 3KB
Test.java 2KB
Employee.java 2KB
Demo9ChronoUnit.java 2KB
Test.java 2KB
Demo6Test.java 2KB
Apple.java 2KB
SetDemo5.java 2KB
Test.java 2KB
Demo5.java 2KB
Test1.java 2KB
Test.java 2KB
RegexDemo3.java 2KB
Test.java 2KB
CollectionDemo.java 2KB
ExceptionDemo.java 2KB
Account.java 2KB
CalendarDemo1.java 2KB
Student.java 2KB
MapTest4.java 2KB
Demo4UpdateTime.java 2KB
Demo4Test.java 2KB
CollectionDemo1.java 1KB
BigDecimalDemo.java 1KB
Test.java 1KB
StreamDemo2.java 1KB
ArrayDemo3.java 1KB
Test.java 1KB
Demo3LocalDateTime.java 1KB
RegexDemo1.java 1KB
Student.java 1KB
ArraysDemo2.java 1KB
Demo6DataTimeFormat.java 1KB
Test.java 1KB
VariableDemo3.java 1KB
StringBuilderDemo1.java 1KB
StreamDemo5.java 1KB
ListDemo1.java 1KB
SimpleDateFormatTest3.java 1KB
Demo2.java 1KB
Test2.java 1KB
ListDemo3.java 1KB
LambdaDemo2.java 1KB
Demo1LocalDate.java 1KB
ListDemo2.java 1KB
TopPerformer.java 1KB
Test.java 1KB
SetDemo1.java 1KB
Test.java 1KB
Test.java 1KB
Test.java 1KB
StreamTest.java 1KB
Demo2LocalTime.java 1KB
Test2.java 1KB
Test2.java 1KB
StaticTest.java 1KB
Demo5Test.java 1KB
Test.java 1KB
ArrayUtils.java 1KB
ExceptionDemo1.java 1KB
Test2.java 1KB
TreeMapDemo3.java 1KB
Test5.java 1KB
Test.java 1KB
Test6.java 1KB
GenericityDemo.java 1KB
Demo7.java 1024B
Student.java 1004B
ExceptionDemo3.java 981B
Account.java 973B
Movie.java 971B
DateDemo.java 963B
SimpleDateFormatDemo2.java 958B
Movie.java 955B
CollectionDemo.java 952B
Main.java 947B
Test3.java 942B
User.java 930B
共 300 条
- 1
- 2
- 3
资源评论
哆啦哆啦S梦
- 粉丝: 138
- 资源: 517
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 5uonly.apk
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- 基于JSP毕业设计-基于WEB操作系统课程教学网站的设计与实现(源代码+论文).zip
- 基于LM324和LM386的音响放大器Multisim仿真+PCB电路原理图
- Python机器学习与数据挖掘环境配置与库验证
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功