因为刚学java,老师只留了一个很简单的作业
题目:设计一个类似于ATM取款机的机制,首先要求输入密码,如果错三次,系统退出,如果三次之内正确,则继续进行,可以选择语言"中文"或"english",然后继续,也就是说进入下一个菜单,可以选择 1 "get monry" 2 "account" 3 "change password" 4 "exit"
就是设计一个这样的步骤,下面是我写出来的,请教各位此程序如何改进才能更能体现面向对象的思想,如果各位,这个题目该如何编写呢?
import java.io.*;
public class ATM { ATM bank = new ATM();
public static void main(String[] args) throws IOException {
int i = 0;
int password = getPWD(); while(password!=123456){

System.out.println("wrong password!!!");
i++;
if(i==3) {
System.out.println("3 times wrong,bye");
System.exit(0);
}
password = getPWD();
}
System.out.println("welcome,please choose");
System.out.println("1-Chinese");
System.out.println("2-English");
System.out.println("请选择语言");

int lan = getPWD();
switch(lan){
case  1:
System.out.println("取钱");
System.out.println("修改密码");
System.out.println("存钱");
System.out.println("退出");
break;
case  2:
System.out.println("get money");
System.out.println("change password");
System.out.println("account");
System.out.println("exit");
break;

解决方案 »

  1.   

    抱歉,我忘把代码写全了import java.io.*;
    public class ATM { ATM bank = new ATM();
    public static void main(String[] args) throws IOException {
    int i = 0;
    int password = getPWD(); while(password!=123456){

    System.out.println("wrong password!!!");
    i++;
    if(i==3) {
    System.out.println("3 times wrong,bye");
    System.exit(0);
    }
    password = getPWD();
    }
    System.out.println("welcome,please choose");
    System.out.println("1-Chinese");
    System.out.println("2-English");
    System.out.println("请选择语言");

    int lan = getPWD();
    switch(lan){
    case  1:
    System.out.println("取钱");
    System.out.println("修改密码");
    System.out.println("存钱");
    System.out.println("退出");
    break;
    case  2:
    System.out.println("get money");
    System.out.println("change password");
    System.out.println("account");
    System.out.println("exit");
    break;
    }
    }


    public static int getPWD () throws IOException{
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    String s = br.readLine();
    return Integer.parseInt(s);
    }}
      

  2.   

    粗略的改了下 当然不是很好。肯定是一个个的方法 然后在main函数里调用比较好。并且这些方法不用公开 因为只需要自己使用。或者可以做多个类来处理不同的块。import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;public class ATM {    public static void main(String[] args) throws IOException {
            ATM bank = new ATM();
            int password = bank.getPWD();
            bank.selectLanguage(password);
            int lan = bank.getPWD();
            bank.atmMenu(lan);
        }    private void selectLanguage(int password) {
            int i = 0;
            while (password != 123456) {            System.out.println("wrong password!!!");
                i++;
                if (i == 3) {
                    System.out.println("3 times wrong,bye");
                    System.exit(0);
                }
            }
            System.out.println("welcome,please choose");
            System.out.println("1-Chinese");
            System.out.println("2-English");
            System.out.println("Select Language");
        }    private void atmMenu(int lan) {
            switch (lan) {
            case 1:
                System.out.println("1get money");
                System.out.println("1change password");
                System.out.println("1account");
                System.out.println("1exit");
                break;
            case 2:
                System.out.println("2get money");
                System.out.println("2change password");
                System.out.println("2account");
                System.out.println("2exit");
                break;
            }
        }    private int getPWD() throws IOException {
            InputStreamReader isr = new InputStreamReader(System.in);
            BufferedReader br = new BufferedReader(isr);
            String s = br.readLine();
            return Integer.parseInt(s);
        }}
      

  3.   


        private int getPWD() throws IOException {
            InputStreamReader isr = new InputStreamReader(System.in);
            BufferedReader br = new BufferedReader(isr);
            String s = br.readLine();
            return Integer.parseInt(s);
        }Integer.parseInt(s)这里有个转换异常(NumberFormatException)需捕捉(当s不为数字字符串时)
      

  4.   

    银行-对象
    ATM机-对象
    目录一对象
    语言类型-对象
    账号-对象
    客户-对象
      

  5.   

    语言部分可以使用Java的国际化