當前位置:編程學習大全網 - 熱門推薦 - 高分求兩個簡單的JAVA設計源代碼

高分求兩個簡單的JAVA設計源代碼

上面 wuzhikun12同學寫的不錯,但我想還不能運行,並且還不太完善。我給個能運行的:(註意:文件名為:Test.java)

//要實現對象間的比較,就必須實現Comparable接口,它裏面有個compareTo方法

//Comparable最好使用泛型,這樣,無論是速度還是代碼量都會減少

@SuppressWarnings("unchecked")

class Student implements Comparable<Student>{

private String studentNo; //學號

private String studentName; //姓名

private double englishScore; //英語成績

private double computerScore; //計算機成績

private double mathScore; //數學成績

private double totalScore; //總成績

//空構造函數

public Student() {}

//構造函數

public Student(String studentNo,String studentName,double englishSocre,double computerScore,double mathScore) {

this.studentNo = studentNo;

this.studentName = studentName;

this.englishScore = englishSocre;

this.computerScore = computerScore;

this.mathScore = mathScore;

}

//計算總成績

public double sum() {

this.totalScore = englishScore+computerScore+mathScore;

return totalScore;

}

//計算評測成績

public double testScore() {

return sum()/3;

}

//實現compareTO方法

@Override

public int compareTo(Student student) {

double studentTotal = student.getTotalScore();

return totalScore==studentTotal?0:(totalScore>studentTotal?1:-1);

}

//重寫toString方法

public String toString(){

return "學號:"+this.getStudentNo()+" 姓名:"+this.getStudentName()+" 英語成績:"+this.getEnglishScore()+" 數學成績:"+this.getMathScore()+" 計算機成績:"+this.getComputerScore()+" 總成績:"+this.getTotalScore();

}

//重寫equals方法

public boolean equals(Object obj) {

if(obj == null){

return false;

}

if(!(obj instanceof Student)){

return false;

}

Student student = (Student)obj;

if(this.studentNo.equals(student.getStudentName())) { //照現實來說,比較是不是同壹個學生,應該只是看他的學號是不是相同

return true;

} else {

return false;

}

}

/*以下為get和set方法,我個人認為,totalScore的set的方法沒必要要,因為它是由其它成績計算出來的

在set方法中,沒設置壹次值,調用壹次sum方法,即重新計算總成績

*/

public String getStudentNo() {

return studentNo;

}

public void setStudentNo(String studentNo) {

this.studentNo = studentNo;

sum();

}

public String getStudentName() {

return studentName;

}

public void setStudentName(String studentName) {

this.studentName = studentName;

sum();

}

public double getEnglishScore() {

return englishScore;

}

public void setEnglishScore(double englishScore) {

this.englishScore = englishScore;

sum();

}

public double getComputerScore() {

return computerScore;

}

public void setComputerScore(double computerScore) {

this.computerScore = computerScore;

sum();

}

public double getMathScore() {

return mathScore;

}

public void setMathScore(double mathScore) {

this.mathScore = mathScore;

sum();

}

public double getTotalScore() {

return totalScore;

}

}

//Student子類學習委員類的實現

class StudentXW extends Student {

//重寫父類Student的testScore()方法

@Override

public double testScore() {

return sum()/3+3;

}

public StudentXW() {}

//StudentXW的構造函數

public StudentXW(String studentNo,String studentName,double englishSocre,double computerScore,double mathScore) {

super(studentNo,studentName,englishSocre,computerScore,mathScore);

}

}

//Student子類班長類的實現

class StudentBZ extends Student {

//重寫父類Student的testScore()方法

@Override

public double testScore() {

return sum()/3+5;

}

public StudentBZ() {}

//StudentXW的構造函數

public StudentBZ(String studentNo,String studentName,double englishSocre,double computerScore,double mathScore) {

super(studentNo,studentName,englishSocre,computerScore,mathScore);

}

}

//測試類

public class Test {

public static void main(String[] args) {

//生成若幹個student類、StudentXW類、StudentBZ類

Student student1 = new Student("s001","張三",70.5,50,88.5);

Student student2 = new Student("s002","李四",88,65,88.5);

Student student3 = new Student("s003","王五",67,77,90);

StudentXW student4 = new StudentXW("s004","李六",99,88,99.5);

StudentBZ student5 = new StudentBZ("s005","朱漆",56,65.6,43.5);

Student[] students = {student1,student2,student3,student4,student5};

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

double avgScore = students[i].testScore();

System.out.println(students[i].getStudentName()+"學生的評測成績為:"+ avgScore+"分");

}

}

}

運行結果為:

張三學生的評測成績為:69.66666666666667分

李四學生的評測成績為:80.5分

王五學生的評測成績為:78.0分

李六學生的評測成績為:98.5分

朱漆學生的評測成績為:60.03333333333333分

  • 上一篇:張少華演的有哪些電視劇
  • 下一篇:YES!光之美少女5gogo -- OP 的中文歌詞
  • copyright 2024編程學習大全網