栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java实验报告:分别是学生类 Student, 本科生类 Undergaduate, 研究生类Postgraduate, Student 类是一个抽象类,主要差别是计算课程成绩等级的方法有所不同

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java实验报告:分别是学生类 Student, 本科生类 Undergaduate, 研究生类Postgraduate, Student 类是一个抽象类,主要差别是计算课程成绩等级的方法有所不同

一、实验目的

(1) 掌握面向对象的三个核心特征封装、继承和多态的运用 ;
(2) 理解成员变量的隐藏方法;
(3) 学会使用抽象类和接口;
(4) 利用多态降低类间的耦合。

二、实验内容

设计 3 个类 , 分别是学生类 Student, 本科生类 Undergaduate, 研究生类Postgraduate,其中 Student 类是一个抽象类 , 它包含一些基本的学生信息如姓名、所学课程、课程成绩等 , Undergraduate 类和 Postgraduate 都是 Student 类的子类 , 它们之间的主要差别是计算课程成绩等级的方法有所不同 , 研究生的标准要比本科生的标准高一些 , 如表所示:

假设某班级里既有本科生也有研究生 , 请编写程序统计出全班学生的成绩等级并显示出来。此题关键是设计一个学生数组 , 既能存放本科生对象 , 又能存放研究生对象。

三、总体设计(设计原理、设计方案及流程等)

主要原理:由于班级中的同学有本科生也有研究生,即必须要用到多态的思想,运用对象的向上转型。
主要步骤:
1.创造三个类,student,Undergaduate,Postgraduate,其中Undergaduate和Postgraduate类继承student类。
2.并且实现student类中的抽象方法来进行判断成绩。
3.其中student中有一个hashMap属性用来储存这个学生对象的成绩。
4.通过构造方法可以对student类中的name与course_Results属性进行初始化,再调用重写的判断成绩的方法即可判断出成绩。
5.在text测试类中构建一个hashMap与undergradute对象,postgradute对象,即可测试。

4.代码实现
package homeWork02;

import java.util.HashMap;


public abstract class Student {
    private String name;
    private HashMap course_Results;

    public abstract void grade();

    public Student(String name, HashMap course_Results) {
        this.name = name;
        this.course_Results = course_Results;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public HashMap getCourse_Results() {
        return course_Results;
    }

    public void setCourse_Results(HashMap course_Results) {
        this.course_Results = course_Results;
    }

    public void addCourse_Results(String course,int result){
        course_Results.put(course,result);
    }
}

package homeWork02;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;


public class Undergraduate extends Student{


    public Undergraduate(String name, HashMap course_Results) {
        super(name, course_Results);
    }

    @Override
    public void grade() {
        HashMap course_Results = super.getCourse_Results();
        Set set = course_Results.keySet();
        Iterator it = set.iterator();
        while(it.hasNext()){
            String course = it.next();
            int grade = course_Results.get(course);
            if(grade <= 50){
                System.out.println(getName()+"同学的"+course+"课程"+"是不及格");
            }else if(50 < grade && grade <= 60){
                System.out.println(getName()+"同学的"+course+"课程"+"是及格");
            }else if(60 < grade && grade <= 70){
                System.out.println(getName()+"同学的"+course+"课程"+"是一般");
            }else if(70 < grade && grade <= 80){
                System.out.println(getName()+"同学的"+course+"课程"+"是良好");
            }else if(80 < grade && grade <= 100){
                System.out.println(getName()+"同学的"+course+"课程"+"是优秀");
            }
        }
    }
}

package homeWork02;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;


public class Postgraduate extends Student{
    public Postgraduate(String name, HashMap course_Results) {
        super(name, course_Results);
    }

    @Override
    public void grade() {
        HashMap course_Results = super.getCourse_Results();
        Set set = course_Results.keySet();
        Iterator it = set.iterator();
        while(it.hasNext()){
            String course = it.next();
            int grade = course_Results.get(course);
            if(grade <= 60){
                System.out.println(getName()+"同学的"+course+"课程"+"是不及格");
            }else if(60 < grade && grade <= 70){
                System.out.println(getName()+"同学的"+course+"课程"+"是及格");
            }else if(70 < grade && grade <= 80){
                System.out.println(getName()+"同学的"+course+"课程"+"是一般");
            }else if(80 < grade && grade <= 90){
                System.out.println(getName()+"同学的"+course+"课程"+"是良好");
            }else if(90 < grade && grade <= 100){
                System.out.println(getName()+"同学的"+course+"课程"+"是优秀");
            }
        }
    }
}

package homeWork02;

import java.util.HashMap;


public class Test {
    public static void main(String[] args) {
        HashMap hashMap01 = new HashMap<>();
        hashMap01.put("数学",87);
        hashMap01.put("物理",97);
        hashMap01.put("英语",24);
        Student[] students = new Student[2];
        students[0] = new Undergraduate("wangjie",hashMap01);
        students[1] = new Postgraduate("gubao",hashMap01);
        for (Student student: students) {
            student.grade();
        }
    }
}

五、结果分析与总结

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/658083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号