Java课程课堂测试05
大致要求:将十道计算题输出至TXT文件,再读取文件至控制台,然后在控制台中输入答案并评判对错
我在大致的要求当中已经将我的设计思路体现了出来
首先,实现计算题的设计,第二步要对计算题循环,将答案存到一个数组当中便于核对,然后利用文件流将计算题输出到文件中,然后再用文件流读到控制台然后,然后再在控制台中输入自己的答案和已经储存好的答案进行对比,并且判断对错。
package LessonTest;
import java.io.*;
public class four1 {
static int []sum = new int[10];
public void input() throws IOException
{
int nummin, nummax;
String str1;
String str2;
char []ch= {'+','-','*','/'};
int cha;
File f = new File("C:/D/log.txt");
FileOutputStream fop = new FileOutputStream(f);
// 构建FileOutputStream对象,文件不存在会自动新建
OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");
// 构建OutputStreamWriter对象,参数可以指定编码,默认为操作系统默认编码,windows上是gbk
for(int i=0;i<10;i++)
{
nummax=(int)(Math.random()*1000);
nummin=(int)(Math.random()*1000);
cha=(int)(Math.random()*4);
if(ch[cha]=='+'||ch[cha]=='-')
{
if(ch[cha]=='+')
sum[i]=nummax+nummin;
else
sum[i]=nummax-nummin;
str1=Integer.toString(nummax);
str2=Integer.toString(nummin);
writer.append(str1);
writer.append(ch[cha]);
writer.append(str2);
writer.append("=");
}
else if(ch[cha]=='*')
{
sum[i]=nummax*nummin;
nummax=(int)(Math.random()*100);
nummin=(int)(Math.random()*100);
str1=Integer.toString(nummax);
str2=Integer.toString(nummin);
writer.append(str1);
writer.append(ch[cha]);
writer.append(str2);
writer.append("=");
}
else if(ch[cha]=='/')
{
nummin=(int)(Math.random()*10)+1;
while(nummax%nummin!=0)
{
nummax=(int)(Math.random()*1000);
nummin=(int)(Math.random()*10)+1;
}
sum[i]=nummax/nummin;
str1=Integer.toString(nummax);
str2=Integer.toString(nummin);
writer.append(str1);
writer.append(ch[cha]);
writer.append(str2);
writer.append("=");
}
// 写入到缓冲区
writer.append("\r\n");
// 换行
}
writer.close();
// 刷新缓存冲,写入到文件,如果下面已经没有写入的内容了,直接close也会写入
// 关闭写入流,同时会把缓冲区内容写入文件,所以上面的注释掉
fop.close();
// 关闭输出流,释放系统资源
FileInputStream fip = new FileInputStream(f);
// 构建FileInputStream对象
InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
// 构建InputStreamReader对象,编码与写入相同
StringBuffer sb = new StringBuffer();
while (reader.ready()) {
sb.append((char) reader.read());
// 转成char加到StringBuffer对象中
}
reader.close();
// 关闭读取流
fip.close();
// 关闭输入流,释放系统资源
}
}
package LessonTest; import java.io.*;
import java.util.Scanner; public class four2
{ public void name()throws Exception
{
String in=in("C:/D/log.txt");
System.out.println(in);
}
private String in(String file) throws IOException {
// TODO Auto-generated method stub
int num; Scanner in=new Scanner(System.in);
File f=new File(file);
BufferedReader bf=new BufferedReader(new FileReader(f));
String content="";
for(int i=0;i<10;i++)
{
content=bf.readLine();
System.out.println(content);
num=in.nextInt();
if(num==four1.sum[i])
System.out.println("对");
else
System.out.println("不对");
} return null;
} }
package LessonTest; import java.io.IOException;
import java.util.Scanner; public class main { public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
four1 f1=new four1();
f1.input();
four2 f2=new four2();
f2.name(); } }
在课堂上没有做出来的原因,对于文件流的使用不是非常的熟练,所以导致没有很快的写出程序。
Java课程课堂测试05的更多相关文章
- JAVA语言课堂测试源代码及使用截图
1源代码 第一部分 package 开学测试.java;class ScoreInformation {String stunumber;String name;double mathematicss ...
- JAVA web课堂测试1
1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分)2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成.(1分)3性别:要求用单选框或下拉框实现 ...
- 2019.9.30极限测试 04.JAVA语言课堂测试试卷-极限测试
题目存储在上传的文件当中. 代码实现 Subway 类: package ClassroomTest; public class Subway { private String railway; pr ...
- Java课程课堂作业代码
前言 本文章只是单纯记录课堂老师布置的课堂作业代码,题目都比较简单,所以没有写解题思路,相信大家都能理解,当然其中有的解法和代码不是最优的,当时只是为了完成题目,后来也懒得改了,如果有不恰当或者不正确 ...
- java课程课后作业05之动手动脑
一.使用Files. walkFileTree()找出指定文件夹下所有大于指定大小(比如1M)的文件 此代码没有使用walkfiletree,两者的差别在于walkfiletree在遍历文件的时候有一 ...
- JAVA语言课堂测试01源代码(学生成绩管理系统)
package 考试; /*信1807-8 * 20183798 * 向瑜 */ import java.util.Scanner; //ScoreInformation 类 class ScoreI ...
- java web课堂测试
下面是web界面 <%@ page language="java" import="java.util.*" pageEncoding="UTF ...
- JAVA首次课堂测试总结
暑期生活已经结束,新的学期也已经开始,而暑期放假之前约定的JAVA首次课堂测试也如期的到来,本次测试真的可以学到和多东西,也有很多感想. 首先体会最深的就是系主任所说的软件工程不是那么好学的,真的需要 ...
- 20172306 2018-2019《Java程序设计与数据结构课堂测试补充报告》
学号 2017-2018-2 <程序设计与数据结构>课堂测试补充报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 刘辰 学号:20172306 实验教师:王志强 必 ...
随机推荐
- C# Activator
需要动态的创建一个实例模型的时候,就用Activator.CreateInstance(Type type);如果是明确的知道要创建哪个实例的模型,就可以用 new C#在类工厂中动态创建类的实例,所 ...
- 阿里云ACE深圳同城会 开始报名
大家好,阿里云 ACE深圳同城会本周末第一活动,主要大家一起聚聚,互相认识和熟悉,未来一起玩儿一起进步~ 通知大家一个好消息,当前凡是加入深圳ACE同城会组织(群)的朋友,通过跟群主报名申请,将有机会 ...
- mui 打开外网链接返回的正姿势!
我们的返回分两种: 一:按返回按钮只能返回上一页 二:向右滑动一步返回app的面页
- leetcode 566. 重塑矩阵 c++ 实现
1.问题描述: 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据. 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想 ...
- D3
D3.js是一个JavaScript库,它可以通过数据来操作文档.D3可以通过使用HTML.SVG和CSS把数据鲜活形象地展现出来.D3严格遵循Web标准,因而可以让你的程序轻松兼容现代主流浏览器并避 ...
- [Pipy]利用pip2pi搭建本地pypi源
当我们一个团队开发一个项目的时候,须要的Python第三方包基本是固定的.每次搭建新环境的时候总是由于各种内外网,https问题花费大量的时间来安装执行环境. 所以搭建一个本地的,小巧的,仅仅包括须要 ...
- SSE图像算法优化系列八:自然饱和度(Vibrance)算法的模拟实现及其SSE优化(附源码,可作为SSE图像入门,Vibrance算法也可用于简单的肤色调整)。
Vibrance这个单词搜索翻译一般振动,抖动或者是响亮.活力,但是官方的词汇里还从来未出现过自然饱和度这个词,也不知道当时的Adobe中文翻译人员怎么会这样处理.但是我们看看PS对这个功能的解释: ...
- InfluxDB服务器启动流程
操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 InfluxDB版本:1.1.0 源码路径: github.com/influxdata/infl ...
- 每天一个linux命令(9):touch
1.命令简介 touch命令将每个文件的访问时间和修改时间改为当前时间. 2.用法 touch [选项]... 文件... 3.选项 -a 只更改访问时间 -c, --no-create 不创建任何文 ...
- PowerShe 消息提示框测试
1. 使用powerShell 弹出一个简单的消息框,代码如下,创建test.ps1脚本文件. $ConfirmPreference = 'None' $ws = New-Object -ComObj ...