一、需求分析
使用C或Java语言完成一个自动生成四则运算试题的程序。 自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内,并保存计算结果。
二、功能设计
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
( 2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
三、设计实现
设计一个Tes测试t类,包括了变量的定义,变量的赋值,判断语句,循环语句等。
设计了输入输出函数
最后进行整体运算。
四、测试运行
五、代码展示
StringBuffer w = new StringBuffer();
public void oppt(int n, int opn, int sel, boolean flag, boolean ifSave) {
// TODO Auto-generated method stub
for (int i = 0; i < n; i++) {
num1 = r.nextInt(sel) + 1;
shuzi = r.nextInt(opn);
switch (shuzi) {
case 0:
num2 = r.nextInt(sel - num1);
break;
case 1:
num2 = r.nextInt(num1);
break;
case 2:
num2 = r.nextInt(sel / num1);
break;
case 3:
num2 = r.nextInt(num1);
break;
}
public void oppt(int n, int opn, int sel, boolean flag, boolean ifSave) {
// TODO Auto-generated method stub
for (int i = 0; i < n; i++) {
num1 = r.nextInt(sel) + 1;
shuzi = r.nextInt(opn);
switch (shuzi) {
case 0:
num2 = r.nextInt(sel - num1);
break;
case 1:
num2 = r.nextInt(num1);
break;
case 2:
num2 = r.nextInt(sel / num1);
break;
case 3:
num2 = r.nextInt(num1);
break;
}
if (flag) {
int f = r.nextInt(2);
int p = r.nextInt(2);
if (0 == f)
num1 = -num1;
if (0 == p)
num2 = -num2;
}
if (num1 < 0)
str1 = "(" + num1 + ")";
else
str1 = "" + num1;
if (num2 < 0)
str2 = "(" + num2 + ")";
else
str2 = "" + num2;
if (ifSave) {
w.append(str1 + "" + cun[shuzi] + str2 + "=" + " ");
int f = r.nextInt(2);
int p = r.nextInt(2);
if (0 == f)
num1 = -num1;
if (0 == p)
num2 = -num2;
}
if (num1 < 0)
str1 = "(" + num1 + ")";
else
str1 = "" + num1;
if (num2 < 0)
str2 = "(" + num2 + ")";
else
str2 = "" + num2;
if (ifSave) {
w.append(str1 + "" + cun[shuzi] + str2 + "=" + " ");
try {
FileWriter fw = new FileWriter("d:/result.txt");
fw.write(w.toString());
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(str1 + "" + cun[shuzi] + str2 + "=");
}
FileWriter fw = new FileWriter("d:/result.txt");
fw.write(w.toString());
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(str1 + "" + cun[shuzi] + str2 + "=");
}
六、总结
生成基本运算,再得出最后结果。学的比较吃力,MarkDown编辑也没整明白。
七、 PSP