要求:
使用C或Java语言完成一个自动生成四则运算试题的程序。软件基本功能如下。
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
需求分析
减轻家长和老师的负担,提升学生的做题能力。
功能设计
)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
设计实现
用Java语言实现
测试演示
代码演示
package 四则;
import java.util.Scanner;
import java.util.Random;
import java.io.FileWriter;
import java.io.IOException;
class yunsun {
int num1;
int num2 = 1;
int yunsuan;
char cun[] = { ‘+‘, ‘-‘, ‘*‘, ‘/‘ };
String str1 = new String();
String str2 = new String();
Scanner S = new Scanner(System.in);
Random r = new Random();
StringBuffer w = new StringBuffer();
public void optt(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;
yunsuan = r.nextInt(opn);
switch (yunsuan) {
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[yunsuan] + 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[yunsuan] + str2
+ "=");
}
}
public int inputCount() {
int n;//
n = S.nextInt();
return n;
}
public int opCount() {
int opn;
opn = S.nextInt();
if (1 == opn)
return 4;
else
return 2;
}
public int select() {
int sel;
sel = S.nextInt();
if (1 == sel)
return 101;
else
return 1001;
}
public boolean ifFuShu() {
int flag;
flag = S.nextInt();
if (1 == flag)
return true;
else
return false;
}
public boolean ifSave() {
int flag;
flag = S.nextInt();
if (1 == flag)
return true;
else
return false;
}
public void menu() {
int inputCount, opCount, select;
boolean ifFuShu, ifSave;
System.out.println("打印的题目数量:");
inputCount = this.inputCount();
System.out.println("需要题目出现乘除吗?(需要扣1,不需要扣任意数)");
opCount = this.opCount();
System.out.println("请选择打印100或1000以内的题目,输入1打印100以内,输入其他数字打印1000以内");
select = this.select();
System.out.println("是否出现负号,是扣1,不是扣任意数");
ifFuShu = this.ifFuShu();
System.out.println("请选择是否存到d:/result.txt中,输入1存,输入其他数字不存");
ifSave = this.ifSave();
this.optt(inputCount, opCount, select, ifFuShu, ifSave);
}
}
public class q{
public static void main(String[] args) {
// TODO Auto-ge
要求:
使用C或Java语言完成一个自动生成四则运算试题的程序。软件基本功能如下。
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
需求分析
减轻家长和老师的负担,提升学生的做题能力。
功能设计
)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
设计实现
用Java语言实现
测试演示
代码演示
package 四则;
import java.util.Scanner;
import java.util.Random;
import java.io.FileWriter;
import java.io.IOException;
class yunsun {
int num1;
int num2 = 1;
int yunsuan;
char cun[] = { ‘+‘, ‘-‘, ‘*‘, ‘/‘ };
String str1 = new String();
String str2 = new String();
Scanner S = new Scanner(System.in);
Random r = new Random();
StringBuffer w = new StringBuffer();
public void optt(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;
yunsuan = r.nextInt(opn);
switch (yunsuan) {
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[yunsuan] + 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[yunsuan] + str2
+ "=");
}
}
public int inputCount() {
int n;//
n = S.nextInt();
return n;
}
public int opCount() {
int opn;
opn = S.nextInt();
if (1 == opn)
return 4;
else
return 2;
}
public int select() {
int sel;
sel = S.nextInt();
if (1 == sel)
return 101;
else
return 1001;
}
public boolean ifFuShu() {
int flag;
flag = S.nextInt();
if (1 == flag)
return true;
else
return false;
}
public boolean ifSave() {
int flag;
flag = S.nextInt();
if (1 == flag)
return true;
else
return false;
}
public void menu() {
int inputCount, opCount, select;
boolean ifFuShu, ifSave;
System.out.println("打印的题目数量:");
inputCount = this.inputCount();
System.out.println("需要题目出现乘除吗?(需要扣1,不需要扣任意数)");
opCount = this.opCount();
System.out.println("请选择打印100或1000以内的题目,输入1打印100以内,输入其他数字打印1000以内");
select = this.select();
System.out.println("是否出现负号,是扣1,不是扣任意数");
ifFuShu = this.ifFuShu();
System.out.println("请选择是否存到d:/result.txt中,输入1存,输入其他数字不存");
ifSave = this.ifSave();
this.optt(inputCount, opCount, select, ifFuShu, ifSave);
}
}
public class q{
public static void main(String[] args) {
// TODO Auto-generated method stub
yunsun op = new yunsun();
op.menu();
}
总结
代码写的十分吃力,在室友的帮助下才完成了作业。
psp
nerated method stub
yunsun op = new yunsun();
op.menu();
}
总结
代码写的十分吃力,在室友的帮助下才完成了作业。
psp
原文:https://www.cnblogs.com/qdkogmsdlfs/p/11521949.html