java如何模擬實現ATM機功能?

java如何模擬實現ATM機功能?

案例:

模擬實現ATM機的功能:

功能描述:

實現使用者程登入及建立,實現查詢餘額,取出,存款,轉賬等

1、測試類:public class Atm {

public static void main(String[] args) {

Method me =new Method();

me。start();

}12345

2、使用者類:public class Usr {    private  String account ;//賬戶

private String cood;//密碼

private long balance;//餘額

public Usr(String account,String cood,long balance) {        this。cood=cood;        this。account=account;        this。balance=balance;

}    public Usr() {

}    public void setCood(String cood) {        this。cood=cood;

}    public String getCood() {        return cood;

}    public void setAccount(String account) {        this。account=account;

}    public String getAccount() {        return account;

}    public void setBalance(long balance) {        this。balance=balance;

}    public long getBalance() {        return balance;

}    @Override

public boolean equals(Object obj) {        return super。equals(obj);

}    @Override

public String toString() {        return “Usr{” +                “account=‘” + account + ’\‘’ +                “, cood=‘” + cood + ’\‘’ +                “, balance=” + balance +                ‘}’;

}

}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051

3、方法類:import java。util。ArrayList;

import java。util。Random;

import java。util。Scanner;public class Method {

Random ran = new Random();

ArrayList list = new ArrayList();

Scanner sc = new Scanner(System。in);

Usr usr = new Usr();    public void method00() {                        //建立4個初始賬戶

Usr usr1 = new Usr(“123456”, “666666”, 100000);

Usr usr2 = new Usr(“888888”, “666666”, 200000);

Usr usr3 = new Usr(“666666”, “666666”, 300000);

Usr usr4 = new Usr(“999999”, “666666”, 400000);

list。add(usr1);

list。add(usr2);

list。add(usr3);

list。add(usr4);

}    public void start() {

method00();

System。out。println(“這裡建立了4個供測試的賬戶分別是:”);

System。out。println(list。get(0));

System。out。println(list。get(1));

System。out。println(list。get(2));

System。out。println(list。get(3));

System。out。println(“歡迎使用本公司ATM機,請選擇您需要的服務”);

method01();

}    public void method01() {                         // 選擇服務編號

System。out。println(“1。登陸    2。建立賬戶    3。退出”);        int a = shuRu(1, 3);        switch (a) {            case 1:                // 有賬戶,直接登陸;

dl();                break;            case 2:                // 無賬戶,建立賬戶

cj();                break;            case 3:                break;

}

}    public int shuRu(int min, int max) {        //輸入

int aa = 0;        while (true) {

String str = sc。nextLine();            try {                int a = Integer。valueOf(str);                if (a >= min && a

aa = a;                    break;

} else {

System。out。println(“請輸入正確的服務編號”);

}

} catch (Exception e) {

System。out。println(“輸入不合法,請您輸入正確的服務編號”);

}

}        return aa;

}    public int shuRu(int min) {        //輸入

int aa = 0;        while (true) {

String str = sc。nextLine();            try {                int a = Integer。valueOf(str);                if (a >= min && a

aa = a;                    break;

} else {

System。out。println(“請輸入合理的金額,您最小的操作金額為100元”);

}

} catch (Exception e) {

System。out。println(“輸入不合法”);

}

}        return aa;

}    public void cj() { // 建立賬戶

System。out。println(“請輸入您的六位密碼,您共有三次輸入機會”);

String str1 = method020101();        if (str1 == “”) {

System。out。println(“您的輸入機會以用完,請重新選擇服務”);

method01();

} else {

System。out。println(“請確認您的六位密碼,您共有三次確認機會”);

String str2 = method020101();            if (str1 == “”) {

System。out。println(“您的輸入機會以用完,請重新選擇服務”);

method01();

} else {

boolean a = method020102(str1, str2);    //比較兩次輸入

if (a) {

String str3 = sczh();

usr。setAccount(str3);

usr。setCood(str1);

list。add(usr);

System。out。println(“恭喜您,您的賬戶建立成功,賬號為:” + str3 + “您的密碼為:” + str1);

fw(str3, str1);

} else {

System。out。println(“您兩次輸入的密碼不同,請選擇您需要的服務”);

method01();

}

}

}

}    public String method020101() { // 輸入密碼

String str = “”;        for (int a = 3; a >= 1; a——) {

String str1 = sc。nextLine();            try {                int aa = Integer。valueOf(str1);                if (str1。length() == 6) {

str = str1;

a = 0;

} else {                    if (a > 1) {

System。out。println(“請您輸入6位密碼,您還有” + (a - 1) + “次機會”);

} else {                        break;

}

}

} catch (Exception e) {                if (a > 1) {

System。out。println(“輸入格式不合法,請輸入6位數字,例如666666”);

}

}

}        return str;

}    public boolean method020102(String str1, String str2) {                //比較兩次輸入

boolean a;        if (str1。equals(str2)) {

a = true;

} else {

a = false;

}        return a;

}    public String sczh() {                               //隨機生成賬戶

String str = “”;        for (int b = 0; b < 6; b++) {            int a = ran。nextInt(10);

str += a;

}        for (int a = 0; a < list。size(); a++) {            if (str。equals(list。get(a)。getAccount())) {

System。out。println(“該賬戶以存在,請重新選擇服務編號”);

method01();                break;

}

}        return str;

}    public void dl() {                                 //登入

System。out。println(“尊敬的客戶,您好,請輸入您的賬戶,您共有三次輸入機會”);

String zz;

String str;        for (int a = 3; a >= 1; a——) {

str = sc。nextLine();            try {                int aa = Integer。valueOf(str);                if (str。length() == 6) {                    for (int cc = 0; cc < list。size(); cc++) {                        if (str。equals(list。get(cc)。getAccount())) {

System。out。println(“請輸入您的六位密碼”);

String str1 = method020101();                            if (str1。equals(list。get(cc)。getCood())) {

zz = list。get(cc)。getAccount();

System。out。println(“登入成功,請選擇您需要的服務”);

fw(zz, str1);

a = 0;                                break;

} else {

System。out。println(“密碼輸入錯誤,請重新選擇服務編號”);

method01();

a = 0;

cc = list。size();                                break;

}

} else if (!str。equals(list。get(cc)。getAccount()) && cc == list。size() - 1) {

System。out。println(“賬戶不存在,請重新輸入”);

}

}

} else {                    if (a > 1) {

System。out。println(“輸入錯誤,請重新輸入您的賬戶,您還有” + (a - 1) + “次機會”);

} else {

System。out。println(“您的輸入機會以用完,請重新選擇服務”);

method01();

a = 0;                        break;

}

}

} catch (Exception e) {                if (a > 1) {

System。out。println(“輸入格式錯誤,請重新輸入您的賬戶,您還有” + (a - 1) + “次機會”);

} else {

System。out。println(“您的輸入機會以用完,請重新選擇服務”);

method01();

a = 0;                    break;

}

}

}

}    public void fw(String account, String cood) {

System。out。println(“尊敬的客戶,您好,請選擇您需要的服務:1。修改密碼   2。存款   3。取款   4。查詢餘額   5。轉賬   0。退出”);        int a = shuRu(0, 5);        int b = czzh(account, cood, a);        switch (a) {            case 1:

fw1(account, cood, b);                break;            case 2:

fw2(account, cood, b);                break;            case 3:

fw3(account, cood, b);                break;            case 4:

fw4(account, cood, b);                break;            case 5:

fw5(account, cood, b);                break;            case 0:

System。out。println(“服務結束,歡迎您的下次使用”);

}

}    public void fw1(String account, String cood, int b) {

System。out。println(“您確定要修改您的密碼,1、確定   2、返回”);        int bb = shuRu(1, 2);        switch (bb) {            case 1:

System。out。println(“請輸入您的原密碼”);

String str = method020101();

boolean aa = method020102(str, cood);                if (aa) {

System。out。println(“請輸入您的新密碼”);

String str1 = method020101();

System。out。println(“請確認您的新密碼”);

String str2 = method020101();

boolean a = method020102(str1, str2);                    if (a) {

list。get(b)。setCood(str1);

System。out。println(“您的密碼修改成功,您的新密碼為:” + str1);

fw(account, cood);

} else {

System。out。println(“您兩次輸入的密碼不同,請重新選擇服務”);

fw(account, cood);

}

} else {

System。out。println(“您的密碼輸入錯誤,請重新選擇服務”);

fw(account, cood);

}                break;            case 2:

fw(account, cood);                break;

}

}    public void fw2(String account, String cood, int b) {//不可能這個賬戶不存在,所以沒有進行判斷

System。out。println(“請輸入您要存入的金額”);        int a = shuRu(100);

list。get(b)。setBalance((list。get(b)。getBalance()) + a);

System。out。println(“存款成功,您的餘額為:” + list。get(b)。getBalance());

fw(account, cood);

}    public void fw3(String account, String cood, int b) {

System。out。println(“請輸入你要取出的金額”);        int a = shuRu(100);        if (a

list。get(b)。setBalance((list。get(b)。getBalance()) - a);

System。out。println(“取款成功,您的餘額為:” + list。get(b)。getBalance());

fw(account, cood);

} else {

System。out。println(“您的餘額不足,請確認餘額”);

fw(account, cood);

}

}    public void fw4(String account, String cood, int b) {

System。out。println(“您的餘額為:” + list。get(b)。getBalance());

fw(account, cood);

}    public void fw5(String account, String cood, int b) {

System。out。println(“請輸入對方的賬戶”);

String str = fw501();

boolean a = fw0502(str);        if (a) {

System。out。println(“請輸入您要轉賬的金額”);            int c = shuRu(100);            if (c

list。get(b)。setBalance(list。get(b)。getBalance() - c);

System。out。println(“轉賬成功,您的餘額為:” + list。get(b)。getBalance());

fw(account, cood);

} else {

System。out。println(“您的餘額不足,請確認您的餘額後重試”);

fw(account, cood);

}

} else {

System。out。println(“賬戶不存在,請確認後再操作”);

fw(account, cood);

}

}    public String fw501() {

String str;        while (true) {

String str1 = sc。nextLine();            try {                int aa = Integer。valueOf(str1);                if (str1。length() == 6) {

str = str1;                    break;

} else {

System。out。println(“請輸入正確的六位賬戶”);

}

} catch (Exception e) {

System。out。println(“格式錯誤,請輸入正整數”);

}

}        return str;

}    public boolean fw0502(String str) {

boolean aa = false;        for (int a = 0; a < list。size(); a++) {            if (str。equals(list。get(a)。getAccount())) {

aa = true;

}

}        return aa;

}    public int czzh(String account, String cood, int a) {                 //查詢賬戶在集合中是第幾號元素

int aa = -1;        for (int b = 0; b < list。size(); b++) {            if (account。equals(list。get(b)。getAccount())) {

aa = b;

}

}        return aa;

}

}

如有不同看法,歡迎留下您寶貴的意見!

java如何模擬實現ATM機功能?

TAG: systemoutprintlnStringaccount