(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
基本功能:自动生成四则运算试题
扩展功能:(1)算出答案
(2)多操作数运算
(3)用户可以自己选择用加减,乘除,正负
(4)用户还可选择试题数量和操作数范围
我设计了一个math类,这个类里面包含了变量的定义以及赋值,判断语句和循环语句等,从而实现了此功能。
(1)有乘除法,且操作数中含有负数,操作数范围在100以内,试题数量为10个,
(2)没有乘除法,且操作数中不含负数,操作数范围在100以内,试题数量为10个,且结果在100 以内
int n1, n2; // 两个操作数 int operator; // 用于随机生成运算符 int c; // 用于控制是否含有乘除法 int count; // 用于控制题目数量 int e; // 用于控制操作数中是否含有负数 System.out.println("请输入题目的数量"); count = reader.nextInt(); int f; // 用于控制操作数范围 System.out.println("请输入操作数的范围"); f = reader.nextInt(); System.out.println("是否含有乘除法,有乘除法请输入1"); c = reader.nextInt(); System.out.println("操作数中是否可以有负数,可以的话请输入1,不可以请输入0"); e = reader.nextInt(); if (e == 0) { //不可以有负数 if (c == 1) { // 有乘除法运行下面的程序 for (int i = 1; i < count + 1; i++) { operator = (int) (Math.random() * 4); n1 = (int) (Math.random() * f); n2 = (int) (Math.random() * f); char fh; int result; if (operator == 0) { fh=‘+‘; if ((n1 + n2) > 101) { i--; continue; // 控制加法运算结果在100以内 } else { result=n1 + n2; System.out.println(n1 + "+" + n2 + "=" + (n1 + n2)); } } else if (operator == 1) { fh=‘-‘; if ((n1 - n2) < 1) { i--; continue; } else { result=n1 - n2; System.out.println(n1 + "-" + n2 + "=" + (n1 - n2)); } } else if (operator == 2) { fh=‘*‘; if ((n1 * n2) > 500) { i--; continue; } else { result=n1 * n2; System.out.println(n1 + "*" + n2 + "=" + (n1 * n2)); } } else if (operator == 3) { fh=‘/‘; if (n1 / n2 == 0) { i--; continue; } else { result=n1 / n2; System.out.println(n1 + "/" + n2 + "=" + (n1 / n2)); } } } } else { // 没有乘除法运行下面的程序 for (int i = 1; i < count + 1; i++) { operator = (int) (Math.random() * 2); n1 = (int) (Math.random() * f); n2 = (int) (Math.random() * f); if (operator == 0) { if ((n1 + n2) > 101) { count++; continue; } else { System.out.println(n1 + "+" + n2 + "=" + (n1 + n2)); } } else if (operator == 1) { if ((n1 - n2) < 1) { count++; continue; } else { System.out.println(n1 + "-" + n2 + "=" + (n1 - n2)); } } } } }
PrintWriter out;//定义变量 try{ out=new PrintWriter("e:/result.txt");//输出的路径和文件名 }catch(FileNotFoundException e){throw new RuntimeException(e);} out.println("第"+(i+1)+"题:"+n1+fh+n2+"="+result);//输出算式 out.close(); //关闭
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
60 |
90 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
60 |
90 |
Development |
开发 |
350 |
410 |
·· Analysis |
需求分析 (包括学习新技术) |
15 |
20 |
· Design Spec |
· 生成设计文档 |
0 |
0 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
0 |
0 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
10 |
10 |
· Design |
具体设计 |
20 |
35 |
· Coding |
具体编码 |
300 |
340 |
· Code Review |
· 代码复审 |
10 |
10 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
10 |
15 |
Reporting |
报告 |
30 |
40 |
·· Test Report |
· 测试报告 |
15 |
25 |
· Size Measurement |
计算工作量 |
0 |
0 |
· Postmortem & Process Improvement Plan |
· 事后总结 ,并提出过程改进计划 |
10 |
15 |
代码编写这个环节实际所消耗的时间与估计时间相差巨大,是因为我有一些方法不会还有一些功能实现不了,比如存储到其他盘的txt中的方法我不会那我就在网上百度了大量的资料来解决这个问题。所以才造成了这么大的差距。
原文:https://www.cnblogs.com/xiaonan988/p/11529398.html