<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了Java實現銀行ATM系統的具體程式碼,供大家參考,具體內容如下
銀行ATM系列簡單操作
1.建立使用者資訊類Account.java
程式碼如下(範例):
package ATM; public class Account { private String id; private String name; private double balance; private double norm; private String password; public Account() { } public Account(String id, String name, String password,double balance, double norm) { this.id = id; this.name = name; this.password=password; this.balance = balance; this.norm = norm; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getBalance() { return balance; } public void setBalance(double balance) { if(balance<0){ this.balance=0; } this.balance = balance; } public double getNorm() { return norm; } public void setNorm(double norm) { if(norm<=0||norm>50000){ this.norm=50000; } this.norm = norm; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
2.編寫使用者介面和操作功能(程式碼中含有註釋)
ATMSystem.java程式碼如下(範例):
package ATM; import java.util.*; public class ATMSystem { public static void main(String[] args) { //1.準備系統需要的容器物件,用於儲存賬戶物件 ArrayList<Account> account=new ArrayList<>(100); //提前準備了,甄嬛使用者資訊,可刪 ——自行註冊 account.add(new Account("11111111","甄嬛","111",0.0, 30000)); //2.準備系統首頁,登入和開戶 //呼叫shouMain方法 shouMain(account); } //首頁 public static void shouMain(ArrayList<Account> account){ Scanner sc=new Scanner(System.in); while(true){ System.out.println("=========歡迎您進入趙氏ATM系統========="); System.out.println("1.登入賬戶"); System.out.println("2.註冊開戶"); System.out.println("請輸入命令(1、2)選擇對應操作:"); String a1=sc.next(); switch(a1){ case "1": //登入 DL(account,sc); break; case "2": //開戶 ZC(account,sc); break; default: System.out.println("錯誤:命令輸入不規範!"); }} } //開戶功能的實現 public static void ZC(ArrayList<Account> account,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 againPassword=sc.next(); if(password.equals(againPassword)){ break; }else{ System.out.println("兩次密碼不一致,請重新設定密碼!"); } } System.out.println("請輸入取現限額:"); Double norm=sc.nextDouble(); if(norm<=0||norm>50000){ norm=50000.0; System.out.println("您的取現額度不規範,預設為50000元"); } String id=ID(account); Account accounts=new Account(id,name,password,0,norm); account.add(accounts); System.out.println("您的卡號為:"+id); } //隨機生成八位數卡號不與已存在的卡號重複 //關鍵 !!!!!此方法與此方法下方的兩個方法效果一樣,任選其一 public static String ID(ArrayList<Account> account){ while(true){ Random r=new Random(); String id=""; for(int i=0;i<1;i++){ int q=r.nextInt(2); id+=q; }int T=0; for(int j=0;j<account.size();j++){ Account ac=account.get(j); if(ac.getId().equals(id)){ T=1; break; } } if(T==0){ return id; } } } //隨機生成八位數卡號不與已存在的卡號重複 // public static String ID(ArrayList<Account> account){ // while(true){ // Random r=new Random(); // String id=""; // for(int i=0;i<8;i++){ // int q=r.nextInt(10); // id+=q; // } // //判斷卡號是否重複了 // Account ac=pdid(account,id); // if(ac==null){ // //說明當前卡號沒有重複 // return id; // } // } // public static Account pdid(ArrayList<Account> account,String id){ // int acount=0; // //如果有重複的返回重複的物件 // for(int i=0;i<account.size();i++){ // Account ac=account.get(i); // if(id.equals(ac.getId())){ // return ac; // } // } // return null; // } //登入 public static void DL(ArrayList<Account> account,Scanner sc){ //呼叫檢查卡號的JC方法 Account acc=JC(account,sc); while(true){ //核對輸入密碼 System.out.println("請輸入密碼:"); String password=sc.next(); if(acc.getPassword().equals(password)){ //登入後頁面//操作頁面 System.out.println("恭喜您,"+acc.getName()+"成功進入系統!"); showUser(account,acc,sc); return; }else{ System.out.println("密碼錯誤!"); } } } //檢查登入卡號是否存在 public static Account JC(ArrayList<Account> account,Scanner sc){ while(true){ System.out.println("請輸入卡號:"); String id=sc.next(); for(int i=0;i<account.size();i++){ Account acc=account.get(i); if(id.equals(acc.getId())){ return acc; }} System.out.println("警告:卡號錯不存在!"); } } //使用者操作頁面 private static void showUser(ArrayList<Account> account,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("請輸入命令(1、2、3、4、5、6、7)選擇對應操作:"); String a2=sc.next(); switch(a2){ case "1"://查詢 CX(acc); break; case "2"://存款 CK(acc,sc); break; case "3"://取款 QK(acc,sc); break; case "4"://轉賬 ZZ(account,acc,sc); break; case "5"://修改密碼 XG(acc,sc); return; case "6"://退出 System.out.println("歡迎下次登入!"); return; case "7"://登出 SC(account,acc); return; default: System.out.println("錯誤:命令輸入不規範!"); } } } //簡單的刪除該物件 private static void SC(ArrayList<Account> account,Account acc) { account.remove(acc); return; } //通過Account類中set方法修改物件的密碼,可舉一反三修改取款限額 private static void XG(Account acc, Scanner sc) { while(true){ System.out.println("請輸入修改後的密碼:"); String mima=sc.next(); System.out.println("請再輸入一次:"); String mm=sc.next(); if(mima.equals(mm)){ acc.setPassword(mima); System.out.println("密碼修改成功!"); System.out.println("請重新登入~~"); return; } } } //轉賬有賬戶個數限制,轉賬的卡號是否存在,並核對姓名,限制轉賬金額 //通過Account類中set方法修改物件的餘額 private static void ZZ(ArrayList<Account> account,Account acc, Scanner sc) { if(account.size()<2){ System.out.println("當前系統,賬戶不足2個,不支援轉賬!"); return; }else{ while(true){ System.out.println("請您輸入轉賬的賬戶卡號:"); String cards=sc.next(); for(int i=0;i<account.size();i++){ Account car=account.get(i); if(cards.equals(car.getId())&&!cards.equals(acc.getId())){ QR(car,sc); while(true){ System.out.println("請您輸入轉賬的金額:"); double money=sc.nextDouble(); if(money>acc.getNorm()){ System.out.println("轉賬金額不能大於限額:"+acc.getNorm()+"元"); }else if(money>acc.getBalance()){ System.out.println("您的餘額為:"+acc.getBalance()+"元,不支援大額度的轉賬金額!"); }else{ acc.setBalance(acc.getBalance()-money); car.setBalance(acc.getBalance()+money); System.out.println("轉賬成功,現在你的餘額為:"+acc.getBalance()); break; } } break; }else{System.out.println("警告:卡號錯,不存在!");}break; }break; } } } //確認轉賬物件的姓名,避免轉錯物件 private static void QR( Account car, Scanner sc) { String name="**"+car.getName().substring(2); while(true){ System.out.println("您確定要為"+name+"轉賬!"); System.out.println("請您輸入對方姓名確認:"); String names=sc.next(); if(names.equals(car.getName())){ System.out.println("請繼續轉賬"); break; }else{ System.out.println("姓名不符合"); } } } //取款是簡單的修改餘額,注意取款限額 private static void QK(Account acc, Scanner sc) { while(true){ System.out.println("輸入您要取款的金額:"); double money=sc.nextDouble(); if(money>acc.getNorm()){ System.out.println("取款金額不能大於限額:"+acc.getNorm()+"元"); }else if(money>acc.getBalance()){ System.out.println("您的餘額為:"+acc.getBalance()+"元,不支援大額度的取款金額!"); }else{ acc.setBalance(acc.getBalance()-money); System.out.println("取款成功,現在你的餘額為:"+acc.getBalance()); break; } } } //存款是簡單的修改餘額 private static void CK(Account acc, Scanner sc) { System.out.println("輸入您要存款的金額:"); double money=sc.nextDouble(); double balance=acc.getBalance(); double bal=money+balance; acc.setBalance(bal); System.out.println("存款成功~您現在的金額為"+bal+"元"); } //查詢資訊,通過Account類中get方法讀出想知道的資料 private static void CX(Account acc) { System.out.println("您的帳戶資訊如下:"); System.out.println("卡號:"+acc.getId()); System.out.println("姓名:"+acc.getName()); System.out.println("餘額:"+acc.getBalance()); System.out.println("當前取現額度:"+acc.getNorm()); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45