题库管理。管理员对试题信息的增、删、改、查、导入、导出管理。试题包括单选题、多选题和判断题3种题型。选择题包括题干、选项A、选项B、选项C、选项D、答案、题目解析等。判断题包括题干、选项A、选项B、答案、题目解析等。Java代码
时间: 2023-07-04 21:23:32 浏览: 35
以下是一个简单的Java代码示例,实现了题库管理系统中的增、删、改、查、导入、导出等功能:
```
import java.io.*;
import java.util.*;
class Question {
private int id;
private String content;
private String optionA;
private String optionB;
private String optionC;
private String optionD;
private String answer;
private String analysis;
private String type;
public Question(int id, String content, String optionA, String optionB, String optionC, String optionD,
String answer, String analysis, String type) {
this.id = id;
this.content = content;
this.optionA = optionA;
this.optionB = optionB;
this.optionC = optionC;
this.optionD = optionD;
this.answer = answer;
this.analysis = analysis;
this.type = type;
}
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;
}
public String getAnswer() {
return answer;
}
public String getAnalysis() {
return analysis;
}
public String getType() {
return type;
}
public String toString() {
return id + "," + content + "," + optionA + "," + optionB + "," + optionC + "," + optionD + ","
+ answer + "," + analysis + "," + type;
}
}
class QuestionBank {
private List<Question> questions = new ArrayList<>();
public void addQuestion(Question question) {
questions.add(question);
}
public void deleteQuestion(int id) {
for (Question question : questions) {
if (question.getId() == id) {
questions.remove(question);
break;
}
}
}
public void updateQuestion(Question question) {
for (int i = 0; i < questions.size(); i++) {
if (questions.get(i).getId() == question.getId()) {
questions.set(i, question);
break;
}
}
}
public List<Question> getQuestions() {
return questions;
}
public List<Question> getQuestionsByType(String type) {
List<Question> result = new ArrayList<>();
for (Question question : questions) {
if (question.getType().equals(type)) {
result.add(question);
}
}
return result;
}
public void importQuestions(String filename) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filename));
String line;
while ((line = reader.readLine()) != null) {
String[] fields = line.split(",");
int id = Integer.parseInt(fields[0]);
String content = fields[1];
String optionA = fields[2];
String optionB = fields[3];
String optionC = fields[4];
String optionD = fields[5];
String answer = fields[6];
String analysis = fields[7];
String type = fields[8];
Question question = new Question(id, content, optionA, optionB, optionC, optionD, answer, analysis, type);
questions.add(question);
}
reader.close();
}
public void exportQuestions(String filename) throws IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter(filename));
for (Question question : questions) {
writer.write(question.toString());
writer.newLine();
}
writer.close();
}
}
public class Test {
public static void main(String[] args) throws IOException {
QuestionBank questionBank = new QuestionBank();
// add question
questionBank.addQuestion(new Question(1, "2+2=?", "A. 1", "B. 2", "C. 3", "D. 4", "D", "解析1", "单选题"));
questionBank.addQuestion(new Question(2, "1+1=?", "A. 1", "B. 2", "C. 3", "D. 4", "B", "解析2", "单选题"));
questionBank.addQuestion(new Question(3, "2+3=?", "A. 4", "B. 5", "C. 6", "D. 7", "B", "解析3", "单选题"));
questionBank.addQuestion(new Question(4, "1+1=?", "A. 1", "B. 2", "C. 3", "D. 4", "B", "解析4", "多选题"));
questionBank.addQuestion(new Question(5, "2+2=?", "A. 1", "B. 2", "C. 3", "D. 4", "ABCD", "解析5", "多选题"));
questionBank.addQuestion(new Question(6, "1+1=?", "正确", "错误", "", "", "正确", "解析6", "判断题"));
// delete question
questionBank.deleteQuestion(1);
// update question
Question question = new Question(2, "1+1=?", "A. 1", "B. 2", "C. 3", "D. 4", "C", "解析7", "单选题");
questionBank.updateQuestion(question);
// get questions
List<Question> questions = questionBank.getQuestions();
for (Question q : questions) {
System.out.println(q);
}
// get questions by type
List<Question> singleQuestions = questionBank.getQuestionsByType("单选题");
for (Question q : singleQuestions) {
System.out.println(q);
}
// import questions
questionBank.importQuestions("questions.txt");
// export questions
questionBank.exportQuestions("questions_backup.txt");
}
}
```
这个例子定义了Question类和QuestionBank类,其中Question类包含了题目的各种信息,QuestionBank类用于管理题目,包括增、删、改、查、导入、导出等功能。在main方法中,初始化了一些题目,然后演示了各种功能的调用,包括添加、删除、更新、查询、导入、导出等。实际的题库管理系统需要更多的功能和复杂的实现。