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

日期: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,一经查实,立即删除!

相关文章

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…

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

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

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…

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

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

多服务器 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/…

知乎问答:现在程序员的工资是不是被高估了?

对于优秀的程序员来说&#xff0c;薪酬的天花板犹如发际线&#xff0c;没有最高只有更高。而对于只想「混日子」的程序员来说&#xff0c;高薪很可能是泡沫&#xff0c;风一吹就碎。 一、程序员的工资真的高吗&#xff1f; 《2018年中国程序员生存状况报告》&#xff0c;来源&a…

lombok 的bug?lombok 导致 springmvc 使用 @RequestBody注解 接收 json数据 对象参数绑定失败

大家好&#xff0c;我是烤鸭&#xff1a; lombok 导致 springmvc 使用 RequestBody注解 接收 json数据 对象参数绑定失败。 环境版本&#xff1a; spring 5.x 1. 场景复现 问题出现在创建对象的属性名称。比如我有一个类中的属性值是 String aTest; 首字…

web APIS

WEB API系列&#xff1a; 很多人都很迷惑&#xff0c;既然有了WCF为什么还要有WEB API&#xff1f;WEB API会不会取代WCF&#xff1f; 就我的看法&#xff0c;WCF提供的是一种RPC实现的集合&#xff0c;WCF的设计更多地考虑了SOA的场景&#xff0c;以及各种RPC的问题。很多人也…

dubbo 整合 zipkin,最简单的方式,亲测有效

大家好&#xff0c;我是烤鸭。 之前也试过网上很多版本&#xff0c;看了好多文章。现在分享最简单的方式&#xff0c;代码侵入性最小的。 1. 修改pom,引入jar。 <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency><…

[Network Architecture]DPN(Dual Path Network)算法详解(转)

https://blog.csdn.net/u014380165/article/details/75676216 论文&#xff1a;Dual Path Networks 论文链接&#xff1a;https://arxiv.org/abs/1707.01629 代码&#xff1a;https://github.com/cypw/DPNs MXNet框架下可训练模型的DPN代码&#xff1a;https://github.com/m…

javax.script.ScriptException: ReferenceError: xxx is not defined in eval

大家好&#xff0c;我是烤鸭&#xff1a; 今天使用 javax.script.ScriptEngine 遇到一个奇怪的问题&#xff0c;无法识别js方法。 1. 报错内容&#xff1a; javax.script.ScriptException: ReferenceError: "a" is not defined in <eval> at line number…

Python的特殊成员

Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格&#xff1a;避免用下划线作为变量名的开始。 现在我们来总结下所有的系统定义属性和方法&#xff0c; 先来看下保留属性&#…

java 实现 常见排序算法(四)基数排序

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下基础排序算法之基数排序。 1. 基数排序&#xff1a; 原理&#xff1a;基数排序&#xff08;radix sort&#xff09;属于“分配式排序”&#xff08;distribution sort&#xff09;&#xff0c;又称“桶子法”&#…

今天分享一下做支付宝小程序遇到的坑。ISV权限不足,建议在开发者中心检查对应功能是否已经添加。验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下做支付宝小程序遇到的坑。pom版本 <!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java --><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-j…

Will not attempt to authenticate using SASL | dubbo项目启动特别慢,拉取 zookeeper 服务日志打印特别慢

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下使用dubbo遇到的几个问题。 1. cause: KeeperErrorCode ConnectionLoss for /dubbo/ xxx 异常如下&#xff1a; pid9965&qos.accept.foreign.ipfalse&qos.enabletrue&qos.port10887&timestamp1567…

redis集群搭建【简版】

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下redis集群安装&#xff0c;写的比较简单&#xff0c;就是做个记录。 1. 下载&安装 wget http://download.redis.io/releases/redis-5.0.4.tar.gz tar -zxvf redis-5.0.4.tar.gz 解压并编译 https://redis.io/ 2.…

x-shell 通过堡垒机连接 ssh多个机器 自动化脚本

大家好&#xff0c;我是烤鸭&#xff1a; 1. 连接vpn 这一步就没什么说的了。我们用的easyconnect。登录后弹出堡垒机页面。 easyconnect 官网&#xff1a;https://sslvpn.zjweu.edu.cn/com/installClient.html 2. 登录堡垒机账号 登录堡垒机之后&#xff0c;如图&#xff…

javax.mail.MessagingException: while sending message;Connection reset by peer: socket write error

大家好&#xff0c;我是烤鸭&#xff1a; 阿里云邮件推送服务报错。当你也使用阿里云的邮件推送服务提示上面这个错误的话&#xff0c;我先告诉你原因和目前能想到的解决方案。 解决思路&#xff1a; 1. 换企业邮箱&#xff0c;阿里的上限15M&#xff0c;网易的不知道&…

李晓菁201771010114《面向对象程序设计(java)》第十三周学习总结

理论知识&#xff1a;事件处理 1.事件源&#xff1a;能够产生事件的对象都可以成为事件源&#xff0c;如文本框&#xff0c;按钮等。一个事件源是一个能够注册监听器并向监听器发送事件对象的对象。 2.事件监听器&#xff1a;事件监听器对象接收事件源发送的通告&#xff08;事…

记一次 OOM 的原因和处理 出现大量 close_wait,项目无法访问 activeMq和 poi 出现的 OOM

大家好&#xff0c;我是烤鸭: 记一次项目无法访问的事件和处理。由于某个模块每隔几天就会出现无法访问&#xff0c;目前的最简单粗暴的方法就是重启。 1. 现象 项目内日志打印正常&#xff0c;经过dubbo的rpc服务和接口调用正常。http接口无法访问。提示nginx 502。 2.…