2016011991 小学四则运算练习软件项目报告

代码地址:https://git.coding.net/sheep47/xiaoxuesizeyunsuan.git

1、前言

  此次的做业是用java来写一个四则运算练习软件,虽然已经在大一的时候学过Java这门课程,但我并无学的很好,甚至因为在这半年里没有代码的练习,忘记了不少基础知识,因此这样的做业对我来讲有些困难。刚开始的时候不知道该如何让下手,也致使写做业的时间有些仓促,在看过先教做业的几个同窗的代码以后才开始动手。在此感谢宇欣给个人帮助,她详细给我解释了如何运用java将简单等式链接起来,如何运算,如何测试,还交给我若是增长括号的解决方法,虽然我没有实现这个功能,可是在这次做业的完成过程当中,我学到了不少。java

2、需求分析

一、软件基本功能:git

      程序可接收一个输入参数n,而后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题,每一个数字在 0 和 100 之间,运算符在3个到5个之间。算法

二、用户需求:dom

      为了让小学生获得充分锻炼,每一个练习题至少要包含2种运算符。同时,因为小学生没有分数与负数的概念,你所出的练习题在运算过程当中不得出现负数与非整数,好比不能出 3÷5+2=2.6,2-5+10=7等算式。函数

三、基本要求:学习

      练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致。测试

3、设计实现

总体思路:在这里我采用的是宇欣教给个人方法,先用Math.random()生成两个随机数进行加减乘除的运算生成简单式,因为在运算过程当中要保证能整除和不出现负数,因此再用+或*链接几个简单式就能够获得有3-5个运算符的式子,而后利用栈来运算答案。代码中共用到了四个函数,分别实现了:两个数的四则运算题目、将运算符增长至3-5个、实现n个混合四则运算、计算答案。编码

4、算法详解和代码展现

一、生成运算式spa

int x = (int) (Math.random() * 100);// 产生100之内的随机数
        int y = (int) (Math.random() * 100);
        int z = (int) (Math.random() * 4);// 产生整数0到3
        if (z == 1) {
            if (x < y) {
                int temp = x;
                x = y;
                y = temp;
            }
        }
        if (z == 3) {// 若是是除法,保证能整除
            y = (int) (Math.random() * 20) + 1;
            x = (int) (Math.random() * 6) * y;
        }
        String m = x + op[z] + y;
        if (op[z].equals("-") || op[z].equals("+")) {
            flag = 1;
        }
        return m;

二、产生3-5个运算符.net

String question = "";
        for (int i = 0; i < p; i++) {
            if (i < p - 1) {
                String con = op1[(int) (Math.random() * 2)];
                
                    question += MakeQuestion1() + con;
                
            } else {
                question += MakeQuestion1();
            }
            flag = 0;
        }

三、产生n个混合运算

 for (int i = 0; i < n; i++) {
          
                MakeQuestion3();
                if(ifsame==1||answer==1){
                    i--;
                    ifsame=0;
                    answer=0;
                }
            
        }

5、测试运行

6、项目总结

此次项目中遇到了一些小的问题,好比在刚开始运行的时候没有注意到题目要求,须要保证整除,因而在计算一些除法问题时出现了错误,以及个人自学能力太差,不少地方都要向同窗请教,并且没有看懂老师提供的调度场算法,但愿老师在课上的时候能够讲解一下。完成这次做业的过程当中,也让我意识到本身在时间分配上的不足,以及了解了一个项目的制做过程,学到了不少经验,相信在下次的做业中,能够作到更合理的时间分配,以及学习利用老师提供的资源。

7、psp

PSP2.1

任务内容

计划共完成须要的时间(min)

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

Planning

计划

15

20

 

Estimate

估计这个任务须要多少时间,并规划大体工做步骤

10

8

Development

开发

360

900

Analysis

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

6

8

Design Spec

 生成设计文档

0

0

Design Review

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

30

20

Coding Standard

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

10

8

Design

具体设计

30

40

Coding

具体编码

300

360

Code Review

代码复审

30

15

Test

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

30

20

Reporting

报告

60

90

Test Report

 测试报告

5

3

Size Measurement

计算工做量

10

10

Postmortem & Process Improvement Plan

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

3

3

相关文章
相关标签/搜索