博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

201571030308 小学生四则运算练习小程序

Posted on 2018-03-24 00:28  平头哥  阅读(880)  评论(1编辑  收藏  举报

Github源码地址链接:https://github.com/ijinping/SIZEYUNSUAN

一.项目要求:

   尝试按照《构建之法》第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个包含3到5个数字的四则运算练习的命令行软件开发。

二.需求分析

  • 程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。
  • 为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。
  • 练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致。当程序接收的参数为4时,以下为输出文件示例。

201571030107

(78*23)-(6*91) = 1248

(3+36)*(34-21) = 507

(15*81)*(14+87) = 122715

(95-4)+(37-30) = 98

支持有括号的运算式,包括出题与求解正确答案。注意,算式中存在的括号必须大于2个,且不得超过运算符的个数。

三.功能设计

  1. 程序可接收一个输入参数n
  2. 可以随机产生n道四则运算练习题
  3. 生成的数字范围为0-100
  4. 要求至少包含2种运算符,即运算符个数为2个或两个以上,可知随机产生的数字至少有3个
  5. 不能出现负数与小数

四.设计实现


五.测试运行

 

 六.核心代码

public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x = 0,y,i;
        String m="201571030308";
        String a1;
        int d1=0;
        String d = null;
        System.out.println("输入学号开始");
        Scanner scan1=new Scanner(System.in);
        a1=scan1.next();
if(a1.equals(m)){
        System.out.println("请输入题目的数量");
        Scanner scan2=new Scanner(System.in);
        x=scan2.nextInt();
        int daan[]=new int [x];
        System.out.println("请输入数值的范围");
        y=scan2.nextInt();
        for(i=0;i<x;i++){
            int a=(int)(Math.random()*y);//随机生成一个1-10的整数
            int b=(int)(Math.random()*y);//随机生成一个1-10的整数
            int  n=(int)(Math.random()*30)*2;//随机生成一个1-60的偶数
            int c=(int)(Math.random()*4);

 

 

 System.out.println("是否显示答案(显示请输入1)");
        if(scan2.nextInt()==1){
            for(i=0;i<x;i++){
            System.out.print(daan[i]+"     ");
            }
        } 
        }
            System.out.println("是否显示答案(显示请输入1)");
            if(scan1.nextInt()==1){
                for(i=0;i<x;i++){
                System.out.print(args[i]+"     ");
                }
            }
            
        }

 

七.总结 

       在设计较这个程序的时候,我采用了自顶向下的方法,将这个问题划分为几三个部分,第一部分是程序随机生成的题数,第二部分是具体生成的题的“样式”,第三部分是设计计算生成随机题的答案。每一部分又再细化分解,直到分解为较好解决问题为止。 

       第一次如此认真的查找信息,寻找资料的来完成这个程序,虽然很辛苦,但收获颇多

八.展示PSP

PSP2.1

任务内容

计划完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

20

30

·       Estimate

·  估计这个任务需要多少时间,并规划大致工作步骤

20

30

Development

开发

240

270

··       Analysis

  需求分析 (包括学习新技术)

30

40

·       Design Spec

·  生成设计文档

20

20

·       Design Review

·  设计复审 (和同事审核设计文档)

10

15

·       Coding Standard

  代码规范 (为目前的开发制定合适的规范)

30

40

·       Design

  具体设计

10

12

·       Coding

  具体编码

36

90

·       Code Review

·  代码复审

7

9

·       Test

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

13

21

Reporting

报告

55

50

··       Test Report

·  测试报告

15

10

·       Size Measurement

  计算工作量

15

20

·       Postmortem & Process Improvement Plan

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

15

  1. 20


 

---恢复内容结束---