手机版

Java语言程序设计上机实验报告

发布时间:2024-11-10   来源:未知    
字号:

本科生实验报告

实验课程 Java语言程序设计 学院名称 信息科学与技术学院 专业名称 软件工程 学生姓名

学生学号

指导教师

实验地点 6A502 实验成绩

二〇一五年一月八日

Java语言程序设计上机实验报告

摘要

本实验报告用于记录在Java语言程序设计课程开设的上机实验中记录上机实验过程,以激励自己学习进步并为将来的学习提供一系列参考资料。

关键字 Java语言;实验;编程;语法;算法

第1章 实验一

1.1 设计一个名为RegularPolygon的正n边形类

1.1.1 要求

一个名为n的int型私有数据域定义多边形的边数,默认值为3。

一个名为side的double型私有数据域存储边的长度,默认值为1。

一个名为x的double型私有数据域,它定义多边形中点的x坐标,默认值为0。 一个名为y的double型私有数据域,它定义多边形中点的y坐标,默认值为0。 一个创建带默认值的正多边形的无参构造方法。

一个能创建带指定边数和边长度、中心在(0,0)的正多边形的构造方法。

一个能创建带指定边数和边长度、中心在(x,y)的正多边形的构造方法。

所有数据域的get和set方法。

一个返回多边形周长的方法getPerimeter()。

一个返回多边形面积的方法getArea()。计算正多边形面积的公式是:面积=(n*side2)/(4*tan(180/n))

分别使用无参构造方法、 RegularPolygon (6,4)和RegularPolygon(10,4,5.6,7.8)创建三个RegularPolygon对象,并显示每个对象的周长和面积。

1.1.2 代码

2 //RegularPolygon.java

3

4

5

6

7

8

9 public class RegularPolygon { private int n = 3;//一个名为n的型私有数据域定义多边形的边数,默认值为3。 private double side = 1;//一个名为side的double型私有数据域存储边的长度,默认值为1。 private double x = 0;//一个名为x的double型私有数据域,它定义多边形中点的x坐标,默认值为0。 private double y = 0;//一个名为y的double型私有数据域,它定义多边形中点的y坐标,默认值为0。

//一个创建带默认值的正多边形的无参构造方法。

public RegularPolygon(){

this.setN(3);

setSide(1);

setX(0);

setY(0);

}

//一个能创建带指定边数和边长度、中心在(0,0)的正多边形的构造方法。

public RegularPolygon(int n, double side){

this.setN(n);

this.setSide(side);

setX(0);

setY(0);

}

//一个能创建带指定边数和边长度、中心在(x,y)的正多边形的构造方法。

public RegularPolygon(int n, double side, double x, double y){

this.setN(n);

this.setSide(side);

this.setX(x);

this.setY(y);

}

//所有数据域的get和set方法。

public int getN() {

return n;

}

public void setN(int n) {

this.n = n;

}

public double getSide() {

return side;

} 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77 }

//main

public class main {

public static void //使用无参方法构造一个对象 RegularPolygon r1 = new RegularPolygon(); //使用RegularPolygon(6, 4)方法构造一个对象 RegularPolygon r2 = new RegularPolygon(6, 4); //使用RegularPolygon(10, 4, 5.6, 7.8)方法构造一个对象 RegularPolygon r3 = new RegularPolygon(10, 4, 5.6, 7.8); //显示每个对象的周长和面积; public void setY(double y) { this.y = y; } //一个返回多边形周长的方法getPerimeter()。 public double getPerimeter(){ return n * side; } //一个返回多边形面积的方法getArea()。计算正多边形面积的公式是:面积=(n*side2)/(4*tan(180/n)) public double getArea(){ return (n * side * side)/(4 * Math.tan(Math.PI/n)); } public double getY() { return y; } public void setX(double x) { this.x = x; } public double getX() { return x; } public void setSide(double side) { this.side = side; }

}

} outSystem.out.println("两个参数多边形的面积是:\t" + r2.getArea() + "\t周长为:\t" + System.out.println("四个参数多边形的面积是:\t" + r3.getArea() + "\t周长为:\t" + r1.getPerimeter()); r2.getPerimeter()); r3.getPerimeter());

1.2 设计一个名为Account的账户类

1.2.1 要求

一个名为id的int类型的私有账户数据域(默认值0)

一个名为balance的double类型的私有数据域存储余额(默认值0)

一个名为annualInterestRate的double类型的私有数据域存储当前利率(默认值0)。

假设所有的账户都有相同的利率。

一个名为dateCreated的Date类型的私有数据域存储账户开户日期。(import

java.util.Date)

一个能创建默认账户的无参构造方法。

一个能创建带特定id和初始余额的的账户的构造方法。

id、balance和annualInterestRate的get和set方法

dateCreated的get方法

一个名为getMonthlyInterestRate()的方法返回月利率。

一个名为withDraw的方法从账户提款。

一个名为deposit的方法向账户存款。

编写一个测试程序,创建一个账户id为123、余额为2000元、年利率为4.5%的Account

对象。使用withDraw方法取款200元,使用deposit方法存款3000元,然后打印余额、月利息以及这个账户的开户日期。

1.2.2 代码

//Account.java

package Account;

import java.util.Date;

public class Account {

//一个名为id的类型的私有账户数据域(默认值0) private int id = 0; //一个名为balance的double类型的私有数据域存储余额(默认值0)

//一个名为annualInterestRate的double类型的私有数据域存储当前利率(默认值0)。 private double annualInterestRate = 0; //一个名为dateCreated的Date类型的私有数据域存储账户开户日期。 private Date dateCreated; //一个能创建默认账户的无参构造方法。 public Account(){ } //一个能创建带特定id和初始余额的的账户的构造方法。 public Account(int id, double balance){ } //id、balance和annualInterestRate的get和set方法 public int getId() { } public void setId(int id) { } public double getBalance() { } public void setBalance(double balance) { } public double getAnnualInterestRate() { } public void setAnnualInterestRate(double annualInterestRate) { } //dateCreated的get方法 public Date getDateCreated() { } return dateCreated; this.annualInterestRate = annualInterestRate; return annualInterestRate; this.balance = balance; return balance; this.id = id; return id; this.setId(id); this.setBalance(balance); dateCreated = new Date(); this.setId(0); this.setBalance(0); dateCreated = new Date();

} //一个名为getMonthlyInterestRate()的方法返回月利率 public double getMonthlyInterestRate(){ } //一个名为withDraw的方法从账户提款。 public double withDraw(double draw){ } //一个名为deposit的方法向账户存款。 public double deposit(double deposit){ } setBalance(getBalance() + deposit); return deposit; if(draw <= getBalance()){ } setBalance(getBalance() - draw); return draw; return 0; return getAnnualInterestRate()/12; }else{

//main

package Account;

public class Main {

} public static void main(String[] args){ } //创建一个账户id为123、余额为2000元、年利率为4.5%的Account对象。 Account account = new Account(123, 2000); account.setAnnualInterestRate(0.045); //使用withDraw方法取款200元 account.withDraw(200); //使用deposit方法存款3000元 account.deposit(3000); //然后打印余额、月利息以及这个账户的开户日期。 System.out.println("账户 "+account.getId()+" 的余额为:\t" + System.out.println("月利息为:\t" + account.getMonthlyInterestRate() * System.out.println("开户日期:\t" + account.getDateCreated()); account.getBalance()); account.getBalance());

第2章 实验二

2.1三角形类Triangle

2.1.1 要求

设计一个三角形类Triangle来扩展Geometricobject类,该类包括: 三个名为side1, side2和side3的double数据域表示这个三角形的三条边,它们的默认值是1.0

一个无参构造方法创建默认的三角形

一个能创建指定side1, side2和side3的三角形的构造方法 所有三个数据域的get方法

一个名为getArea()的方法返回这个三角形的面积 ,计算公式为s=(side1+ side2+ side3)/2

一个名为getPerimeter()的方法返回这个三角形的周长

编写测试程序,创建边长为1、1.5和1,颜色为yellow,filled为true的Triangle对象,然后显示它的面积、周长、颜色以及是否被填充 显示以该对象创建的具有三角形底的Pillar类对象的体积。

2.1.2 代码

//Geometricobject.java

package Geometricobject;

public abstract class Geometricobject {

}

//Pillar.java

package Geometricobject; private String color = "White"; private String filled = "false"; public abstract double getArea(); public abstract double getPerimeter(); public String getColor() { } public void setColor(String color) { } public String getFilled() { } public void setFilled(String filled) { } this.filled = filled; return filled; this.color = color; return color;

public class Pillar {

}

//Triangle

package Geometricobject;

//设计一个三角形类Triangle来扩展

public class Triangle extends Geometricobject{

1.0

//一个名为getArea()的方法返回这个三角形的面积 ,计算公式为s=(side1+ side2+ side3)/2 private double side1 = 1.0; private double side2 = 1.0; private double side3 = 1.0; //一个无参构造方法创建默认的三角形 public Triangle(){} //一个能创建指定side1, side2和side3的三角形的构造方法 public Triangle(double side1, double side2, double side3){ } //所有三个数据域的get方法 public double getSide1() { } public double getSide2() { } public double getSide3() { } return side3; return side2; return side1; this.side1 = side1; this.side2 = side2; this.side3 = side3; //三个名为side1, side2和side3的double数据域表示这个三角形的三条边,它们的默认值private Geometricobject geometricobject; private double height; public Pillar(Geometricobject geometricobject, double height){ } public double getVolume(){ } return height * geometricobject.getArea(); this.geometricobject = geometricobject; this.height = height;

}; } //一个名为getPerimeter()的方法返回这个三角形的周长 public double getPerimeter(){ } return this.side1 + this.side2 + this.side3; return (this.side1 + this.side2 + this.side3)/2;

//main.java

package Main;

import Geometricobject.*;

public class Main {

} public static void main(String[] argv){ } Triangle triangle = new Triangle(1, 1.5, 1); triangle.setColor("yellow"); triangle.setFilled("true"); System.out.println("面积\t" + triangle.getArea()); System.out.println("周长\t" + triangle.getPerimeter()); System.out.println("颜色\t" + triangle.getColor()); System.out.println("是否填充\t" + triangle.getFilled()); Pillar pillar = new Pillar(triangle, 2); System.out.println("Pillar类的对象体积\t" + pillar.getVolume());

2.2设计一个名为Person的类和它的两个名为Student和Employee的子类

2.2.1 要求

Employee类又有子类:教员类Faculty和职员类Staff。 每个人都有姓名、地址、电话号码 学生有班级号 教员有级别 职员有职务称号 覆盖每个类的toString方法,显示相应的类名和人名 编写测试程序,创建Person、 Student、Employee Faculty和Staff,并调用它们的

toString方法

2.2.2 代码

//Employee.java

package Class;

//Person的子类Employee

public class Employee extends Person {

}

//Faculty.java

package Class;

//Employee的子类Faculty

public class Faculty extends Employee {

}

//Person.java

package Class;

//设计一个名为Person的类

public class Person {

}

//Staff.java

package Class; private String name; private String ; private String ; public Person(String name, String address, String phonenumber){ } //覆盖每个类的toString方法,显示相应的类名和人名 public String toString(){ } return this.getClass().getName() + "\t姓名 :" + name; http:// = name; this.address = address; this.phonenumber = phonenumber; //教员有级别 private String ; public Faculty(String name, String address, String phonenumber, String level){ } super(name, address, phonenumber); this.level = level; publicname, String address, String phonenumber){ } super(name, address, phonenumber);

//Employee的子类Staff

public class Staff extends Employee {

}

//Student.java

package Class;

//Person的子类Student

public class Student extends Person{

}

//Main.java

package Main;

import Class.*;

public class Main {

} public static void main(String[] args) { } //创建Person、 Student、Employee Faculty和Staff Person person = new Person("Person", "ddd", "222"); Student student = new Student("Student", "ddd", "2", 5); Employee employee = new Employee("Employee", "ddd", "33"); Faculty faculty = new Faculty("Factuly", "ddd", "22", "level"); Staff staff = new Staff("Staff", "ddd", "222", "professionaltitle"); System.out.println(person.toString()); System.out.println(student.toString()); System.out.println(employee.toString()); System.out.println(faculty.toString()); System.out.println(staff.toString()); //学生有班级号 private int ; public Student(String name, String address, String phonenumber, int classnumber){ } super(name, address, phonenumber); this.classnumber = classnumber; //职员有职务称号 private String ; public Staff(String name, String address, String phonenumber, String professionaltitle){ } super(name, address, phonenumber); this.professionaltitle = professionaltitle;

第3章 实验三

3.1求几何对象的面积之和

3.1.1 要求

编写一个方法,求参数列表中所有几何对象的面积之和。方法签名如下: public static double sumArea(GeometricObject… a)

编写测试程序,创建4个对象(2个矩形,2个三角形),然后使用sumArea方法求它们的总面积。

可变参数用法参考书58页,同时请大家使用增强的for语句编程。

3.1.2 代码

public static double sumArea(Geometricobject...list){

} double sum = 0; for(Geometricobject param:list){ } return sum; sum += param.getArea();

3.2实现可比较大小的RegularPolygon类和 Triangle类

3.2.1 要求

扩展实验一中的RegularPolygon 类和实验二中的Triangle类,使之都实现Comparable接口。

编写测试程序,测试新的RegularPolygon 类和Triangle类

3.2.2 代码

//ComparableGeometricobject.java

package Geometricobject;

public abstract class ComparableGeometricobject extends Geometricobject implements

public int compareTo(ComparableGeometricobject o){ return 1; return -1; Comparable<ComparableGeometricobject> { if(getArea() > (o.getArea())) else if ((getArea()) < (o.getArea()))

else

} }

//ComparableRegularPolygon.java

package Geometricobject;

public class ComparableRegularPolygon extends ComparableGeometricobject {

public double getSide() { } return side; public void setN(int n) { } this.n = n; public int getN() { } return n; private int n = 3; private double side = 1; private double x = 0; private double y = 0; public ComparableRegularPolygon(){ } public ComparableRegularPolygon(int n, double side){ } public ComparableRegularPolygon(int n, double side, double x, double y){ } this.setN(n); this.setSide(side); this.setX(x); this.setY(y); this.setN(n); this.setSide(side); setX(0); setY(0); this.setN(3); setSide(1); setX(0); setY(0);

}

//ComparableRectangle.java

package Geometricobject;

public class ComparableRectangle extends ComparableGeometricobject{

private double width = 1.0; private double height = 1.0; public ComparableRectangle(){} public ComparableRectangle(double width, double height){ } public double getArea(){ return width * height;} this.width = width; this.height = height; public void setY(double y) { } public double getPerimeter(){ } public double getArea(){ } return (n * side * side)/(4 * Math.tan(Math.PI/n)); return n * side; this.y = y; public double getY() { } return y; public void setX(double x) { } this.x = x; public double getX() { } return x; public void setSide(double side) { } this.side = side;

} public double getWidth(){ return this.width;} public double getHeight(){ return this.height;}

//ComparableTriangle.java

package Geometricobject;

public class ComparableTriangle extends ComparableGeometricobject{

} private double side1 = 1.0; private double side2 = 1.0; private double side3 = 1.0; public ComparableTriangle(){} public ComparableTriangle(double side1, double side2, double side3){ } public double getSide1() { } public double getSide2() { } public double getSide3() { } public double getArea(){ } public double getPerimeter(){ } return this.side1 + this.side2 + this.side3; return (this.side1 + this.side2 + this.side3)/2; return side3; return side2; return side1; this.side1 = side1; this.side2 = side2; this.side3 = side3;

Java语言程序设计上机实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)