学生信息管理系统设计

package me.feihong.model;

public class Subject {
    // 成员属性:学科名称、学科编号、学制年限、报名选修的学生个数
    private String subjectName;
    private String subjectNo;
    private int subjectLife;
    private Student[] myStudents;
    private int studentNum;

// 无参构造方法
public Subject() {

}

// 带参构造,实现对学科名称、编号、学制年限赋值
public Subject(String subjectName, String subjectNo, int subjectLife) {
    this.setSubjectName(subjectName);
    this.setSubjectNo(subjectNo);
    this.setSubjectLife(subjectLife);
}

public Subject(String subjectName, String subjectNo, int subjectLife,Student[] myStudents) {
    this.setSubjectName(subjectName);
    this.setSubjectNo(subjectNo);
    this.setSubjectLife(subjectLife);
    this.setMyStudents(myStudents);
}

public void setSubjectName(String subjectName) {
    this.subjectName = subjectName;
}

public String getSubjectName() {
    return this.subjectName;
}

public void setSubjectNo(String subjectNo) {
    this.subjectNo = subjectNo;
}

public String getSubjectNo() {
    return this.subjectNo;
}

// 设置学制年限,限制必须>0
public void setSubjectLife(int subjectLife) {
    if (subjectLife <= 0)
        return;
    this.subjectLife = subjectLife;
}

/**
 * 获取选修专业的学生信息,如果保存学生信息的数组未被初始化,则先进行初始化
 * @return
 */
public Student[] getMyStudents() {
    if(this.myStudents==null)
        this.myStudents=new Student[200];
    return myStudents;
}

public void setMyStudents(Student[] myStudents) {
    this.myStudents = myStudents;
}

public int getStudentNum() {
    return studentNum;
}

public void setStudentNum(int studentNum) {
    this.studentNum = studentNum;
}

public int getSubjectLife() {
    return this.subjectLife;
}
/**
 * 专业介绍的方法
 * @return专业介绍相关信息,包括名称、编号、年限
 */
public String info() {
    String str = "专业信息如下: \n专业名称:" + this.getSubjectName() + "\n专业编号:" + this.getSubjectNo() + "\n学制年限:"
            + this.getSubjectLife() + "年";
    return str;
}

public void addStudent(Student stu) {
    /**
     * 1、将学生保存到数组中
     * 2、将学生个数保存到studentNum
     */
    //1、将学生保存到数组中
    int i;
    for(i=0;i<this.getMyStudents().length;i++) {
        if(this.getMyStudents()[i]==null) {
            stu.setStudentSubject(this);
            this.getMyStudents()[i]=stu;
            break;
        }
    }
    //2、将学生个数保存到studentNum
    this.studentNum=i+1;
}

}
package me.feihong.model;

public class Student {
    // 成员属性:姓名,学号,性别,年龄,专业
    private String studentNo;
    private String studentName;
    private String studentSex;
    private int studentAge;
    private Subject studentSubject;

// 无参构造方法
public Student() {

}

// 多参构造方法,实现对姓名  学号  性别  年龄的赋值
public Student(String studentNo, String studentName, String studentSex, int studentAge) {
    this.setStudentNo(studentNo);
    this.setStudentName(studentName);
    this.setStudentSex(studentSex);
    this.setStudentAge(studentAge);
}
    

// 多参构造方法,实现对全部属性的赋值
public Student(String studentNo, String studentName, String studentSex, int studentAge, Subject studentSubject) {
    this.setStudentNo(studentNo);
    this.setStudentName(studentName);
    this.setStudentSex(studentSex);
    this.setStudentAge(studentAge);
    this.setStudentSubject(studentSubject);
}

/**
 * 获取专业对象,如果没有实例化,先实例化后再返回
 * 
 * @return 专业对象信息
 */
public Subject getStudentSubject() {
    if (this.studentSubject == null)
        this.studentSubject = new Subject();
    return studentSubject;
}

public void setStudentSubject(Subject studentSubject) {
    this.studentSubject = studentSubject;
}

public String getStudentNo() {
    return studentNo;
}

public void setStudentNo(String studentNo) {
    this.studentNo = studentNo;
}

public String getStudentName() {
    return studentName;
}

public void setStudentName(String studentName) {
    this.studentName = studentName;
}

public String getStudentSex() {
    return studentSex;
}

/**
 * 限制性别只能是“男”或者“女”,反之,强制赋值为“男”
 * 
 * @param studentSex
 */
public void setStudentSex(String studentSex) {
    if (studentSex == "男" || studentSex == "女")
        this.studentSex = studentSex;
    else
        this.studentSex = "男";
}

public int getStudentAge() {
    return studentAge;
}

/**
 * 给年龄赋值,限定必须在10-100之间,反之赋值为18
 * 
 * @param studentAge
 */
public void setStudentAge(int studentAge) {
    if (studentAge < 10 || studentAge > 100)
        this.studentAge = 18;
    else
        this.studentAge = studentAge;
}

/**
 * 学生自我介绍的方法
 * 
 * @return 自我介绍的信息,包括姓名,学号,性别,年龄
 */
public String introduction() {
    String str = "学生信息如下:\n姓名" + this.getStudentName() + "\n学号:" + this.getStudentNo() + "\n性别:"
            + this.getStudentSex() + "\n年龄" + this.getStudentAge() + "\n所报专业名称:"
            + this.getStudentSubject().getSubjectName() + "\n学制年限:" + this.getStudentSubject().getSubjectLife()
            + "\n专业编号:" + this.getStudentSubject().getSubjectNo();
    return str;
}

/**
 * 学生自我介绍的方法
 * 
 * @param subjectName
 * @param subjectLife
 * @return 自我介绍的信息,包括姓名,学号,性别,年龄,所学专业名称,学制年限
 */
public String introduction(String subjectName, int subjectLife) {
    String str = "学生信息如下:\n姓名" + this.getStudentName() + "\n学号:" + this.getStudentNo() + "\n性别:"
            + this.getStudentSex() + "\n年龄" + this.getStudentAge() + "\n所报专业名称:" + subjectName + "\n学制年限:"
            + subjectLife;
    return str;
}

/**
 * 学生自我介绍的方法
 * 
 * @param mySubject 所选专业的对象
 * @return 自我介绍的信息,包括姓名,学号,性别,年龄,所学专业名称,学制年限,专业编号
 */
public String introduction(Subject mySubject) {
    String str = "学生信息如下:\n姓名" + this.getStudentName() + "\n学号:" + this.getStudentNo() + "\n性别:"
            + this.getStudentSex() + "\n年龄" + this.getStudentAge() + "\n所报专业名称:" + mySubject.getSubjectName()
            + "\n学制年限:" + mySubject.getSubjectLife() + "\n专业编号:" + mySubject.getSubjectNo();
    return str;
}

}
package me.feihong.test;
import me.feihong.model.*;
public class SchoolTest {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    //测试Subject
    Subject sub1=new Subject("计算机科学与应用","j0001",4);
    System.out.println(sub1.info());
    System.out.println("============================");
    //测试Student
    Student stu1=new Student("S01","张三","男",18,sub1);
    System.out.println(stu1.introduction());
    System.out.println("============================");
    Student stu2=new Student("S02","李四","女",17);
    System.out.println(stu2.introduction("计算机科学与应用", 4));
    System.out.println("============================");
    Student stu3=new Student("S03","王五","男",18);
    System.out.println(stu3.introduction(sub1));
    System.out.println("============================");
    //测试指定专业中到底有多少学生报名
    sub1.addStudent(stu1);
    sub1.addStudent(stu2);
    sub1.addStudent(stu3);
    System.out.println(sub1.getSubjectName()+"的专业中已有"+sub1.getStudentNum()+"学生进行了报名");
}

}
最后修改:2019 年 12 月 31 日 11 : 24 PM
如果觉得我的文章对你有用,请随意赞赏