1. 使用输入流读取试题文件,每次显示试题文件中的一道题目。读取到字符“*”时暂停读取,等待用户从键盘输入答案。用户做完全部题目后。程序给出用户的得分。 提示:通过文件字符输入流和缓冲流逐行读取文本文件a.txt,未读到分隔符*则输出显示试题,读到分隔符即提示用户输入答案。建议将标准答案和用户输入答案存放于字符串中,试题完成后对照两个字符串中的答案,给出相应成绩。注意捕获文件未找到异常和IO异常。 1) 试题内容如下: (1)北京奥运是什么时间开幕的? A.2008-08-08 B. 2008-08-01 C.2008-10-01 D. 2008-07-08 ******************** (2)下列哪个国家不属于亚洲? A.沙特 B.印度 C.巴西 D.越南 ******************** (3)下列哪个国家最爱足球? A.刚果 B.越南 C.老挝 D.巴西 ******************** (4)下列哪种动物属于猫科动物? A.鬣狗 B.犀牛 C.大象 D.狮子 ******************** 2)程序运行如下: (1)北京奥运是什么时间开幕的? A.2008-08-08 B. 2008-08-01 C.2008-10-01 D. 2008-07-08 输入选择的答案(A、B、C、D):A (2)下列哪个国家不属于亚洲? A.沙特 B.印度 C.巴西 D.越南 输入选择的答案(A、B、C、D):C
时间: 2023-06-27 21:07:56 浏览: 242
输入流练习题
以下是代码实现:
```python
import java.io.*;
public class Exam {
public static void main(String[] args) {
String filename = "a.txt";
File file = new File(filename);
BufferedReader reader = null;
int score = 0;
try {
reader = new BufferedReader(new FileReader(file));
String line = null;
String answer = null;
while ((line = reader.readLine()) != null) {
if (line.equals("********************")) {
System.out.print("输入选择的答案(A、B、C、D):");
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
answer = input.readLine();
if (answer.equals(reader.readLine().trim())) {
score++;
}
} else {
System.out.println(line);
}
}
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("您的得分为:" + score);
}
}
```
代码解析:
首先,我们定义了一个文件名变量 `filename`,然后使用 `File` 类创建文件对象 `file`。
接下来,我们使用 `BufferedReader` 类和 `FileReader` 类将文件读入缓冲区 `reader` 中。在读取每一行时,如果读取到了分隔符 `********************`,就提示用户输入答案。
用户输入答案后,我们将用户的答案与标准答案进行比对,如果相同,就给用户加一分。最后输出用户得分。
需要注意的是,在读取文件时可能会抛出 `FileNotFoundException` 异常或 `IOException` 异常,需要进行捕获和处理。
阅读全文