国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java 模擬銀行自助終端系統

2019-11-26 13:44:01
字體:
來源:轉載
供稿:網友

一. 本系統模擬銀行用戶使用ATM機開戶、查詢、存款、取款功能,要求使用java語言編程實現。

說明:

1. 對于數據輸入異常,可使用java異常處理機制進行處理。

2. 評分將以功能實現與代碼規范性相結合的方式進行考核。

3. 如果對項目需求有疑問,可以隨時以QQ留言方式聯系我進行咨詢。

4. 國慶放假期間,每天都有老師在公司值班,10月4日是我在公司值班,10月7日正常上班,歡迎大家到公司來做項目。

二. 項目功能要求:

項目開始運行顯示主菜單為:

銀行自助終端系統

****************************

0.------開戶

1.------查詢

2.------存款

3.------取款

4.------退出

****************************

請選擇你要執行的功能:

此時,用戶可以通過鍵盤輸入選擇自己要實現的功能,如果輸入不是0,1,2,3,4,則系統提示:

你選擇的菜單不存在!

請重新選擇:

要求用戶重新輸入數據進行菜單選擇!

當用戶輸入0時,則進入查詢功能:系統提示:

****************************

你選擇的為開戶功能

請輸入你的姓名:

此時用戶需要輸入姓名,輸入完畢后系統提示:

請輸入你的身份證號:

此時用戶需要輸入18位身份證號,輸入完畢如果驗證未通過要求繼續輸入,直到驗證通過后系統提示:

請輸入你的密碼:

此時用戶需要輸入6位純數字密碼,輸入完畢如果驗證未通過要求繼續輸入,驗證通過后系統提示:

開戶成功,謝謝使用!

銀行自助終端系統

****************************

0.------開戶

1.------查詢

2.------存款

3.------取款

4.------退出

****************************

請選擇你要執行的功能:

當用戶輸入1時,則進入查詢功能:系統提示:

****************************

你選擇的為查詢功能

請輸入你要查詢的卡號:

此時用戶需要輸入查詢的卡號,系統對卡號進行檢測,如果卡號不存在,則提示: 你輸入的卡號不存在,請重新輸入:

請輸入你要查詢的卡號:

要求重新輸入卡號,當用戶輸入正確卡號后,則提示:

請輸入你的密碼:

此時用戶需要輸入6位純數字密碼,輸入完畢如果驗證未通過要求繼續輸入(最多3次),驗證通過后系統將顯示當前用戶賬號信息并進入主菜單:

你查詢的賬號信息為:

******************************

姓名 身份證號 卡號 金額

張三豐 420106198410112062 111111 12800.0

銀行自助終端系統

****************************

0.------開戶

1.------查詢

2.------存款

3.------取款

4.------退出

****************************

請選擇你要執行的功能:

當用戶輸入2時,則進入存款功能:系統提示:

****************************

你選擇的為存款功能

請輸入你要存款的卡號:

此時用戶需要輸入存款的卡號,系統對卡號進行檢測,如果卡號不存在,則提示:

你輸入的卡號不存在,請重新輸入:

請輸入你要存款的卡號:

要求重新輸入卡號,當用戶輸入正確卡號后,則提示:

請輸入你的密碼:

此時用戶需要輸入6位純數字密碼,輸入完畢如果驗證未通過要求繼續輸入(最多3次),驗證通過后系統將顯示當前用戶賬號信息并進入主菜單:

你要存款的賬號信息為:

******************************

姓名 身份證號 卡號 金額

張三豐 420106198410112062 111111 12800.0

請輸入你要存入的金額:

此時要求用戶輸入存款金額,系統對金額進行判斷,如果輸入的數據小于等于0,則提示:

你輸入的數據無效,系統將自動退出!謝謝使用

銀行自助終端系統

****************************

0.------開戶

1.------查詢

2.------存款

3.------取款

4.------退出

****************************

請選擇你要執行的功能:

如果用戶輸入數據合法,系統提示存款成功,并回到主菜單:

存款成功,謝謝使用!

銀行自助終端系統

****************************

0.------開戶

1.------查詢

2.------存款

3.------取款

4.------退出

****************************

請選擇你要執行的功能:

數據將存入用戶賬號,如果用戶再次進行數據查詢,則能看到已經改變后的賬戶金額。 (說明:本系統使用文件進行數據存儲,因此如果用戶重新啟動程序,數據將從文件中讀取重新初始化到內存!此功能選做,可參考對象的序列化和反序列化或JSON)

當用戶輸入3時,則進入取款功能:系統提示:

****************************

你選擇的為取款功能 請輸入你要取款的卡號:

此時用戶需要輸入取款的卡號,系統對卡號進行檢測,如果卡號不存在,則提示:

你輸入的卡號不存在,請重新輸入:

請輸入你要取款的卡號:

要求重新輸入卡號,當用戶輸入正確卡號后,則提示:

請輸入你的密碼:

此時用戶需要輸入6位純數字密碼,輸入完畢如果驗證未通過要求繼續輸入(最多3次),驗證通過后系統將顯示當前用戶賬號信息并進入主菜單:

你要取款的賬號信息為:

******************************

姓名 身份證號 卡號 金額

張三豐 420106198410112062 111111 12800.0

請輸入你要取款的金額:

此時要求用戶輸入取款金額,系統對金額進行判斷,如果輸入的數據小于0或大于賬號總金額,則提示:

你輸入的數據無效,系統將自動退出!謝謝使用

銀行自助終端系統

****************************

0.------開戶

1.------查詢

2.------存款

3.------取款

4.------退出

****************************

請選擇你要執行的功能:

如果用戶輸入數據合法,系統提示取款成功,并回到主菜單:

取款成功,謝謝使用!

銀行自助終端系統

****************************

0.------開戶

1.------查詢

2.------存款

3.------取款

4.------退出

****************************

請選擇你要執行的功能:

數據將從用戶賬號扣出,如果用戶再次進行數據查詢,則能看到已經改變后的賬戶金額。

當用戶輸入4時,系統將退出。

三.設計要求

(一)包一:com.bank.unionpay 表示銀聯,在該包下添加:

表示銀行卡的接口,包含查詢余額,存款,取款等抽象方法。
表示ATM機的抽象類,使用銀行卡類型的對象作為屬性或參數,實現查詢余額,存款,取款等實例方法,添加開戶為抽象方法。
表示四大銀行的枚舉類型:包含ABC,ICBC,CCB,BOC;分別代表農行,工行,建行,中行。

(二)包二:com.bank.abc 表示農行,在該包下添加:

以單例模式定義銀行類,包含屬性:銀行類型(枚舉類型,常量=ABC),銀行名稱(String),銀行卡列表(集合)等。
定義銀行卡的實現類-儲蓄卡,包含屬性:銀行類型(枚舉類型=ABC),姓名,身份證號,卡號,密碼,余額;實現查詢余額,存款,取款等方法。

定義ATM機的子類,包含屬性:銀行類型(枚舉類型,常量=ABC),實現開戶方法,其中:只能開辦儲蓄卡,卡號為6位隨機數字,自動產生。新開戶的銀行卡添加到銀行的銀行卡列表中。

定義儲蓄卡的子類-信用卡,增加屬性:透支額度,重寫取款方法,控制最大取款金額不能大于余額+透支額度的和。

(三)包三:com.bank.test 表示測試,在該包下添加帶main方法的測試類,實現項目要求的模擬ATM機的功能。

以下功能選做:

以單態模式實現工商銀行,在測試類中默認添加多張銀行卡,在農行的ATM機上實現跨行查詢和存取款功能。

包一:com.bank.unionpay

1,銀行卡抽象類

package com.bank.unionpay;public interface Yinhangka {public void cun();public void qu();public void getyu();}

2,枚舉銀行類型

package com.bank.unionpay;public enum Yinhang {ABC("農行"),ICBC("工商"),CCB("建行"),BOC("中行");private final String yinhang;//私有化構造方法private Yinhang(String yinhang){this.yinhang=yinhang;}public String getname(){return this.yinhang;}}

3,ATM類

package com.bank.unionpay;import com.bank.abc.Yinhanglei;public abstract class ATM {private Yinhanglei yhl; //銀行類屬性private double yue; //變量yuepublic double getYue() {return yue;}public void setYue(double yue) {this.yue = yue;}//查詢方法public void yue(){System.out.println("卡上余額為:" +this.yue);}//存款方法public void cun(double cun){if(cun<0){System.out.println("輸入有誤");}else{this.yue+=cun;System.out.println("卡上余額為:"+this.yue);}}//取款方法public void qu(double qu){if(qu>this.yue){System.out.println("余額不足");}else {this.yue-=qu;System.out.println("卡上余額為:"+this.yue);}}//定義開戶抽象方法public abstract void kaihu();}

4,主界面類

package com.bank.unionpay;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Zujiemian {public void zhujiemian(){System.out.println("銀行自助終端系統 ");System.out.println();System.out.println("****************************");System.out.println();List<String> li=new ArrayList<String>();li.add("開戶");li.add("查詢");li.add("存款");li.add("取款");li.add("退出");for(int i=0;i<5;i++){System.out.println(i+"-----"+li.get(i));}System.out.println();System.out.println("****************************");System.out.println();System.out.println("請選擇你要執行的功能: ");}}

包二:com.bank.abc

1,ATM2開戶類

package com.bank.abc;import java.util.Random;import java.util.Scanner;import com.bank.unionpay.ATM;import com.bank.unionpay.Yinhang;public class ATM2 extends ATM{private Yinhang yhl=Yinhang.ABC; @Overridepublic void kaihu() {// 開戶方法//輸入姓名Cuxuka cxk=new Cuxuka();try{Scanner sc1=new Scanner(System.in);System.out.println("請輸入你的姓名:");String st=sc1.nextLine();cxk.setName(st);//輸入身份證System.out.println("請輸入你的身份證號:");for(int ig=0;ig>=0;ig++){Scanner sc2=new Scanner(System.in);String str=sc2.nextLine();String st1="http://d{15}|//d{17}[//dxX]";if(str.matches(st1)){cxk.setShenfen(str);break;}else{System.out.println("輸入的身份證號不是18位身份號");}}//設置賬戶密碼System.out.println("請輸入你的密碼:");for(int ig=0;ig>=0;ig++){Scanner sc3=new Scanner(System.in);String pass=sc3.nextLine();String mm="http://d{6}";if(pass.matches(mm)){cxk.setPassword(pass);break;}else{System.out.println("請輸入正確的6位數密碼");}}//生成6位數儲蓄卡號Random a=new Random();int[] ch=new int[6];StringBuilder str=new StringBuilder();String s;for(int i=0;i<6;i++){ch[i]=a.nextInt(9);}for(Integer c:ch){str.append(c);}s=str.toString();cxk.setCard(s);//將生成的數據導入銀行卡list列表中Yinhanglei.getYinhangLei().list.add(cxk.getCard());//將生成的數據導入銀行卡Map列表中Yinhanglei.getYinhangLei().map.put(cxk.getCard(), cxk);System.out.println("您的新卡號為:"+cxk.getCard());System.out.println("開戶成功,謝謝使用");}catch (Exception e) {System.out.println("輸入有誤");}}}

2,儲蓄卡類

package com.bank.abc;import java.util.Scanner;import com.bank.unionpay.Yinhang;import com.bank.unionpay.Yinhangka;public class Cuxuka implements Yinhangka {//儲蓄卡屬性private Yinhang yinhang;private String name;private String shenfen;private String card;private String password;private double balance;//生成toString ();@Overridepublic String toString() {return "姓名=" + name + "/t/n"+ "身份證=" + shenfen + "/t/n"+"卡號=" +card + "/t/n"+" 賬戶金額=" + balance;}//對屬性進行get set設置public Yinhang getYinhang() {return yinhang=Yinhang.ABC;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getShenfen() {return shenfen;}public void setShenfen(String shenfen) {this.shenfen = shenfen;}public String getCard() {return card;}public void setCard(String card) {this.card = card;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public double getBalance() {return balance;}public void setBalance(double balance) {this.balance = balance;}//存款方法@Overridepublic void cun() {Cuxuka cu1=new Cuxuka();cu1.chaxun();Scanner sc2=new Scanner(System.in);System.out.println("請輸入你要存入的金額:");double cun=sc2.nextDouble();// 實現存款方法if(cun<0){System.out.println("你輸入的數據無效,系統將自動退出!謝謝使用");}else{this.balance+=cun;Yinhanglei.getYinhangLei().map.get(cu1.card).setBalance(balance);System.out.println("存款成功,剩余金額"+Yinhanglei.getYinhangLei().map.get(cu1.card).getBalance());}}//查詢方法public void chaxun(){while(true){try{Scanner sc=new Scanner(System.in);System.out.println("請輸入你要查詢的卡號:");String s=sc.nextLine();//遍歷Yinhanglei 的Map集合for(String temp:Yinhanglei.getYinhangLei().map.keySet()){if(s.equals(temp)){this.card=s;}}if(s.equals(card)) //驗證卡號{int i=0;System.out.println("請輸入你的密碼:");while(true){Scanner sc1=new Scanner(System.in);String st1=sc1.nextLine();if(st1.equals(Yinhanglei.getYinhangLei().map.get(s).getPassword())){System.out.println("你查詢的賬號信息為:");System.out.println();System.out.println("******************************");System.out.println();System.out.println("姓名 身份證號 卡號 金額");System.out.println();System.out.println(Yinhanglei.getYinhangLei().map.get(s));break;}else{i++;if(i==3){System.out.println("密碼輸入錯誤超過3次");break;}else{System.out.println("密碼輸入有誤");}}}}else{System.out.println("卡號輸入有誤請確認");}}catch (Exception e) {System.out.println("輸入有誤");}break;}}//取款方法運算@Overridepublic void qu() {Cuxuka cu=new Cuxuka();cu.chaxun();Scanner sc1=new Scanner(System.in);System.out.println("請輸入你要取款的金額:");double qu=sc1.nextDouble();// 實現取款方法if(qu<balance){this.balance-=qu;Yinhanglei.getYinhangLei().map.get(cu.card).setBalance(balance);System.out.println("取款成功,剩余金額:"+ Yinhanglei.getYinhangLei().map.get(cu.card).getBalance());}else if(qu<0) {System.out.println("你輸入的數據無效,系統將自動退出!謝謝使用");;}else{System.out.println("余額不足");}}@Overridepublic void getyu() {// 余額計算Cuxuka cu=new Cuxuka();System.out.println("剩余金額"+cu.getBalance());}}

3,單例模式銀行類

package com.bank.abc;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.bank.unionpay.Yinhang;public class Yinhanglei {//銀行類屬性private Yinhang yinhang=Yinhang.ABC;private String name;public List<String> list=new ArrayList<>();public Map<String, Cuxuka> map=new HashMap<>();//私有化構造方法private Yinhanglei() {super();}private static Yinhanglei bank=new Yinhanglei();public static Yinhanglei getYinhangLei(){return bank;}}

4,信用卡類

package com.bank.abc;public class Xinyongka extends Cuxuka {//構造自己的屬性private double touzhi;public double getTouzhi() {return touzhi;}public void setTouzhi(double touzhi) {this.touzhi = touzhi;}//重寫取款方法public void qu(double qu) {// 實現取款方法if((touzhi+getBalance())>=qu){System.out.println("透支金額"+(qu-getBalance()));;}else{System.out.println("無法取款超過最大透支額度");;}}}

包三:com.bank.test

1,測試類

package com.bank.test;import java.util.ArrayList;import java.util.List;import java.util.Scanner;import com.bank.abc.ATM2;import com.bank.abc.Cuxuka;import com.bank.unionpay.ATM;import com.bank.unionpay.Zujiemian;public class Test1 {public static void main(String[] args) {//主界面的制作Cuxuka cxk=new Cuxuka();//實例化主界面Zujiemian zjm=new Zujiemian();//拋出異常try{//創建死循環for(int i=0;i>=0;i++){zjm.zhujiemian();Scanner sc=new Scanner(System.in);int in=sc.nextInt();//判斷輸入數字是否符合界面數字if(in==0||in==1||in==2||in==3||in==4){//開戶功能if(in==0){ATM2 atm2=new ATM2();atm2.kaihu();System.out.println("****************************");System.out.println("你選擇的為開戶功能");System.out.println();continue;}//查詢功能if(in==1){System.out.println("****************************");System.out.println("你選擇的為查詢功能");cxk.chaxun();continue;}//存款功能if(in==2){System.out.println("****************************");System.out.println("你選擇的為存款功能");cxk.cun();continue;}//取款功能if(in==3){System.out.println("****************************");System.out.println("你選擇的為取款功能");cxk.qu();continue;}//退出功能if(in==4){System.out.println("謝謝使用!");break;}}//不符合菜單內容打印else{System.out.println("你選擇的菜單不存在!");}}//異常拋出打印}catch (Exception e) {System.out.println("輸入有誤");} }}

結果:

以上所述是小編給大家介紹的Java 模擬銀行自助終端系統,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂温| 山丹县| 慈溪市| 阿图什市| 永寿县| 富平县| 泗水县| 山东| 哈密市| 桂平市| 高雄市| 岗巴县| 洞头县| 云浮市| 中牟县| 黑山县| 嵩明县| 揭西县| 锡林浩特市| 建德市| 集贤县| 长阳| 松滋市| 文水县| 昌乐县| 商河县| 无为县| 行唐县| 黔南| 东源县| 永胜县| 兴仁县| 陈巴尔虎旗| 广宁县| 怀安县| 上高县| 永定县| 香港| 封开县| 伊通| 静海县|