JAVA简易控制台选择题答题,改自书上代码

该博客介绍了一个基于JAVA的控制台应用,能够读取txt文件中的选择题进行答题,具体示例以2017年软件资格考试题目为蓝本。用户可在控制台进行交互式答题体验。
摘要由CSDN通过智能技术生成

读出txt文件中按一定规则存储的题目,以2017年的一次软考题目为例。

效果如下:

StandardExam.java


package com.company.com.fancy;
import java.io.*;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
//简易控制台答题
//借鉴《JAVA2实用教程(第五版)》P311
public class StandardExam {
    File testFile;
    public void setTestFile(File f){
        testFile=f;
    }
    public void startExam(){
        Scanner scanner= new Scanner(System.in);
        Pattern pattern=Pattern.compile("[A-Z]");//匹配答案
        Matcher matcher;
        try {
            FileReader inOne=new FileReader(testFile);
            BufferedReader inTwo=new BufferedReader(inOne);
            String s;
            while((s=inTwo.readLine())!=null){
                if(s.startsWith("【答案】")==false){      //非答案行直接输出
                    System.out.println(s);
                }else {                                 //在答案处停留,因为要在此输入答案
                    //先获取答案,按个数判断需要输入几次
                    String strAnswer="";//正确答案
                    matcher=pattern.matcher(s);
                    while(matcher.find()){
                        strAnswer+=matcher.group();
                    }
                    int answerNum = strAnswer.length();//当前题目答案数
                    System.out.printf("请输入答案,共%d个:",answerNum);
                    String selfAnswer=scanner.nextLine().replace(" ","");//去掉回答中的空格

                    if(selfAnswer.equals(strAnswer)){//答案是否完全吻合
                        System.out.println("--------------------正确\n");
                    }else{
                        System.out.println("--------------------错误");
                        System.out.println("【答案】"+strAnswer+"\n");
                    }
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


    }


}
Main.java
package com.company.com.fancy;
import java.io.File;
public class Main {

    public static void main(String[] args) {
        File examFile=new File("ruankao.txt");
        StandardExam exam=new StandardExam();
        exam.setTestFile(examFile);
        exam.startExam();
    }
}

ruankao.txt:

(1)以下关于防火墙功能特性的叙述中,不正确的是(1)。
 	(1)A.控制进出网络的数据包和数据流向
 		B.提供流量信息的日志和审计
 		C.隐藏内部IP以及网络结构细节
 		D.提供漏洞扫描功能
【答案】D
【解析】防火墙是被动防御,无法提供系统漏洞扫描

在程序执行过程中,Cache与主存的地址映射是由(2)完成的。
(2)A.操作系统		B.程序员调度		C.硬件自动		D.用户软件
【答案】C
【解析】典型的存储体系结构分为“高速缓冲存储器(Cache)←→主存←→辅存”三个层次。地址映像的作用之一是将CPU送来的主存地址转换成Cache地址。在程序的执行过程中,Cache与主存的地址映像由专门的硬件电路自动完成。

某四级指令流水线分别完成取指、取数、运算、保存结果四步操作。若完成上述操作的时间依次为8ns、9ns、 4ns、8ns,则该流水线的操作周期应至少为(3)ns 。
(3)A.4					B.8					C.9					D.33 
【答案】C
【解析】流水线稳定之后,9s就会完成一个周期

内存按字节编址。若用存储容量为32Kx8bit的存储器芯片构成地址从AOOOOH到DFFFFH 的内存,则至少需要(4)片芯片。
(4)A.4					B.8					C.16				D.32
【答案】B
【解析】DFFFFH-AOOOOH +1=40000H=4*164;因为是按字节编址,所以所需芯片数为:4*164/(32*1024)=8

计算机系统的主存主要是由(5)构成的。
 	(5)A.DRAM				B.SRAM				C.Cache			D.EEPROM
【答案】A
【解析】
DRAM(Dynamic Random Access Memory),即动态随机存取存储器,最为常见的系统内存。
SRAM(Static Random Access Memory),即静态随机存取存储器。它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。
Caché,是 一种后关系型数据库。能并发访问同一数据的数据库技术。
EEPROM (Electrically Erasable Programmable read only memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。

以下关于海
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值