java作業之學生類


題目、編寫一個Java應用程序。設計一個學生類Students,包括屬性有:序號,學號,姓名,性別,專業,三門課程成績(數學,計算機,英語);包括方法有:求成績總分,成績平均分,除序號外各個屬性的賦值方法,各個屬性值的獲取方法等等。說明:每創建一個Students對象,則序號值增1;第一個學生對象的序號值為1

編寫一個主類StudentsDemo,在主方法中創建5個Students類的對象,按以下要求輸出相關信息:

(1)各課程最高/最低分同學的序號、學號、姓名和該門課程分數

(2)總分最高/最低同學的序號、學號、姓名和所有課程分數

(3)輸入一個學號或者姓名,若存在這樣的學號或姓名則輸出該學生的所有信息,否則輸出信息不存在。

package StudentsDemo;
import java.util.Scanner;
public class StudentsDemo {

  public static void main(String[] args) {
    //創建學生信息
    Student[] a = new Student[5];//以數組的形式存儲5個學生類
    int i = 0;
    for (i = 0; i < 5; i++) {
      a[i] = new Student();
      a[i].math = (int) (Math.random() * 100);//產生一個0到1之間的隨機數*100
      a[i].english = (int) (Math.random() * 100);//隨機數錄入成績
      a[i].comp = (int) (Math.random() * 100);
      a[i].gender = "男";
      a[i].major = "計算機類";
//      System.out.println(a[i].nunber);  驗證編號
    }
    a[0].stu_num = "125";
    a[1].stu_num = "244";
    a[2].stu_num = "334";
    a[3].stu_num = "442";
    a[4].stu_num = "542";//學號

    a[0].name = "張三";
    a[1].name = "里面";
    a[2].name = "黎明";
    a[3].name = "李華";
    a[4].name = "麗華";//起名

    int max1 = 0, min1 = 0;
    int max2 = 0, min2 = 0;
    int max3 = 0, min3 = 0;
    int MAX = 0;
    for (i = 0; i < 5; i++) {
      if (a[i].gettotal() > a[MAX].gettotal()) {
        MAX = i;
      }
      if (a[i].math > a[max1].math) {
        max1 = i;
      }

      if (a[i].math < a[min1].math) {
        min1 = i;
      }

      if (a[i].english > a[max2].english) {
        max2 = i;
      }

      if (a[i].english < a[max2].english) {
        min2 = i;
      }

      if (a[i].comp > a[max3].comp) {
        max3 = i;//尋找分高的人
      }

      if (a[i].comp < a[min3].comp) {
        min3 = i;
      }
    }
    Put(a, "英語", max2);
    Put(a, "數學", max1);
    Put(a, "計算機", max3);

    //輸出學習信息
    Put2(a, "英語", min2);
    Put2(a, "數學", min1);
    Put2(a, "計算機", min3);

    Put(a, "", MAX);
    System.out.println("英語分 " + a[MAX].getEnglish());
    System.out.println("數學分為  " + a[MAX].getMath());
    System.out.println("計算機分數為  " + a[MAX].getComp());
    //輸出總分最高

    //查找學生
    int cont = -1;
    Scanner in = new Scanner(System.in);
    System.out.println("請輸入學號或姓名");
    String search = in.nextLine();
    for (i = 0; i < 5; i++) {//equals比較字符串是否相等
      if (a[i].name.equals(search) || a[i].stu_num.equals(search)) {
        cont = i;
        break;
      }
    }

    if (cont == -1) {
      System.out.println("信息不存在");
    } else {
      System.out.println("姓名是" + a[cont].name);
      System.out.println("序號是" + a[cont].nunber);
      System.out.println("學號是" + a[cont].stu_num);
      System.out.println("性別是" + a[cont].gender);
      System.out.println("專業是" + a[cont].major);
      System.out.println("英語成績是" + a[cont].getEnglish());
      System.out.println("數學成績是" + a[cont].math);
      System.out.println("計算機成績是" + a[cont].comp);
      System.out.println("總分是" + a[cont].gettotal());
      System.out.println("平均分是" + a[cont].getaver());

    }


  }

  static void Put(Student[] ss, String course, int num) {
    System.out.println(course + "成績最高的是" + ss[num].nunber + "號學生");
    System.out.println("學號是" + ss[num].stu_num);
    System.out.println("姓名是" + ss[num].name);
    if (course.equals("english")) {//分號不能少
      System.out.println(course + "成績是" + ss[num].english);
    } else if (course.equals("comp")) {
      System.out.println(course + "成績是" + ss[num].comp);
    } else if (course.equals("math")) {
      System.out.println(course + "成績是" + ss[num].math);
    }
  }

  static void Put2(Student[] ss, String course, int num) {
    System.out.println(course + "成績最低的是" + ss[num].nunber + "號學生");
    System.out.println("學號是" + ss[num].stu_num);
    System.out.println("姓名是" + ss[num].name);
    if (course.equals("english")) {
      System.out.println(course + "成績是" + ss[num].english);
    } else if (course.equals("comp")) {
      System.out.println(course + "成績是" + ss[num].comp);
    } else if (course.equals("math")) {
      System.out.println(course + "成績是" + ss[num].math);
    }
  }
}
package StudentsDemo;
public class Student {

      static int NUM = 1;
      int nunber;
      String stu_num;
      String name;
      String gender;
      double math;
      double comp;
      double english;
      String major;

      Student() {//構造方法
        nunber = NUM++;
      }

      public double gettotal() {//獲取總分
        return this.math + this.english + this.comp;
      }

      public double getaver() {
        return ((this.comp + this.english + this.math) * 1.0) / 3;
      }

      public String getName() {
        return name;
      }

      public void setName(String name) {
        this.name = name;
      }

      public double getComp() {
        return comp;
      }

      public void setComp(double comp) {
        this.comp = comp;
      }

      public double getEnglish() {
        return english;
      }

      public void setEnglish(double english) {
        this.english = english;
      }

      public double getMath() {
        return math;
      }

      public void setMath(double math) {
        this.math = math;
      }

      public String getGender() {
        return gender;
      }

      public void setGender(String gender) {
        this.gender = gender;
      }

      public String getStu_num() {
        return stu_num;
      }

      public void setStu_num(String stu_num) {
        this.stu_num = stu_num;
      }

      public String getMajor() {
        return major;
      }

      public void setMajor(String major) {
        this.major = major;
      }

    }

 

//另一種方法
public class Student {    
    static int id=0;//學生序號
    //用類變量保留相應科目最高(低)分的ID,便於對象共享
    static int mathScoreMaxID=0;
    static int mathScoreMinID=0;
    static int englishScoreMaxID=0;
    static int englishScoreMinID=0;
    static int computerScoreMaxID=0;
    static int computerScoreMinID=0;    
    static int totalScoreMaxID=0;
    static int totalScoreMinID=0;
    //用類變量保留相應科目最高(低)分,便於對象共享
    private static float mathScoreMax=0;//數學科目最高分
    private static float englishScoreMax=0;
    private static float computerScoreMax=0;
    private static float mathScoreMin=100;
    private static float englishScoreMin=100;
    private static float computerScoreMin=100;
    private static float totalScoreMax=0;
    private static float totalScoreMin=0;
    //將成員變量定義為私有的,體現面向對象的封裝性
    private String studentNumber;//學生學號
    private String studentName;
    private String studentSex;
    private String studentMajor;
    private float mathScore;
    private float englishScore;
    private float computerScore;
    private float totalScore;
    private float averageScore;
    //構造方法,創建對象時調用
    Student(String number,String name,String sex,String major){
        id++;//每創建一個Students對象,則序號值增1;
        studentNumber=number;
        studentName=name;
        studentSex=sex;
        studentMajor=major;                
    }
//給每個成員變量(各個科目成績)賦值
    void setAllScore(int id,float math,float english,float computer){
        setMathScore(id,math);
        setEnglishScore(id,english);
        setComputerScore(id,computer);
        setTotalScore();
        setAverageScore();        
    }
//給數學成績賦值,用類變量保存最大(小)值以及相應序號
    void setMathScore(int id,float math){
        mathScore=math;
        if(math>mathScoreMax){//獲得數學分最高的學生序號
            mathScoreMax=math;
            mathScoreMaxID=id;
        }
        if(math<mathScoreMin){//獲得數學分最低的學生序號
            mathScoreMin=math;
            mathScoreMinID=id;
        }
    }    
    void setEnglishScore(int id ,float english ){
        englishScore=english;
        if(english>englishScoreMax){//獲得英語分最高的學生序號
            englishScoreMax=english;
            englishScoreMaxID=id;
        }
        if(english<englishScoreMin){//獲得英語分最低的學生序號
            englishScoreMin=english;
            englishScoreMinID=id;
        }
    }    
    void setComputerScore(int id,float computer){
        computerScore=computer;        
        if(computer>computerScoreMax){//獲得計算機分最高的學生序號
            computerScoreMax=computer;
            computerScoreMaxID=id;
        }
        if(computer<computerScoreMin){//獲得計算機分最低的學生序號
            computerScoreMin=computer;
            computerScoreMinID=id;
        }
    }
    void setTotalScore(){
        totalScore=mathScore+englishScore+computerScore;
        if(totalScore>totalScoreMax){
            totalScoreMax=totalScore;
            totalScoreMaxID=id;
        }
        if(totalScore<totalScoreMin){
            totalScoreMin=totalScore;
            totalScoreMinID=id;
        }        
    }
    void setAverageScore(){
        averageScore=totalScore/3;            
    }
    //學號、姓名查找方法
    boolean findStudentNumber(String number){
        return studentNumber.equals(number);
    }
    boolean findStudentName(String name){
        return studentName.equals(name);
    }    
//以下方法主要由於外部訪問內部私有變量
    float getMathScore(){
        return mathScore;
    }
    float getEnglishScore(){
        return englishScore;
    }
    float getComputerScore(){
        return computerScore;
    }    
    String getStudentNumber(){
        return studentNumber;
    }
    String getStudentName(){
        return studentName;
    }
    String getStudentSex(){
        return studentSex;
    }
    String getStudentMajor(){
        return studentMajor;
    }    
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM