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

代码仓库地址:https://git.coding.net/wangchaochao31/homework2.git

测试效果见src下生成的result.txt文件

 

一、需求分析

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

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

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

4、当程序接收的参数为4时,以下为一个输出文件示例。

2018010203

13+17-1=29

11*15-5=160

3+10+4-16=1

15÷5+3-2=4

二、功能设计

1、基础功能:实现四则混合运算的出题和计算

2、扩展功能:支持有括号的运算式,包括出题与求解正确答案。

三、设计实现与算法详解

1、基本的四则运算;

   int a = (int) (Math.random() * 100);
        int b = (int) (Math.random() * 100);
        int c = (int) (Math.random() * 4);
     String question = "";
        for (int i = 0; i < p; i++) {
            if (i < p - 1) {
                String con = calaulate1[(int) (Math.random() * 2)];
                if (con.equals("*")) {
                    String com = way()

 

2、括号的加入;

if (flag == 1) {
                        question += "(" + com + ")" + con;
                    } else {
                        question += com + con;
                    }
                } else {
                    question +=way() + con;
                }
            } else {
                question += way();

3、多个混合运算;

public void way(int n) {
        for (int i = 0; i < n; i++) {
            int random = (int) (Math.random() * 3);
            if (random == 0 || random == 1) {
               route();
                if(ifsame==1||answer==1){
                    i--;
                    ifsame=0;
                    answer=0;

4、程序的存储;利用栈进行存储以及输出。

四、运行测试

五、总结

优点:基本要求达到,括号可以加入。每一部分都相对独立,可以单独修改。

缺点:括号的加入没有达到要求,程序相对繁琐。

六、PSP

PSP

任务内容

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

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

Planning

计划

20

15

·        Estimate

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

10

15

Development

开发

15*60

28*60

·        Analysis

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

2*60

6*60

·        Design Spec

·         生成设计文档

60

50

·        Design Review

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

40

50

·        Coding Standard

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

50

60

·        Design

·         具体设计

30

40

·        Coding

·         具体编码

6*60

10*60

·        Code Review

·         代码复审

60

6*60

·        Test

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

30

60

Reporting

报告

60

90

·         Test Report

·         测试报告

30

40

·         Size Measurement

·         计算工作量

20

20

·         Postmortem & Process Improvement Plan

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

10

20

 

1、 学习新知识的时间更长,原因:对其他的知识了解不多,有的知识没有任何基础。

2、代码的编码和复审时间更长,原因:代码的编码不熟悉,大部分代码改了又改;复审的时候因为代码过长,大幅删减,错误频出。

posted @ 2018-03-25 12:30  2016012030王超超  阅读(146)  评论(3编辑  收藏  举报