Java 在线培训平台代码优化 - MySQLHelper 修改
/** * */ package ProjectExam;
import java.util.ArrayList; import java.util.List; import java.util.Scanner;
/**
- @author Lenovo
*/ public class OnlineTrainingHub { private static DBHelper dbHelper = new DBHelper();
/**
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println('欢迎来到OnlineTrainingHub!');
System.out.println('请选择您的语言:');
System.out.println('1.中文 2.English');
int language = scanner.nextInt();
switch (language) {
case 1:
System.out.println('中文界面');
break;
case 2:
System.out.println('English Interface');
break;
default:
System.out.println('输入错误!');
return;
}
System.out.println('请选择您的身份:');
System.out.println('1.管理员 2.用户');
int role = scanner.nextInt();
switch (role) {
case 1:
adminMenu();
break;
case 2:
userMenu();
break;
default:
System.out.println('输入错误!');
return;
}
}
private static void adminMenu() {
Scanner scanner = new Scanner(System.in);
System.out.println('管理员菜单:');
System.out.println('1.添加问题 2.查看问题');
int option = scanner.nextInt();
switch (option) {
case 1:
addQuestion();
break;
case 2:
viewQuestion();
break;
default:
System.out.println('输入错误!');
return;
}
}
private static void addQuestion() {
Scanner scanner = new Scanner(System.in);
System.out.println('请输入问题编号:');
int questionID = scanner.nextInt();
scanner.nextLine(); //清空缓冲区
System.out.println('请输入问题文本:');
String questionText = scanner.nextLine();
System.out.println('请输入选项A:');
String optionA = scanner.nextLine();
System.out.println('请输入选项B:');
String optionB = scanner.nextLine();
System.out.println('请输入选项C:');
String optionC = scanner.nextLine();
System.out.println('请输入选项D:');
String optionD = scanner.nextLine();
System.out.println('请输入答案(A/B/C/D):');
String answer = scanner.nextLine();
Question question = new Question(questionID, questionText, optionA, optionB, optionC, optionD, answer);
dbHelper.addQuestion(question);
System.out.println('问题添加成功!');
}
private static void viewQuestion() {
List<Question> questionList = dbHelper.getQuestionList();
for (Question question : questionList) {
System.out.println('问题编号:' + question.getQuestionID());
System.out.println('问题文本:' + question.getQuestionText());
System.out.println('选项A:' + question.getOptionA());
System.out.println('选项B:' + question.getOptionB());
System.out.println('选项C:' + question.getOptionC());
System.out.println('选项D:' + question.getOptionD());
System.out.println('答案:' + question.getAnswer());
}
}
private static void userMenu() {
Scanner scanner = new Scanner(System.in);
System.out.println('用户菜单:');
System.out.println('1.注册 2.登录');
int option = scanner.nextInt();
switch (option) {
case 1:
register();
break;
case 2:
login();
break;
default:
System.out.println('输入错误!');
return;
}
}
private static void register() {
Scanner scanner = new Scanner(System.in);
System.out.println('请输入用户名:');
String userName = scanner.nextLine();
System.out.println('请输入用户ID:');
String userID = scanner.nextLine();
System.out.println('请输入密码:');
String password = scanner.nextLine();
User user = new User(userName, userID, password);
dbHelper.addUser(user);
System.out.println('注册成功!');
}
private static void login() {
Scanner scanner = new Scanner(System.in);
System.out.println('请输入用户ID:');
String userID = scanner.nextLine();
System.out.println('请输入密码:');
String password = scanner.nextLine();
User user = dbHelper.getUser(userID, password);
if (user == null) {
System.out.println('登录失败!');
return;
}
quizScreen();
}
private static void quizScreen() {
List<Question> questionList = dbHelper.getQuestionList();
Scanner scanner = new Scanner(System.in);
int totalQuestions = 20;
int correct = 0;
int incorrect = 0;
for (int i = 0; i < totalQuestions; i++) {
Question question = questionList.get(i);
System.out.println('问题编号:' + question.getQuestionID());
System.out.println('问题文本:' + question.getQuestionText());
System.out.println('选项A:' + question.getOptionA());
System.out.println('选项B:' + question.getOptionB());
System.out.println('选项C:' + question.getOptionC());
System.out.println('选项D:' + question.getOptionD());
System.out.println('请输入答案(A/B/C/D):');
String answer = scanner.nextLine();
if (answer.equals(question.getAnswer())) {
correct++;
} else {
incorrect++;
}
}
double percentage = (double) correct / totalQuestions * 100;
System.out.println('总问题数:' + totalQuestions);
System.out.println('正确的:' + correct);
System.out.println('不正确的:' + incorrect);
System.out.println('百分比:' + percentage);
}
}
//用户类 public class User { private String userName; private String userID; private String password;
public User(String userName, String userID, String password) { this.userName = userName; this.userID = userID; this.password = password; }
public String getUserName() { return userName; }
public void setUserName(String userName) { this.userName = userName; }
public String getUserID() { return userID; }
public void setUserID(String userID) { this.userID = userID; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; } }
//问题类 public class Question { private int questionID; private String questionText; private String optionA; private String optionB; private String optionC; private String optionD; private String answer;
public Question(int questionID, String questionText, String optionA, String optionB, String optionC, String optionD, String answer) { this.questionID = questionID; this.questionText = questionText; this.optionA = optionA; this.optionB = optionB; this.optionC = optionC; this.optionD = optionD; this.answer = answer; }
public int getQuestionID() { return questionID; }
public void setQuestionID(int questionID) { this.questionID = questionID; }
public String getQuestionText() { return questionText; }
public void setQuestionText(String questionText) { this.questionText = questionText; }
public String getOptionA() { return optionA; }
public void setOptionA(String optionA) { this.optionA = optionA; }
public String getOptionB() { return optionB; }
public void setOptionB(String optionB) { this.optionB = optionB; }
public String getOptionC() { return optionC; }
public void setOptionC(String optionC) { this.optionC = optionC; }
public String getOptionD() { return optionD; }
public void setOptionD(String optionD) { this.optionD = optionD; }
public String getAnswer() { return answer; }
public void setAnswer(String answer) { this.answer = answer; } }
//管理员类
public class Admin {
private List
public Admin() { questionList = new ArrayList<>(); }
public void addQuestion(Question question) { questionList.add(question); }
public List
//MySQL数据库操作类 public class MySQLHelper { private Connection conn; private PreparedStatement ps; private ResultSet rs;
public MySQLHelper() { try { Class.forName('com.mysql.jdbc.Driver'); conn = DriverManager.getConnection('jdbc:mysql://localhost:3306/OnlineTrainingHub', 'root', 'password'); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } }
public void addUser(User user) { String sql = 'INSERT INTO User (userName, userID, password) VALUES (?, ?, ?)'; try { ps = conn.prepareStatement(sql); ps.setString(1, user.getUserName()); ps.setString(2, user.getUserID()); ps.setString(3, user.getPassword()); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } }
public User getUser(String userID, String password) { String sql = 'SELECT * FROM User WHERE userID=? AND password=?'; try { ps = conn.prepareStatement(sql); ps.setString(1, userID); ps.setString(2, password); rs = ps.executeQuery(); if (rs.next()) { String userName = rs.getString('userName'); return new User(userName, userID, password); } } catch (SQLException e) { e.printStackTrace(); } return null; }
public void addQuestion(Question question) { String sql = 'INSERT INTO Question (questionID, questionText, optionA, optionB, optionC, optionD, answer) VALUES (?, ?, ?, ?, ?, ?, ?)'; try { ps = conn.prepareStatement(sql); ps.setInt(1, question.getQuestionID()); ps.setString(2, question.getQuestionText()); ps.setString(3, question.getOptionA()); ps.setString(4, question.getOptionB()); ps.setString(5, question.getOptionC()); ps.setString(6, question.getOptionD()); ps.setString(7, question.getAnswer()); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } }
public List
public DBHelper() { mySQLHelper = new MySQLHelper(); }
public void addUser(User user) { mySQLHelper.addUser(user); }
public User getUser(String userID, String password) { return mySQLHelper.getUser(userID, password); }
public void addQuestion(Question question) { mySQLHelper.addQuestion(question); }
public List
原文地址: https://www.cveoy.top/t/topic/oLTZ 著作权归作者所有。请勿转载和采集!