20145307《Java程序设计》实验报告二:Java面向对象程序设计

实验要求

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

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

3.初步掌握UML建模

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

5.了解设计模式

实验内容

一、单元测试

1.三种代码

伪代码:以简洁的自然语言表明设计步骤

百分制转五分制: 如果成绩小于60,转成“不及格” 如果成绩在60与70之间,转成“及格” 如果成绩在70与80之间,转成“中等” 如果成绩在80与90之间,转成“良好” 如果成绩在90与100之间,转成“优秀” 其他,转成“错误”

产品代码:用以实现特定功能的程序或机器语言;

    package exp1;
public class EVER{
public static String percentage2fivegrade(int grade){
//如果成绩小于60,转成“不及格”
if (grade < 60)
return "不及格";
//如果成绩在60与70之间,转成“及格”
else if (grade < 70)
return "及格";
//如果成绩在70与80之间,转成“中等”
else if (grade < 80)
return "中等";
//如果成绩在80与90之间,转成“良好”
else if (grade < 90)
return "良好";
//如果成绩在90与100之间,转成“优秀”
else if (grade < 100)
return "优秀";
//其他,转成“错误”
else
return "错误";
}
}

测试代码:用以对产品代码进行测试的代码

二、复数的四则运算

原设计代码如下:

import java.util.Scanner;
class complex {
double a, b; complex() {
this.a = 0;
this.b = 0;
} complex(double a) {
this.a = a;
this.b = 0;
} complex(double a, double b) {
this.a = a;
this.b = b;
} complex add(complex p1, complex p2) {
complex p = new complex(p1.a + p2.a, p1.b + p2.b); return p;
} complex minus(complex p1, complex p2) {
complex p = new complex(p1.a - p2.a, p1.b - p2.b);
return p;
} void print() {
System.out.println("复数的值为:");
if (this.b != 0)
System.out.println(this.a + "+" + this.b + "i");
else
System.out.println(this.a);
}
}
public class compleXX {
public static void main(String[] args) {
System.out.printf("依次输入两组数字每组表示一个复数:");
Scanner scanner=new Scanner(System.in);
int q,w,e,r,t;
q=scanner.nextInt();
w=scanner.nextInt();
e=scanner.nextInt();
r=scanner.nextInt();
complex c = new complex();
complex c1 = new complex(q, w);
complex c2 = new complex(e, r);
c1.print();
c2.print();
System.out.printf("输入1来选择加法运算输入2来选择减法运算");
t=scanner.nextInt();
switch (t){
case (1):
System.out.println("这两个复数的和为:");
System.out.println((c.add(c1, c2).a + "+" + c.add(c1, c2).b + "i").toString());
case (2):
System.out.println("这两个复数的差为:");
System.out.println((c.minus(c1, c2).a + "+" + c.minus(c1, c2).b + "i").toString());}
}
}

修改plan

    public class Complex
{
double real,img;
public Complex()
{
this.real=0;
this.img =0;
}
public Complex(double real,double img)
{
this.real=real;
this.img =img;
}
public double getReal()
{
return this.real;
} public double getImage()
{
return this.img;
}
public double getReal(Complex c)
{
return c.real;
} public double getImage(Complex c)
{
return c.img;
} public void setReal (double real)
{
this.real=real;
} public void setImage(double img)
{
this.img =img;
} public Complex addComplex(Complex a,Complex b)
{
Complex temp =new Complex();
temp.real=a.real+b.real;
temp.img =a.img +b.img;
return temp;
} public Complex decComplex(Complex a,Complex b)
{
Complex temp = new Complex();
temp.real = a.real - b.real;
temp.img = a.img - b.img;
return temp;
} public Complex mulComplex(Complex a,Complex b)
{
Complex temp = new Complex();
temp.real = a.real*b.real-a.img*b.img;
temp.img = a.real*b.img+a.img*b.real;
return temp;
} public Complex divComplex(Complex a,Complex b)
{
Complex temp = new Complex();
temp.real=(a.real*b.real+a.img*b.img)/(b.real*b.real+b.img*b.img);
temp.img =(a.img*b.real-a.real*b.img)/(b.real*b.real+b.img*b.img);
return temp;
} public void printComplex()
{
System.out.println(""+this.real+"+"+this.img+"i");
} public String toString()
{
String fin=" ";
if(img>0)
{
fin = real+"+"+img+"i";
}
else if(img<0)
{
fin = real+ ""+img+"i";
}
else
{
fin = fin;
}
return fin;
}

for test:

public static void main(String[] args)
{
Complex q = new Complex(6, 3);
q.printComplex();
Complex w = new Complex(2, 7);
w.printComplex();
Complex asd = new Complex();
asd = asd.addComplex(q, w);
asd.printComplex();
asd= asd.decComplex(q, w);
asd.printComplex();
asd = asd.mulComplex(q, w);
asd.printComplex();
asd = asd.divComplex(q, w);
asd.printComplex();
}

需求分析&总结

设计一个可以进行复数的简单四则运算的程序。

首先要定义接口引用API:java.util.Scanner;防止报错更加精准定义double类,之后明晰数学的基础知识附属的相关运算。

之后明晰思路,如何去设计,还是一个宗旨,定义函数,之后在主函数中进行引用之前定义过的函数,如果喜欢,自己也可去定义一个print函数来使用,方便在后期的界面中输出更多的函数,也会方便管理。add,sub,multi函数在前文代码中已经给出,之后只需要引用一下就好。

20145307第二次JAVA学习实验报告的更多相关文章

  1. 20145307第五次JAVA学习实验报告

    20145307<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 实验名 ...

  2. 20145307第三次JAVA学习实验报告

    20145307 <Java程序设计>第三次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.22 实验 ...

  3. 20145307第四次JAVA学习实验报告

    20145307实验四 Android开发基础 实验内容 基于Android Studio开发简单的 Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事 ...

  4. 本周java 学习进度报告

    本周java 学习进度报告 本周对我的感触很深,因为这是我初学java 语言的第一周,我认识到java 和c语言是有很多的不同之处和相同之处.我这几天几乎是在研究java 基础入门知识,而并没有太多的 ...

  5. 20145312《Java第一次实验报告》

    20145312<Java第一次实验报告> Java开发环境的熟悉(Windows+Idea) 一.实验内容 使用Idea编辑.编译.运行.调试Java程序. 使用JDK编译.运行简单的J ...

  6. java 第一次实验报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:黎静  学号:20135338 成绩:             指导教师:娄嘉鹏  ...

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

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉 ...

  8. 201521123110第二周Java学习总结

    1.本章学习总结 本周的Java学习相对前一周更进了一步,初步学习了Java简单的输入和输出,String类的对象创建后不能修改,它是不可变的,在Java中浮点型默认是double型与C中的int型不 ...

  9. 第二周java学习总结

    学号 20175206 <Java程序设计>第二周学习总结 教材学习内容总结 第二章是基本数据类型与数组,第三章是运算符.表达式和语句的内容.如果说第一章是让我们了解JAVA,那么第二章和 ...

随机推荐

  1. angular2+ 自定义pipe管道实例--定义全局管道及使用

    首先到项目目录下ng g pipe pipe/myslice 就会在app目录下生成一个pipe文件夹文件夹下有myslice.pipe.ts文件,如果没有也可以自己手动新建 然后需要再app.mod ...

  2. js原型链和继承

    在了解js原型链之前构造函数.原型对象.对象实例这几种概念必须要明白. 1. 创建对象有几种方法 //原型链指向objectvar o1={name:'o1'}; var o11=new Object ...

  3. 纯CSS序列号

    per-Css-ol .ol { cursor:pointer; list-style-type: none; counter-reset: sectioncounter; } .ol li:befo ...

  4. 170331、58到家MQ如何快速实现流量削峰填谷

    问:为什么会有本文? 答:上一篇文章<到底什么时候该使用MQ?>引起了广泛的讨论,有朋友回复说,MQ的还有一个典型应用场景是缓冲流量,削峰填谷,本文将简单介绍下,MQ要实现什么细节,才能缓 ...

  5. SaltStack之Salt-ssh

    上一篇:SaltStack远程执行-返回MySQL 通常salt需要在客户端安装salt-minion使用salt-ssh可以在客户断主机免安装minion 在master主机安装salt-ssh y ...

  6. Python IDE软件PyCharm通用激活方法

    1,打开软件点击help-Register 2,输入地址http://xidea.online激活

  7. jQuery UI dialog 参数说明

    前段时间碰到个问题 jquery UI dialog弹出层 弹出多个层是 比如弹出两个层A和B  B层如果显示的数据表格太大,伸到了A层的外面,那伸到A层之外的部分就看不到了,因为B层是在A层上弹出的 ...

  8. linux中常见命令操作(转)

    1.日常操作命令 **查看当前所在的工作目录pwd **查看当前系统的时间 date **查看有谁在线(哪些人登陆到了服务器)who 查看当前在线last 查看最近的登陆历史记录 2.文件系统操作** ...

  9. java面试基础题------》int Integer Integer.valueOf

    在jdk1.5的环境下,有如下4条语句: 1 2 3 4 Integer i01 = 59; int i02 = 59; Integer i03 =Integer.valueOf(59); Integ ...

  10. Python笔记-进程Process、线程Thread、上锁

    1.对于操作系统来说,一个任务就是一个进程(Process).比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程. 2.在一个进程内部,要同时干多件事,就需要同时运行多个“ ...