zoukankan      html  css  js  c++  java
  • oh my god 四则运算

    Week1地址:https://git.coding.net/leiqh549/four.git

    需求分析:

    1.一个生成n道四则运算的程序,要求数字在0-100间,运算符在3-5个之间且运算符至少包含两种且不可出现负数与分数。

    功能设计:

       基本功能:

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

    附加功能:

    • 支持有括号的运算式,包括出题与求解正确答案。注意,算式中存在的括号必须大于2个,且不得超过运算符的个数。
    • 扩展程序功能支持真分数的出题与运算(只需要涵盖加减法即可),例如:1/6 + 1/8 + 2/3= 23/24。注意在实现本功能时,需支持运算时分数的自动化简,比如 1/2+1/6=2/3,而非4/6,且计算过程中与结果都须为真分数

    设计实现:

    在程序设计这方面,我只有一个Main.java文件,其中包含一个主方法以及三个方法,分别是:

    1. public static char[] create_carr(int c_sum);/*根据容量创建数符数组*/
    2. public static int[] create_narr(int c_sum)/*根据容量创建运算数数组*/
    3. public static int[] correct(int[] n, char[] c, int c_sum);/*根据所创的数符数组以及运算数数组进行矫正,矫正成复合题意的数组*/

            各函数间关系如下:

                          create_carr()        create_narr()

     

                                     correct()

     

    比较满意的代码:

    public static int[] correct(int[] n, char[] c, int c_sum) {

            for (int i = 0; i < n.length - 1; i++) {

                if (c[i] == '/') {

                    while (n[i] < n[i + 1] || n[i + 1] == 0 || n[i] % n[i + 1] != 0) {

                        int[] a = create_narr(c_sum);

                        for (int j = 0; j < n.length; j++) {

                            n[j] = a[j];

                        }

                    }

                } else if (c[i] == '-') {

                    while (n[i] < n[i + 1]) {

                        int[] a = create_narr(c_sum);

                        for (int j = 0; j < n.length; j++) {

                            n[j] = a[j];

                        }

                    }

               

            }

            return n;

     

        }

     

    这段代码我承认是错误的,我本来的想法是将创建完的数符数组以及运算数组传入该方法中,然后测试频频出现问题,后来我发现了一个巨大的问题,还是java基础的问题,当一个外部变量传给方法的参数的时候,外部变量是无法改变的,除非是引用变量,内部变量把引用的对象的内容进行修改,这样才可以改变外部变量,不过我觉得想法还是可以的,因为无法return两个数组,所以干脆把数组的引用传给方法内部,在方法内部实现一系列的矫正,因为也是3.25号开始写的作业,大概看了一眼其他同学的博客,发现有很多分数相加的题目,感觉没有符合要求,于是就细想了下这个矫正方法应该怎么实现,觉得很麻烦,于是就只写了一小部分,希望以后能够完善出来;

     

    部分代码展示:

     

     

     

     

     

    总结:因为自身的原因,我把作业拖了好久好久,以至于3.25号,也就是今天才开始写这个作业,我承认代码完成的程度很差,不过我觉得还是要提交上来,证明起码这一天时间我是在努力地想要完成这项作业,不过完成的效果并不好,因为我的算法和数据结构烂的一塌糊涂,所以我真的逐渐发现软件工程导论这门课程的好处,它能够让你立刻找到自己身上的不足并且激励着你前行,谢谢各位老师们留的这次作业,我会努力下去。

     

    8.PSP

     

    PSP2.1

    任务内容

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

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

    Planning

    计划

    5

    4

    ·        Estimate

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

    5

    4

    Development

    开发

    5

    8

    ·        Analysis

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

    0.5

    0.5

    ·        Design Spec

    ·         生成设计文档

    1

    1

    ·        Design Review

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

    1.5

    2

    ·        Coding Standard

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

    1

    1.5

    ·        Design

    ·         具体设计

    2

    2

    ·        Coding

    ·         具体编码

    4

    5

    ·        Code Review

    ·         代码复审

    1

    0.5

    ·        Test

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

    2

    1.5

    Reporting

    报告

    2

    3

    ·         Test Report

    ·         测试报告

    2

    1

    ·         Size Measurement

    ·         计算工作量

    1

    1

    ·         Postmortem & Process Improvement Plan

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

    0.5

    0.5

     

      

     

     

     

     

     

     

     

      

  • 相关阅读:
    [I cannot be cast to java.lang.Comparable
    关于有参构造的调用问题
    方法中的参数问题
    mybatis中xml的sql语句传入参数的不同用的#{}中的参数也不相同
    javaweb中向集合中添加对象报空指针异常问题的可能原因
    找不到log4j类的问题可能的原因
    快速失败和安全失败(别人写的,摘抄过来了)
    自动生成的列在xml中写sql代码插入时不写入,但是其余属性要都列出来
    JQ高级
    JQ初级
  • 原文地址:https://www.cnblogs.com/leiqh549/p/8646055.html
Copyright © 2011-2022 走看看