软件工程个人作业01
题目:能自动生成小学生四则运算题目,要求:
除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量。(有能力者改编成网页版)
程序设计思想:用产生随机数的方法随机产生运算的数字和运算符,分数运算则用四个随机数分别表示分子和分母;由用户输入题目个数,即产生随机数的循环次数;在产生随机数时限制即可保证题目正确性;要保证题目不重复,则要将产生的随机数保存在起来,将新产生的与以保存的比较,若完全相同则跳过,循环次数加一。
源程序代码:
//四则运算,差不为负,真分数运算,定制出题数量,验证结果正确性 //没有完成避免题目重复的部分 import java.util.Scanner; public class Yunsuan { public static void main(String[] args) { System.out.println("请输入需要的题目数量(最大数目为1000):"); Scanner number=new Scanner(System.in); int n=number.nextInt(); yunsuan(n); } public static int random(int n){ //n为随机数个数 int value=1+(int)(Math.random()*n);//随机数最小为1 return value; } public static void yunsuan(int m){ int value1,value2,value3,value4,y; String result="",result2=""; String ysf=null; for(int i=0;i<m;i++) { //取随机数 value1=random(100); value2=random(100); value3=random(100); value4=random(100); y=random(4); //运算符 if(y==1) ysf="+"; else if(y==2) ysf="-"; else if(y==3) ysf="*"; else if(y==4) ysf="/"; if((value1%value2!=0&&value1<value2&&value3<value4)||(value1<value2&&value3<value4&&value3%value4!=0)) //真分数运算 { result2=value1+"/"+value2+" "+ysf+" "+value3+"/"+value4+" ="; System.out.println(result2); } //整数运算 else { if(y==2&&value1>value2) { result=value1+" "+ysf+" "+value2+" ="; System.out.println(result); } else m++; } } } }
程序还有不完整的地发,不能实现最简分数,不能进行题目查重。
运行结果截图:
上课时其实代码写完了,但是不能用于后续添加功能,因为上课时开始的代码是这样的:
public class Test { public static void main(String[] args) { //产生100以内随机数 //产生运算符号 //产生100以内随机数 for(int i = 0 ; i < 30 ; i ++) { //产生随机数 int value =1+(int)(Math.random() *100 ); //1-100 int value2=1+(int)(Math.random()*4); //1-4 int value1=1+(int)(Math.random()*100); //1-100 //输出 //第一个数字 System.out.print(value+" "); //运算符号 if(value2==1)System.out.print("+"); else if(value2==2)System.out.print("-"); else if(value2==3)System.out.print("*"); else if(value2==4)System.out.print("/"); //第二个数字 System.out.println(" "+value1+" "+"="); } } }
于是又重写了一个,但是没有完成。