简易的银行系统(使用ArrayList集合)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易的银⾏系统(使⽤ArrayList集合)使⽤⾯向对象来完成⼀个银⾏系统的功能
1. 账户类,⾸页设计
2. ⽤户开户功能实现
3. ⽤户登录功能实现
4. ⽤户操作页⾯设计,查询账户,退出账户功能
5. ⽤户存款取款功能设计
6. ⽤户转账功能设计
7. ⽤户密码修改功能,销户功能
package com.zxx.test;
public class Account {
private String cardId;
private String userName;
private String password;
private double money;
private double quoteMoney;
public Account(String cardId, String userName, String password, double quoteMoney) {
this.cardId = cardId;
erName = userName;
this.password = password;
this.quoteMoney = quoteMoney;
}
public Account() {
}
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
erName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public double getQuoteMoney() {
return quoteMoney;
}
public void setQuoteMoney(double quoteMoney) {
this.quoteMoney = quoteMoney;
}
}
package com.zxx.test;
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<>();
showMain(accounts);
}
private static void showMain(ArrayList<Account> accounts) {
while (true) {
System.out.println("欢迎您进⼊⿊马ATM系统");
System.out.println("1.登录账户");
System.out.println("2.注册开户");
System.out.println("请输⼊命令1,2选择对应的操作");
Scanner sc=new Scanner(System.in);
int command=sc.nextInt();
switch (command){
case 1://登录
login(accounts,sc);
break;
case 2://注册
reginster(accounts,sc);
break;
default:
System.out.println("输⼊有误,");
break;
}
}
}
private static void login(ArrayList<Account> accounts, Scanner sc) {
if (accounts.size()==0){
System.out.println("系统中暂⽆任何账户");
return;
}
System.out.println("===============欢迎来到登录页⾯=================");
while (true) {
System.out.println("请您输⼊您的卡号");
String cardId=sc.next();
Account acc=getAccountById(accounts,cardId);///////////////////////////////从这传的acc
//⼀定要去判断⼀下这个⽤户是不是空的,否则会出现空指针异常
if (acc != null) {
if (acc.getCardId().equals(cardId)){
System.out.println("请输⼊您的密码");
String password=sc.next();
if (acc.getPassword().equals(password)){
System.out.println(acc.getUserName()+"先⽣/⼥⼠,欢迎您进⼊系统!");
showAccount(accounts,acc,sc);
return;
}else {
System.out.println("密码有误!!");
}
}else {
System.out.println("卡号输⼊错误");
}
}else {
System.out.println("⽆该卡号的信息,请重新输⼊");
}
}
}
private static void showAccount(ArrayList<Account> accounts,Account acc, Scanner sc) {
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 type=sc.nextInt();
switch (type){
case 1://查询
find(acc,sc);
break;
case 2://存款
depositMoney(acc,sc);
break;
case 3://取款
drawMoney(acc,sc);
break;
case 4://转账
transfromMoney(acc,sc,accounts);
break;
case 5://修改密码
updatePassword(acc,sc);
return;
case 6://退出
System.out.println("感谢您的信赖和光临");
return;
case 7://注销
accounts.remove(acc);
return;
default:
System.out.println("输⼊有误");
break;
}
}
}
private static void transfromMoney(Account acc, Scanner sc, ArrayList<Account> accounts) { System.out.println("===============欢迎来到转账页⾯=================");
if (accounts.size()<2){
System.out.println("当前系统中⽆其它⽤户!");
return;
}
if (acc.getMoney()<0){
System.out.println("穷逼,⾃⼰都没钱还转啥转");
return;
}
while (true) {
System.out.println("请输⼊转账⽤户的ID");
String cardId=sc.next();
Account account= getAccountById(accounts,cardId);
if (acc.getCardId().equals(cardId)){
System.out.println("调⽪,不能给⾃⼰转账!");
}else {
if (cardId==null){
System.out.println("卡号输⼊错误");
}else {
String name="*"+acc.getUserName().substring(1);
System.out.println("您当前要为"+name+"转账!");
System.out.println("请输⼊姓⽒来进⼀步确认");
String userName=sc.next();
if (acc.getUserName().startsWith(userName)){
System.out.println("请输⼊转账⾦额:");
double money=sc.nextDouble();
if (money>acc.getMoney()){
System.out.println("账户余额不⾜");
}else {
acc.setMoney(acc.getMoney()-money);
account.setMoney(account.getMoney()+money);
System.out.println("转账成功!账户当前余额为:"+acc.getMoney());
return;
}
}else {
System.out.println("姓⽒验证有误");
}
}
}
}
}
private static void updatePassword(Account acc, Scanner sc) {
System.out.println("===============欢迎来到修改密码页⾯================="); while (true) {
System.out.println("请输⼊原来密码");
String password=sc.next();
if (acc.getPassword().equals(password)){
System.out.println("请输⼊修改后的密码");
String upPassword=sc.next();
System.out.println("请确认修改后的密码");
String okPassword=sc.next();
if (upPassword.equals(okPassword)){
acc.setPassword(upPassword);
System.out.println("修改密码成功!");
return;
}else {
System.out.println("两次密码不⼀致~~");
}
}else {
System.out.println("密码错误!");
}
}
}
private static void drawMoney(Account acc, Scanner sc) {
System.out.println("===============欢迎来到取钱页⾯================="); if (acc.getMoney()<100){
System.out.println("兄弟先存钱吧,余额不⾜100");
return;
}
while (true) {
System.out.println("请输⼊取款的⾦额");
double money=sc.nextDouble();
if (money>acc.getQuoteMoney()){
System.out.println("您当前取款⾦额⼤与当次限额");
}else {
if (money>acc.getMoney()){
System.out.println("余额不⾜!");
}else {
acc.setMoney(acc.getMoney()-money);
System.out.println("取钱成功!当前余额为:"+acc.getMoney());
return;
}
}
}
}
private static void depositMoney(Account acc, Scanner sc) {
System.out.println("===============欢迎来到存款页⾯================="); System.out.println("请输⼊存款的⾦额");
double money=sc.nextDouble();
acc.setMoney(acc.getMoney()+money);
System.out.println("存款成功!当前余额为:"+acc.getMoney());
}
private static void find(Account acc, Scanner sc) {
System.out.println("===============欢迎来到查询页⾯================="); System.out.println("您的账户信息如下:");
System.out.println("卡号:"+acc.getCardId());
System.out.println("姓名:"+acc.getUserName());
System.out.println("余额:"+acc.getMoney());
System.out.println("取现额度:"+acc.getQuoteMoney());
}
private static void reginster(ArrayList<Account> accounts, Scanner sc) {
System.out.println("===============欢迎来到注册页⾯================="); System.out.println("请输⼊您的账户名");
String name=sc.next();
String password;
while (true) {
System.out.println("请输⼊您的密码");
password=sc.next();
System.out.println("请再次确认密码");
String okPassword=sc.next();
if (password.equals(okPassword)){
break;
}else {
System.out.println("两次密码不⼀致~~~");
}
}
System.out.println("请设置当次的取现额度");
double quoteMoney=sc.nextDouble();
String cardId=creatCardId(accounts);
accounts.add(new Account(cardId,name,password,quoteMoney));
System.out.println(name+"先⽣/⼥⼠,您的账户开卡成功,您的卡号是:"+cardId);
}
private static String creatCardId(ArrayList<Account> accounts) {
while (true) {
Random r=new Random();
String cardId="";
for (int i = 0; i < 8; i++) {
cardId+=r.nextInt(10);
}
Account acc=getAccountById(accounts,cardId);
if (acc==null){
return cardId;
}
}
}
private static Account getAccountById(ArrayList<Account> accounts, String cardId) { for (int i = 0; i < accounts.size(); i++) {
Account acc=accounts.get(i);
if (cardId.equals(acc.getCardId())){
return acc;
}
}
return null;
}
}。