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 实验教师:王志强 必 ...
随机推荐
- Accounting Calendar template
SELECT INITCAP (TO_CHAR (TO_DATE (&year || '-' || LPAD (ROWNUM, 2, '0'), 'yyyy-mm'), 'MON', 'NLS ...
- 给已经存在的项目添加git
1.打开终端,cd到已存在项目的目录 2.输入以下命令行,初始化一个本地仓库: git init 3.输入以下命令,把工程所有文件都添加到该仓库中(千万别忘记后面的.号!!!): git ...
- Reactor反应器模式 (epoll)
1. 背景 最近在看redis源码,主体流程看完了. 在网上看到了reactor模式,看了一下,其实我们经常使用这种模式. 2. 什么是reactor模式 反应器设计模式(Reactor patter ...
- Hadoop的启动和停止说明
Hadoop的启动和停止说明 sbin/start-all.sh 启动所有的Hadoop守护进程.包括NameNode. Secondary NameNode.DataNode.ResourceM ...
- linux 命令之 dmidecode
Dmidecode 这款软件同意你在 Linux 系统下获取有关硬件方面的信息.Dmidecode 遵循 SMBIOS/DMI 标准.其输出的信息包含 BIOS.系统.主板.处理器.内存.缓存等等. ...
- 基于java实现的简单区块链
技术:maven3.0.5 + jdk1.8 概述 区块链是分布式数据存储.点对点传输.共识机制.加密算法等计算机技术的新型应用模式.所谓共识机制是区块链系统中实现不同节点之间建立信任.获取权益的 ...
- (原)tensorflow使用eager在mnist上训练的简单例子
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9989586.html 代码网址: https://github.com/darkknightzh/t ...
- Python并行实例
任务 def single(): # 单进程单线程实现 s = 0 for i in range(1, N): s += math.sqrt(i) return s 结论 Python多线程无法利用多 ...
- Unity3D中录制和输出wav文件
近期在做视频录制方面的事情,看了下音频的录制和输出.主要参考官方的FrameCapturer: https://github.com/unity3d-jp/FrameCapturer wav文件结构较 ...
- JTable动态刷新数据
http://www.cnblogs.com/fnlingnzb-learner/p/6025408.html 注意下面几个方法的应用场景,不限于JTable,其他swing组件一样 ———————— ...