java实验报告(实验二)

              

课程:移动平台应用开发实践   班级:201592     姓名:王鹤  学号:20159202

成绩:             指导教师:娄嘉鹏           实验日期:2015.10.3

实验密级:          预习程度:                 实验时间:

仪器组次:          必修/选修:选修          实验序号:1

实验名称:     Java开发环境的熟悉

实验目的与要求:

1. 初步掌握单元测试和TDD

2. 理解并掌握面向对象三要素:封装、继承、多态

3. 初步掌握UML建模

4. 熟悉S.O.L.I.D原则

5. 了解设计模式

实验设备:具有java开发环境的计算机

实验内容、步骤

(一)单元测试

用程序解决问题时,要会写三种码:伪代码、产品代码、测试代码

以实现一个百分制成绩转成“优、良、中、及格、不及格”五级制成绩的功能为例:

1.伪代码

若成绩小于60,转成“不及格”

若成绩在60与70之间,转成“及格”

若成绩在70与80之间,转成“中等”

若成绩在80与90之间,转成“良好”

若成绩在90与100之间,转成“优秀”

其他,转成“错误”

2.测试代码

3.产品代码

编译测试代码没有语法错误了,运行JUnit.Test,如下图:

测试结果出现了一个红条,说明测试没通过,修改MyUtil.Java后再运行测试,如下图所示:

测试成功!

加入边界值测试

发现测试未通过,再修改MyUtil.Java,加入对分数小于0和等于100的判断,运行程序,出现绿条说明测试成功,如下图所示:

(二)面向对象三要素

面向对象(Object-Oriented)的三要素包括:封装、继承、多态。面向对象的思想涉及到软件开发的各个方面,如面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程实现(OOP)。

Java中用类进行封装,建一个Dog类,Dog类通过使用类和访问控制(private,public)隐藏了属性color,开放了接口setColor(),getColor(),bark()toStringDog类是一个模块,测试代码与运行结果如下:

OOD中建模会用图形化的建模语言UML(Unified Modeling Language),下面用UML中的类图来继承,UML类图能展示类之间的静态关系,在这个实例中AnimalTest类依赖Dog类和Cat类,如图所示:
    

上面的UML图把Dog类中的bark()Cat类中的meow()抽象成一个抽象方法shout(),Dog类和Cat类中覆盖这个方法,对应的测试代码和运行结果如下图所示:

(三)设计模式初步

(1)S.O.L.I.D原则

面向对象三要素是“封装、继承、多态”,任何面向对象编程语言都会在语法上支持这三要素。如何借助抽象思维用好三要素特别是多态还是非常困难的,S.O.L.I.D类设计原则是一个很好的指导:

  • SRP(Single Responsibility Principle,单一职责原则)
  • OCP(Open-Closed Principle,开放-封闭原则)
  • LSP(Liskov Substitusion Principle,Liskov替换原则)
  • ISP(Interface Segregation Principle,接口分离原则)
  • DIP(Dependency Inversion Principle,依赖倒置原则)

(2)模式与设计模式

模式是某外在环境(Context) 下﹐对特定问题(Problem)的惯用解决之道。

在面向对象中设计模式的地位可以和面向过程编程中的数据结构的地位相当。

(四)练习

1.使用TDD的方式设计关实现复数类Complex。

一、伪代码:

首先设计一个复数类Complex,定义三个构造方法:

  • 无输入 --- 则复数的实部为0,虚部为0
  • 输入一个参数--- 复数的实部为所输入的数,虚部为0
  • 输入两个参数 --- 复数的实部与虚部对应相应输入的两个数。
  • 加法 --- 复数的实部与实部相加,虚部与虚部相加 ,即输出a.x+b.x,a.y+b.y
  • 减法 --- 复数的实部与实部相减,虚部与虚部相减 , 即输出a.x-b.x,a.y-b.y
  • 乘法 --- 两个复数相乘,类似两个多项式相乘,展开得: ac+adi+bci+bdi^2
  • 除法 --- 在分子分母同时乘上分母的共轭.展开得:(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i.

二、测试代码:

三、产品代码

运行结果如下:

实验PSP时间


步骤


耗时


百分比


需求分析


5min


5.6%


设计


20min


22.2%


代码实现


30min


33.4%


测试


5min


5.6%


分析总结


30min


33.4%

实验总结与收获

1.知道了TDD的一般步骤:明确当前要完成的功能,记录成一个测试列表,快速完成编写针对此功能的测试用例,测试代码编译不通过(没产品代码呢),编写产品代码,测试通过,对代码进行重构,并保证测试通过。

2.写程序先写出三种代码:伪代码、产品代码、测试代码,这样的程序才有实际意义。

遇到的问题及解决

Complex伪代码时不知道应该如何分类。查询复数类的构造方法,得知可以定义三类,对复数的加减乘除方法有些遗忘,后查询相关资料得知。

时间: 2024-10-05 04:27:31

java实验报告(实验二)的相关文章

C语言程序设计实验报告(二)

C程序设计实验报告 实验项目:2-3-3字符与ASCII码:2-3-4运算符与表达式的应用:2-3-5顺序结构应用程序:3-3-1数学函数的算法描述:3-3-2鸡兔同笼的算法描述:3-3-3确定坐标的算法描述 姓名:彭佳乐 实验地点:家 实验时间:2020.3.12 一.实验目的与要求 1.掌握自增++,自增--运算符的正确使用. 2.掌握基本的输入/输出函数的基本功能.调用方法.输入/输出格式控制规定等. 3.掌握结构化程序的算法描述方法. 4.熟练掌握C语言的运算符,即运算符的优先级和结核性

Python程序设计实验报告(二)

安徽工程大学 Python程序设计 实验报告 班级   物流192   姓名  韩婧  学号3190505239 成绩 日期   2020.3.25    指导老师       修宇 实验二顺序结构程序设计(验证性实验)(二学时) [实验目的] (1)掌握数据的输入输出的方法: (2)熟悉顺序结构程序中语句的执行过程: (3)掌握顺序结构程序的设计方法. [实验条件]   PC机或者远程编程环境   [实验内容] 1.完成三个编程题.( python123) (1)计算圆面积的计算 S 问题描述

山东大学 机器学习 实验报告 实验2 模式分类 上机练习

[17级的同辈们,这是我实验报告真实且全部的内容,求求求求你们,不要让我后悔提前发布 ╥﹏╥... .真的挺简单的,1天就能搞定,而且在书里的位置我都标注出来了,让我们来一起学习吧!!!( ̄▽ ̄)",当然错了也概不负责哈~~~~] 3.实验内容及说明 使用上面给出的三维数据: 1. 编写程序,对类 1 和类 2 中的 3 个特征 x i 分别求解最大似然估计的均值???和方差?? ?2. 2. 编写程序,处理二维数据的情形??(??)~??(??,??).对类 1 和类 2 中任意两个特征的组合

实验报告 实验2 固件设计

北京电子科技学院(BESTI) 实     验    报     告 课程: 密码系统设计基础                                                               班级: 1352班.1353班 姓名:王玥.刘浩晨                                                                    学号:20135232.20135318 成绩:                      

JAVA课程实验报告 实验二 JAVA面向对象程序设计

课程:Java程序设计  班级:1352  姓名:黄伟业  学号:20135315 成绩:             指导教师:娄嘉鹏    实验日期:2015.5.7 实验密级:         预习程度:         实验时间:15:50--20:50 仪器组次:         必修/选修: 选修            实验序号:2 实验目的: 1.掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了

2019秋JAVA第三周课程总结及实验报告(二)

个人博客 一.基础字符串操作 题目:已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) 统计该字符串中字母s出现的次数. 统计该字符串中子串"is"出现的次数. 统计该字符串中单词"is"出现的次数. 实现该字符串的倒序输出. package com.company; public class Main { static String str = "this is a test

JAVA课程实验报告 实验三 敏捷开发与XP实践

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉鹏             实验日期:2015.5.29 实验密级:         预习程度:                     实验时间:15:30--18:00 仪器组次:         必修/选修: 选修             实验序号:3 实验名称:实验三 敏捷开发与XP实践 实

Java课程实验报告 实验一 Java开发环境的熟悉

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353 姓名:韩玉琪 学号:20135317 成绩:            指导教师:娄嘉鹏  实验日期:2015.4.11 实验密级: 预习程度:  实验时间:19:30~21:50 仪器组次: 必修/选修:选修  实验序号:1 实验名称:             JAVA开发环境的熟悉 实验目的与要求: 1. 使用JDK编译.运行简单的Java程序. 2.在命令行和Eclipse下编辑.编译

第四周课程总结&实验报告(二)

实验二 Java简单类与对象 实验目的 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性: 理解static修饰付对类.类成员变量及类方法的影响. 实验内容 写一个名为Rectangle的类表示矩形.其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求该类具有: (1) 使用构造函数完成各属性的初

Java课程实验报告 实验四 Java网络编程及安全

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计     班级:1352     姓名:吕松鸿  学号:20135229 成绩:                 指导教师:娄嘉鹏             实验日期:2015.6.9 实验密级:             预习程度:                   实验时间:15:50--20:50 仪器组次:29           必修/选修: 选修             实验序号:04 实验目的