Java单人答题的代码,逻辑如下:用户点击答题开始答题,后端随机返回10条题目,开始答题,答完第一道会显示正确错误,然后点击下一道出现下一题,答完题之后汇总该用户答题情况,返回正确答题数量,正确率
时间: 2024-03-12 20:49:17 浏览: 17
以下是一个示例代码,用于实现Java单人答题的逻辑:
首先,定义一个题目类,包含题目内容和答案:
```java
public Question {
private String content;
private String answer;
public Question(String content, String answer) {
this.content = content;
this.answer = answer;
}
public String getContent() {
return content;
}
public String getAnswer() {
return answer;
}
}
```
然后,定义一个题库类,用于保存所有的题目,并提供随机获取题目的方法:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class QuestionBank {
private List<Question> questions;
public QuestionBank(List<Question> questions) {
this.questions = questions;
}
public List<Question> getRandomQuestions(int count) {
Random random = new Random();
List<Question> result = new ArrayList<>();
for (int i = 0; i < count; i++) {
int index = random.nextInt(questions.size());
result.add(questions.get(index));
}
return result;
}
}
```
接下来,定义一个答题记录类,用于保存用户的答题情况:
```java
public class AnswerRecord {
private int correctCount;
private int totalCount;
public int getCorrectCount() {
return correctCount;
}
public void setCorrectCount(int correctCount) {
this.correctCount = correctCount;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public double getAccuracy() {
if (totalCount == 0) {
return 0;
}
return (double) correctCount / totalCount;
}
}
```
接下来,定义一个答题服务类,用于处理答题逻辑:
```java
import java.util.List;
public class QuizService {
private QuestionBank questionBank;
public QuizService(QuestionBank questionBank) {
this.questionBank = questionBank;
}
public List<Question> startQuiz(int count) {
return questionBank.getRandomQuestions(count);
}
public boolean checkAnswer(Question question, String answer) {
return question.getAnswer().equalsIgnoreCase(answer);
}
public AnswerRecord submitQuiz(List<Question> questions, List<String> answers) {
AnswerRecord record = new AnswerRecord();
for (int i = 0; i < questions.size(); i++) {
Question question = questions.get(i);
String answer = answers.get(i);
if (checkAnswer(question, answer)) {
record.setCorrectCount(record.getCorrectCount() + 1);
}
record.setTotalCount(record.getTotalCount() + 1);
}
return record;
}
}
```
最后,定义一个控制器类,用于处理用户的请求:
```java
import java.util.List;
import java.util.Scanner;
public class QuizController {
private QuizService quizService;
public QuizController(QuizService quizService) {
this.quizService = quizService;
}
public void startQuiz() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入题目数量:");
int count = scanner.nextInt();
List<Question> questions = quizService.startQuiz(count);
List<String> answers = new ArrayList<>();
for (int i = 0; i < questions.size(); i++) {
Question question = questions.get(i);
System.out.println("第" + (i + 1) + "题:" + question.getContent());
String answer = scanner.next();
answers.add(answer);
boolean isCorrect = quizService.checkAnswer(question, answer);
System.out.println(isCorrect ? "回答正确!" : "回答错误!");
}
AnswerRecord record = quizService.submitQuiz(questions, answers);
System.out.println("答题完成!");
System.out.println("你一共回答了" + record.getTotalCount() + "道题目,其中" + record.getCorrectCount() + "道题目回答正确,正确率为" + record.getAccuracy() + "。");
}
}
```
以上是一个简单的单人答题示例代码,可以根据实际需求进行修改和扩展。