20162329 张旭升 实验二:实验报告
实验报告
课程:程序设计与数据结构
班级: 1623
姓名: 张旭升
学号:20162329
指导教师:娄嘉鹏 王志强
实验日期:4月14日
实验密级: 非密级
预习程度: 已预习
必修/选修: 必修
实验序号: cs_29
实验名称: Java面向对象程序设计
实验要求:
没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程
完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导
严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。
请大家先在实验楼中的~/Code目录中用自己的学号建立一个目录,代码和UML图要放到这个目录中,截图中没有学号的会要求重做,然后跟着下面的步骤练习。
实验内容
初步掌握单元测试和TDD
理解并掌握面向对象三要素:封装、继承、多态
初步掌握UML建模
熟悉S.O.L.I.D原则
了解设计模式
实验过程
一.单元测试
1. 书写三种代码
- 伪代码
- 产品代码
测试代码
2.IDEA上进行驱动开发
由之前已写好的自定义类通过驱动自动生成测试代码,帮助我们节省时间精力。
二.面向对象三要素
1. 三种要素
- 封装
- 继承
多态
2. 熟悉三要素的使用
通过实验练习类的书写和测试来熟悉面向对象三要素。
三.实验练习
1. 练习代码
public class ComplexNumber {private int i;private double a, b;static private double W, X, Y;static private String Z,z;public ComplexNumber(){}public ComplexNumber(double A, double B){this.a = A;this.b = B; }public void Show(){System.out.println("Show a complex number: z=a+bi" );} public static void Count(ComplexNumber C1,char C2,ComplexNumber C3){switch (C2){case '+' :X = C1.a + C3.a;Y = C1.b + C3.b;Z = "("+X+")" + "+" + "("+Y+")" + "i";break;case '-' :X = C1.a - C3.a;Y = C1.b - C3.b;Z = "("+X+")" + "+" + "("+Y+")" + "i";break;case '*' :X = C1.a * C3.a - C1.b * C3.b;Y = C1.b * C3.a + C1.a * C3.b;Z = "("+X+")" + "+" + "("+Y+")" + "i";break;case '/' :W = Math.pow(C3.a,2)+Math.pow(C3.b,2);X = (C1.a * C3.a + C1.b * C3.b)/W;Y = (C1.b * C3.a - C1.a * C3.b)/W;Z = "("+X+")" + "+" + "("+Y+")" + "i";break;default:System.out.println("The input is not a valid operator!");}}public void Length(){double m;if (b != 0){double s = (int)Math.pow(a, 2)+Math.pow(b, 2);m = Math.sqrt(s); }elseif(a>=0)m = this.a;elsem = this.a * -1;System.out.println("This complex number length is: " + m);}public static String getCount(){return Z;}public String toString(){z = "("+a+")" + "+" + "("+b+")" + "i";return z;}}
2. 实验练习测试
实验中遇到的问题
问题:
开始我是想先建立一个
Number
的接口,用来设置所有数都有的表示功能(Show)
和计算(count)
功能,后来在做复数的类(ComplexNumber)
时发现计算是无法实现的。原因和解决办法:
因为计算这个方法在每类数中表达方式都是不同的,所传入参数也是不同的,最终我还是把接口中的
count
方法去掉了,导致我的接口实际意义也变得非常小,就也被我取缔了,最终虽然是完成了但是这些都还是不足,希望在今后的学习中能改进。
实验不足
本次实验练习中还是没有太多的体现出多态,虽然我对相关的概念感觉是理解了,但是到了要做这个程序的时候发现好多想的却有些难以实现,时间紧迫也就都简化了,这些还要慢慢改进。
## 实验心得
- 在设计代码时先写出伪代码是一个非常节省时间的办法,伪代码可以帮你理清思路,减少思想逻辑上花费的时间。
转载于:https://www.cnblogs.com/Zhangxusheng/p/6710594.html
20162329 张旭升 实验二:实验报告相关推荐
- 大学计算机实验二报告表答案,北理大学计算机实验基础实验二实验报告表答案...
<北理大学计算机实验基础实验二实验报告表答案>由会员分享,可在线阅读,更多相关<北理大学计算机实验基础实验二实验报告表答案(4页珍藏版)>请在人人文库网上搜索. 1.实验二实验 ...
- python编程图书批发商店的某本书的零售价是26.5_根据实验指导书,完成实验2的任务一与任务三,使用 实验二(实验报告).docx 完成报告并提交。_学小易找答案...
[简答题]从键盘输入 n(0 [简答题]完成课本P89,查询学生成绩,提交源代码 [单选题]企业本期生产产品直接耗用原材料 3000 元,生产车间管理方面耗用原材料 2000 元,正确的会计分录是( ...
- java上机实验实验报告_Java实验二实验报告.doc
Java实验二实验报告 本科学生实验报告 ( 二 ) 姓名 学院 计算机科学学院 专业 计算机科学与技术 班级 实验课程名称 Java面向对象设计 试验时间 2012 年 10 月 14 日 指导教师 ...
- 20135333苏正生实验二实验报告
实验报告 课程: Java程序设计 班级: 1353 姓名: 苏正生 学号: 2015333 成绩: 指导教师: 娄家鹏 实验日期: 2015.5.6 实验密级: 预习程度: 实验时间: 3:20~5 ...
- 大学计算机实验二报告表答案,北理大学计算机实验基础实验二实验报告表答案(1页)-原创力文档...
实验二实验报告表 实验名称: 学号姓名:班级:实验时间: 实验报告表 2-1 数值型数据在计算机中的二进制实验记录表 十进制整数分 输入十进制整数 内存整型数据 内存地址号 类 任意正整数 7 000 ...
- 20202413 2021-2022-2 《网络与系统攻防技术》实验二实验报告
20202413 2021-2022-2 <网络与系统攻防技术>实验二实验报告 文章目录 20202413 2021-2022-2 <网络与系统攻防技术>实验二实验报告 1.实 ...
- 20162329张旭升 2016-2017-2 《程序设计与数据结构》第七周学习总结
20162329张旭升 2016-2017-2 <程序设计与数据结构>第七周学习总结 教材学习内容总结 通过继承实现多态:若两个类是is-a关系,将子类对象向上转型为父类后该变量就可以实现 ...
- 20162329张旭升 2016-2017-2 《程序设计与数据结构》第八周学习总结
20162329张旭升 2016-2017-2 <程序设计与数据结构>第八周学习总结 教材学习内容总结 1.异常的产生:当程序中出现不符合计算机逻辑的情况,在编译运行时就会出现异常. 2. ...
- 20162329张旭升 2016-2017-2 《程序设计与数据结构》第九周学习总结
20162329张旭升 2016-2017-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 1.建立数据库连接:我们是通过老师给的XAMPP程序来配置自己的数据库,然后根据教程 ...
- ORACLE与数据库原理实验 实验二 实验数据库的建立(答案全)
实验二 实验数据库的建立 [实验目的] [预备知识] [实验内容] [实验目的] 1. 熟悉和掌握 SQL的 Create Table, Drop Table, Alter Table语句语法: 2. ...
最新文章
- pandas案例分析
- oracle的listagg函数
- Uncaught SyntaxError - unexpected end of input
- 得到appd url_AppD方法:Java 9支持
- Hadoop--Yarn常用命令 与 生产环境核心配置参数
- 【Java 基础】枚举、包装类、Math、Radnom、UUID、格式化、DecimalFormat、高精度计算(BigDecimal)
- MySQL基本介绍(一)
- matlab 数字字母,MATLAB读取txt(包含字母和数字)
- 【Mybatis】Mybatis三大组件之StatementHandler
- 用foobar2000播放服务器文件,用Foobar2000打造网络电台
- Appium iOS 自动化测试总结
- 我的世界命令计算机,我的世界电脑版指令大全,你想要的指令都在这里
- android自定义秒表,Android:一个简单的秒表实现
- 人脸识别: 人脸数据集大全
- linux之U盘安装
- 阿翔编程学-系统安全
- android5.1 MT6735 编译过程
- PHP 关于thinkphp5.0使用Imagick
- CSS布局设置如何才能做到左边滑动右边不动,右边滑动左边不动
- 2021年最新全国30米土地利用数据(中科院二级分类)