20194625 自动生成四则运算题第一版报告

一、需求分析

在这个计算机发展迅速的时代,好像生活中用到计算机的地方都变得很轻松很方便,所以为了方便教师和孩子之间的沟通,以及提高孩子的学习成绩,方便孩子的学习过程,同时教师也会轻松很多,设计了以下程序。

二、功能设计

·基本功能:自动生成四则运算题

·扩展功能:可以控制结果的取值范围

                   生成的题保存在txt文件里

                   题目数量可以用户自己选择

三、设计实现

设计一个Test类,在Test类里定义几个变量来fanwei、geshu、fushu、chengchu来接收键盘输入的数字,来判断用户的要求,当用户做出选择时,进入if语句,来执行判断其他条件的分支。以此来完成程序的实现。

四、测试运行

 1.控制台显示,含有乘除法, 结果100以内,不含负数 。
 2.控制台显示,含有乘除法,结果1000以内,不含有负数。
 3.控制台显示,不含乘除法,结果100以内,不含负数。
 4.控制台显示,不含乘除法,结果1000以内,不含负数。
 5.输出到txt里,含有乘除法,结果100以内,不含负数。
 6.输出到txt里,含有乘除法,结果1000以内,不含负数。
 7.输出到txt里,不含乘除法,结果在100以内,不含负数。
 8.输出到txt里,不含乘除法,结果1000以内,不含负数。

 

五、代码片段

1.从键盘接收用户所做出的需求选择

 1         System.out.println("请输入题目个数:");
 2         Scanner reader=new Scanner(System.in);//控制题目数量
 3         int geshu=reader.nextInt();
 4         
 5         System.out.println("是否含有乘除法");//控制题目操作符
 6         System.out.println("1、含有乘除法\t2、不含乘除法");
 7         Scanner sc=new Scanner(System.in);
 8         int chengchu=sc.nextInt(); 9         
10         System.out.println("操作数范围:");// 控制题目结果取值范围
11         System.out.println("1、100以内\t2、1000以内");
12         Scanner scn=new Scanner(System.in);
13         int fanwei=scn.nextInt();
14         
15         System.out.println("是否含有负数");//控制题目是否含有负数
16         System.out.println("1、不含有负数\t2、含有负数");
17         Scanner scan=new Scanner(System.in);
18         int fushu=scan.nextInt();

2.主要循环,判断用户所输入的需求,执行相应代码。

 1 for(int i=0;i<geshu;i++){
 2                 Random random1=new Random();
 3                 int first1=random1.nextInt(100);              //随机生成第一个100以内的数
 4                 int second1=random1.nextInt(100);             //随机生成第二个100以内的数
 5                 int yunsuanfu1=random1.nextInt(4);            //随机生成一个4以内的数用来访问数组里的运算符+-*/
 6                 
 7                 
 8                 char b1= a1[yunsuanfu1];            
 9                 int result1=0;                                //定义result1变量来存储最后计算得到的结果
10                 switch(b1){                                   //判断生成的是什么运算符,并计算结果
11                 case '+':result1=first1+second1;break;
12                 case '-':result1=first1-second1;break;
13                 case '*':result1=first1*second1;break;
14                 case '/':result1=first1/second1;break;
15                 }
16                 
17                 
18                 
19                 if(fanwei==1){                                          //当用户要求算数结果在100以内时
20                     if(result1>=100){                                   //判断结果是否在100以内,如果不是,再进行一次循环
21                         i--;
22                     }
23                     else{
24                          System.setOut(ps);
25                         System.out.println(first1+" "+b1+second1+"=");  //如果结果在100以内,就输出
26                     }
27                 }
28                 else if(fanwei==2){                                    //当客户要求算数结果在1000以内时
29                     if(result1>=1000){                                  //判断是否在1000以内,如果不是,再进行一次循环
30                         i--;
31                     }else{
32                          System.setOut(ps);
33                         System.out.println(first1+" "+b1+second1+"=");  //如果结果在1000以内,就输出
34                     }
35                 }

3.输出到txt文档里

1     PrintStream ps = new PrintStream("D:/result.txt");
2     System.setOut(ps);
3     System.out.println(first1+" "+b1+second1+"=");

六、总结

先分析程序需要实现什么功能,有一个大体的思路,对程序的框架做一个思考,然后进行实践,把最外层的功能写出来,再在里面加相应的功能。

七、PSP

   PSP   任务内容 计划共需要多久(min)   实际多久(min)
Planning 计划 20 10
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 10 15
Development  开发 90 120
Analysis  需求分析 10 10
Design Spec 生产设计文档 10 5
Design Review 设计复审 5 5
Coding Standard 代码规范 20 30
Design 具体设计 30 50
Coding 具体编码 90 150
Code Review 代码复审 10 15
Test 测试 10 15
Reporting 报告 30 20
Text Report 测试报告 10 15
Size Measurement 计算工作量 5 7

Postmortem&Process

Improvement Plan

 事后总结 ,并提出过程改进计划 5 5

我的基础不是特别好,所以在代码编写的过程中浪费了比较多的时间,要去网上查一些资料,查一些代码,测试时候也出现了一些错误,但是也都找到并成功修改了。个人觉得还是知识有所欠缺吧,所以以后会好好去学习这方面的知识。

猜你喜欢

转载自www.cnblogs.com/cooldbm/p/11522717.html
今日推荐