英语选词训练程序(Java)

英语选词训练程序(Java-Myeclipse)

程序总体实现思路
定义列表语法: (1)根据提示,输入选择的题号。 (2)逐行进行搜索。
运用标记每读取一行,自动加一,匹配选择的题号
找到选择的题目后,锁定该行,进行后续的操作

(3)将锁定的文本行写到answer.txt文本文件中。

(4)解析:使用Scanner类解析文件,一共有七部分,分别是 1.题号 2.题目要求 3.A选项 4.B选项 5.C选项 6.D选项 7.正确答案。解析出来后放到一个字符串数组answer中。
(5)因为要输出题目要求,所以要输出字符数组的前六个数组元素(除了正确答案),以便让用户看到题目的要求,进行审题,从而选择用户认为正确的答案。
(6)提示用户输入所选答案
(7)进行匹配即与answer数组中的第七项进行匹配。
(8)字符串的相等比较用s.equals(s_2)
(9)输出匹配提示信息。

程序代码块

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class test {
    public static void main(String args[]) {  
    File file_1=new File("English.txt");
    File file_2=new File("answer.txt");
    int number;
    try {
   System.out.println("请输入您选择的题号:");
    //输入所选择的题号
    Scanner reader_1=new Scanner(System.in);
    int question=reader_1.nextInt();
    //解析题号,以后与输入的数值进行匹配
    Scanner sc_1=new Scanner(file_1);
    sc_1.useDelimiter("[^0123456789]+");
    while(sc_1.hasNextInt()){
        number=sc_1.nextInt();
        if(question==number){//匹配成功,将对应的题目行写入到answer.txt文件中,后边输出详细题意
         FileReader inOne = new FileReader(file_1);
         BufferedReader inTwo=new BufferedReader(inOne);

         String str=null;
         int n=0;
         FileOutputStream out=new FileOutputStream(file_2);

         while((str=inTwo.readLine())!=null){
                n=n+1;
             if(n==question){
                byte[] b=str.getBytes();
                out.write(b);
             }
         }
         out.close();
        inTwo.close();
        }
    }    
    //是否是匹配成功,并且提示信息
    System.out.println("所选择题目详细信息:");

        int i=0;
        Scanner sc_2=new Scanner(file_2);
        sc_2.useDelimiter("#");
        String[] answer=new String[7]; 
        while(sc_2.hasNext()){
              answer[i]=sc_2.next();   
              i=i+1;
     }
        int d=0;
        for(d=0;d<6;d++){
            System.out.println(answer[d]);
        }
        System.out.print("请输入您选择的答案:");
        Scanner sc=new Scanner(System.in);
        sc.useDelimiter("\n");
        String s = sc.nextLine();//输入你选择的正确答案       
        //将用户选择的题目进行解析,判断回答是否正确,正确与否均给出提示  
        String s_2=answer[6];
         if(s.equals(s_2)){
             System.out.println("回答正确,very good!!!");
         }else{
             System.out.println("回答错误,再接再厉!!!");
         } 
         //将answer.txt文件清空
         FileWriter fileWriter =new FileWriter(file_2);
         fileWriter.write("");
         fileWriter.flush();
         fileWriter.close();
    }catch(IOException e) {
     System.out.println(e);
    } 
   }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值