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计划2010
Estimate估计这个任务需要多少时间,并规划大致工作步骤1015
Development 开发90120
Analysis 需求分析1010
Design Spec生产设计文档105
Design Review设计复审55
Coding Standard代码规范2030
Design具体设计3050
Coding具体编码90150
Code Review代码复审1015
Test测试1015
Reporting报告3020
Text Report测试报告1015
Size Measurement计算工作量57

Postmortem&Process

Improvement Plan

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

转载于:https://www.cnblogs.com/cooldbm/p/11522717.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值