实验名称:《实验六 基于Java I/O的应用程序实验》 时间:2023.6.8 实验地点:信控楼406+412机房 实验目的及要求:掌握常用的输入输出流对应的类,掌握采用输入输出流进行文件读写的步骤。 实验内容:(1)事先编辑一个文本文件English.txt。该文件除最后一行外,每一行都包含了一个选择题的题干、可选答案、正确答案,且题干及每个答案之间都用“#”分隔。最后一行为字符串end。例如: He cut cloth with__sissors#a couple of#a pair of#two#a#a pair of End (2) 创建一个选择题类ChoiceQuestion,包含成员变量:题干(字符串)、可选答案(字符串数组)、正确答案(字符串),包含构造函数(带一个字符串参数,可以对字符串参数解析,并根据解析结果对成员变量赋值)和成员函数:输出题目,判断答案是否正确。输出题目的格式如下: He cut cloth with__sissors. A. a couple of B. a pair of C. two D. a (3) 编写程序,读文件English.txt,定义一个ChoiceQuestion对象数组,每次读一行数据构造一个ChoiceQuestion对象,调用ChoiceQuestion的输出题目函数输出题目。
时间: 2024-04-06 20:34:21 浏览: 73
好的,那么根据实验要求,我们需要先创建一个English.txt文件,其中包含多行选择题信息,每行都包含了一个选择题的题干、可选答案、正确答案,且题干及每个答案之间都用“#”分隔,最后一行为字符串end。例如:
He cut cloth with__sissors#a couple of#a pair of#two#a#a pair of
She is a__doctor. A. woman B. man C. child D. girl
The baby is__the bed. A. in B. on C. at D. to
The sun__in the east. A. rose B. rise C. rises D. raised
end
然后我们需要创建一个选择题类ChoiceQuestion,包含成员变量:题干(字符串)、可选答案(字符串数组)、正确答案(字符串),并包含构造函数和成员函数:输出题目,判断答案是否正确。输出题目的格式如下:
He cut cloth with__sissors.
A. a couple of
B. a pair of
C. two
D. a
接着,我们需要编写程序,读取English.txt文件,定义一个ChoiceQuestion对象数组,每次读一行数据构造一个ChoiceQuestion对象,调用ChoiceQuestion的输出题目函数输出题目。下面是一个可能的实现:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class EnglishTest {
public static void main(String[] args) {
// 读取文件内容到List中
List<String> lines = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("English.txt"))) {
String line;
while ((line = br.readLine()) != null) {
lines.add(line);
}
} catch (IOException e) {
e.printStackTrace();
}
// 将每行内容构造成ChoiceQuestion对象,并输出题目
for (String line : lines) {
if (!line.equals("end")) {
String[] parts = line.split("#");
String question = parts[0];
String[] options = new String[4];
for (int i = 0; i < 4; i++) {
options[i] = parts[i + 1];
}
String answer = parts[5];
ChoiceQuestion cq = new ChoiceQuestion(question, options, answer);
cq.showQuestion();
}
}
}
}
class ChoiceQuestion {
private String question;
private String[] options;
private String answer;
public ChoiceQuestion(String line) {
String[] parts = line.split("#");
question = parts[0];
options = new String[4];
for (int i = 0; i < 4; i++) {
options[i] = parts[i + 1];
}
answer = parts[5];
}
public ChoiceQuestion(String question, String[] options, String answer) {
this.question = question;
this.options = options;
this.answer = answer;
}
public void showQuestion() {
System.out.println(question);
for (int i = 0; i < 4; i++) {
System.out.println((char)('A' + i) + ". " + options[i]);
}
}
public boolean checkAnswer(String userAnswer) {
return userAnswer.equals(answer);
}
}
阅读全文