【实验二】封装与类

1、完成书上84页实验题第2题。

 个人答案:

public class Course {

    private String courseName;  //课程名

    private int creditHour; //学分

    public Course() {

        super();

        /*super关键字 */

    }

    public Course(String courseName, int creditHour) {//学科名称和学分

        super();

        this.courseName = courseName;

        this.creditHour = creditHour;

    }

    public String getCourseName() {//得到学科名称的方法

        return courseName;

    }

    public void setCourseName(String courseName) {

        this.courseName = courseName;

    }

    public int getCreditHour() {//得到学科学分的方法

        return creditHour;

    }

    public void setCreditHour(int creditHour) {

        this.creditHour = creditHour;

    }



}
public class Student {

    private String stuName;

    private int grade;

    private Course[] courses;     //学生选择的多门课程



    public Student() {

        super();

        // TODO Auto-generated constructor stub

    }



    public Student(String stuName, int grade, Course[] courses) {//学生的姓名年级和所选学科

        super();

        this.stuName = stuName;

        this.grade = grade;

        this.courses = courses;

    }



    public String getStuName() {

        return stuName;

    }



    public void setStuName(String stuName) {

        this.stuName = stuName;

    }



    public int getGrade() {

        return grade;

    }



    public void setGrade(int grade) {

        this.grade = grade;

    }



    public Course[] getCourses() {

        return courses;

    }



    public void setCourses(Course[] courses) {

        this.courses = courses;

    }



    public int getHours(){//总学分

        int sum=0;

        for(int i=0; i<courses.length; i++){

            sum+= courses[i].getCreditHour();

        }

        return sum;

    }



    public void show(){  //学生总信息

        System.out.println(stuName+" "+ grade+"grade ");



        System.out.println("Elective courses include:");

        for(int i=0; i<courses.length; i++){

            System.out.println("("+(i+1)+"}"+courses[i].getCourseName()+ "\t" + courses[i].getCreditHour());

        }

        System.out.println("Total credits:"+getHours());



    }

}

 

import java.util.Scanner;



public class text {     //测试函数



    public static void main(String[] args) {

        System.out.print("Enter the number of students:");//学生个数

        try (Scanner scn = new Scanner(System.in)) {

            int number = scn.nextInt();



            Student[] stu = new Student[number];



            for(int i=0; i<stu.length; i++){

                Student s = new Student();

                stu[i]=s;



                System.out.print("Enter the name of the "+(i+1)+"th student:");//学生姓名

                String name = scn.next();

                s.setStuName(name);//调用方法



                System.out.print("Enter the grade of the "+(i+1)+"th student:");//年级

                int grade=scn.nextInt();

                s.setGrade(grade);



                System.out.print("Enter the number of courses selected by the "+(i+1)+"th student:");//选择科目个数

                int numCourse= scn.nextInt();

                Course[] courses= new Course[numCourse];

                stu[i].setCourses(courses);

                for(int j=0; j<courses.length; j++){

                    courses[j] = new Course();

                    System.out.print("Enter the name of the "+(j+1)+"th course:");//科目名称

                    String courseName = scn.next();

                    courses[j].setCourseName(courseName);



                    System.out.print("Enter credits for the "+(j+1)+"th course:");//科目学分

                    int creditHour = scn.nextInt();

                    courses[j].setCreditHour(creditHour);

                }

            }

            for(int i=0; i<stu.length; i++){

                System.out.println("The information of the "+(i+1)+"th student is as follows:");//该同学的信息

                stu[i].show();

                System.out.println();

            }

        }

    }



}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellenionia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值