题干:

(实践题)使用输入流读取试题文件,每次显示试题文件中的一道题目。读取到字符“*”时暂停读取,等待用户从键盘输入答案。用户做完全部题目后。程序给出用户的得分(10分一道题)。
1)    试题内容如下:

(1)英雄联盟S9全球总决赛是什么时间开幕的?
    A.2018-08-08  B. 2018-08-01 
    C.2019-10-01 D. 2019-10-02
********************
(2)下列哪个英雄不属于《英雄联盟》?
   A.卡特  B.盲僧 C.剑豪  D.后羿
********************
(3).以下哪一句不是疾风剑豪亚索的台词?
    A.死亡如风,常伴吾身。B.面对疾风吧!C.真正的大师,永远都怀着一颗学徒的心。D.哈塞给!
********************
(4).英雄联盟世界S赛被OMG基地50血翻盘的战队是?
    A.SKT B.Najin C.FNC D.G2
********************
(5)英雄联盟中,戏称最争气的英雄是?
    A迅捷斥候  B蒸汽机器人  C德玛西亚之力  D疾风剑豪
********************

-------》程序运行如下:
(1)英雄联盟S9全球总决赛是什么时间开幕的?
A.2018-08-08  B. 2018-08-01 
C.2019-10-01 D. 2019-10-02
输入选择的答案(A、B、C、D):D
(2)下列哪个英雄不属于《英雄联盟》?
   A.卡特  B.盲僧 C.剑豪  D.后羿
输入选择的答案(A、B、C、D):D
...
...

完成试题,恭喜你 你最后的得分为:20 分。

*/

先浅浅打印一下,控制台打印成功

加入判断语句,使其在出现*时暂停读取,输入答案,试运行一下

基本实现我们想要的效果,但是当我输出小写字母的答案时,找不到与之相匹配的值,所以即便我答案正确也不得分,所以可以写一个输出错误语句。

java中“==”的使用回顾:

因为在Java中,如果是基本数据类型,则 == 比较的是值;如果是对象类型,则 == 比较的是对象的地址。

   //基本数据类型   ==判断的是值String str1 = "hello";String str2 = "hello";System.out.println(str1 == str2);

基本数据类型,==判断的是值,结果为true.

//引用数据类型,==判断的是他们在内存中存放的地址String str1 = new String("hi");String str2 = new String("hi");System.out.println(str1 == str2);

引用数据类型,==判断的是他们在内存中存放的地址,结果为false。

之前的语句

/        用String来存储String line;while ((line = br.readLine()) != null) {br.lines();if (!line.startsWith("*")) {System.out.println(line);} else {System.out.println("输入选择的答案(A、B、C、D):");String choice = sc.next();
//                拼接输入答案result = sb.append(choice.charAt(0)).toString();}}//        存储总得分int sum = 0;for (int i = 0; i < result.length(); i++) {
//            比较输入结果和答案if (result.charAt(i) == anser.charAt(i)) {sum += 10;}}System.out.println("完成试题,恭喜你 你最后的得分为:" + sum + "分。");

改进后:

//        用String来存储String line;while ((line = br.readLine()) != null) {br.lines();if (!line.startsWith("*")) {System.out.println(line);} else {
//                加入一个死循环,确保输错也能继续运行boolean flag = true;while (flag) {System.out.println("输入选择的答案(A、B、C、D):");String choice = sc.next();
//                    选择输入的内容与设置的答案相比较,都满足“不等于A/B/C/D”的条件if (!choice.equals("A") && !choice.equals("B")  && !choice.equals("C")  && !choice.equals("D")) {System.out.println("您输入的答案有误,请重新");} else {//                拼接输入答案result = sb.append(choice.charAt(0)).toString();flag = false;  //终止循环}}}}

完整运行可得:

(1)英雄联盟S9全球总决赛是什么时间开幕的?A.2018-08-08  B. 2018-08-01 C.2019-10-01 D. 2019-10-02
输入选择的答案(A、B、C、D):
a
您输入的答案有误,请重新
输入选择的答案(A、B、C、D):
A
(2)下列哪个英雄不属于《英雄联盟》?A.卡特  B.盲僧 C.剑豪  D.后羿
输入选择的答案(A、B、C、D):
D
(3).以下哪一句不是疾风剑豪亚索的台词?A.死亡如风,常伴吾身。B.面对疾风吧!C.真正的大师,永远都怀着一颗学徒的心。D.哈塞给!
输入选择的答案(A、B、C、D):
C
(4).英雄联盟世界S赛被OMG基地50血翻盘的战队是?A.SKT B.Najin C.FNC D.G2
输入选择的答案(A、B、C、D):
B
(5)英雄联盟中,戏称最争气的英雄是?A迅捷斥候  B蒸汽机器人  C德玛西亚之力  D疾风剑豪
输入选择的答案(A、B、C、D):
D
完成试题,恭喜你 你最后的得分为:30分。进程已结束,退出代码 0

完整代码如下:

package com.B.IOStream_14.CharDemo03.Ask;import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;//(实践题)使用输入流读取试题文件,每次显示试题文件中的一道题目。
// 读取到字符“*”时暂停读取,等待用户从键盘输入答案。用户做完全部题目后。
// 程序给出用户的得分(10分一道题)。
public class A4 {public static void main(String[] args) throws IOException {
//        创建输入流对象BufferedReader br = new BufferedReader(new FileReader("Temp\\问答题.txt"));
//        BufferedWriter bw = new BufferedWriter(new FileWriter("Temp\\itDemo\\array1.txt"));
//       StringBuilder拼接输入答案StringBuilder sb = new StringBuilder();
//键盘输入Scanner sc = new Scanner(System.in);
//        设置答案String anser = "DDCCD";
//初始化选择String result = null;
//读取试题文件
//        char[] chs = new char[1024];
//        int len;
//while ((len= br.read(chs)) != -1){
//    System.out.println(new String(chs,0,len));
//}//        用String来存储String line;while ((line = br.readLine()) != null) {br.lines();if (!line.startsWith("*")) {System.out.println(line);} else {
//                加入一个死循环,确保输错也能继续运行boolean flag = true;while (flag) {System.out.println("输入选择的答案(A、B、C、D):");String choice = sc.next();
//                    选择输入的内容与设置的答案相比较,都满足“不等于A/B/C/D”的条件if (!choice.equals("A") && !choice.equals("B")  && !choice.equals("C")  && !choice.equals("D")) {System.out.println("您输入的答案有误,请重新");} else {//                拼接输入答案result = sb.append(choice.charAt(0)).toString();flag = false;  //终止循环}}}}//        存储总得分int sum = 0;for (int i = 0; i < result.length(); i++) {
//            比较输入结果和答案if (result.charAt(i) == anser.charAt(i)) {sum += 10;}}System.out.println("完成试题,恭喜你 你最后的得分为:" + sum + "分。");//释放资源br.close();}
}

字符流问答小程序解题过程及拓展相关推荐

  1. 课程设计-在校整理-10 基于知识图谱的医疗智能问答小程序实现示例

    [在校整理-10 基于知识图谱的医疗智能问答小程序实现示例](注:仅供参考学习使用) 一.课题内容和要求 1.问题描述 2.功能要求 二.需求分析 三.概要设计 四.源程序代码 五.测试总结 六.其他 ...

  2. 微信小程序 登录过程

    微信小程序 登录过程 本文由笔者自己经验所得,不妥之处还望指教: 微信代码 php后端代码 流程 小程序请求code 小程序请求encryptedData 后端请求session_key 后端解密 小 ...

  3. 公众号如何引流?小程序也可以疯狂引流

    创业最害怕的是什么?万事俱备,就差客户. 对于创业者而言,产品再好.服务再好,卖不出去全白搭,找到适合自己的有效推广引流渠道,创业也就成功了一小半,并且兴棋博客还给看到最后的小伙伴准备了一份推广引流秘 ...

  4. 运营技能:从公众号引流到小程序(关注自动回复小程序消息)

    文章目录 引言 I 从公众号引流到小程序 1.1 小程序路径简介 1.2 获取小程序路径 1.3 公众号自动回复小程序消息 II 微信小程序组件的使用 2.1 关注公众号 2.2 效果 see als ...

  5. js实现审批流_小程序瀑布流组件:支持翻页与图片懒加载

    电商小程序中,用到瀑布流的地方非常多,每次都写一个瀑布流,重复一次逻辑,作为程序员,肯定是非常不愿意的. 瀑布流的形式都是大同小异,不同的是瀑布流中每个模块的内容,随业务而变化. 所以,我们把瀑布流框 ...

  6. 微信小程序自学过程中遇到的问题 转

    view标签下hover必须为true时,设置hover-class才有效,hover-start-time和hover-stay-time的形式如下: < view class="v ...

  7. 开发微信小程序的过程记录

    目录 1.运用阿里巴巴的IconFont 2.小程序需要运用到的路由类型 3.绝对定位下的水平居中实现 4.选择图片和视频 5. 小程序连接数据库 6.存储多个对象的数组 7. 上传图片等文件至服务器 ...

  8. 判断 小程序_第五届美亚杯赛前必备:从案情资料到小程序解题

    2019年11月11日 首届电子数据取证小程序大赛 截止投稿啦 同时 "美亚杯"第五届中国电子数据取证大赛 将于11月16日 正式拉开序幕 届时有小伙伴会使用取证小程序来解答吗美美 ...

  9. 实现阿里云物联网平台设备信息到微信小程序分享过程

    简要说明: 实现微信小程序连接阿里云物联网平台并且显示阿里云设备信息等,设备端采用模拟设备进行数据上传,并且利用规则引擎和自定义的Topic进行信息的接受和发送. 目前效果图 步骤: 1.注册阿里云物 ...

最新文章

  1. php中if规则,php中if函数用法
  2. matlab搜索路径
  3. 深入理解Java:注解(Annotation)基本概念、自定义注解、注解解析器
  4. java的imshow方法_如何在循环中使用子图,imshow或图形来显示所有图像?
  5. 翻译(九)——Clustered Indexes: Stairway to SQL Server Indexes Level 3
  6. 搭建PC架构的ISCSI存储系统
  7. WP7模拟器使用技巧
  8. Unix 文件和目录
  9. Vue 炫酷 Echarts 图表
  10. 大学生如何自学PR剪辑以及PS教程?
  11. 【每天学一点新知识】getshell???webshell???
  12. VirtualBox Linux网络配置
  13. 1.1各种编程语言的介绍
  14. 【Unity3D游戏教程】记忆翻牌游戏
  15. 平衡搜索树中的左单旋右单旋双旋
  16. 【Ubuntu】安装 ibus 中文拼音输入法
  17. java自动化测试语言高级之MySQL 连接
  18. 一道亚马逊算法面试题的情景分析
  19. 瑞萨E1仿真器(R0E000010KCE00)支持的MCU系列---78K Family
  20. python—xlwt模块详解

热门文章

  1. 计算机wps表格基础知识,全国计算机等级考试一级WPS Office考试大纲
  2. 中银泰月薪三千该如何进行理财
  3. IDEA 内容辅助键和快捷键
  4. isis宣告网络_ISIS知识点总结
  5. 快速入门:BUMO 节点安装运维指南
  6. 使用Anaconda Prompte安装pytorch,在pycharm使用torch遇到的问题
  7. erp系统系统核心需求_如何保护您的ERP系统?
  8. 超全!Linux 误删文件恢复命令及方法
  9. python实现四维地球api调用查询区域日新图影像并输出产品号
  10. 人工智能 Python基础(一)