计应193焦德智 小学四则运算系统

一.计划

 编写一个小学生四则运算出题程序

二.开发

1.需求分析

作为一名一年级小学生的家长,我希望制作一个出题软件,随机产生100以内的正整数加减乘除及符号,减法为负值的剔除,剔除不够减,循环产生。

2.生成设计文档

3.设计复审

4.代码规范

注意大小写、缩进、括号及分行。

5.具体设计

系统开始,随机产生10道加法、减法、乘法或除法,计算完成后,显示答案及对错,统计时间,系统结束。

6.具体编码

package sizeyunsuan;

import java.util.Random;

import java.util.Scanner;

import java.util.StringJoiner;

public class Student {
public static void main(String[] args) {
// TODO 自动生成的方法存根

Scanner scanner = new Scanner(System.in);

int n,m;

System.out.println("请输入一个正整数:");

n=scanner.nextInt();

System.out.println("请输入一行几道题:");

m=scanner.nextInt();

/* 将生成的两个随机数和四个运算符存在数组中 **/

int[] a=new int[10000];

int[] b=new int[10000];

int[] d=new int[10000];

Random rand=new Random();

//使用数组

String z=null;

for(int i=0;i

int x=(int)(1+Math.random()*99);

int y=(int)(1+Math.random()*99);

int c=(int)(1+Math.random()*4);

a[i]=x;

b[i]=y;

d[i]=c;

for(int j=0;j

{
if(a[j]==x&&b[j]==y&&d[j]==c)

i--;

break;

}

switch(c)

{
case 1:z="+";break;

case 2:z="-";break;

case 3:z="*";break;

case 4:z="/";break;

}

if((x>=y&&z=="-")||(x*y<100&&z=="*")||(x/y>=1&&x%y==0&&z=="/")||(z=="+"))

{if((i+1)%m==0)

System.out.println((i+1)+":"+x+z+y+"=");

else

System.out.print((i+1)+": "+x+z+y+"="+" ");

}else

i--;

}

}

}

7.代码复审

8.测试

总结

 我觉得这个题最难得一个地方就是怎样让出的题不重复,这个我也在网上查了很多资料,就是把产生的随机数放在数组里,这个还是比较好弄的,也有的人是用递归写的,这个也行;通过这个实验我学会了用随机函数,对数组认识更加深了。

 
PSP阶段   预计所需时间(小时) 实际花费时间(小时)
计划 8 6
明确需求和其他相关因素,估计每个阶段的时间成本 8 6
开发 88 91
需求分析 6 4
生成设计文档 6 6
设计复审(和同事审核设计文档 ) 4 5
代码规范(为目前的开发制定合适的规范) 4 4
具体设计 9 5
具体编码 41 54
代码复审 9 2

测试(自测,修改代码,提交修改)

9 11
报告 4 3
测试报告 2 1
计算工作量 1 1
事后总结,并提出过程改进计划 1 1

posted @ 2021-05-31 15:47  蓝色小怪物  阅读(52)  评论(0编辑  收藏  举报