修改后的代码如下:

package OneProject;

import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.ResourceBundle; import java.util.Scanner;

public class OnlineTrainingHub {

static int score = 0; // 用于记录用户的得分
static Scanner scanner = new Scanner(System.in);
static ResourceBundle bundle;

// 创建问题列表
static List<Question> questionList = createQuestionList();

public static void main(String[] args) {
    // 加载资源文件
    bundle = ResourceBundle.getBundle("OneProject.MessageBundle", Locale.getDefault());

    System.out.println(bundle.getString("languageChoice"));
    System.out.println("1." + bundle.getString("chinese") + " 2." + bundle.getString("english"));
    int languageChoice = scanner.nextInt();
    if (languageChoice == 1) {
        System.out.println(bundle.getString("welcomeChinese"));
    } else if (languageChoice == 2) {
        System.out.println(bundle.getString("welcomeEnglish"));
    }

    // 进入身份选择页面
    int roleChoice = showRoleChoicePage();
    if (roleChoice == 1) {
        // 进入管理员主页
        int adminChoice;
        do {
            adminChoice = showAdminMainPage();
            switch (adminChoice) {
                case 1:
                    addQuestion();
                    break;
                case 2:
                    viewQuestions();
                    break;
                case 3:
                    int roleChoice1 = showRoleChoicePage();
                    if (roleChoice1 == 2) {
                        // 进入用户页面
                        int userChoice;
                        do {
                            userChoice = showUserMainPage();
                            switch (userChoice) {
                                case 1:
                                    register();
                                    break;
                                case 2:
                                    login();
                                    break;
                                case 3:
                                    break;
                                default:
                                    System.out.println(bundle.getString("invalidOption"));
                                    break;
                            }
                        } while (userChoice != 3);
                    }
                    break;
                default:
                    System.out.println(bundle.getString("invalidOption"));
                    break;
            }
        } while (adminChoice != 3);
    } else if (roleChoice == 2) {
        // 进入用户页面
        int userChoice;
        do {
            userChoice = showUserMainPage();
            switch (userChoice) {
                case 1:
                    register();
                    break;
                case 2:
                    login();
                    break;
                case 3:
                    break;
                default:
                    System.out.println(bundle.getString("invalidOption"));
                    break;
            }
        } while (userChoice != 3);
    }
}

// 显示身份选择页面
public static int showRoleChoicePage() {
    System.out.println(bundle.getString("roleChoice"));
    System.out.println("1." + bundle.getString("admin") + " 2." + bundle.getString("user") + " 3."
            + bundle.getString("backToMain"));
    return scanner.nextInt();
}

// 显示管理员主页
public static int showAdminMainPage() {
    System.out.println(bundle.getString("adminGreeting"));
    System.out.println(bundle.getString("adminOptions"));
    return scanner.nextInt();
}

/**
 * 创建问题列表
 */
public static List<Question> createQuestionList() {
    List<Question> questionList = new ArrayList<>();
    for (int i = 1; i <= 20; i++) {
        Question question = new Question(i, bundle.getString("question") + i, bundle.getString("optionA"),
                bundle.getString("optionB"), bundle.getString("optionC"), bundle.getString("optionD"));
        questionList.add(question);
    }
    return questionList;
}

// 添加问题
public static void addQuestion() {
    System.out.println(bundle.getString("inputQuestionId"));
    int id = scanner.nextInt();
    System.out.println(bundle.getString("inputQuestionContent"));
    String content = scanner.next();
    System.out.println(bundle.getString("inputOptionA"));
    String optionA = scanner.next();
    System.out.println(bundle.getString("inputOptionB"));
    String optionB = scanner.next();
    System.out.println(bundle.getString("inputOptionC"));
    String optionC = scanner.next();
    System.out.println(bundle.getString("inputOptionD"));
    String optionD = scanner.next();
    Question question = new Question(id, content, optionA, optionB, optionC, optionD);
    questionList.add(question);
    System.out.println(bundle.getString("addQuestionSuccess"));
}

// 查看问题
public static void viewQuestions() {
    System.out.println(bundle.getString("allQuestions"));
    for (Question question : questionList) {
        System.out.println(question);
    }
}

// 显示用户主页
public static int showUserMainPage() {
    System.out.println(bundle.getString("userOptions"));
    return scanner.nextInt();
}

// 用户注册
public static void register() {
    System.out.println(bundle.getString("userWelcome"));
    System.out.println(bundle.getString("inputUsername"));
    String username = scanner.next();
    System.out.println(bundle.getString("inputPassword"));
    String password = scanner.next();
    System.out.println(bundle.getString("inputUserRole"));
    String role = scanner.next();
    System.out.println(bundle.getString("registerSuccess"));
}

// 用户登录
public static void login() {
    System.out.println(bundle.getString("inputUsername"));
    String username = scanner.next();
    System.out.println(bundle.getString("inputPassword"));
    String password = scanner.next();
    System.out.println(bundle.getString("loginSuccess"));
    startQuiz();
}

// 开始测验
public static void startQuiz() {
    System.out.println(bundle.getString("startQuiz"));
    for (int i = 0; i < 20; i++) {
        System.out.println(bundle.getString("questionNumber") + (i + 1) + ":");
        Question question = questionList.get(i);
        System.out.println(bundle.getString("questionId") + question.getId());
        System.out.println(bundle.getString("questionContent") + question.getContent());
        System.out.println(bundle.getString("optionA") + question.getOptionA());
        System.out.println(bundle.getString("optionB") + question.getOptionB());
        System.out.println(bundle.getString("optionC") + question.getOptionC());
        System.out.println(bundle.getString("optionD") + question.getOptionD());
        System.out.println(bundle.getString("selectAnswer"));
        String answer = scanner.next().toUpperCase();
        if (answer.equals("A") || answer.equals("B") || answer.equals("C") || answer.equals("D")) {
            if (answer.equals("A")) {
                answer = question.getOptionA();
            } else if (answer.equals("B")) {
                answer = question.getOptionB();
            } else if (answer.equals("C")) {
                answer = question.getOptionC();
            } else {
                answer = question.getOptionD();
            }
            if (answer.equals(bundle.getString("optionA"))) {
                score++;
            }
        } else {
            System.out.println(bundle.getString("invalidAnswer"));
            i--;
        }
    }
    System.out.println(bundle.getString("quizEnd"));
    System.out.println(bundle.getString("totalQuestions") + "20");
    System.out.println(bundle.getString("correctQuestions") + score);
    System.out.println(bundle.getString("incorrectQuestions") + (20 - score));
    System.out.println(bundle.getString("score") + score + "/20");
}

}

/**

  • 问题类 */ class Question { private int id; private String content; private String optionA; private String optionB; private String optionC; private String optionD;

    public Question(int i, String content, String optionA, String optionB, String optionC, String optionD) { this.id = i; this.content = content; this.optionA = optionA; this.optionB = optionB; this.optionC = optionC; this.optionD = optionD; }

    public int getId() { return id; }

    public String getContent() { return content; }

    public String getOptionA() { return optionA; }

    public String getOptionB() { return optionB; }

    public String getOptionC() { return optionC; }

    public String getOptionD() { return optionD; }

    @Override public String toString() { return bundle.getString("questionId") + id + "\n" + bundle.getString("questionContent") + content + "\n" + bundle.getString("optionA") + optionA + "\n" + bundle.getString("optionB") + optionB + "\n" + bundle.getString("optionC") + optionC + "\n" + bundle.getString("optionD") + optionD + "\n"; } }

需要创建一个名为MessageBundle的资源文件,其中包含了各种字符串的本地化信息,如下所示:

MessageBundle.properties

languageChoice=请选择语言: chinese=中文 english=英文 welcomeChinese=欢迎使用在线培训中心的测验管理系统! welcomeEnglish=Welcome to the Quiz Management System of Online Training Hub! roleChoice=请选择您的身份: admin=管理员 user=用户 backToMain=回到主界面 adminGreeting=管理员,您好! adminOptions=请选择您要进行的操作: addQuestion=添加问题 viewQuestions=查看问题 inputQuestionId=请输入问题编号: inputQuestionContent=请输入问题内容: inputOptionA=请输入选项A: inputOptionB=请输入选项B: inputOptionC=请输入选项C: inputOptionD=请输入选项D: addQuestionSuccess=问题添加成功! allQuestions=所有问题如下: userWelcome=欢迎注册在线培训中心的测验管理系统! inputUsername=请输入用户名: inputPassword=请输入密码: inputUserRole=请输入您的身份: registerSuccess=注册成功! userOptions=请选择您要进行的操作: startQuiz=请开始答题: questionNumber=第 questionId=问题编号: questionContent=问题内容: optionA=选项A: optionB=选项B: optionC=选项C: optionD=选项D: selectAnswer=请选择答案(A/B/C/D): invalidAnswer=

请利用java知识修改以下代码并实现本地化以保证正常运行package OneProject;import javautilArrayList;import javautilList;import javautilResourceBundle;import javautilScanner;public class OnlineTrainingHub static int score = 0

原文地址: https://www.cveoy.top/t/topic/hlSb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录