简单四则运算的实现报告

Posted 张林1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单四则运算的实现报告相关的知识,希望对你有一定的参考价值。

仓库地址:https://git.coding.net/DouPIyo/SimpleMath.git

需求分析

基础需求:

输入参数n,生成n个四则运算至命令行窗口,结果输出至文件。

其中,参数n为整数,运算符不少于两个不得大于五个,运算过程整体不可出现负数和非整数,输出文件名为“result.txt”(仅包含学号以及正确答案)。

高级需求:

支持括号运算,支持真分数运算。

其中,只能出现正整数,真分数,结果为最简形式。

设计思路及功能设计

首设计两个函数,分被用来生成三个1-100随机的整数和两个运算符

而后在主函数中通过for循环不断生成随机数,运算符号病判断算式是否符合要求(通过16个if—else选择语句完成),将符合条件的算法式及其结果保留下来,直至达到需求数N。将式子和结果分别输出至控制台和result.txt中。

高级需求:未完成

 

代码展示

生成随机的三个数用于参加计算

    public static int[] suijishu ()
    {
        int c,d,e;
        c = new Random().nextInt(100) +1;
        d = new Random().nextInt(100) +1;
        e = new Random().nextInt(100) +1;
        int [] suijishu1 = {c,d,e};
        return suijishu1;
    }

 

生成两位运算符号

    public static int[] suijiyunsuan ()
    {
        int rand,rand1,index,index1;
        int [] arr = {1,2,3,4};//1,2,3,4分别代表加,减,乘,除
        index=(int)(Math.random()*arr.length);
        rand = arr[index];
        index1 = (int)(Math.random()*arr.length);
        rand1 = arr[index1];
        int[]suijiyunsuan1= {rand,rand1};
        return suijiyunsuan1;
    }

循环选择算法

for(a=1;b<n;)
        {
            int demo[] =ab.suijishu();
            int demo1[] =ab.suijiyunsuan();
            if(demo1[0] == 1&& demo1[1] ==1)
            {
                System.out.println(demo[0]+"+"+demo[1]+"+"+demo[2]+"=");
                result[b] = demo[0]+demo[1]+demo[2];
                b=b+1;
            }
            else
            {
                if(demo1[0] == 1&& demo1[1] == 2)
                {
                    if(demo[0]+demo[1]-demo[2]>=0)
                    {
                        System.out.println(demo[0]+"+"+demo[1]+"-"+demo[2]+"=");
                        result[b] = demo[0]+demo[1]-demo[2];
                        b=b+1;
                    }
                }
                else
                {
                    if(demo1[0] == 1&& demo1[1] == 3)
                    {
                        System.out.println(demo[0]+"+"+demo[1]+"*"+demo[2]+"=");
                        result[b] = demo[0]+(demo[1]*demo[2]);
                        b=b+1;
                    }
                    else
                    {
                        if(demo1[0] == 1&& demo1[1] == 4)
                        {
                            if(demo[1]%demo[2] ==0)
                            {    
                                System.out.println(demo[0]+"+"+demo[1]+"/"+demo[2]+"=");
                        
                                result[b] = demo[0]+(demo[1]/demo[2]);
                                b=b+1;
                            }    
                        }
                        else
                        {
                            if(demo1[0] == 2&& demo1[1] == 1)
                            {
                                if(demo[0]-demo[1]>=0)
                                    System.out.println(demo[0]+"-"+demo[1]+"+"+demo[2]+"=");
                                    result[b] = demo[0]-demo[1]+demo[2];
                                    b=b+1;
                            }
                            else
                            {
                                if(demo1[0] == 2&& demo1[1] == 2)
                                {
                                    if(demo[0]-demo[1]>=0 && demo[0]-demo[1]-demo[2]>=0) 
                                        System.out.println(demo[0]+"-"+demo[1]+"-"+demo[2]+"=");
                                        result[b] = demo[0]-demo[1]-demo[2];
                                        b=b+1;
                                }
                                else
                                {
                                    if(demo1[0] == 1&& demo1[1] == 3)
                                    {
                                        
                                        System.out.println(demo[0]+"+"+demo[1]+"*"+demo[2]+"=");
                                        result[b] = demo[0]+(demo[1]*demo[2]);
                                        b=b+1;
                                    }
                                    else
                                    {
                                        if(demo1[0] == 2&& demo1[1] == 3)
                                        {
                                            if(demo[0]-(demo[1]*demo[2])>=0)
                                                {System.out.println(demo[0]+"-"+demo[1]+"*"+demo[2]+"=");
                                                result[b] = demo[0]-(demo[1]*demo[2]);
                                                b=b+1;}
                                        }
                                        else
                                    
                                            if(demo1[0] == 2&& demo1[1] == 4)
                                            {
                                                if(demo[0]-(demo[1]/demo[2]) >=0 && demo[1]%demo[2] == 0)
                                                b=b+1;
                                                System.out.println(demo[0]+"-"+demo[1]+"/"+demo[2]+"=");
                                                result[b] = demo[0]-(demo[1]/demo[2]);
                                                b=b+1;
                                            }
                                            else
                                            {
                                                if(demo1[0] == 3&& demo1[1] == 1)
                                                {
                                                    
                                                    System.out.println(demo[0]+"*"+demo[1]+"+"+demo[2]+"=");
                                                    result[b] = demo[0]*demo[1]+demo[2];
                                                    b=b+1;
                                                }
                                                else
                                                {
                                                    if(demo1[0] == 3&& demo1[1] == 2)
                                                    {
                                                        if(demo[0]*demo[1]-demo[2]>=0)
                                                            System.out.println(demo[0]+"*"+demo[1]+"-"+demo[2]+"=");
                                                            result[b] = demo[0]*demo[1]-demo[2];
                                                            b=b+1;
                                                    }
                                                    else
                                                    {
                                                        if(demo1[0] == 3&& demo1[1] == 3)
                                                        {
                                                            System.out.println(demo[0]+"*"+demo[1]+"*"+demo[2]+"=");
                                                            result[b] = demo[0]*demo[1]*demo[2];
                                                            b=b+1;
                                                        }
                                                        else 
                                                        {
                                                            if(demo1[0] == 3&& demo1[1] == 4)
                                                            {
                                                                if(demo[0]*demo[1]%demo[2] == 0)
                                                                    System.out.println(demo[0]+"*"+demo[1]+"/"+demo[2]+"=");
                                                                    result[b] = demo[0]*demo[1]/demo[2];
                                                                    b=b+1;
                                                            }
                                                            else
                                                            {
                                                                if(demo1[0] == 4&& demo1[1] == 1)
                                                                {    
                                                                    if(demo[0]%demo[1] == 0)
                                                                        {System.out.println(demo[0]+"/"+demo[1]+"+"+demo[2]+"=");
                                                                        result[b] = demo[0]/demo[1]+demo[2];
                                                                        b=b+1;}
                                                                }        
                                                                else
                                                                {
                                                                    if(demo1[0] == 4&& demo1[1] == 2)
                                                                    {    if(demo[0]%demo[1] == 0 &&demo[0]/demo[1]-demo[2]>=0)
                                                                            {System.out.println(demo[0]+"/"+demo[1]+"-"+demo[2]+"=");
                                                                            result[b] = demo[0]/demo[1]-demo[2];
                                                                            b=b+1;}
                                                                    }
                                                                    else
                                                                    {
                                                                        if(demo1[0] == 4&& demo1[1] == 3)
                                                                        {
                                                                            if(demo[0]%demo[1] == 0)
                                                                                {System.out.println(demo[0]+"/"+demo[1]+"*"+demo[2]+"=");
                                                                                result[b] = demo[0]/demo[1]*demo[2];
                                                                                b=b+1;}
                                                                        }
                                                                        else
                                                                        {
                                                                            if(demo[0]%demo[1] == 0 && demo[0]/demo[1]%demo[2] == 0)
                                                                                {System.out.println(demo[0]+"/"+demo[1]+"/"+demo[2]+"=");
                                                                                result[b] = demo[0]/demo[1]/demo[2];
                                                                                b=b+1;}
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                                
                                                            
                                                        }
                                                    }
                                                }
                                            }
                                    }
                                }
                            }
                        }
                    }
                }
            }
                
        
            
        }
        
        
        
    }

 

 

测试运行

反思

首先在思考这个问题如何解决时,并不细致,以为很好解决,事实情况因为自己想当然而重新改了很多次。

其次,编程时并无太多的大局观念,而是想到哪里就写什么,而后来发现自己的这个方法在主方法里使用并不完美,或者忘记了某个很重要的问题。比如刚开始什么都没干就先写了分数计算和化简的方法,最后自己因为需要一改再改,拖着拖着没时间加入完美了(差点交不上去了),又如算法极其粗糙。啊哈哈

九思而后动,诚不欺我也。引以为戒

七、PSP展示

PSP

任务内容

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

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

Planning

计划

40

30

·    Estimate

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

40

30

Development

开发

355

495

·   Analysis

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

30

40

·    Design Spec

·    生成设计文档

10

5

·    Design Review

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

10

5

·    Coding Standard

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

5

5

·    Design

·    具体设计

20

10

·    Coding

·    具体编码

240

360

·    Code Review

·    代码复审

30

60

·    Test

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

10

10

Reporting

报告

40

50

·    Test Report

·    测试报告

20

30

·    Size Measurement

·    计算工作量

10

10

·    Postmortem & Process

     Improvement Plan

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

                       20                         20

以上是关于简单四则运算的实现报告的主要内容,如果未能解决你的问题,请参考以下文章

201671010432词频统计软件项目报告

java课程设计:设计一个计算器模拟程序。

20165337第五周实验报告

2016012045+小学四则运算联系项目报告

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

代码片段 - Golang 实现简单的 Web 服务器