┐(T.T ) ( T.T) ノ嗯两人??
//用户类
public class Account {/* 成员变量 */private String cardId; //卡号private String userName; //用户名private String passWord; //账号密码private double money; //账号金额private double quotaMoney; //每次取现额度/* 封装 */public String getCardId() { return cardId; }public void setCardId(String cardId) { this.cardId = cardId; }public String getUserName() { return userName; }public void setUserName(String userName) { this.userName = userName; }public String getPassWord() { return passWord; }public void setPassWord(String passWord) { this.passWord = passWord; }public double getMoney() { return money; }public void setMoney(double money) { = money; }public double getQuotaMoney() { return quotaMoney; }public void setQuotaMoney(double quotaMoney) { this.quotaMoney = quotaMoney; }
}
import java.util.ArrayList;
import java.util.Scanner;
//银行入口类
public class Test {public static void main(String[] args) {//创建Scanner类用于接收值Scanner input=new Scanner(System.in);//定义一个集合,负责存储全部账户对象,进行ArrayList<Account> listAccount = new ArrayList<>();//银行首页菜单while (true) {System.out.println("-------------欢迎━(*`∀´*)ノ亻!使用ATM系统---------");System.out.println("1.账号登录");System.out.println("2.注册账号");System.out.println("3.退出ATM系统");System.out.print("请选择> ");int command = Int();switch (command){case 1:break;case 2:break;case 3:System.out.println("n欢迎下次使用~~~");break;default:System.out.println("没有该命令,请重新重新输入~~");}break;}}
}
/*** 注册* @param listAccount 接收的账户集合* @param input 扫描器*/private static void register(ArrayList<Account> listAccount, Scanner input) {System.out.println("-------------欢迎新用户---------");//1.创建一个账户对象,用于后期封装账户信息.Account account = new Account();//2.录入当前这个账户的信息,注入到账户对象中去.System.out.println("请你输入账户中的用户名:");String userName = ();account.setUserName(userName);//3.用于确保用户密码的一致性while (true) {System.out.println("请你输入账户中的密码:");String passWord = ();account.setPassWord(passWord);System.out.println("请你再次确认密码:");String okpassWord = ();if (okpassWord.equals(passWord)) {//密码同一通过,可以注入给账户对象account.setPassWord(okpassWord);break; //密码已经录入成功了.} else {System.out.println("对不起,你输入的2次密码不一致,请重新却~~~");}}//4.录入当前用户账户的限额System.out.println("请你输入账户资金限额:");double quotaMoney = Double();account.setQuotaMoney(quotaMoney);//为账户随机一个17位且与其他账户的卡户不重复的号码.(独立功能,独立成方法)String cardId = getRandomCardId(listAccount);account.setCardId(cardId);//3.把账户对象添加到账户集合中去.listAccount.add(account);System.out.println("恭喜你," + userName + "用户,你开户成功,你的卡号为:" + cardId + ",请你妥善保管");}/*** 为账户生成17位与其他账户卡户不同的号码* @param accounts* @return*/private static String getRandomCardId(ArrayList<Account> accounts) {Random r = new Random();while (true) {//cardId用于接值String cardId = "";//利用for生成17位随机数for (int i = 0; i < 17; i++) {cardId += r.nextInt(10);}//判断生成的卡号是否重复//根据这个卡号查询账户对象.(独立功能,独立成方法)Account acc = getAccountByCarId(cardId, accounts);if (acc == null) {//如果返回为空,则卡号不重复,为新卡号.return cardId;}}}/*** 遍历所有账户对象* @param carId 卡号* @param accounts 全部集合对象* @return 账户对象*/private static Account getAccountByCarId(String carId, ArrayList<Account> accounts) {for (int i = 0; i < accounts.size(); i++) {Account acc = (i);if (CardId().equals(carId)) {return acc;}}return null;//查无此账户}
/*** 登录* @param listAccount 全部账户对象的集合* @param input 扫描器*/private static void Login(ArrayList<Account> listAccount, Scanner input) {System.out.println("-------------登录个人账户---------");//1,判断账户集合中是否存在账户,如果不存一名账户,则登录功能无法实现.if (listAccount.size() == 0) {System.out.println("对不起,当前系统中,无任何账户,请先开户,在登录~~");return;//卫语言风格,解决方法的执行.}//2,正式进入登录操作System.out.println("请你输入登录卡号:");String carId = ();//3,判断卡号是否存在Account acc=getAccountByCarId(carId,listAccount);if (acc!=null){while (true) {//卡号存在System.out.println("请输入密码:");String Pwd = ();//判断密码是否正确if (PassWord().equals(Pwd)){System.out.println("欢迎"UserName()+"用户,你的卡号是"CardId());//这里注释的是在用户登录成功后,跳转到这名用户的操作界面//showUserCommand(input,acc,listAccount);return;//卫语言风格,解决方法的执行.}else {System.out.println("对不起,你的密码有误.");}}}else {System.out.println("对不起,系统中不存在该卡号.");return;//卫语言风格,解决方法的执行.}}
/*** 用户登录后界面*/private static void showUserCommand(Scanner input,Account acc,ArrayList<Account> listAccount) {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.销户");int command = Int();switch (command) {case 1://展示当前账户信息showAccount(acc);break;case 2://当前账户存款depositMoney(acc,input);break;case 3://当前账户取款drawMoney(acc,input);break;case 4://转账transferMoney(acc,input,listAccount);break;case 5://修改密码updatapassWord(acc,input);break;case 6:System.out.println("退出成功,欢迎你的再次使用.");return;case 7:break;default:System.out.println("不存在改命令.");}}}/*** 展示当前账户信息* @param acc*/private static void showAccount(Account acc) {System.out.println("==================用户信息==================");System.out.println("卡号:"CardId());System.out.println("用户名:"UserName());System.out.println("密码:"PassWord());System.out.println("金额:"Money());System.out.println("限额:"QuotaMoney());}
/*** 存款* @param acc 当前账户对象* @param input 扫描器*/private static void depositMoney(Account acc, Scanner input) {System.out.println("==================用户存款==================");while (true) {System.out.println("请输入你的存款金额:");double Money = Double();if(Money > 0){acc.Money()+Money);System.out.println("恭喜"UserName()+"用户存款成功,当前金额为"Money());return;}else{System.out.println("你输入的存款金额有误,请重试");}}}
/*** 取款* @param acc 当前账户对象* @param input 扫描器*/private static void drawMoney(Account acc, Scanner input) {System.out.println("==================用户取款==================");while (true) {//接值System.out.println("请你输入取款金额:");double moneyDouble();if (money&QuotaMoney()){System.out.println("对不起,你的取款金额超过了你的当次限额,你每次的取款额度为:"QuotaMoney());}else {if (money&Money()){System.out.println("你的余额不足,当前账户余额为"Money());}else {System.out.println("恭喜,本次取款金额为:"+money+"元.");acc.Money()-money);showAccount(acc);return;}}}}
/*** 转账* @param acc 当前账户对象* @param input 扫描器* @param listAccount 全部账户*/private static void transferMoney(Account acc, Scanner input,ArrayList<Account> listAccount) {System.out.println("==================用户转账==================");//判断是否存在2个账户if(listAccount.size()<2){System.out.println("当前账户中,不足2名用户,无法转账.");return;}//判断是否满足转账条件if (Money()==0){System.out.println("抱歉,你当前账户金额不足,无法转账.");return;}while (true) {//进行转账System.out.println("请输入转账方的卡号:");String cardId();//阻断用户输入自己卡号if (cardId.CardId())){System.out.println("抱歉你无法对自己进行转账");continue;}//判断卡号是否存在Account account=getAccountByCarId(cardId,listAccount);if (account==null){System.out.println("抱歉你所输入的转账卡号不存在");}else {String userNameUserName();String tip="*"+userName.substring(1);System.out.println("请你输入["+tip+"]对方姓氏:");String preName = ();if (userName.startsWith(preName)){while (true) {System.out.println("请输入转账金额:");double money = Double();if (money&Money()){System.out.println("对不起,你输入的转账金额不足,你最多可转"Money()+"元.");}else {acc.Money()-money);account.Money()+money);System.out.println("转账成功,当前账户金额为"Money());return;}}}else {System.out.println("你输入信息有误.");}}}}
/*** 用户登录后界面*/private static void showUserCommand(Scanner input,Account acc,ArrayList<Account> listAccount) {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.销户");int command = Int();switch (command) {case 1://展示当前账户信息showAccount(acc);break;case 2://当前账户存款depositMoney(acc,input);break;case 3://当前账户取款drawMoney(acc,input);break;case 4://转账transferMoney(acc,input,listAccount);break;case 5://修改密码updatapassWord(acc,input);break;case 6:System.out.println("退出成功,欢迎你的再次使用.");return;case 7:System.out.println("请确认销户?[Y/N]");String rs();switch (rs){case "Y":if (Money()>0){System.out.println("请先将你的"Money()+"元去除后,在销户.");break;}else {ve(acc);System.out.println("该账户已注销成功.");return;}default:System.out.println("好的,继续保留当前账户.");}break;default:System.out.println("不存在改命令.");}}}/*** 修改密码* @param acc 当前用户* @param input 扫描器*/private static void updatapassWord(Account acc, Scanner input) {System.out.println("==================用户修改密码==================");while (true) {System.out.println("请输入当前密码:");String Pwd();if (PassWord().equals(Pwd)){System.out.println("请输入新密码:");String newPwd();System.out.println("请确认新密码:");String okPwd();if(newPwd.equals(okPwd)){acc.setPassWord(okPwd);System.out.println("你的密码修改成功,请妥善保管:"+okPwd);return;}else {System.out.println("你的密码不一致.");}}else {System.out.println("抱歉,你的密码不正确,请重试");}}}
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;/**实现菜单栏***/
public class Test {public static void main(String[] args) {//创建Scanner类用于接收值Scanner input = new Scanner(System.in);//定义一个集合,负责存储全部账户对象,进行ArrayList<Account> listAccount = new ArrayList<>();//银行首页菜单while (true) {System.out.println("-------------欢迎━(*`∀´*)ノ亻!使用ATM系统---------");System.out.println("1.账号登录");System.out.println("2.注册账号");System.out.println("3.退出ATM系统");System.out.print("请选择> ");int command = Int();switch (command) {case 1://用户登录操作Login(listAccount, input);break;case 2://用户开户操作register(listAccount, input);break;case 3:System.out.println("n欢迎下次使用~~~");break;default:System.out.println("没有该命令,请重新重新输入~~");}}}/*** 登录** @param listAccount 全部账户对象的集合* @param input 扫描器*/private static void Login(ArrayList<Account> listAccount, Scanner input) {System.out.println("-------------登录ATM系统---------");//1,判断账户集合中是否存在账户,如果不存在账户,则登录功能无法实现.if (listAccount.size() == 0) {System.out.println("对不起,当前系统中,无任何账户,请先开户,在登录~~");return;//卫语言风格,解决方法的执行.}//2,正式进入登录操作System.out.println("请你输入登录卡号:");String carId = ();//3,判断卡号是否存在Account acc = getAccountByCarId(carId, listAccount);if (acc != null) {while (true) {//卡号存在System.out.println("请输入密码:");String Pwd = ();//判断密码是否正确if (PassWord().equals(Pwd)) {System.out.println("欢迎" + UserName() + "用户,你的卡号是" + CardId());showUserCommand(input, acc, listAccount);return;} else {System.out.println("对不起,你的密码有误.");}}} else {System.out.println("对不起,系统中不存在该卡号.");return;}}/*** 用户登录后界面*/private static void showUserCommand(Scanner input, Account acc, ArrayList<Account> listAccount) {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.销户");int command = Int();switch (command) {case 1://展示当前账户信息showAccount(acc);break;case 2://当前账户存款depositMoney(acc, input);break;case 3://当前账户取款drawMoney(acc, input);break;case 4:transferMoney(acc, input, listAccount);break;case 5:updatapassWord(acc, input);break;case 6:System.out.println("退出成功,欢迎你的再次使用.");return;case 7:System.out.println("请确认销户?[Y/N]");String rs = ();switch (rs) {case "Y":if (Money() > 0) {System.out.println("请先将你的" + Money() + "元去除后,在销户.");break;} else {ve(acc);System.out.println("该账户已注销成功.");return;}default:System.out.println("好的,继续保留当前账户.");}break;default:System.out.println("不存在改命令.");}}}/*** 修改密码** @param acc 当前用户* @param input 扫描器*/private static void updatapassWord(Account acc, Scanner input) {System.out.println("==================用户修改密码==================");while (true) {System.out.println("请输入当前密码:");String Pwd = ();if (PassWord().equals(Pwd)) {System.out.println("请输入新密码:");String newPwd = ();System.out.println("请确认新密码:");String okPwd = ();if (newPwd.equals(okPwd)) {acc.setPassWord(okPwd);System.out.println("你的密码修改成功,请妥善保管:" + okPwd);return;} else {System.out.println("你的密码不一致.");}} else {System.out.println("抱歉,你的密码不正确,请重试");}}}/*** 转账** @param acc 当前账户对象* @param input 扫描器* @param listAccount 全部账户*/private static void transferMoney(Account acc, Scanner input, ArrayList<Account> listAccount) {System.out.println("==================用户转账==================");//判断是否存在2个账户if (listAccount.size() < 2) {System.out.println("当前账户中,┐(T.T ) ( T.T) ノ嗯两人??,无法转账.");return;}//判断是否满足转账条件if (Money() == 0) {System.out.println("抱歉,你当前账户金额不足,无法转账.");return;}while (true) {//进行转账System.out.println("请输入转账方的卡号:");String cardId = ();//阻断用户输入自己卡号if (cardId.CardId())) {System.out.println("抱歉你无法对自己进行转账");continue;}//判断卡号是否存在Account account = getAccountByCarId(cardId, listAccount);if (account == null) {System.out.println("抱歉你所输入的转账卡号不存在");} else {String userName = UserName();String tip = "*" + userName.substring(1);System.out.println("请你输入[" + tip + "]对方姓氏:");String preName = ();if (userName.startsWith(preName)) {while (true) {System.out.println("请输入转账金额:");double money = Double();if (money > Money()) {System.out.println("对不起,你输入的转账金额不足,你最多可转" + Money() + "元.");} else {acc.Money() - money);account.Money() + money);System.out.println("转账成功,当前账户金额为" + Money());return;}}} else {System.out.println("你输入信息有误.");}}}}/*** 取款** @param acc 当前账户对象* @param input 扫描器*/private static void drawMoney(Account acc, Scanner input) {System.out.println("==================用户取款==================");
// //最低限额
// Money()<10){
// System.out.println("你当前账户金额不足10元,不可取款");
// return;
// }while (true) {System.out.println("请你输入取款金额:");double money = Double();if (money > QuotaMoney()) {System.out.println("对不起,你的取款金额超过了你的当次限额,你每次的取款额度为:" + QuotaMoney());} else {if (money > Money()) {System.out.println("你的余额不足,当前账户余额为" + Money());} else {System.out.println("恭喜,本次取款金额为:" + money + "元.");acc.Money() - money);showAccount(acc);return;}}}}/*** 存款* @param acc 当前账户对象* @param input 扫描器*/private static void depositMoney(Account acc, Scanner input) {System.out.println("==================用户存款==================");while (true) {System.out.println("请输入你的存款金额:");double Money = Double();if(Money > 0){acc.Money()+Money);System.out.println("恭喜"UserName()+"用户存款成功,当前金额为"Money());return;}else{System.out.println("你输入的存款金额有误,请重试");}}}/*** 展示当前账户信息** @param acc*/private static void showAccount(Account acc) {System.out.println("==================用户信息==================");System.out.println("卡号:" + CardId());System.out.println("用户名:" + UserName());System.out.println("密码:" + PassWord());System.out.println("金额:" + Money());System.out.println("限额:" + QuotaMoney());}/*** 注册** @param listAccount 接收的账户集合* @param input*/private static void register(ArrayList<Account> listAccount, Scanner input) {System.out.println("-------------欢迎新用户---------");//1.创建一个账户对象,用于后期封装账户信息.Account account = new Account();//2.录入当前这个账户的信息,注入到账户对象中去.System.out.println("请你输入账户中的用户名:");String userName = ();account.setUserName(userName);while (true) {System.out.println("请你输入账户中的密码:");String passWord = ();account.setPassWord(passWord);System.out.println("请你再次确认密码:");String okpassWord = ();if (okpassWord.equals(passWord)) {//密码同一通过,可以注入给账户对象account.setPassWord(okpassWord);break; //密码已经录入成功了.} else {System.out.println("对不起,你输入的2次密码不一致,请重新却~~~");}}System.out.println("请你输入账户资金限额:");double quotaMoney = Double();account.setQuotaMoney(quotaMoney);//为账户随机一个17位且与其他账户的卡户不重复的号码.(独立功能,独立成方法)String cardId = getRandomCardId(listAccount);account.setCardId(cardId);//3.把账户对象添加到账户集合中去.listAccount.add(account);System.out.println("恭喜你," + userName + "用户,你开户成功,你的卡号为:" + cardId + ",请你妥善保管");}/*** 为账户生成17位与其他账户卡户不同的号码** @return*/private static String getRandomCardId(ArrayList<Account> accounts) {Random r = new Random();while (true) {String cardId = "";for (int i = 0; i < 17; i++) {cardId += r.nextInt(10);}//判断这17位随机数是否重复//根据这个卡号查询账户对象Account acc = getAccountByCarId(cardId, accounts);if (acc == null) {//如果返回为空,则卡号不重复,为新卡号.return cardId;}}}/*** 遍历所有账户对象** @param carId 卡号* @param accounts 全部集合对象* @return 账户对象*/private static Account getAccountByCarId(String carId, ArrayList<Account> accounts) {for (int i = 0; i < accounts.size(); i++) {Account acc = (i);if (CardId().equals(carId)) {return acc;}}return null;//查无此账户}}
//用户类
public class Account {/* 成员变量 */private String cardId; //卡号private String userName; //用户名private String passWord; //账号密码private double money; //账号金额private double quotaMoney; //每次取现额度/* 封装 */public String getCardId() {return cardId;}public void setCardId(String cardId) {this.cardId = cardId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassWord() {return passWord;}public void setPassWord(String passWord) {this.passWord = passWord;}public double getMoney() {return money;}public void setMoney(double money) { = money;}public double getQuotaMoney() {return quotaMoney;}public void setQuotaMoney(double quotaMoney) {this.quotaMoney = quotaMoney;}
}
本文发布于:2024-01-29 00:53:44,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170646082711538.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |