应用抽象类及继承编写程序。输出本科生及研究生的成绩等级。要求:首先设计抽象类student,它包含学生的一些基本信息,包括:姓名、学生类型、三门课程的成绩和成绩的等级等;其次,设计student类的两个子类------本科生类Understudent和
研究生类Graduate,二者在计算成绩等级时有区别,具体见下表,最后创建测试类进行测试

abstract class Student {final static int COURSE_COUNT=3;private String name;private String type;private int[] scores;private String grade;public Student(String name) {this.name=name;}public String getName() {return name;}public void setType(String type) {this.type=type;}public String getType() {return type;}public void setScores(int[] scores) {this.scores=scores;}public int[] getScores() {return scores;}public void setGrade(String grade) {this.grade=grade;}public String getgrade() {return grade;}public abstract String calculateGrade();
}
//本科生类
class Undergraduate extends Student{public Undergraduate(String name,int[] scores) {super(name);this.setType("本科生");this.setScores(scores);}public String calculateGrade() {int average;int sum=0;int[] scores;scores=this.getScores();for(int i=0;i<Student.COURSE_COUNT;i++) {sum+=scores[i];}average=sum/Student.COURSE_COUNT;if(average>=85){return "优秀";}else if (average>=75) {return "良好";}else if(average>=65) {return "中等";}else if(average>60) {return "及格";}else {return "不及格";}}
}
//研究生类
class Graduate extends Student{public Graduate(String name,int[] scores) {super(name);this.setType("研究生");this.setScores(scores);}public String calculateGrade() {int average;int sum=0;int[] scores;scores=this.getScores();for(int i=0;i<Student.COURSE_COUNT;i++)sum+=scores[i];average=sum/Student.COURSE_COUNT;if(average>=90){return "优秀";}else if (average>=80) {return "良好";}else if(average>=70) {return "中等";}else if(average>60) {return "及格";}else {return "不及格";}
}
}
//测试类
public class StudentTest{public static void main(String[] args) {int i;Student[] S=new Student [10];int[][] scores=new int[10][Student.COURSE_COUNT];for(i=0;i<=5;i++) {for(int j=0;j<Student.COURSE_COUNT;j++) {scores[i][j]=(int) (Math.random()*61+40);}S[i]=new Undergraduate("本科生"+(i+1),scores[i]);S[i].setGrade(S[i].calculateGrade());}for(i=5;i<=9;i++) {for(int j=0;j<Student.COURSE_COUNT;j++) {scores[i][j]=(int) (Math.random()*61+40);}S[i]=new Graduate("研究生"+(i-4),scores[i]);S[i].setGrade(S[i].calculateGrade());}int[] c;for(i=5;i<10;i++) {System.out.println(S[i].getName()+"\t");System.out.println(S[i].getType()+"\t");c=S[i].getScores();for(int j=0;j<Student.COURSE_COUNT;j++) {System.out.println(c[j]+"\t");}System.out.println(S[i].getgrade());
}
}
}

抽象类及继承(本科生和研究生类)相关推荐

  1. Java类的继承学生研究生类图_UML part3 类图、对象图

    UML part3 类图.对象图 四种关系 1. 依赖关系 ①定义:依赖描述了两个模型元素之间的关系,如果被依赖的模型元素发生变化就会影响到另一个模型元素 ②举例:动物有生命和水进行繁殖,动物和水,动 ...

  2. java请编写公共类继承抽象类_(Java相关)怎么理解抽象类,继承和接口?

    著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:海子 来源:博客园 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的 ...

  3. C++中的各种“虚“-- 虚函数、纯虚函数、虚继承、虚基类、虚析构、纯虚析构、抽象类讲解

    C++中的各种"虚" 1. 菱形继承 1.1 虚继承 && 虚基类 1.2 虚基类指针(vbptr)&& 虚基类表(vbtable) 2. 多态 2 ...

  4. # 封装,抽象类,继承,重写java编程题 问题描述 ``` 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。 方法:getSalary(int

    封装,抽象类,继承,重写java编程题 问题描述 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份. 方法:getSalary(int month ...

  5. 接口可以继承接口吗,抽象类可以继承接口吗,抽象类可以继承实体类吗?

    1.接口可以继承接口,抽象类不可以继承接口,但可以实现接口. 2.抽象类可以继承实体类.抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数. 3.抽 ...

  6. 6-2 学生、大学生、研究生类 (20分)

    java旧题复习 作业4 6-2 学生.大学生.研究生类 (20分) 定义Student学生类,拥有学号.姓名.性别属性,提供构造函数,以及相应属性的get set函数,提供函数attendClass ...

  7. 基类使用私有数据_C++作业之多继承与虚基类

    点击蓝字 关注我们 实验目的 1.掌握多重继承的使用. 2.理解虚基类的作用. 3.熟悉派生类对象与基类的转换. 1 实验要求 1.将代码和运行结果复制到word文档提交. 2.word文档命名格式: ...

  8. python中组合与继承的区别_python类与对象的组合与继承

    1.把类的对象实例化放到一个新的类里面叫做类的组合,组合就是指几个横向关系的类放在一起,纵向关系的类放在一起是继承,根据实际应用场景确定.简单的说,组合用于"有一个"的场景中,继承 ...

  9. java学习(55):定义一个抽象类的继承

    不同的是定义一个抽象类先 //抽象类 public abstract class interface4 { public abstract void fly(); public abstract vo ...

最新文章

  1. 全球UML模型共享设计下载中心--www.euml.org上线
  2. DTD(文档类型定义)概述
  3. 数据模拟工具wgsim
  4. Hadoop之mapreduce 实例三
  5. 正则表达式校验例子[原创]
  6. java jint,JNI:将unsigned int转换为jint
  7. C#中的结构和类之间的区别
  8. SQL Developer显示多个工作表
  9. UnityShader19:渲染纹理(上)之截屏功能实现
  10. 暑期作息时间表模板_小学生暑假作息时间表模板
  11. win10系统安装教程(U盘PE+UEFI安装)
  12. 2020蓝桥杯省赛B组
  13. html页边距为负值,css中的padding属性可以为负值吗?css中padding属性的详解
  14. 加油吧红牛,功能饮料暴风来袭
  15. 微信小程序上传图片裁剪工具image-cropper使用
  16. 正规军入场!HashKey Capital区块链基金正式推出
  17. 【LOJ NOI Round#2 Day1 T1】单枪匹马【矩阵】
  18. JavaScript prototype 使用介绍
  19. linux系统下,wps缺少windows字体的问题。
  20. taskctl调oracle存储过程,TASKCTL常见问题和解决方法(FAQ)

热门文章

  1. python入门教程pdf-《python基础教程(第3版)》高清版PDF免费下载
  2. python基础教程廖雪峰云-Python3基础教程-廖雪峰[带标签完整版]
  3. python编程入门指南-Python 入门指南
  4. python编程入门-Python 基础教程
  5. 零基础学python知乎-零基础应该选择学习 java、php、前端 还是 python?
  6. python程序员月薪-据说做Python程序员,都月薪上万?
  7. perl linux 独立运行,Perl脚本打包为独立执行程序
  8. 【深度优先搜索】网格类问题:牛客网:机器人的运动范围
  9. 服务器跟域名解析失效,dns根域名解析失败有什么影响
  10. mysql索引ab和ba_Mysql中的索引