三.模拟学生成绩管理系统
1.创建抽象Person类:
属性:
姓名;
年龄
方法:
构造方法 get() and set()
抽象方法:显示信息
2.创建学生类Student,继承Person类:
属性:
学号;
入学日期
方法:
构造方法:学号使用static关键字来添加。
get() and set()
显示信息
3.创建教师类Teacher,继承Person类:
属性:
工号
方法:
构造方法
get() and set()
显示信息
4.创建测试类Test:
多态的使用:
创建两个Person对象,一个引用Teacher对象,另 一个引用Student对象,调用她们的显示信息方法。
创建两个Student对象,存放在同一数组中,然后输出数组元素 的每一个显示信息方法。
四.继续完善学生成绩管理系统
1.创建Score类,用来存放课程信息:
属性:
课程号;
课程名;
分数(跟学生有关,构造时为默认值)
方法:
构造方法
get() and set()
显示信息
2.创建GetScore接口,用来给学生上成绩:
方法:
setStudentScore,传入学生和分数两个
3.修改学生Student类:
属性:
添加课程数组,
数据元素为2即可。
方法:
打印学生成绩方法:
显示学生姓名和学生的所有课程成绩
添加设置值的方法:setStudentResult(int i,double result) 给当前第i个课程赋分数。
给课程数组添加get()和set()方法
4.修改教师Teacher类,实现GetScore接口:
属性:
添加课程号属性
方法:
显示信息:
添加显示课程号
给课程号添加get()和set()方法
实现setStudentScore方法:给传递的学生的课程上成绩
5.修改测试类Test:
创建两个学生
创建两个教师,分别给老师设置不同的课程。
创建两门课程,根据老师课程设置课程,然后传给学生。
老师给学生上成绩
显示学生成绩
父类:Person
public abstract class Person {
public abstract void printMessage();
public Person(String name, int age) {
public String getName() {
public void setName(String name) {
public void setAge(int age) {
子类:Student
import javax.print.attribute.standard.NumberOfDocuments;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class Student extends Person {
private Score[] scores = new Score[2];
public static int NumberOfStudent=0;
public void printMessage(){
System.out.println("姓名:" +super.getName() + ",年龄是:" + super.getAge()
+",学号是 :" + this.sid+ ",入学日期是:" + this.date);
public void printStudentScore(){
System.out.println("姓名:"+super.getName());
for (int i = 0; i < this.scores.length; i++) {
this.scores[i].printMessage();
System.out.println(this.scores[i].getResult());
public void setStudentResult(int i,double result){
this.scores[i].setResult(result);
this.sid=++NumberOfStudent;
DateFormat df =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public Student(String name, int age) {
DateFormat df =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
this.sid=++NumberOfStudent;
public String getDate() {
public Score[] getScores() {
public void setScores(Score[] scores) {
子类:Teacher
public class Teacher extends Person{
public void printMessage() {
System.out.println("姓名:" +super.getName() + ",年龄是:" + super.getAge()
+",教师工号是 :" + this.tid+"所授课程为:"+this.scid);
public Teacher(String name, int age, int tid) {
public void setTid(int tid) {
public void setScid(int scid) {
学生成绩类
public void printMessage(){
System.out.println("课程号:"+ this.said +",名字是:"+this.name);
public Score(int said, String name) {
public void setSaid(int said) {
public String getName() {
public void setName(String name) {
public double getResult() {
public void setResult(double result) {
接口:设置学生成绩
public interface GetScore {
public void setStudentScoore(Student student,double result);
测试类1
import java.util.Scanner;
public static void main(String[] args) {
Student[] students = new Student[2];
students[0] = new Student("令狐冲", 25);
students[1] = new Student("岳灵珊", 18);
for (int i = 0; i < students.length; i++) {
students[i].printMessage();
测试类2
import java.util.Scanner;
public static void main(String[] args) {
Student[] students = new Student[2];
Student students1 = new Student("令狐冲", 25);
Student students2 = new Student("岳灵珊", 18);
Teacher teacher1= new Teacher("左冷禅",40,1);
Teacher teacher2= new Teacher("岳不群",40,2);
Score score1 = new Score(1,"操作系统");
Score score2 = new Score(2,"编译原理");
Score[] scores1 = new Score[2];
students1.setScores(scores1);
Score score3 = new Score(1,"操作系统");
Score score4 = new Score(2,"编译原理");
Score[] scores2 = new Score[2];
students2.setScores(scores2);
teacher1.setStudentScore(students1, 70);
teacher1.setStudentScore(students2, 80);
teacher2.setStudentScore(students1, 89);
teacher2.setStudentScore(students2, 85);
students1.printStudentScore();
students2.printStudentScore();