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

    代码地址:https://git.coding.net/DLeo/week2-2.git

 

 1.需求分析:使用JAVA编程语言,独立完成一个3到5个运算符的四则运算练习的命令行软件开发。程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。

2.功能设计:基本功能:正常的四则运算,输入要出的题目的数量,随机产生3~5个运算符的四则运算题。

                       扩展功能:产生带括号的四则运算式,产生真分数四则运算式。

3.设计实现:代码中包含Random函数产生随机数和随机的操作符数量,将四则运算符存放在数组里,然后产生随机下标调用运算符。再将运算符和操作数一起存入数组中。

                       计算结果时判断优先级,将结果存在新数组中。

4.算法详解:

public static void product(int a)
        {
            Random random1=new Random();
            String[] symbol= {"+","-","*","÷"};
            int b=3+ random1.nextInt(3);//操作符数量
            String[] operation=new String[13];//存操作数加操作符
    for(a=0;a<2*b;a+=2)
         {  
            operation[0]=String.valueOf(random1.nextInt(100));
            String str = String.valueOf(random1.nextInt(100));//随机数转换成string型
            operation[a+1]=symbol[random1.nextInt(4)];
            operation[a+2]=str;
            if(operation[a+1]=="÷") 
            {
                if(operation[a+2]=="0") 
                {    
                     int c,d;
                     do {
                          c = 1 + random1.nextInt(100);
                          d = 1 + random1.nextInt(100);
                         operation[a] = String.valueOf(c);
                         operation[a+2] = String.valueOf(d);
                         }
                     while(c%d!=0);

 

产生运算式 ,存储在数组中。将int型转换成string型。

5.测试运行:

6.代码片段:

 operation[0]=String.valueOf(random1.nextInt(100));
            String str = String.valueOf(random1.nextInt(100));//随机数转换成string型
            operation[a+1]=symbol[random1.nextInt(4)];
            operation[a+2]=str;
            if(operation[a+1]=="÷") 
            {
                if(operation[a+2]=="0") 
                {    
                     int c,d;
                     do {
                          c = 1 + random1.nextInt(100);
                          d = 1 + random1.nextInt(100);
                         operation[a] = String.valueOf(c);
                         operation[a+2] = String.valueOf(d);
                         }
                     while(c%d!=0);

将int型转换成string型和操作符一块存在数组中,然后输出数组就得到了表达式。do  while循环直到结果整除。

7.总结:因为自己对Java不是太懂,导致自己做的东西不是很正规,里边有很多错误的地方,导致结果算不出来。通过这次运用Java做软件,也发现了自己的很多不足,代码能力极差,对一些函数、类、方法的应用知之甚少。在做代码的时候,虽然想法很好但是自己不知道该如何去实现它,这和自己学习Java的时候不认真听有极大的关系。所以以后要重新学习语言。

8.

 

PSP2.1

任务内容

计划共完成需要的时间

实际完成需要的时间

Planning

计划

1h

2h

·        Estimate

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

3days

3days

Development

开发

3h

 

·        Analysis

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

1h

1h

·        Design Spec

·         生成设计文档

20min

20min

·        Design Review

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

30min

30min

·        Coding Standard

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

3h

3h

·        Design

·         具体设计

40min

40min

·        Coding

·         具体编码

2days

3days

·        Code Review

·         代码复审

1days

1days

·        Test

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

1h

1h

Reporting

报告

3h

3h

·         Test Report

·         测试报告

2h

2h

·         Size Measurement

·         计算工作量

1h

1h

·         Postmortem & Process Improvement Plan

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

30min

 

30min

posted @ 2018-03-25 17:39  DLion  阅读(218)  评论(1编辑  收藏  举报