java物件導向練習---銀行業務類比(數組+物件導向)

來源:互聯網
上載者:User

標籤:物件導向   class   ges   添加使用者   sys   證件   成功   整型   proc   

  • 編程實現:
    a) 使用者類:帳號(int)、姓名(String)、密碼(int:6位元字)、地址(String)、存款餘額(double)、註冊時間(date)、開戶行(與銀行的名稱對應,String)
    b) 地址類:國家(String)、省份(String)、街道(String)、門牌號(String)
    c) 銀行類:能儲存100個使用者的庫([ ])、本銀行名稱(比如:中國工商銀行的昌平支行,String)
    i. 銀行功能
  • 添加使用者(傳入參數:使用者,傳回值:整型值(1:成功,2:使用者已存在,3:使用者庫已滿))
    a) 商務邏輯:先檢查該使用者的帳號在庫裡是否存在。若不存在則在使用者庫裡添加一個該使用者並返回代號1,若存在則返回代號2。另外在添加使用者的時候檢測使用者庫是否登入滿,若已滿則返回代號3
  • 存錢(傳入值:使用者的帳號,存取的金額。傳回值:布爾類型值)
    a) 商務邏輯:先根據傳入的帳號資訊查詢使用者庫裡是否有該使用者。若沒有則返回false,若有,則將該使用者的金額存進去。
  • 取錢(傳入值:使用者的帳號,使用者密碼,取錢金額。傳回值:整型值(0:正常,1:帳號不存在,2:密碼不對,3:錢不夠))
    a) 商務邏輯:先根據帳號資訊來查詢該使用者是否存在,若不存在,則返回代號1,若存在,則繼續判斷密碼是否正確,若不正確,則返回代號2。若帳號密碼都正確,則繼續判斷目前使用者的金額是否滿足要取出的錢,若不滿足,則返回代號3,若滿足,則將該使用者的金額減去。
  • 轉賬(傳入值:轉出的帳號,轉入的帳號,轉出帳號的密碼,轉出的金額。傳回值:0:正常,1:帳號不對,2密碼不對,3錢不夠)
    a) 商務邏輯:先查詢使用者庫是否存在轉出和轉入的帳號,若不存在則返回代號,1,若帳號都存在則繼續判斷轉出帳號的密碼是否正確,若不正確,則返回2,若正確則繼續判斷要轉出的金額是否足夠,若不夠則返回3,否則正常轉出,轉出的帳號金額要相對應的減少,轉入的金額相對應的增加。
  • 查詢賬戶功能(傳入值:帳號,帳號密碼,傳回值:空)
    a) 商務邏輯:先根據帳號判斷使用者庫是否存在該使用者,若不存在則列印提示資訊:該不存在。否則繼續判斷密碼是否正確。若不正確則列印相對應的錯誤資訊。若帳號和密碼都正確,則將該使用者的資訊都列印出來,比如:當前帳號:xxxx,密碼:xxxxxx,餘額:xxxx元,使用者居住地址:xxxxxxxxxxxxx,當前賬戶的開戶行:xxxxxxxxxx.
    d) 介面類:在執行該入口程式時,就列印銀行業務選擇菜單:比如:
    i.
    ii. 然後就開始處理各種輸入操作,直到業務處理完成!
  • 答案:
    1、地址類

    class Address{
    private String country;//國家
    private String province;//省份
    private String street;//街道
    private String id;//門排號

    public Address(){}public Address(String country,String province,String street,String id){    this.country = country;    this.province = province;    this.street = street;    this.id = id;}public void setCountry(String country){    this.country = country;}public String getCountry(){    return this.country;}public void setProvince(String province){    this.province = province;}public String getProvince(){    return this.province;}public void setStreet(String street){    this.street = street;}public String getStreet(){    return this.street;}public void setId(String id){    this.id = id;}public String getId(){    return this.id;}

    }

    2、使用者類

    class User{
    private int code;//帳號
    private String name;//姓名
    private int password;//密碼
    private Address address;//地址
    private double money;//存款餘額
    private Date date;//註冊時間
    private String openBankName;//開戶行

    public User(){}public User(int code,String name,int password,Address address,double money,Date date,String openBankName){    this.code = code;    this.name = name;    this.password = password;    this.address = address;    this.money = money;    this.date = date;    this.openBankName = openBankName;}public void setCode(int code){    this.code = code;}public int getCode(){    return this.code;}public void setName(String name){    this.name = name;}public String getName(){    return this.name;}public void setPassword(int password){    this.password = password;}public int getPassword(){    return this.password;}public void setAddress(Address address){    this.address = address;}public Address getAddress(){    return this.address;}public void  setMoney(double money){    this.money = money;}public double getMoney(){    return this.money;}public void setDate(Date date){    this.date = date;}public Date getDate(){    return this.date;}public void setOpenBankName(String openBankName){    this.openBankName = openBankName;}public String getOpenBankName(){    return this.openBankName;}

    }

    3、銀行類

    class Bank{
    private String bankName ;

    static User[] users =  new User[10];public Bank(){}public Bank(String bankName){    this.bankName = bankName;}public void setBankName(String bankName){    this.bankName = bankName;}public String getBankName(){    return this.bankName;}/**    檢查使用者是否存在*/public boolean checkUser(int code){    for (User u : users){        if (u != null){            if (u.getCode() == code){                return true;            }        }    }    return false;}/**    檢查使用者是否已滿*/public boolean isFullUser(){    for (User user : users){        if (user == null){            return false;        }    }    return true;}/**    檢查使用者和密碼是否正確*/public boolean checkUserAndPassword(int userCode, int password){    if (checkUser(userCode)){        for (User u : users){            if (u.getCode() == userCode){                if (u.getPassword() == password){                    return true;                }            }        }    }    return false;}/**    檢查錢是否夠*/public boolean checkMoney(int userCode,double money){    for (User u : users){        if (u.getCode() == userCode){            if (u.getMoney() >= money){                return true;            }else{                break;            }        }    }    return false;}/**    添加使用者的方法*/public int  addUser(User user){    if (checkUser(user.getCode())){        return 2;     }else if (isFullUser()){        return 3;    }else{        for (int i = 0;i < users.length ; i++){            if (users[i] == null){                users[i] = user;                return 1;

    // break;
    }
    }
    }
    return 1;
    }

    /**    存錢方法*/public boolean saveMoney(int userCode,double money){    if (!checkUser(userCode)){        return false;    }else{        for (User u : users){            if (u.getCode() == userCode){                u.setMoney(u.getMoney() + money);            }        }    }    return true;}/**    取錢方法*/public int takeMoney(int userCode,int password,double takeMoney){    if (!checkUser(userCode)){        return 1;    }else if (!checkUserAndPassword(userCode,password)){        return 2;    }else if (!checkMoney(userCode,takeMoney)){        return 3;    }else{        for (User u : users){            if (u.getCode() == userCode){                u.setMoney(u.getMoney() - takeMoney);                break;            }        }    }    return 0;}/**    轉賬方法*/public int transferMoney(int outCode,int inCode,int outpassword,double outMoney){    if (!checkUser(outCode) && checkUser(inCode)){        return 1;    }else if (!checkUserAndPassword(outCode,outpassword)){        return 2;    }else if (!checkMoney(outCode,outMoney)){        return 3;    }else{        saveMoney(inCode,outMoney);        takeMoney(outCode,outpassword,outMoney);    }    return 0;}/**    查詢賬戶*/public void selectUser(int userCode,int password){    if (!checkUser(userCode)){        System.out.println("該使用者不存在!");    }else if (!checkUserAndPassword(userCode,password)){        System.out.println("密碼錯誤!");    }else{        User u = null;        Address address = null;        for (User user : users){            if (user.getCode() == userCode){                u = user;                address = u.getAddress();                break;            }        }           System.out.println("當前賬戶為:\t" + u.getName() + "\n帳號為:" + userCode             + "\n密碼:" + password  + "\n餘額:" + u.getMoney()             + "\n使用者當前居住地址:\t" +  address.getCountry() + address.getProvince() + "市"             + address.getStreet() + address.getId() + "號!");    }}

    }

    4、頁面類比類

    class Page{
    public static void welcomePage(){
    System.out.println("**");
    System.out.println(" 中國工商銀行 ");
    System.out.println(" 賬戶管理系統 ");
    System.out.println(" V1.0 ");
    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.bye! ");
    System.out.println("**");
    }
    }

    5、具體的測試類別
    import java.util.Date;
    import java.util.Scanner;
    public class Demo{
    private static Scanner sc = new Scanner(System.in);
    private static Bank bank = new Bank("中國工商銀行沙河支行");
    public static void main(String[] args){
    Page.welcomePage();
    System.out.print("請輸入業務編號:");
    int num = sc.nextInt();
    if (num == 1){
    System.out.print("請輸入賬戶號:");
    int code = sc.nextInt();
    System.out.print("\n請輸入使用者名稱:");
    String name = sc.next();
    System.out.print("\n請輸入密碼:");
    int password = sc.nextInt();
    System.out.print("\n請輸入輸入居住的地址,首先輸入國家:");
    String country = sc.next();
    System.out.print("\n請輸入省份:");
    String province = sc.next();
    System.out.print("\n請輸入街道:");
    String street = sc.next();
    System.out.print("\n請輸入門牌號:");
    String id = sc.next();
    System.out.print("\n請輸入您的賬戶的初始餘額:");
    double money = sc.nextDouble();

            Address address = new Address(country,province,street,id);        User user = new User(code,name,password,address,money,new Date(),bank.getBankName());        int n = bank.addUser(user);        if (n == 2){            System.out.println("對不起,您輸入的賬戶已存在,無法開戶,請帶好證件到營業廳視窗辦理!");        }else if (n == 3){            System.out.println("對不起,當前銀行的使用者數已滿,請到其他銀行辦理業務!");        }else if (n == 1){            System.out.println("恭喜你,開戶成功下面是您的開戶資訊:");            bank.selectUser(code,password);        }    }else if (num == 2){    }else if (num == 3){    }else if (num == 4){    }else if (num == 5){    }else if (num == 6){        System.out.println("Bye~~");        System.exit(0);    }}

    }

    java物件導向練習---銀行業務類比(數組+物件導向)

    相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.