package com.gzlg.atmSystem;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
//处理账户的相关业务
public class ATM {
// 存储全部用户的信息
private ArrayList<Account> accounts = new ArrayList<>();
private Scanner sc = new Scanner(System.in);
private Account loginAcc;//仅记住登录成功后的用户账户,不影响开户的用户(key!!!)
public void start() {
while (true) {
System.out.println("------欢迎进入atm系统-------");
System.out.println("1.用户登录");
System.out.println("2.用户开户");
System.out.println("3.离开系统");
System.out.println("请选择你需要的操作:");
int command = sc.nextInt();
switch (command) {
case 1:
// 登录
login();
break;
case 2:
// 开户
createCount();
break;
case 3:
return;
default:
System.out.println("无此命令操作,请重输!");
}
}
}
// 用户的登录操作
private void login(){
System.out.println("-------登录页面-------");
if (accounts.size() == 0){
System.out.println("当前无账号在系统中,请先去开户!");
return;
}
while (true) {
System.out.println("请输入你的账号:");
String cardId = sc.next();
// 判断是否存在该卡号,getAccountByCardId方法传入cardId后遍历,找到卡号相同的输出
// Account为之前存的数据,acc相当于一个变量名用于去引用数据
Account acc = getAccountByCardId(cardId);
if (acc == null){
System.out.println("卡号不存在,请确认!");
} else {
while (true) {
System.out.println("请输入密码:");
String passWord = sc.next();
// 判断密码是否正确
if (acc.getPassWord().equals(passWord)){
loginAcc = acc;
System.out.println("欢迎卡号"+ acc.getCardId() + acc.getUserName() + ",登录成功!");
showUserCommand();
return;
}
else {
System.out.println("密码错误,请重新确认!");
}
}
}
}
}
// 登录成功后的界面信息
private void showUserCommand(){
while (true) {
System.out.println("-------登录成功界面-------");
System.out.println(loginAcc.getUserName() + ",欢迎你进入登录界面,你可以通过数字完成以下操作!");
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.注销当前账户");
int command = sc.nextInt();
switch (command){
case 1 :
showLoginAccount();
break;
case 2 :
depositMoney();
break;
case 3 :
drawMoney();
break;
case 4 :
transferMoney();
break;
case 5 :
updatePassWord();
return;
case 6 :
System.out.println(loginAcc.getUserName() + "退出成功");
return;
case 7 :
// 注销当前账户
if (deleteAccount()){
// 会跳出当前方法
return;
}
break;
}
}
}
private void updatePassWord() {
System.out.println("----- 当前正在进行更改密码操作 -----");
System.out.println("你确认要进行密码更改吗?y/n");
String command = sc.next();
switch (command) {
case "y":
while (true) {
System.out.println("请输入当前账号的密码:");
String passWord = sc.next();
if (passWord.equals(loginAcc.getPassWord())){
System.out.println("请输入新密码:");
String newPassWord = sc.next();
System.out.println("请再次确认密码:");
String okPassWord = sc.next();
if (newPassWord.equals(okPassWord)){
loginAcc.setPassWord(okPassWord);
System.out.println("修改成功!");
return;
}
else {
System.out.println("俩次输入不一致!请重输!");
}
}
else {
System.out.println("当前密码错误!请重新尝试!");
}
break;
}
default:
return;
}
}
// 注销当前账户
private boolean deleteAccount() {
System.out.println("----- 当前正在进行销户操作 -----");
System.out.println("你确认要进行销户操作吗?y/n");
String command = sc.next();
switch (command) {
case "y" :
if (loginAcc.getMoney() == 0){
accounts.remove(loginAcc);
System.out.println("销户成功!");
return true;
}
else {
System.out.println(loginAcc.getUserName() + ",你的账户内还有余额" + loginAcc.getMoney() + "请先取出才能进行销户!");
return false;
}
default:
return false;
}
}
//转账
private void transferMoney() {
System.out.println("----- 当前正在进行转账操作 -----");
// 1.判断是否有其他账户
if (accounts.size() < 2){
System.out.println("系统中至少需要2个账户才能完成转账操作!");
return;
}
if (loginAcc.getMoney() == 0){
System.out.println("账户余额为0,请先存款进账户!");
return;
}
while (true) {
System.out.println("请输入需要转账的用户卡号");
String cardId = sc.next();
// 判断是否正确
// cardId为当前acc卡号
Account acc = getAccountByCardId(cardId);
if (acc == null){
System.out.println("输入的卡号不存在,请重试");
}
else{
String name = "*" + acc.getUserName().substring(1);//* + xxx
System.out.println("请输入【" + name + "】的姓氏:");
String preName = sc.next();
if (acc.getUserName().startsWith(preName)){
// 认证的最后一步通过
System.out.println("请输入需要转账的金额数目:");
double money = sc.nextDouble();
if (loginAcc.getMoney() >= money){
没有合适的资源?快使用搜索试试~ 我知道了~
notes-on-JAVA-elementary-course关于面向对象的笔记
共194个文件
java:147个
class:24个
iml:7个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 115 浏览量
2023-12-07
15:56:03
上传
评论
收藏 5.41MB ZIP 举报
温馨提示
关于面向对象的笔记,java的十则案例(包括Random,Scanner等一些基础组成的案例),面向对象的笔记(包括一则案例+构造器+封装+this关键字),api;包,String ,array
资源推荐
资源详情
资源评论
收起资源包目录
notes-on-JAVA-elementary-course关于面向对象的笔记 (194个子文件)
Test9.class 3KB
MovieOperator.class 2KB
Test1.class 2KB
Movie.class 2KB
Test.class 2KB
Test4.class 2KB
Test3.class 2KB
Test6.class 2KB
Test2.class 2KB
Test5.class 2KB
Test8.class 1KB
Test7.class 1KB
Student.class 1KB
Test.class 993B
Test.class 900B
thisTest.class 882B
Student.class 879B
Student.class 866B
studentTest.class 787B
StudentOperator.class 778B
Student.class 744B
Test.class 714B
Student.class 681B
teacher.class 282B
.gitignore 38B
OOP.iml 520B
untitled.iml 445B
api.iml 445B
aLLJiChuDemo.iml 445B
OOP3.iml 445B
OOP2.iml 445B
case-exercise.iml 445B
kotlin-reflect.jar 2.74MB
kotlin-stdlib.jar 1.27MB
kotlin-reflect-sources.jar 698KB
kotlin-stdlib-sources.jar 423KB
kotlin-test.jar 30KB
kotlin-test-sources.jar 3KB
ATM.java 14KB
Test9.java 4KB
FoodOperator.java 2KB
Test2.java 2KB
Test.java 2KB
Test2.java 2KB
Test.java 2KB
StudentOperatorImpl2.java 2KB
Test.java 2KB
Test3.java 2KB
Test.java 2KB
ArrayListDemo1.java 1KB
Outer.java 1KB
Movie.java 1KB
Account.java 1KB
MovieOperator.java 1KB
Test.java 1KB
Test.java 1KB
ClassManager.java 1KB
Test4.java 1KB
MyUtil.java 1KB
Test1.java 1KB
Test3.java 1KB
Test.java 1KB
Test2.java 1KB
Student.java 1KB
Test2.java 1KB
A.java 1KB
Test.java 1KB
Student.java 980B
StudentOperatorImpl1.java 962B
Test.java 954B
ArryListDemo2.java 938B
Test.java 886B
Z.java 876B
Test1.java 873B
A.java 850B
People.java 833B
A.java 826B
Test.java 821B
Student.java 801B
Test2.java 796B
Test.java 791B
Test6.java 788B
Test7.java 785B
studentTest.java 736B
Test.java 731B
Student.java 726B
Test3.java 722B
Test.java 721B
Food.java 708B
B.java 680B
Test8.java 673B
Test.java 664B
Test5.java 627B
D.java 622B
fu.java 613B
B.java 592B
TeacherData.java 580B
Student.java 578B
A.java 570B
Test.java 560B
共 194 条
- 1
- 2
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6713
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功