关于我的代码在课上第一时间没有运行出来这件事

日期:2018.11.15

博客期:024

星期四

 

  今天上课老师又出题了,这次的题目是去利用文件的读写去完成文件的读写答题!那为什么我没有第一时间做出来呢?原因我分析了以下几点:

  1、我第一时间对题意没有准确的审视,我先做出来的是直接利用文件读写同时完成!呃~简单来说就是在题目判断的同时向文件里写入内容。等发现分两步做的时候,已经过了第一时间了。

  2、我的代码库确实很鸡肋!虽然存着上一回的代码,但是我发现还需要改一些问题,那就是...文件的读写相关方法!在之前的Question类里,我就只有leftNumber和operator、rightNumber、id三个数据成员,不能实现多个数的运算!

  3、我的态度很敷衍,看到自己在第一时间快结束的时候还没有做完,心态就会感觉爆炸一样!后面做题也很难受!我觉得以后做Java软件还是需要放松一点...

  4、我对于文件的读写都是通过固定的模式来实现的,其他的方法我也没有去做更深一步的研究。看到要用BufferedReader做,自己的Scanner配套PrintWriter的模式用不上,自然做起来也就相等难受!

  5、老师说不要用web界面的时候,自己是很难受的,毕竟最近一直在学习Java web方面的知识,曾经的Java知识也没有去管,可能对Java控制台界面有点陌生了?

  原因看起来很好笑,但却是很实际的。我觉得我能从这次的练习学到很多生活、学习方法,以及改变了我的心态!所以,我还是得到很多的!

 

  代码:

  1 package src;
  2 
  3 import java.io.File;
  4 import java.io.IOException;
  5 import java.io.PrintWriter;
  6 
  7 public class Question {
  8     //题目号
  9     private int id;
 10     //左操作数
 11     private int leftNumber;
 12     //右操作数
 13     private int rightNumber;
 14     //操作符
 15     private char operator;
 16     //随即构造器
 17     private long temp = System.currentTimeMillis();
 18     //最大值
 19     private int MaxValue = 1000;
 20     //重设方法
 21     public void reset(){
 22         renew();
 23         int cx = (int)(temp)%4;
 24         renew();
 25         char x = '\0';
 26         switch(cx)
 27         {
 28         case 0:x='+';break;
 29         case 1:x='-';break;
 30         case 2:x='*';break;
 31         case 3:x='/';break;
 32         }
 33         reset(x);
 34     }
 35     public void reset(char x){
 36         leftNumber = (int)temp%MaxValue+1;
 37         renew();
 38         rightNumber = (int)temp%MaxValue+1;
 39         renew();
 40         if(x=='+')
 41         {
 42             operator='+';
 43             if(leftNumber+rightNumber>=MaxValue||rightNumber<MaxValue/MaxValue/10||leftNumber<MaxValue/100)
 44                 reset('+');
 45         }
 46         else if(x=='-')
 47         {
 48             operator='-';
 49             if(leftNumber<rightNumber||rightNumber<MaxValue/10)
 50                 reset('-');
 51         }
 52         else if(x=='*')
 53         {
 54             operator='*';
 55             if(leftNumber>MaxValue/10&&rightNumber>MaxValue/10||rightNumber==1||leftNumber==1)
 56                 reset('*');
 57         }
 58         else if(x=='/')
 59         {
 60             operator='/';
 61             if(leftNumber<rightNumber||leftNumber%rightNumber!=0||rightNumber==1)
 62                 reset('/');
 63         }
 64     }
 65     //set、get方法
 66     public int getId() {
 67         return id;
 68     }
 69     public void setId(int id) {
 70         this.id = id;
 71     }
 72     public int getLeftNumber() {
 73         return leftNumber;
 74     }
 75     public void setLeftNumber(int leftNumber) {
 76         this.leftNumber = leftNumber;
 77     }
 78     public int getRightNumber() {
 79         return rightNumber;
 80     }
 81     public void setRightNumber(int rightNumber) {
 82         this.rightNumber = rightNumber;
 83     }
 84     public char getOperator() {
 85         return operator;
 86     }
 87     public String getOperator(boolean x) {
 88         return (operator+"");
 89     }
 90     public void setOperator(char operator) {
 91         this.operator = operator;
 92     }
 93     //得到结果
 94     public int answer(){
 95         if(operator=='+')
 96             return leftNumber+rightNumber;
 97         else if(operator=='-')
 98             return leftNumber-rightNumber;
 99         else if(operator=='*')
100             return leftNumber*rightNumber;
101         else if(operator=='/')
102             return leftNumber/rightNumber;
103         else
104             return 0;
105     }
106     //输出数据
107     public void print(){
108         System.out.print(id+"、 "+leftNumber+" "+operator+" "+rightNumber+" = ");
109     }
110     public void println(){
111         System.out.println(id+"、 "+leftNumber+" "+operator+" "+rightNumber+" = ");
112     }
113     //输出到文件
114     public void PrintToFile(File f) throws IOException{
115         PrintToFile(1,f,false,false,false);
116     }
117     public void PrintToFile(int number,File f) throws IOException{
118         PrintToFile(number,f,false,false,false);
119     }
120     public void PrintToFile(int number,File f,boolean hasID) throws IOException{
121         PrintToFile(number,f,hasID,false,false);
122     }
123     public void PrintToFile(int number,File f,boolean hasID,boolean hasEquals) throws IOException{
124         PrintToFile(number,f,hasID,hasEquals,false);
125     }
126     public void PrintToFile(int number,File f,boolean hasID,boolean hasEquals,boolean hasAnswer) throws IOException{
127         if(f.exists())
128             f.delete();
129         f.createNewFile();
130         PrintWriter pw = new PrintWriter(f);
131         for(int i=1;i<=number;++i)
132         {
133             if(hasID)
134                 pw.print(id+"、 ");
135             pw.print(leftNumber+" "+operator+" "+rightNumber);
136             if(hasEquals)
137                 pw.print(" = ");
138             if(hasAnswer)
139                 pw.print(answer());
140             pw.println();
141         }
142         pw.close();
143     }
144     //更新随机数
145     public void renew(){
146         temp = ((temp*16807)%Integer.MAX_VALUE);
147     }
148     //构造方法
149     public Question(){
150         id = 1;
151         reset();
152         try {
153             Thread.sleep(2);
154         } catch (InterruptedException e) {
155             // TODO 自动生成的 catch 块
156             e.printStackTrace();
157         }
158     }
159     public Question(int ID){
160         id = ID;
161         reset();
162         try {
163             Thread.sleep(2);
164         } catch (InterruptedException e) {
165             // TODO 自动生成的 catch 块
166             e.printStackTrace();
167         }
168     }
169     public Question(int l,char o,int r){
170         id = 1;
171         leftNumber = l;
172         operator = o;
173         rightNumber = r;
174     }
175     public Question(int ID,int l,char o,int r){
176         id = ID;
177         leftNumber = l;
178         operator = o;
179         rightNumber = r;
180     }
181     public Question(int ID,char []operator,int length,int MaxValue){
182         try {
183             Thread.sleep(2);
184         } catch (InterruptedException e) {
185             // TODO 自动生成的 catch 块
186             e.printStackTrace();
187         }
188     }
189     //主方法
190     public static void main(String[] args) {
191         Question [] p = new Question [30];
192         for(int i=0;i<30;++i)
193         {
194             p[i] = new Question(i+1);
195             p[i].println();
196         }
197     }
198 }
Question.java
 1 package src;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.BufferedWriter;
 5 import java.io.File;
 6 import java.io.FileWriter;
 7 import java.io.IOException;
 8 import java.io.InputStreamReader;
 9 import java.util.Scanner;
10 
11 public class Test {
12     public void test1(int Add) throws IOException
13     {
14         File f = new File("question/Test.txt");
15         if(f.exists())
16             f.delete();
17         f.createNewFile();
18         
19         BufferedWriter bw = new BufferedWriter(new FileWriter(f));
20         for(int i=1;i<=Add;++i)
21         {
22             Question q = new Question(i);
23             bw.write(q.getId()+"、 "+q.getLeftNumber()+" "+q.getOperator()+" "+q.getRightNumber()+" = ");
24             bw.newLine();
25             bw.write(Integer.toString(q.answer()));
26             bw.newLine();
27             bw.write("*****************************");
28             bw.newLine();
29         }
30         bw.close();
31     }
32     public int test2(int Add) throws IOException{
33         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
34         Scanner sc = new Scanner(new File("question/Test.txt"));
35         int score = 0;
36         for(int i=1;i<=Add;++i)
37         {
38             Question q = new Question(i);
39             sc.next();
40             int leftNumber = sc.nextInt();
41             char operator = sc.next().charAt(0);
42             int rightNumber = sc.nextInt();
43             q.setLeftNumber(leftNumber);
44             q.setOperator(operator);
45             q.setRightNumber(rightNumber);
46             q.println();
47             sc.nextLine();
48             sc.nextLine();
49             sc.nextLine();
50             boolean temp = false;
51             int answer = 0;
52             while(!temp)
53             {
54                 String str = br.readLine();
55                 int l = str.length();
56                 char []c = str.toCharArray();
57                 for(int j = 0;j<l;++j)
58                     if(!(c[j]>='0'&&c[j]<='9'))
59                     {
60                         temp = false;
61                         continue;
62                     }
63                 temp = true;
64                 answer = Integer.parseInt(str);
65             }
66             if(answer==q.answer())
67             {
68                 System.out.println("结果正确!");
69                 ++score;
70             }
71             else
72             {
73                 System.out.println("结果错误!");
74             }
75             System.out.println("*****************************");
76         }
77         return score;
78     }
79     public static void main(String[] args) throws IOException {
80         int Add = 3;
81         Test t = new Test();
82         t.test1(Add);
83         int score = t.test2(Add);
84         System.out.println("您共回答了"+Add+"道题,正确"+score+"道,错误"+(Add-score)+"道");
85     }
86 }
Test.java

 

  截图:

 

 

  

转载于:https://www.cnblogs.com/onepersonwholive/p/9966295.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] 有哪些方式可以对一个DOM设置它的CSS样式?

[css] 有哪些方式可以对一个DOM设置它的CSS样式&#xff1f; 1.可以使用行内样式 2.可以使用style标签 3.可以使用link引入css文件 4.可以使用js动态修改个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨…

【Shiro】Unsatisfied dependency expressed through method 'securityManager' parameter 3

大家好&#xff0c;我是烤鸭&#xff1a; 采坑记录&#xff0c;springboot 整合 shiro。 环境&#xff1a; springboot 2.0.5.RELEASE shiro-spring 1.4.0 shiro-redis 3.1.0 1.问题 org.springframework.beans.factory.UnsatisfiedDependencyException: Error crea…

pytest+allure生成漂亮的报告+显示

一&#xff1a;环境准备 1.python3.62.windows环境3.pycharm4.pytest-allure-adaptor5.allure2.8.06.java1.8pytest-allure-adaptor快速安装 在cmd中输入 pip install pytest-allure-adaptor&#xff0c;回车 二&#xff1a;报告生成 第1步&#xff1a;下载allure.zip&#xff…

[css] 举例说明实现圆角的方式有哪些?

[css] 举例说明实现圆角的方式有哪些&#xff1f; 不使用 border-radius 的情况下只能用切图代替。此时非常有局限性&#xff0c;因为必须要定高定宽了。最常用的 border-radius 来实现。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; …

springboot项目 tomcat8.x 频繁宕机 原因分析

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一次线上tomcat宕机原因。 1 . 最近两次的宕机时间部分日志 1.1 2019-04-04 13:22:27.187 [Thread-10] INFO o.s.context.support.DefaultLifecycleProcessor - Stopping beans in phase 0 2019-04-04 13:22:27.188 [Thread…

Linux内核程序的编译:模块化编译

内核在编译的时候&#xff0c;可以支持单独模块化编译&#xff0c;只需要一个小小的Makefile即可搞定。 步骤如下&#xff1a; 1.在任意位置创建目录 vim Makefile 2.在Makefile中添加如下代码(我的kernel目录是/opt/kernel_xilinx_v4.4)&#xff1a; obj-m my_drv.oall:make …

[css] 有用过scss和sass吗?说说它们之间的区别是什么?

[css] 有用过scss和sass吗&#xff1f;说说它们之间的区别是什么&#xff1f; sass和scss其实是一样的css预处理语言&#xff0c;其后缀名是分别为 .sass和.scss两种。SASS版本3.0之前的后缀名为.sass&#xff0c;而版本3.0之后的后缀名.scss。两者是有不同的&#xff0c;继sa…

This subject is anonymous - it does not have any identifying principals and authorization operations

大家好&#xff0c;我是烤鸭&#xff1a; 最近使用shiro&#xff0c;遇到如下问题&#xff1a; 严重: Servlet.service() for servlet [dispatcherServlet] in context with path [/etc] threw exception [Request processing failed; nested exception is org.apache.shiro.a…

[css] absolute的containing block(容器块)计算方式和正常流有什么区别?

[css] absolute的containing block&#xff08;容器块&#xff09;计算方式和正常流有什么区别&#xff1f; absolute会先向上找到第一个position不为static或者fixed的祖先元素&#xff0c;然后根据该祖先元素的display属性分类讨论。 如果为块级元素&#xff0c;则为该块级元…

PC网页js调用本地应用程序

最近要现实一个在PC网页中实现点击按钮调用本地应用程序的功能 其实实现原理也非常简单&#xff0c; 首先注册一个本地注册表文件&#xff0c;指向本地应用程序路径 其次在网页中用js指向这个注册表文件&#xff0c;就可以实现网页调用本地应用程序 Windows Registry Editor V…

[css] 说说visibility属性的collapse属性值有什么作用?在不同浏览器下有什么区别?

[css] 说说visibility属性的collapse属性值有什么作用&#xff1f;在不同浏览器下有什么区别&#xff1f; 设置visibility: collapse后对于普通元素来说跟visibility: hidden效果一样&#xff0c;隐藏元素&#xff0c;且占用空间 但对于一些table元素&#xff0c;比如row、col…

springboot 多数据源 读写分离 AOP方式

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享springboot读写分离配置。 环境&#xff1a; springboot 2.1.0.RELEASE 场景说明&#xff0c;目前的需求是 读数据源 * 2 写数据源 * 1 1. 配置文件 application.yml server:port: 8085 spring:application:name: test-d…

强大的jQuery图片查看器插件Viewer.js

简介 Viewer.js 是一款强大的图片查看器 Viewer.js 有以下特点&#xff1a;支持移动设备触摸事件支持响应式支持放大/缩小支持旋转&#xff08;类似微博的图片旋转&#xff09;支持水平/垂直翻转支持图片移动支持键盘支持全屏幻灯片模式&#xff08;可做屏保&#xff09;支持缩…

【Can not lock the registry cache file】同一台机器部署多个dubbo应用(配置文件相同)

大家好&#xff0c;我是烤鸭&#xff1a; 场景是&#xff1a; 多个项目&#xff08;配置文件相同&#xff09;部署同一个服务器&#xff0c;部署的代码大部分相同。&#xff08;具体原因是同一个项目的不同分支部署了两次&#xff09; 启动之后&#xff0c;一直在报这个错误&a…

[css] 使用纯CSS代码实现动画的暂停与播放

[css] 使用纯CSS代码实现动画的暂停与播放 一个属性&#xff1a;animation-play-state 取值&#xff1a;paused&#xff08;暂停&#xff09;|running&#xff08;播放&#xff09; hover取代点击 .stop:hover~.animation { animation-play-state: paused; }checked伪类 radio…

201771010137 赵栋 《第十二周学习总结》

一&#xff1a;理论部分 1.&#xff08;1&#xff09; 用户界面(User Interface)用户与计算机系统(各种程序)交互的接口 &#xff08;2&#xff09;图形用户界面(Graphical User Interface)以图形方式呈现的用户界面 2.AWT:Java 的抽象窗口工具箱&#xff08; Abstract WindowT…

linux cron 定时任务无效 /var/spool/cron/xxx

大家好&#xff0c;我是烤鸭&#xff1a; 关于配置了 /var/spool/cron/root 表达式后无效。 vi /var/spool/cron/root root中内容 0 1/1 * * * ? sh /opt/web_app/sh/check_kibana.sh 单独执行 check_kibana.sh 是没有问题的。 应该是cron服务没启动。 参考文章&#xff1a…

[css] 举例说明伪类:nth-child、:first-child与:first-of-type这三者有什么不同?

[css] 举例说明伪类:nth-child、:first-child与:first-of-type这三者有什么不同&#xff1f; <div> <p>大儿子</p> <div>二儿子</div> <p>三儿子</p> </div> <p>二叔</p> <div>三叔<div>div:nth-chi…

多服务器 elk 搭建 [elasticsearch 7.0 ]

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下多服务器的elk搭建。 1. 流程规划 2. 执行搭建 最新的版本和对应下载地址可以在官网查询到 https://www.elastic.co/cn/products/ 2.1 elasticsearch 7.0 搭建 2.1.1 下载 wget https://artifacts.elastic.co/…

[css] 请举例说明伪元素 (pseudo-elements) 有哪些用途?

[css] 请举例说明伪元素 (pseudo-elements) 有哪些用途&#xff1f; 可以不用再多写一个 dom可以用 content 搭配出很多效果例子&#xff1a;固定尺寸 2:1 的容器文本前后增加 icon 或图片使用 data-* 和 content: attr(data-*) 搭配使用 :hover 和 content 搭配出很多效果作为…