浙江理工大学
《Java程序设计》
广发量化接口,实验报告
019~2020学年第1学期
学 院 | 信息学院 |
班 级 | 计算机科学与技术18(3) |
姓 名 | 申屠志刚 |
学 号 | 2018329621200 |
任课教师 | 任祝 ( 第9周 周二 345节) |
计算机科学与技术专业
019年10月
《Java程序设计》广发量化接口,实验报告
实验名称: Java的接口与继承 | 实验地点:10-306 |
所使用的工具软件及环境: JDK1.7或1.8与Eclipse
| |
一、实验目的: 熟悉Java类的建立与使用。熟悉类的继承、多态与动态绑定技术。 | |
二、实验内容: 题目1. 接口 体操比赛计算选手成绩的办法是去掉一个最高分和一个最低分再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班学生的平均成绩。请实现体操比赛得分计算的Gymnastics 类和学校科目考试分数计算的School 类,这两个类都实现了ComputerAverage接口。其中,Gymnastics类实现了去掉一个最高分和一个最低分再计算平均分;School类计算全班学生的平均成绩。 接口定义如下,其中输入的参数是一组double类型的分数。 interface ComputerAverage{ public double average(double x[]); } 题目2. 继承 设计一个类Shape(图形)包含求面积和周长的area()方法和perimeter()方法以及设置颜色的方法SetColor(),并利用Java多态技术设计其子类Circle(圆形)类、Rectangle(矩形)类和Triangle(三角形)类,并分别实现相应的求面积和求周长的方法。每个类都要覆盖toString方法。 [] 海伦公式:三角形的面积等于s(s-a)(s-b)(s-c)的开方,其中s=(a+b+c)/2
| |
三、要求: (1)说明原理 题目1. 接口 Java接口创建与实现 题目2. 继承 Java类的继承、多态与动态绑定技术 (2)源代码 题目1. 接口 Main.java public class Main {
public static void main(String[] args) { // TODO 自动生成的方法存根 double a[]={9.89,9.88,9.99,9.12,9.69,9.76,8.97}; double b[]={89,56,78,90,100,77,56,45,36,79,98}; ComputerAverage computer; computer=new Gymnastics(); double result= computer.average(a); System.out.printf('%n'); System.out.printf('体操选手最后得分:%5.3f ',result); computer=new School(); result=computer.average(b); System.out.printf('班级考试平均分数:%-5.2f ',result); }
} ComputerAverage.java public interface ComputerAverage{ public double average(double x[]); } Gymnastics.java public class Gymnastics implements ComputerAverage {
public double average(double x[]) { int count=x.length; double aver=0,temp=0; for(int i=0;i<count;i++){ for(int j=0;j<count;j++){ if(x[j]<x[i]) { temp=x[j]; x[j]=x[i]; x[i]=temp; } } } for(int i=0;i<count-1;i++) { aver=aver+x[i]; } if(count>2) aver=aver/(count-2); else aver=0; return aver; } } School.java public class School implements ComputerAverage {
public double average(double x[]) { int count=x.length; double aver=0; for(int i=0;i<count;i++){ aver+=x[i]; } aver=aver/count; return aver; } } 题目2. 继承 Main.java public class Main {
public static void main(String[] args) { // TODO 自动生成的方法存根 Rectangle r=new Rectangle(3.0,4.0); Circle c=new Circle(3.0); Triangle s=new Triangle(4.0,3.0,5.0); Shape[] shapes=new Shape[3]; shapes[0]=r; shapes[1]=c; shapes[2]=s; for(int i=0;i<shapes.length;i++) { System.out.println(shapes[i].toString()); System.out.println('周长为:'+shapes[i].perimeter()+' '+'面积为:'+shapes[i].area()); } } } Shape.java public abstract class Shape { String color='black'; public abstract double area(); public abstract double perimeter(); public void SetColor(String newcolor) { color=newcolor; } } Circle.java public class Circle extends Shape{ double r=0.0; final double PI=3.1415926; Circle(){ this.r=0; } Circle(double r){ this.r=r; } public String toString(){ return '圆:半径为'+r; } public double area() { return r*r*PI; } public double perimeter() { return 2*r*PI; } } Rectangle.java public class Rectangle extends Shape{ double a,b; Rectangle(){ this.a=0; this.b=0; } Rectangle(double a,double b){ this.a=a; this.b=b; } public String toString(){ return '矩形:边长分别为'+a+','+b; } public double area() { return a*b; } public double perimeter() { return 2*(a+b); } } Triangle.java public class Triangle extends Shape{ double a,b,c; Triangle(){ this.a=0; this.b=0; this.c=0; } Triangle(double a,double b,double c){ this.a=a; this.b=b; this.c=c; } public String toString(){ return '三角形:边长分别为'+a+','+b+','+c; } public double area() { double s=(a+b+c)/2; return Math.sqrt(s*(s-a)*(s-b)*(s-c)); } public double perimeter() { return a+b+c; } }
(3)结果截图 题目1. 接口
题目2. 继承
四、实验收获与体会: 1、熟悉Java类的建立与使用。 2、掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性; 3、理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4、学会通过建立类及对象,用类的成员函数和对象访问类的成员; 5、学会利用建立类的构造函数,完成类的成员的初始化工作; 6、熟悉类的继承、多态与动态绑定技术。
文章为作者独立观点,不代表股票交易接口观点 相关文章
股民评论
|