20194685+自动生成四则运算题第一版报告
一.需求分析
为了使中小学生在课余时间可以练习算数能力,同时也可以减轻家长与老师的时间和压力,制作了此程序,同时算数的数量和范围在程序中都可以自定义。
二.功能介绍
基本功能
- 自动生成100以内的四则运算
- 题目数量可以自定义
扩展功能
- 剔除重复算式
- 可根据本身能力选择是否包括乘法和除法
- 操作数值范围可控
- 可根据需要设定操作数是否包含负数
- 生成的运算题存储到D://result.txt中
三.设计实现
- Scanner reader=new Scanner(System.in);实现输入
- import java.util.*; 导入所有类
- import java.io.*; 导入java.io下面的所有类
- Random r=new Random(); 生成随机数
- 因为对java学习的时间尚短,对java中相应的类,属性等功能不熟悉,所以此程序只用了一个类,中间包含循环语句,控制语句等。
四.测试运行
java测试数量10,不包含负数,操作数为100以内,且包括乘法或除法:
五.代码
让系统输入用户需要指定的条件:
Scanner reader=new Scanner(System.in); System.out.println("请输入题目数量:"); int n=reader.nextInt(); //输入题目数量 System.out.println("操作数是否含负数:1.包含 2.不包含"); int c=reader.nextInt(); //输入1或2是否包含负数 System.out.println("操作数是100以内还是1000以内:1.100 2.1000"); int b=reader.nextInt(); //输入1或2选择100以内还是1000以内 System.out.println("是否包含乘法和除法:1.包括 2.不包括"); int a=reader.nextInt(); //输入1或2选择是否包含乘法或除法
当用户选择操作数为100以内,且包含乘法或除法的代码:
if(b==1){ //用户选择100以内的操作数 int ran1=r.nextInt(100); int ran2=r.nextInt(100); if(a==1){ //用户选择包含乘法或除法 int k=(int)(Math.random()*4); //生成随机运算符 if(k==1){ //加法运算符 sum=ran1+ran2; System.out.println(ran1+"+"+ran2+"="); } if(k==2){ //减法运算符 sum=ran1-ran2; System.out.println(ran1+"-"+ran2+"="); } if(k==3){ //乘法运算符 sum=ran1*ran2; System.out.println(ran1+"*"+ran2+"="); } if(k==4){ //除法运算符 sum=ran1/ran2; System.out.println(ran1+"/"+ran2+"="); } }
系统将所展示的题目保存至result.txt文件中:
FileWriter fw = null; //创建 BufferedWriter bufw = null; try { fw = new FileWriter("D:\\result.txt"); //文件位置 bufw = new BufferedWriter(fw); for(int i =0;i<n;i++) { //写入信息 switch(i) { case 0:bufw.write("第"+(int)(i+1)+"题:"+new String(x+"+"+y+"="+sum));bufw.newLine();break; case 1:bufw.write("第"+(int)(i+1)+"题:"+new String(x+"-"+y+"="+sum));bufw.newLine();break; case 2:bufw.write("第"+(int)(i+1)+"题:"+new String(x+"*"+y+"="+sum));bufw.newLine();break; case 3:bufw.write("第"+(int)(i+1)+"题:"+new String(x+"/"+y+"="+sum));bufw.newLine();break; } } }catch(IOException e) { e.printStackTrace(); } finally { try { if(bufw!=null) { //关闭 bufw.close(); } }catch(IOException e) { e.printStackTrace(); } }
六.总结
对java熟悉度不足,导致写出来的程序太繁琐且简单,但基本程序所需要的功能都实现了,设定了多个if条件语句,通过用户所选择输出方式的不同进入到用户所定义相应的程序块,以此来实现此程序的功能。
七.PSP撰写
任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
计划 | 15 | 25 |
开发 | 20 | 20 |
需求分析 | 10 | 20 |
生成设计文档 | 10 | 15 |
代码规范 | 15 | 15 |
具体设计 | 60 | 150 |
具体编码 | 180 | 300 |
代码复审 | 30 | 60 |
测试 | 10 | 20 |
报告 | 10 | 10 |
测试报告 | 5 | 5 |
计算工作量 | 5 | 5 |
事后总结 | 30 | 30 |