题目要求:可怜的二柱子同学,老师又对他的自动出题系统提出了新的要求:
1、题目避免重复;
2、可定制(数量/打印方式);
3、可以控制下列参数:
是否有乘除法;
是否有括号(最多可以支持十个数参与计算);
数值范围;
加减有无负数;
除法有无余数!
1设计思路:
(1) 首先,输出请选择需要出题的个数,数值范围,是否有乘除,是否有负数,是否有余数,是否有括号等问题,并录入信息。
(2)通过switch(),case来随机加减乘除。
(3)产生四个随机数,通过前两个相除是否有余数和后两个相除是否有余数,输出含有整数或分数的式子。
(4)在(3)的基础上判断是否有乘除,若有,则在除法模块继续判断是否有余数。并在所有的减法模块判断是否有负数
(5)通过输入的出题个数的数量决定for循环次数,并使用for来循环以上过程。
import java.util.*; public class Operations{ public static void main(String[]args){ Scanner ProNum = new Scanner(System.in); System.out.println("请输入需要出的题目的个数(请输入整数)"); int index=ProNum.nextInt(); Scanner q = new Scanner(System.in); System.out.println("请输入数值范围最小值(请输入整数)"); int m =q.nextInt(); Scanner ra= new Scanner(System.in); System.out.println("请输入数值范围最大值(请输入整数)"); int c =ra.nextInt(); for (int i=0;i<index;i++){ System.out.print("请按提示选择下列选项 "); Scanner in= new Scanner(System.in); System.out.print(" 是否有乘除法 ;(Yes/NO)"); String MulAndDiv =in.nextLine(); Scanner in1= new Scanner(System.in); System.out.print(" 是否有括号 ;(Yes/NO)"); String kh=in1.nextLine(); Scanner in2= new Scanner(System.in); System.out.print(" 加减有无负数 ;(Yes/NO)"); String fushu =in.nextLine(); Scanner in3= new Scanner(System.in); System.out.print(" 乘除有无余数 ;(Yes/NO)"); String yushu =in.nextLine(); int num1 = (int)(Math.random() *c+m); int num2 = (int)(Math.random() * c+m); int num3= (int)(Math.random() * c+m ); int num4 = (int)(Math.random() * c+m ); while(1>0){ if(MulAndDiv =="Yes"){ int n=num1%4; switch(n){ case 0: if(num1%num2==0&&num3%num4==0){ System.out.println(num1/num2+"+"+num3/num4+"="); } if(num1%num2==0&&num3%num4!=0){ System.out.println(num1/num2+"+"+num3+"/"+num4+"=");} if(num1%num2!=0&&num3%num4==0){ System.out.println(num1+"/"+num2+"+"+num3/num4+"=");} if(num1%num2!=0&&num3%num4!=0){ System.out.println(num1+"/"+num2+"+"+num3+"/"+num4+"=");} case 1: if(fushu=="Yes"){ if(num1%num2==0&&num3%num4==0){ if((num1/num2)+((num1%num2)/1000)>((num3/num4)+((num3%num4)/1000))){ System.out.println(num3/num4+"-"+num1/num2 +"=");} else{ System.out.println(num1/num2+"-"+num3/num4+"="); } } if(num1%num2==0&&num3%num4!=0){ if((num1/num2)+((num1%num2)/1000)>((num3/num4)+((num3%num4)/1000))){ System.out.println(num3/num4+"-"+num1+"/"+num2 +"=");} else{ System.out.println(num1/num2+"-"+num3+"/"+num4 +"="); } } if(num1%num2!=0&&num3%num4==0){ if((num1/num2)+((num1%num2)/1000)>((num3/num4)+((num3%num4)/1000))){ System.out.println(num3+"/"+num4+"-"+num1/num2 +"=");} else{ System.out.println(num1+"/"+num2+"-"+num3/num4+"="); } } if(num1%num2!=0&&num3%num4!=0){ if((num1/num2)+((num1%num2)/1000)>((num3/num4)+((num3%num4)/1000))){ System.out.println(num3+"/"+num4+"-"+num1+"/"+num2 +"=");} else{ System.out.println(num1+"/"+num2+"-"+num3+"/"+num4+"="); } } } if(fushu=="No"){ if(num1%num2==0&&num3%num4==0){ if((num1/num2)+((num1%num2)/1000)<((num3/num4)+((num3%num4)/1000))){ System.out.println(num3/num4+"-"+num1/num2 +"=");} else{ System.out.println(num1/num2+"-"+num3/num4+"="); } } if(num1%num2==0&&num3%num4!=0){ if((num1/num2)+((num1%num2)/1000)<((num3/num4)+((num3%num4)/1000))){ System.out.println(num3/num4+"-"+num1+"/"+num2 +"=");} else{ System.out.println(num1/num2+"-"+num3+"/"+num4 +"="); } } if(num1%num2!=0&&num3%num4==0){ if((num1/num2)+((num1%num2)/1000)<((num3/num4)+((num3%num4)/1000))){ System.out.println(num3+"/"+num4+"-"+num1/num2 +"=");} else{ System.out.println(num1+"/"+num2+"-"+num3/num4+"="); } } if(num1%num2!=0&&num3%num4!=0){ if((num1/num2)+((num1%num2)/1000)<((num3/num4)+((num3%num4)/1000))){ System.out.println(num3+"/"+num4+"-"+num1+"/"+num2 +"=");} else{ System.out.println(num1+"/"+num2+"-"+num3+"/"+num4+"="); } } } case 2: if(num1%num2==0&&num3%num4==0){ System.out.println(num1/num2+"*"+num3/num4+"=");} if(num1%num2==0&&num3%num4!=0){ System.out.println(num1/num2+"*"+num3+"/"+num4+"=");} if(num1%num2!=0&&num3%num4==0){ System.out.println(num1+"/"+num2+"*"+num3/num4+"=");} if(num1%num2!=0&&num3%num4!=0){ System.out.println(num1+"/"+num2+"*"+num3+"/"+num4+"=");} case 3: if(yushu=="Yes"){ if(num1%num2==0&&num3%num4==0){ if((num1%num2)%(num3%num4)!=0){ System.out.println(num1/num2+"/"+num3/num4+"=");} else{ System.out.println(num1/num2+5+"/"+num3/num4+3+"="); } } if(num1%num2==0&&num3%num4!=0){ System.out.println(num1/num2+"/"+num3+"/"+num4+"=");} if(num1%num2!=0&&num3%num4==0&&(num1%num2)%(num3%num4)!=0){ System.out.println(num1+"/"+num2+"/"+num3/num4+"=");} if(num1%num2!=0&&num3%num4!=0){ if((num1%num2)%(num3%num4)!=0){ System.out.println(num1+"/"+num2+"/"+num3+"/"+num4+"=");} else{ System.out.println(num1+5+"/"+num2+"/"+num3+3+"/"+num4+"=");} } } } } if(MulAndDiv =="No"){ int n=num1%2; switch(n){ case 0: if(num1%num2==0&&num3%num4==0){ System.out.println(num1/num2+"+"+num3/num4+"="); } if(num1%num2==0&&num3%num4!=0){ System.out.println(num1/num2+"+"+num3+"/"+num4+"=");} if(num1%num2!=0&&num3%num4==0){ System.out.println(num1+"/"+num2+"+"+num3/num4+"=");} if(num1%num2!=0&&num3%num4!=0){ System.out.println(num1+"/"+num2+"+"+num3+"/"+num4+"=");} case 1: if(fushu=="Yes"){ if(num1%num2==0&&num3%num4==0){ if((num1/num2)+((num1%num2)/1000)>((num3/num4)+((num3%num4)/1000))){ System.out.println(num3/num4+"-"+num1/num2 +"=");} else{ System.out.println(num1/num2+"-"+num3/num4+"="); } } if(num1%num2==0&&num3%num4!=0){ if((num1/num2)+((num1%num2)/1000)>((num3/num4)+((num3%num4)/1000))){ System.out.println(num3/num4+"-"+num1+"/"+num2 +"=");} else{ System.out.println(num1/num2+"-"+num3+"/"+num4 +"="); } } if(num1%num2!=0&&num3%num4==0){ if((num1/num2)+((num1%num2)/1000)>((num3/num4)+((num3%num4)/1000))){ System.out.println(num3+"/"+num4+"-"+num1/num2 +"=");} else{ System.out.println(num1+"/"+num2+"-"+num3/num4+"="); } } if(num1%num2!=0&&num3%num4!=0){ if((num1/num2)+((num1%num2)/1000)>((num3/num4)+((num3%num4)/1000))){ System.out.println(num3+"/"+num4+"-"+num1+"/"+num2 +"=");} else{ System.out.println(num1+"/"+num2+"-"+num3+"/"+num4+"="); } } } if(fushu=="No"){ if(num1%num2==0&&num3%num4==0){ if((num1/num2)+((num1%num2)/1000)<((num3/num4)+((num3%num4)/1000))){ System.out.println(num3/num4+"-"+num1/num2 +"=");} else{ System.out.println(num1/num2+"-"+num3/num4+"="); } } if(num1%num2==0&&num3%num4!=0){ if((num1/num2)+((num1%num2)/1000)<((num3/num4)+((num3%num4)/1000))){ System.out.println(num3/num4+"-"+num1+"/"+num2 +"=");} else{ System.out.println(num1/num2+"-"+num3+"/"+num4 +"="); } } if(num1%num2!=0&&num3%num4==0){ if((num1/num2)+((num1%num2)/1000)<((num3/num4)+((num3%num4)/1000))){ System.out.println(num3+"/"+num4+"-"+num1/num2 +"=");} else{ System.out.println(num1+"/"+num2+"-"+num3/num4+"="); } } if(num1%num2!=0&&num3%num4!=0){ if((num1/num2)+((num1%num2)/1000)<((num3/num4)+((num3%num4)/1000))){ System.out.println(num3+"/"+num4+"-"+num1+"/"+num2 +"=");} else{ System.out.println(num1+"/"+num2+"-"+num3+"/"+num4+"="); } } } } } } } }}
4时间记录日志:
学生:孙梅 日期:3/19
教师: 王建民 课程:软件工程概论
日期 |
开始时间 |
结束时间 |
中段时间(分钟) |
净时间 (分钟) |
活动 |
备注 |
C |
U |
3/14 |
8:00 |
9:50 |
10 |
100 |
上课 |
课间休息 |
||
3/15 |
15:00 |
16:00 |
5 |
55 |
看《构建之法》 |
上厕所 |
||
18:00 |
20:00 |
20 |
100 |
写程序 |
休息 |
|||
3/16 |
16:00 |
16:40 |
0 |
40 |
看《构建之法》 |
|||
19:00 |
20:00 |
0 |
60 |
写阅读笔记 |
||||
3/17 |
19:00 |
21:30 |
30 |
120 |
编写程序 |
休息 |
||
3/18 |
15:00 |
15:30 |
0 |
30 |
写进度条 |
5缺陷记录日志:
学生:孙梅 日期:3/19
教师: 王建民 课程:软件工程概论
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复时间 |
修复缺陷 |
||||||||||
3/15 |
1 |
20 |
编码 |
编译 |
2min |
|||||||||||
描述:漏掉了大括号“{” |
||||||||||||||||
3/17 |
2 |
20 |
编码 |
编译 |
1min |
|||||||||||
描述:漏掉了分号 |
||||||||||||||||
3 |
20 |
编码 |
编译 |
1min |
||||||||||||
描述:多加了“}” |
||||||||||||||||
4 |
40 |
设计 |
编译 |
2min |
||||||||||||
描述:在判断条件中出现逻辑失误 |
||||||||||||||||
5 |
40 |
设计 |
编译 |
2min |
||||||||||||
描述:循环范围错误 |
||||||||||||||||
6 项目记录日志:
学生:孙梅 日期:3/19
教师: 王建民 课程:软件工程概论
作业号 |
日期 |
过程 |
估计数据 |
实际数据 |
累积数据 |
|||||||
时间 |
单元 |
时间 |
单元 |
平均 |
时间 |
单元 |
平均 |
最大值 |
最小值 |
|||
1 |
3/15 |
编写程序 |
80 |
1 |
100 |
1 |
100 |
100 |
1 |
100 |
100 |
100 |
描述:编写程序1 |
||||||||||||
2 |
3/16 |
阅读书本 |
60 |
3 |
60 |
3 |
20 |
60 |
3 |
20 |
30 |
10 |
描述:阅读《构建之法》四五六章 |
||||||||||||
3 |
3/17 |
编写程序 |
100 |
1 |
120 |
120 |
120 |
120 |
1 |
120 |
120 |
120 |
描述:继续编写程序1 |
||||||||||||
4 |
3/18 |
写进度条 |
25 |
1 |
30 |
1 |
30 |
30 |
1 |
30 |
30 |
30 |
描述:写最近一周学到了什么 |