⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 student.java

📁 关于JAVA的代码连接数据库
💻 JAVA
字号:
package GradeManagement.model;

import java.lang.Comparable;
import java.io.RandomAccessFile;
import java.io.IOException;

import GradeManagement.ComputeGrade;
import GradeManagement.Persistent;

// 学生抽象类
public abstract class Student implements Comparable,ComputeGrade,Persistent {
  public static int ROLLSTUDENTNUMBER = 0;// 已注册学生数
  protected static int  MAX_STRING_SIZE = 20;
  private String id;		// 学号
  private String name;		// 姓名
  CourseGrade [] grades;        // 课程成绩

  public static RandomAccessFile file;

  // 构造方法
  public Student(){}

  public Student(String id, String name, CourseGrade[] grades) {
    setId(id);
    setName(name);
    setGrades(grades);
  }

  public Student(Student s) {
    setId(s.id);
    setName(s.name);
    setGrades(s.grades);
  }

  /*********属性相应的set/get方法*************/
  public String getId() {
    return id;
  }

  public String getName() {
    return name;
  }

  public CourseGrade [] getCourseGrade() {
    return grades;
  }

  public void setGrades(CourseGrade [] grades) {
    this.grades = null;
    this.grades = new CourseGrade[grades.length];
    for( int i =0; i<grades.length;i++) {
      this.grades[i] = new CourseGrade(grades[i].getId(), grades[i].getGrade());
    }
  }

  public void setId(String id) {
    this.id = id;
  }

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

  // 对象相等比较
  public boolean equals(Object x) {
    if (this.getClass() != x.getClass()) return false;
    Student b = (Student) x;
    return (this.getId().trim().equalsIgnoreCase(b.getId().trim()));
  }

  public String toString() {
    String gradestring = "";
    for(int i=0; i< grades.length; i++){
      gradestring += grades[i] + "\t";
    }
    return getId() + "\t" + getName() + "\t"  + gradestring;
  }

  // 计算总成绩
  public  float sum() {
    float sum = 0;
    for(int i = 0; i < grades.length; i++) {
      sum += grades[i].getGrade();
    }
    return sum ;
  }

  //第六章新增代码
  public  boolean readRecord() {
    boolean readSucess = true;      // 读入成功标志
    try {
      byte idByte[] = new byte [MAX_STRING_SIZE];
      file.readFully(idByte);       // 读入学号
      id = new String(idByte).trim();
      byte nameByte[] = new byte [MAX_STRING_SIZE];
      file.readFully(nameByte);     // 读入姓名
      name = new String(nameByte).trim();
      grades = new CourseGrade[getCourseNumbers()];
      int courseNumbers = getCourseNumbers();
      for( int i=0; i < courseNumbers; i++) { //读入多门课的成绩
        grades[i] = new CourseGrade();
        grades[i].setId(file.readInt());
        grades[i].setGrade(file.readFloat());
      }
    } catch(IOException e) {
      readSucess = false;
    }; // 块try/catch结束
    return readSucess;
  } // 方法readRecord()结束

  // 第六章新增代码
  public  boolean writeRecord() {
   boolean writeSucess = true;  // 写入成功标志
    try{
      byte b1[] = process(id);
      file.write(b1);       // 写入学号
      b1 = process(name);
      file.write(b1);       // 写入姓名
      int courseNumbers = getCourseNumbers();  // 取得科目数
      for( int i=0; i < courseNumbers; i++) {
        file.writeInt(grades[i].getId());      // 写入课程ID
        file.writeFloat(grades[i].getGrade()); // 写入课程分数成绩
      }
    }catch(IOException e){
      writeSucess = false;
    };
    return writeSucess;
  } // 方法writeRecord结束

  public abstract int getCourseNumbers();

  protected byte[] process(String str) {
     if(str==null) str=" ";
     int i;
     byte res[] = new byte[MAX_STRING_SIZE];
     byte temp[] = str.getBytes();
     for (i = 0; i < str.length();i++)
       res[i] = temp[i];
     for (i = str.length(); i < MAX_STRING_SIZE; i++)
       res[i] = '\0';
    return res;
  } // 方法process结束
} // 类Student结束



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -