学生信息管理系统
提示:
Java封装
案例实现运行结果如下
提示:以下是本篇文章正文内容,可供参考
学生类
代码如下:
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);
}
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;
}
public void setStudentSex(String studentSex) {
this.studentSex = studentSex;
}
public int getStudentAge() {
return studentAge;
}
public void setStudentAge(int studentAge) {
this.studentAge = studentAge;
}
/**
* 获取专业对象,如果没有实例化,先实例化后在返回
* @return 专业对象信息
*/
public Subject getStudentSubject() {
if(this.studentSubject==null)
this.studentSubject=new Subject();
return studentSubject;
}
public void setStudentSubject(Subject studentSubject) {
this.studentSubject = studentSubject;
}
/**
* 学生自我介绍的方法
* @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();
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;
}
}
学科类
代码如下:
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 String getSubjectName() {
return subjectName;
}
public void setSubjectName(String subjectName) {
this.subjectName = subjectName;
}
public String getSubjectNo() {
return subjectNo;
}
public void setSubjectNo(String subjectNo) {
this.subjectNo = subjectNo;
}
public int getSubjectLife() {
return subjectLife;
}
public void setSubjectLife(int subjectLife) {
if(subjectLife<=0)
return;
this.subjectLife = subjectLife;
}
/**
* 获取选修专业的学生信息,如果保存学生信息的数组未被初始化,则先初始化长度200
* @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;
}
/**
* 专业介绍的方法
* @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中
*/
for(int i=0;i<this.getMyStudents().length;i++) {
if(this.getMyStudents()[i]==null) {
this.getMyStudents()[i]=stu;
this.studentNum=i+1;
return;
}
}
}
}
测试类
代码如下:
public class SchoolTest {
public static void main(String[] args) {
//测试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()+"名学生进行报名!");
}
}