设计思路:用Random随机两个在一百以内的数和随机加减乘除四种运算法则;减法中被减数大的与小的做交换;乘法大于100的随机下一个;除法余数不为0的随机下一个;
源代码:
import java.util.Random;
import java.util.Scanner;
public class Check {
public static int a=new Random().nextInt(100);
public static int b[][]=new int[100][2];
public static int c[]=new int[100];
static Scanner d=null;
public static void main(String[] args) {
int oneNum = (int)(1 + Math.random()*99);
int twoNum = 1 + (int)(Math.random()*99);
int thrNum = 1 + (int)(Math.random()*4);
d =new Scanner(System.in);
System.out.println("请输入题目总数量:");
int n=d.nextInt();
System.out.println("请输入一行的题目数量:");
for(int i = 1;i <=n;i++)
{
b[i][0]=oneNum;
b[i][1]=thrNum;
c[i]=twoNum;
for(int j=0;j<i;j++)
{
if(b[j][0]==oneNum&&b[j][1]==thrNum&&c[j]==twoNum)
{
a=new Random().nextInt(100);
}
}
System.out.println(i);
if(thrNum == 1)
{
System.out.println(oneNum + "+" + twoNum + "=");
}
if(thrNum == 2)
{
if(oneNum>=twoNum)
{System.out.println(oneNum + "-" + twoNum + "=");}
else
{
int T;
T=twoNum;
twoNum=oneNum;
oneNum=T;
System.out.println(oneNum + "-" + twoNum + "=");
}
}
if(thrNum == 3)
{
int A=oneNum *twoNum;
if(A>100)
{ a=new Random().nextInt(100);
System.out.println(oneNum + "*" + twoNum +"=");
}
else
System.out.println(oneNum + "*" + twoNum +"=");
}
if(thrNum == 4)
{
int B=oneNum%twoNum;
if(B!=0&&twoNum==0)
{
a=new Random().nextInt(100);
System.out.println(oneNum + "/" + twoNum + "=");
}
else{
if(twoNum != 0)
{
System.out.println(oneNum + "/" + twoNum + "=");
}
else if(oneNum != 0)
{
System.out.println(oneNum + "/" + twoNum + "=");
}
else
{
System.out.println(30 + "/" + 15 + "=?");
}
}
}
}
}
}
结论
验证课堂代码结果
1
2
3
结论
使用double计算是不准确的
4
5
6
7
结论■枚举类型是引用类型!
■枚举不属于 原始数据类型,它的每个具体值都引用
一个特定的对象。相同的值则引用同一个对象。■可以使用“= =”和equals()方法直接比对枚举变量的
值,换句话说,对于枚举类型的变量,“==”和
equals()方法执行的结果是等价的
8
动手动脑X+Y=300
X+Y+300
因为引号内容不一样
课堂所问问题:
二进制的存储方式
在磁盘的存储上都是二进制存储这点上都一样。
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASC码: 00110101 00110110 00110111 00111000
↓ ↓↓ ↓
十进制码: 5678 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占2个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。
流可以分为两种类型:文本流和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“/n”,(如果以"文本"方式打开一个文件,那么在读字符的时候,系统会把所有的"/r/n"序列转成"/n",在写入时把"/n"转成"/r/n" archim 's opinion )。二进制流是非解释性的,一次处理一个字符,并且不转换字符。
通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。
如果用文本方式打开文件,会把“0D 0A”自动变换成“/n”来存在内存中。写入的时候反向处理。 而二进制方式打开的话,就不会有这个过程。
所以从上面可以看出:文本文件占磁盘空间大,读取速度比较慢,但打开后容易理解;二进制文件占磁盘空间小,读取速度快,如果要理解文件文件的意思需要自己进行解释。
整数超出了范围
java.math.BigDecimal java.math.BigInteger 分别处理无限精度的浮点和整型