• 20172316 2017-2018-2 《程序设计与数据结构》 实验二报告


    课程:《程序设计与数据结构》
    班级: 1723
    姓名: 赵乾宸
    学号:20172316
    实验教师:王志强
    实验日期:2018年4月18日
    必修/选修: 必修


    1.实验内容

    • 初步掌握单元测试和TDD
    • 理解并掌握面向对象三要素:封装、继承、多态
    • 初步掌握UML建模
    • 熟悉S.O.L.I.D原则
    • 了解设计模式
    • 完成蓝墨云上 (1)-(5)实验。

    2. 实验过程及结果

    • 做中学,不管学的是个啥,先做完实验内容就对了,实验(1)-(5)按照顺序完成。
    • 主要过程:看清教程中的要点和步骤,一步一步进行操作,中间遇到了一些问题(详见下),并不是什么难以解决的问题。甚至一些代码只需要复制过去进行简单的操作,可以说很方便了。
    • 结果:初步了解TDD,及S.O.L.I.D原则,实验结果都基本正确。继承运用的很多,所以熟练了许多。封装主要体现在可见性保留字的选择上。

    3. 实验过程中遇到的问题和解决过程

    • 问题1:StringBuffer初始容量问题,依稀记得初始容量为16,但Test时发现StringBuffer a = new StringBuffer("ManyWordMany")的初始容量为28,为什么呢?
    • 问题1解决方案:通过多方查找(甚至直接查看 StringBuffer 类),确认了初始容量确确实实就是16。通过研究观察发现,当我令a = "ManyWord"时,容量变为24,可见 “初始容量” 的意思应该是在所给字符串的基础上加上16

    • 问题2:复数乘法总是计算错误,使用(1+i)*(1+i)结果应为2i,但结果显示为i。
    • 问题2解决方案:查看代码,多次检查,与公式没有任何差别
    
    public Complex ComplexMulti(Complex complex){
    
        RealPart = RealPart * complex.getRealPart() - ImagePart * complex.getImagePart();  
    
        ImagePar = ImagePart * complex.getRealPart() + RealPart * complex.getImagePart();
    
        return new Complex(RealPart, ImagePart);
    }
    

    乍一看没问题,实则犯了一个大错! RealPart在上式被重定义了,那么下式的RealPart不再是应该取得值,计算出错!简易修改:

    public Complex ComplexMulti(Complex complex){
            double a, b;
            a = RealPart * complex.getRealPart() - ImagePart * complex.getImagePart();
            b = ImagePart * complex.getRealPart() + RealPart * complex.getImagePart();
            return new Complex(a, b);
        }
    
    

    解决!


    其他(感悟、思考等)

    一切的一切尽在题中。

    参考资料

    《Java程序设计与数据结构教程(第二版)》
    《Java程序设计与数据结构教程(第二版)》学习指导

  • 相关阅读:
    Linux下启动时间优化专题
    如何展开Linux Memory Management学习?
    《Systems Performance》阅读笔记及收获
    Linux时间子系统之四:Timer在用户和内核空间流程
    Win7 下安装ubuntu14.04双系统
    ubuntu 上使用valgrind
    Observer模式
    从C++到java
    gcc 0长数组学习
    Linux中10个有用的命令行补齐命令
  • 原文地址:https://www.cnblogs.com/zhaoqianchen/p/8921860.html
Copyright © 2020-2023  润新知