Java 在线考试系统开发:管理员、用户角色和测验功能实现
import java.util.Scanner;
public class OnlineTrainingHub { // 声明管理员账号和密码 private static final String ADMIN_USERNAME = 'admin'; private static final String ADMIN_PASSWORD = 'admin123'; // 声明用户信息 private static String username; private static String userId; private static String password; // 声明问题数组 private static String[][] questions = new String[20][7]; // 声明计分变量 private static int score = 0;
public static void main(String[] args) {
// 首页选择语言
System.out.println('请选择语言:');
System.out.println('1.中文 2.英文 3.退出');
Scanner scanner = new Scanner(System.in);
int languageChoice = scanner.nextInt();
switch (languageChoice) {
case 1:
System.out.println('欢迎使用在线培训系统!');
break;
case 2:
System.out.println('Welcome to Online Training Hub!');
break;
case 3:
System.exit(0);
default:
System.out.println('输入有误,请重新选择!');
break;
}
// 身份选择页面
System.out.println('请选择您的身份:');
System.out.println('1.管理员 2.用户');
int identityChoice = scanner.nextInt();
switch (identityChoice) {
case 1:
adminLogin();
break;
case 2:
userLoginOrRegister();
break;
default:
System.out.println('输入有误,请重新选择!');
break;
}
}
// 管理员登录
private static void adminLogin() {
Scanner scanner = new Scanner(System.in);
System.out.println('请输入管理员账号:');
String adminUsername = scanner.nextLine();
System.out.println('请输入管理员密码:');
String adminPassword = scanner.nextLine();
if (adminUsername.equals(ADMIN_USERNAME) && adminPassword.equals(ADMIN_PASSWORD)) {
adminMainPage();
} else {
System.out.println('管理员账号或密码错误!');
adminLogin();
}
}
// 管理员主界面
private static void adminMainPage() {
Scanner scanner = new Scanner(System.in);
System.out.println('请选择操作:');
System.out.println('1.添加问题 2.查看问题 3.退出');
int adminChoice = scanner.nextInt();
switch (adminChoice) {
case 1:
addQuestion();
adminMainPage();
break;
case 2:
viewQuestions();
adminMainPage();
break;
case 3:
System.exit(0);
default:
System.out.println('输入有误,请重新选择!');
adminMainPage();
break;
}
}
// 添加问题
private static void addQuestion() {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 20; i++) {
System.out.println('请输入第' + (i + 1) + '个问题的信息:');
System.out.println('问题编号:');
questions[i][0] = scanner.nextLine();
System.out.println('问题文本:');
questions[i][1] = scanner.nextLine();
System.out.println('选项A:');
questions[i][2] = scanner.nextLine();
System.out.println('选项B:');
questions[i][3] = scanner.nextLine();
System.out.println('选项C:');
questions[i][4] = scanner.nextLine();
System.out.println('选项D:');
questions[i][5] = scanner.nextLine();
System.out.println('答案(A/B/C/D):');
questions[i][6] = scanner.nextLine();
}
System.out.println('问题添加成功!');
}
// 查看问题
private static void viewQuestions() {
System.out.println('问题列表如下:');
for (int i = 0; i < 20; i++) {
System.out.println('问题编号:' + questions[i][0]);
System.out.println('问题文本:' + questions[i][1]);
System.out.println('选项A:' + questions[i][2]);
System.out.println('选项B:' + questions[i][3]);
System.out.println('选项C:' + questions[i][4]);
System.out.println('选项D:' + questions[i][5]);
System.out.println('答案:' + questions[i][6]);
System.out.println('=====================');
}
}
// 用户登录或注册
private static void userLoginOrRegister() {
Scanner scanner = new Scanner(System.in);
System.out.println('请选择操作:');
System.out.println('1.注册 2.登录');
int userChoice = scanner.nextInt();
switch (userChoice) {
case 1:
System.out.println('请输入用户名:');
username = scanner.nextLine();
System.out.println('请输入用户ID:');
userId = scanner.nextLine();
System.out.println('请输入密码:');
password = scanner.nextLine();
System.out.println('注册成功!');
userLogin();
break;
case 2:
userLogin();
break;
default:
System.out.println('输入有误,请重新选择!');
userLoginOrRegister();
break;
}
}
// 用户登录
private static void userLogin() {
Scanner scanner = new Scanner(System.in);
System.out.println('请输入用户ID:');
String inputUserId = scanner.nextLine();
System.out.println('请输入密码:');
String inputPassword = scanner.nextLine();
if (inputUserId.equals(userId) && inputPassword.equals(password)) {
quiz();
} else {
System.out.println('用户ID或密码错误!');
userLogin();
}
}
// 测验
private static void quiz() {
Scanner scanner = new Scanner(System.in);
System.out.println('请阅读以下说明:');
System.out.println('1.问题总数20。');
System.out.println('2.每个问题得分为1分,没有负号。');
System.out.println('3.请从A/B/C/D中选择正确的答案。');
System.out.println('4.单击此⻚⾯底部的“保存”按钮以提交您的答案。');
System.out.println('5.要尝试下⼀个问题,请单击“下⼀步”。');
System.out.println('一旦出现下⼀个问题,您将⽆法重新回答上⼀个问题。');
System.out.println('按任意键开始测试...');
scanner.nextLine();
for (int i = 0; i < 20; i++) {
System.out.println('问题编号:' + questions[i][0]);
System.out.println('问题文本:' + questions[i][1]);
System.out.println('选项A:' + questions[i][2]);
System.out.println('选项B:' + questions[i][3]);
System.out.println('选项C:' + questions[i][4]);
System.out.println('选项D:' + questions[i][5]);
System.out.println('请输入您的答案(A/B/C/D):');
String answer = scanner.nextLine();
if (answer.equals(questions[i][6])) {
score++;
}
if (i == 19) {
System.out.println('测验结束!');
System.out.println('总问题数:' + 20);
System.out.println('正确的:' + score);
System.out.println('不正确的:' + (20 - score));
System.out.println('百分比:' + ((double) score / 20 * 100) + '%');
} else {
System.out.println('下一题(按任意键继续)...');
scanner.nextLine();
}
}
}
}
原文地址: https://www.cveoy.top/t/topic/oNgP 著作权归作者所有。请勿转载和采集!