当前位置: 代码迷 >> 综合 >> 编写三个系别的学生类:英语系,计算机系,文学系(要求通过继承学生抽象类)各系来显示以下成绩:
  详细解决方案

编写三个系别的学生类:英语系,计算机系,文学系(要求通过继承学生抽象类)各系来显示以下成绩:

热度:71   发布时间:2024-02-28 09:06:24.0

编写三个系别的学生类:英语系,计算机系,文学系(要求通过继承学生抽象类)各系来显示以下成绩:

***英语系: 演讲,期末考试,期中考试;
计算机系:操作能力,英语写作,期中考试,期末考试;
文学系: 演讲,作品,期末考试,期中考试;
各系总分评测标准:

英语系:     演讲 50%期末考试 25%期中考试 25%
计算机系:  操作能力  40%英语写作   20%期末考试   20%期中考试  20%
文学系:   演讲   35%作品   35%期末考试  15%期中考试   15%

定义一个可容纳5个学生的学生类数组,使用随机数给该数组装入各系学生的对象,然后按如下格式输出数组中的信息:
学号:XXXXXXXX 姓名:XXX 性别:X 年龄:XX 综合成绩:XX***
代码如下(示例):

public class Zy02 {
    public static void main(String[] args) {
    // TODO Auto-generated method stubString sex;//定义一个动态的变量Student_new[] stu=new Student_new[5];//定义一个父类的数组//要是定义子类数组的话使用的范围只在子类数组当中Random rdm = new Random();for(int i=0;i<5;i++){
    if(rdm.nextInt(2)==0)//在循环当中随机的出现一个0或1的数字,用来确认是男 是女sex="女";elsesex="男";//" . "代表分量运算符rdm.nextInt(3);//0-2的随机数int n= rdm.nextInt(3);//定义n为0-2的随机数,当n为零时,stu[0]就是张英语了if(n==0){
                   //学号 //成绩0-100 stu[i]=new English("100"+(i+1),"张英语",sex,rdm.nextInt(6)+15,rdm.nextInt(51)+50,rdm.nextInt(51)+50,rdm.nextInt(51)+50);//n=0时,new一个英语系对象}if(n==1){
                   //学号 //成绩0-100 stu[i]=new Computer1("100"+(i+1),"孙计算",sex,rdm.nextInt(6)+15,rdm.nextInt(51)+50,rdm.nextInt(51)+50,rdm.nextInt(51)+50,rdm.nextInt(51)+50);//n=0时,new一个英语系对象}if(n==2){
                   //学号 //成绩0-100 stu[i]=new Literature1("100"+(i+1),"马文学",sex,rdm.nextInt(6)+15,rdm.nextInt(51)+50,rdm.nextInt(51)+50,rdm.nextInt(51)+50,rdm.nextInt(51)+50);//n=0时,new一个英语系对象}}//调用的第一种方法方式一
// for(int i=0;i<stu.length;i++){
    
// stu[i].show();
// }//调用的第二种方式二for(Student_new s:stu){
    s.show();}}}// 学生抽象类作为父类
abstract class Student_new {
    // 抽象类// 抽象能力,不遗漏 不冗余String name;String id;String sex;int age;double lastScore; // 期末成绩double minScore; // 期中成绩Student_new(String id,String name, String sex, int age, double lastScore, double minScore) {
    // 构造器this.name = name;// 用局部变量的值赋值给全局变量/成员变量this.age = age;this.id = id;this.sex = sex;this.lastScore = lastScore;this.minScore = minScore;}// 获取综合成绩的抽象方法public abstract double getSorce();// 公共显示方法public void show() {
    // 放在父类当中的好处就是不冗余System.out.println("学号" + id + " 姓名" + name + " 性别" + sex + " 年龄" + age + " 综合成绩" + getSorce());//成员变量}
}// 英语系学生子类
class English extends Student_new {
    double speakScore;// 演讲成绩English(String name, String id, String sex, int age, double lastScore, double minScore, double speakScore) {
    // 定义形参super(name, id, sex, age, lastScore, minScore);// 定义实参 调用父类的构造器this.speakScore = speakScore;}public double getSorce() {
    return speakScore * 0.5 + lastScore * 0.25 + minScore * 0.25;}
}// 计算机系子类
class Computer1 extends Student_new {
    double makeScore;// 演讲成绩double engScore;Computer1(String name, String id, String sex, int age, double lastScore, double minScore, double makeScore,double engScore) {
    // 定义形参super(name, id, sex, age, lastScore, minScore);// 定义实参this.makeScore = makeScore;this.engScore = engScore;}public double getSorce() {
    return makeScore * 0.4 + engScore * 0.2 + lastScore * 0.2 + minScore * 0.2;}
}// 文学系子类
class Literature1 extends Student_new {
    double makeScore;// 演讲成绩double litScore;// 作品成绩Literature1(String name, String id, String sex, int age, double lastScore, double minScore, double makeScore,double litScore) {
    // 定义形参super(name, id, sex, age, lastScore, minScore);// 定义实参this.makeScore = makeScore;// 演讲成绩this.litScore = litScore;// 作品成绩}public double getSorce() {
    return makeScore * 0.35 + litScore * 0.35 + lastScore * 0.15 + minScore * 0.15;}
}