20145307第二次JAVA学习实验报告

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函数在前文代码中已经给出,之后只需要引用一下就好。

时间: 2024-12-06 05:01:25

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

20145307第五次JAVA学习实验报告

20145307<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 实验名称: 一.实验内容 1.用书上的TCP代码,实现服务器与客户端. 2.客户端与服务器连接 3.客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务器的公钥加密,计算明文的Hash函数值,一起传送给客户端 4.客户端用RSA公钥密码中服务器的私钥解密DES的,秘钥,用秘钥对密文进行解密,得出

20145307第三次JAVA学习实验报告

20145307 <Java程序设计>第三次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.22 实验名称:敏捷开发与XP实践 一.实验内容 XP基础 XP核心实践 相关工具 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查

20145307第四次JAVA学习实验报告

20145307实验四 Android开发基础 实验内容 基于Android Studio开发简单的 Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件处理机制. Android Studio安装 使用android studio实现helloworld以及加入自己的名字. 实验步骤 安装Android Studio 在欢迎界面选择Empty Activity 进入软件,新建module,在activity_main.xml之下,找到hellow

第二次课程设计实验报告

2019春第二次课程设计实验报告 一.实验项目名称 贪吃蛇小游戏 二.实验项目功能描述 玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁或者自己游戏结束. 三.项目模块结构介绍 程序关键在于表示蛇的图形及蛇的移动.用一个小圆点来表示蛇的一节身体,身体每长一节,增加一个圆点,蛇头用四节来表示.移动时必须从蛇头开始,所以蛇不能向相反的大反向移动,如果不按任意键,蛇自行在当前方向上前移,如果按与蛇方向相反的方向键,此游戏就会暂停,再按向前的方向键才能继续游戏,但按下有效方向键后,蛇头

2019春第二次课程实际实验报告

2019春第二次课程实际实验报告 一:实验项目名称 贪吃蛇游戏工作室 二:实验项目功能描述 编写代码,能够使游戏正常运行,达到基础的编写游戏的功能,在这个游戏中,就是通过贪吃蛇不停的吃,使之能够不停的长大,级为游戏的运行,如果撞到边界 ,则为游戏失败 三:项目模块结构介绍: if(kbhit()) // 判断是否有输入 { input = getch(); // 根据用户的不同输入来移动,不必输入回车 if (input == 'a') { moveDirection = 3; // 位置左移

java 第一次实验报告

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:黎静  学号:20135338 成绩:             指导教师:娄嘉鹏      实验日期:2015.4.14 实验密级:         预习程度:         实验时间: 仪器组次:          必修/选修:            实验序号: 实验名称:       Java开发环境的熟悉 实验目的与要求:实验内容1.使用JDK编译.运行简单的Java程序

Java第一次实验报告——Java开发环境的熟悉

北京电子科技学院(BESTI) 实    验    报    告 课程名称:java程序设计实验      班级:1352         姓名:洪韶武      学号:20135219 成绩:                           指导教师:娄嘉鹏                    实验日期:2015.04.14 实验密级:                    预习程度:                               实验时间: 仪器组次:          

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. 了

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

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