根据13号的设计思路,将程序分成4部分进行设计:
1 Scanner input=new Scanner(System.in); 2 int h=10;//题目数目显示个数 3 System.out.println("随机四则运算出题程序"); 4 System.out.println("功能表:"); 5 System.out.println("1.整数加减法运算"); 6 System.out.println("2.整数四则运算"); 7 System.out.println("3.分数的加减运算"); 8 System.out.println("4.分数的四则运算");
运用Switch语言分步,整数加法部分设计(无余数):
1 switch(a){ 2 case 1: 3 { 4 System.out.println("请选择减法是否有负数;0:无负数,1:有负数"); 5 int f=input.nextInt(); 6 int i; 7 switch(f) 8 { 9 case 0: 10 { 11 for(i=0;i<h;i++) 12 { 13 String str=random.nextInt(g)+" "+arr[random.nextInt(2)]+" "+random.nextInt(g)+"="; 14 15 16 System.out.println(str); 17 } 18 break; 19 } 20 case 1: 21 { 22 for(i=0;i<h;i++) 23 { 24 System.out.println(-random.nextInt()%g+" "+arr[random.nextInt(2)]+" "+(-random.nextInt())%g+"="); 25 } 26 break; 27 } 28 default: 29 System.out.println("输入的数有误,请输入0或1"); 30 } 31 break; 32 }
整数四则运算部分,控制参数较多,再次分为4个部分实现(有余数):
1 case 2: 2 { 3 System.out.println("整数四则运算菜单选择程序"); 4 System.out.println("请选择:"); 5 System.out.println("1.正整数无余数四则运算"); 6 System.out.println("2.可负整数无余数四则运算"); 7 System.out.println("3.正整数可有余数四则运算"); 8 System.out.println("4.可负整数可有余数四则运算"); 9 10 int f=input.nextInt(); 11 switch(f) 12 { 13 case 1: 14 { 15 for(int i=0;i<h;i++) 16 { 17 int u=random.nextInt(g); 18 int v=random.nextInt(g)+1; 19 char w=arr[random.nextInt(4)]; 20 if(u%v==0 && w=='/'){ 21 System.out.println(u+" "+w+" "+v+"="); 22 } 23 else 24 System.out.println(u+" "+arr[random.nextInt(3)]+" "+v+"="); 25 } 26 break; 27 } 28 case 2: 29 { 30 for(int i=0;i<h;i++) 31 { 32 int u=-random.nextInt()%g; 33 int v=-random.nextInt()%g; 34 char w=arr[random.nextInt(4)]; 35 if(v!=0 && u%v==0 && w=='/' ) 36 System.out.println(u+" "+w+" "+v+"="); 37 else 38 System.out.println(u+" "+arr[random.nextInt(3)]+" "+v+"="); 39 } 40 break; 41 }
关于分数部分,对分子和分母分别取随机数显示分数形式,为避免分数中分子和分相同,对分母部分随机数加1表示:
1 int u=random.nextInt(g); 2 int v=random.nextInt(g)+1; 3 int x=random.nextInt(g); 4 int y=random.nextInt(g)+1; 5 char w=arr[random.nextInt(4)]; 6 System.out.println(u+"/"+v+" "+w+" "+x+"/"+y+"=");
结果截图:
这是当四则运算数字上限取值为1时的截图,整个程序没有实现去除相同运算式。
当选择结束,显示10道题后,整个程序结束,没有实现继续进行选择的方式,有待改进。
日期 | 开始时间 | 结束时间 | 中断时间 | 活动 | 备注 |
3.13 周五 | 写程序设计思路 | ||||
3.14 周六 | 8:00 | 10:00 | 20 | 写作业 | |
15:00 | 14:00 | 看书 | |||
3.15 周日 | 8.00 | 10.00 | 编程,查阅资料 | ||
11:00 | 11:30 | 编程 | |||
14:30 | 16:50 | 编程 | 修改bug | ||
19:00 | 21:00 | 写作业 | |||
3.16 周一 | 上课,写作业 | ||||
3.17 周二 | 上课 | ||||
3.18 周三 | 15:00 | 18:00 | 30 | 编程,查阅资料 | |
19:00 | 22:00 | 编程,改程序 | |||
3.19 周四 | 16:20 | 18:00 | 编程 | 修改bug | |
19:00 | 20:24 | 完成 | |||