中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java簡易學生成績系統寫法實例

發布時間:2020-10-11 19:26:02 來源:腳本之家 閱讀:189 作者:PYD-inazuma 欄目:編程語言

剛剛接觸Java不久,寫法上和一些術語還不是很熟悉,如有不對的地方,希望指正。本次學生成績系統要求能實現成績錄入,修改成績,績點計算,退出系統四個功能,在進行思路分析后,我構建了三個大類:ScoreInformation類;Surface類;Main類。

一,ScoreInformation類:

public class ScoreInformation {
  private String stunumber;     //學號
  private String name;       //姓名
  private double mathematicsscore; //高數成績
  private double englishscore;   //大學英語成績
  private double networkscore;   //計算機網絡成績
  private double databasescore;   //數據庫成績
  private double softwarescore;   //軟件工程成績
  
  public void setStunumber(String stunumber){
    this.stunumber = stunumber;
  }
  public String getStunumber(){
    return stunumber;
  }
  public void setName(String name){
    this.name = name;
  }
  public String getName(){
    return name;
  }
  public void setMath(double mathematicssore){
    this.mathematicsscore = mathematicssore;
  }
  public double getMath(){
    return mathematicsscore;
  }
  public void setEng(double englishscore){
    this.englishscore = englishscore;
  }
  public double getEng(){
    return englishscore;
  }
  public void setNet(double networkscore){
    this.networkscore = networkscore;
  }
  public double getNet(){
    return networkscore;
  }
  public void setData(double databasescore){
    this.databasescore = databasescore;
  }
  public double getData(){
    return databasescore;
  }
  public void setSoft(double softwarescore){
    this.softwarescore = softwarescore;
  }
  public double getSoft(){
    return softwarescore;
  }
  
  public ScoreInformation(){
    stunumber = "XXXXXXXX";//原代碼錄入的是我個人的信息,暫改為X
    name = "XXX";
    mathematicsscore = 0;
    englishscore = 0;
    networkscore = 0;
    databasescore = 0;
    softwarescore = 0;
  }
  public ScoreInformation(String stunumber,String name){
    this.stunumber = stunumber;
    this.name = name;
    this.mathematicsscore = 0;
    this.englishscore = 0;
    this.networkscore = 0;
    this.databasescore = 0;
    this.softwarescore = 0;
  }
}

ScoreInformation類用于存儲信息,按題目要求,含7個私有變量。其中set和get函數分別用來設置和讀取對應變量的值。本類中設置了兩個構造方法,應老師的要求,無參默認我自己的學號和姓名,有參則自行設置學號和姓名,成績均默認為0。

二,Surface類:

public class Surface {
  public void mainsur(){
    System.out.println("***********************************************************");
    System.out.println("      石家莊鐵道大學軟件工程系 ");
    System.out.println("      學生學籍管理系統 2019 版 ");
    System.out.println("***********************************************************");
    System.out.println("      1、 學生考試成績錄入 ");
    System.out.println("      2、 學生考試成績修改 ");
    System.out.println("      3、 計算學生成績績點 ");
    System.out.println("      4、 退出學籍管理系統 ");
    System.out.println("***********************************************************");
  }
  public void inStun(){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入");
    System.out.println("***********************************************************");
    System.out.println("        請輸入學生學號:");
    System.out.println("***********************************************************");
  }
  public void inMath(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("       請輸入高等數學成績:");
    System.out.println("***********************************************************");
  }
  public void inEng(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("        高等數學成績:"+s.getMath());
    System.out.println("       請輸入大學英語成績:");
    System.out.println("***********************************************************");
  }
  public void inNet(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("        高等數學成績:"+s.getMath());
    System.out.println("        大學英語成績:"+s.getEng());
    System.out.println("       請輸入計算機網絡成績:");
    System.out.println("***********************************************************");
  }
  public void inData(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("        高等數學成績:"+s.getMath());
    System.out.println("        大學英語成績:"+s.getEng());
    System.out.println("       計算機網絡成績:"+s.getNet());
    System.out.println("       請輸入數據庫成績:");
    System.out.println("***********************************************************");
  }
  public void inSoft(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("        高等數學成績:"+s.getMath());
    System.out.println("        大學英語成績:"+s.getEng());
    System.out.println("       計算機網絡成績:"+s.getNet());
    System.out.println("         數據庫成績:"+s.getData());
    System.out.println("       請輸入軟件工程成績:");
    System.out.println("***********************************************************");
  }
  public void inall(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("         學生考試成績錄入");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("        高等數學成績:"+s.getMath());
    System.out.println("        大學英語成績:"+s.getEng());
    System.out.println("       計算機網絡成績:"+s.getNet());
    System.out.println("         數據庫成績:"+s.getData());
    System.out.println("        軟件工程成績:"+s.getSoft());
    System.out.println("       該學生成績已錄入完畢,是否提交(Y/N)");
    System.out.println("***********************************************************");
  }
  public void changeStun(){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績修改界面");
    System.out.println("***********************************************************");
    System.out.println("        請輸入學生學號:");
    System.out.println("***********************************************************");
  }
  public void outscore(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("         學生考試成績錄入");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("     1,高等數學成績:"+s.getMath());
    System.out.println("     2,大學英語成績:"+s.getEng());
    System.out.println("    3,計算機網絡成績:"+s.getNet());
    System.out.println("     4,數據庫成績:"+s.getData());
    System.out.println("     5,軟件工程成績:"+s.getSoft());
    System.out.println("***********************************************************");
  }
  public void changeMath(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("       請輸入修改后高等數學成績:");
    System.out.println("***********************************************************");
  }
  public void changeEng(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("       請輸入修改后大學英語成績:");
    System.out.println("***********************************************************");
  }
  public void changeNet(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("       請輸入修改后計算機網絡成績:");
    System.out.println("***********************************************************");
  }
  public void changeData(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("       請輸入修改后數據庫成績:");
    System.out.println("***********************************************************");
  }
  public void changeSoft(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績錄入界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("       請輸入修改后軟件工程成績:");
    System.out.println("***********************************************************");
  }
  public void overchange(ScoreInformation s){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("         學生考試成績錄入");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("     1,高等數學成績:"+s.getMath());
    System.out.println("     2,大學英語成績:"+s.getEng());
    System.out.println("    3,計算機網絡成績:"+s.getNet());
    System.out.println("     4,數據庫成績:"+s.getData());
    System.out.println("     5,軟件工程成績:"+s.getSoft());
    System.out.println("       該學生成績已修改完畢,是否提交(Y/N)");
    System.out.println("***********************************************************");
  }
  public void startgrade(){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("        學生考試成績績點計算界面");
    System.out.println("***********************************************************");
    System.out.println("        請輸入學生學號:");
    System.out.println("***********************************************************");
  }
  public void endscore1(ScoreInformation s, double a){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("         學生考試成績績點計算界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("     1,高等數學成績:"+s.getMath());
    System.out.println("     2,大學英語成績:"+s.getEng());
    System.out.println("    3,計算機網絡成績:"+s.getNet());
    System.out.println("     4,數據庫成績:"+s.getData());
    System.out.println("     5,軟件工程成績:"+s.getSoft());
    System.out.print("          你的平均學分績點為:");
    System.out.println(String.format("%.2f", a));
    System.out.println("     提示信息:你的學分績點已達到畢業要求!");
    System.out.println("    是否返回系統主界面:(Y/N)");
    System.out.println("***********************************************************");
  }
  public void endscore2(ScoreInformation s, double a){
    System.out.println("***********************************************************");
    System.out.println("   石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("         學生考試成績績點計算界面");
    System.out.println("***********************************************************");
    System.out.println("        學生學號:"+s.getStunumber());
    System.out.println("         學生姓名:"+s.getName());
    System.out.println("     1,高等數學成績:"+s.getMath());
    System.out.println("     2,大學英語成績:"+s.getEng());
    System.out.println("    3,計算機網絡成績:"+s.getNet());
    System.out.println("     4,數據庫成績:"+s.getData());
    System.out.println("     5,軟件工程成績:"+s.getSoft());
    System.out.print("          你的平均學分績點為:");
    System.out.println(String.format("%.2f", a));
    System.out.println("     提示信息:你的學分績點不滿足畢業要求!");
    System.out.println("    是否返回系統主界面:(Y/N)");
    System.out.println("***********************************************************");
  }
  public void endsur(){
    System.out.println("***********************************************************");
    System.out.println("     謝謝使用石家莊鐵道大學軟件工程系學生學籍管理系統 2019 版 ");
    System.out.println("         制作人:樸遠東");
    System.out.println("***********************************************************");
  }
}

為了能讓代碼更容易檢查,我特意將所有關于界面顯示的方法歸類到Surface類里。這個類里只有顯示界面的功能代碼,無其他作用

三,Main類:

import java.util.Scanner;

public class Main {
  static Surface x = new Surface();       //調用界面類
  static Scanner in = new Scanner(System.in);
  
  public void stem1(ScoreInformation a[]){   //執行學生成績錄入操作
    int temp1 = 0;
    x.inStun();
    String m = in.next();
    for(int i = 0; i < 5; i++){
      if(a[i].getStunumber().equals(m))
      {
        x.inMath(a[i]);
        double d1 = in.nextDouble();
        a[i].setMath(d1);
        x.inEng(a[i]);
        double d2 = in.nextDouble();
        a[i].setEng(d2);
        x.inNet(a[i]);
        double d3 = in.nextDouble();
        a[i].setNet(d3);
        x.inData(a[i]);
        double d4 = in.nextDouble();
        a[i].setData(d4);
        x.inSoft(a[i]);
        double d5 = in.nextDouble();
        a[i].setSoft(d5);
        x.inall(a[i]);
        String c = in.next();
        if(c.equals("N")){
          a[i].setMath(0);
          a[i].setEng(0);
          a[i].setNet(0);
          a[i].setData(0);
          a[i].setSoft(0);
        }
        x.mainsur();
        temp1 = 1;
        break;
      }
    }
    if(temp1 == 0)
    {
      System.out.println("該學號不存在");
      x.mainsur();
    }
  }
  
  public void stem2(ScoreInformation a[]){     //執行學生成績修改操作。
    int temp1 = 0;
    double r1,r2,r3,r4,r5;
    x.changeStun();
    String m = in.next();
    for(int i = 0; i < 5; i++){
      if(a[i].getStunumber().equals(m))
      {
        r1 = a[i].getMath();
        r2 = a[i].getEng();
        r3 = a[i].getNet();
        r4 = a[i].getData();
        r5 = a[i].getSoft();
        x.outscore(a[i]);
        int c = in.nextInt();
        switch(c){
        case 1:
          x.changeMath(a[i]);
          double d1 = in.nextDouble();
          a[i].setMath(d1);
          break;
        case 2:
          x.changeEng(a[i]);
          double d2 = in.nextDouble();
          a[i].setEng(d2);
          break;
        case 3:
          x.changeNet(a[i]);
          double d3 = in.nextDouble();
          a[i].setNet(d3);
          break;
        case 4:
          x.changeData(a[i]);
          double d4 = in.nextDouble();
          a[i].setData(d4);
          break;
        case 5:
          x.changeSoft(a[i]);
          double d5 = in.nextDouble();
          a[i].setSoft(d5);
          break;
        default:
          System.out.println("無該選項,返回主界面");
          x.mainsur();
          break;
        }
        x.overchange(a[i]);
        String h = in.next();
        if(h.equals("N")){
          a[i].setMath(r1);
          a[i].setEng(r2);
          a[i].setNet(r3);
          a[i].setData(r4);
          a[i].setSoft(r5);
        }
        x.mainsur();
        temp1 = 1;
        break;
      }
    }
    if(temp1 == 0)
    {
      System.out.println("該學號不存在");
      x.mainsur();
    }
  }
  
  public void stem3(ScoreInformation a[]){       //執行績點計算操作
    Main v = new Main();
    double R;
    double r1,r2,r3,r4,r5;
    double x1,x2,x3,x4,x5;
    x.startgrade();
    String m = in.next();
    for(int i = 0; i < 5; i++){
      if(a[i].getStunumber().equals(m))
      {
        r1 = a[i].getMath();x1 = v.Gpoint(r1);
        r2 = a[i].getEng();x2 = v.Gpoint(r2);
        r3 = a[i].getNet();x3 = v.Gpoint(r3);
        r4 = a[i].getData();x4 = v.Gpoint(r4);
        r5 = a[i].getSoft();x5 = v.Gpoint(r5);
        R = (x1*r1+x2*r2+x3*r3+x4*r4+x5*r5)/(r1+r2+r3+r4+r5);
        if(R>=2){
          x.endscore1(a[i], R);
        }else{
          x.endscore2(a[i], R);
        }
        String q = in.next();
        if(q.equals("Y")){
          x.mainsur();
        }
        break;
      }
    }
  }
  
  public double Gpoint(double d){       //返回學分對應的績點
    double e = 0;
    if(d>=90.0)
      e = 4.0;
    else if(d>=85&&d<=89.9)
      e = 3.7;
    else if(d>=82&&d<=84.9)
      e = 3.3;
    else if(d>=78&&d<=81.9)
      e = 3.0;
    else if(d>=75&&d<=77.9)
      e = 2.7;
    else if(d>=72&&d<=74.9)
      e = 2.3;
    else if(d>=68&&d<=71.9)
      e = 2.0;
    else if(d>=66&&d<=67.9)
      e = 1.7;
    else if(d>=64&&d<=65.9)
      e = 1.5;
    else if(d>=60&&d<=63.9)
      e = 1.0;
    else if(d<60)
      e = 0;
    return e;
  }
  
  public static void main(String[] args) {
    Main u = new Main();
    ScoreInformation a[] = new ScoreInformation[5];
    a[0] = new ScoreInformation();
    a[1] = new ScoreInformation("20180001","小趙");
    a[2] = new ScoreInformation("20180002","小張");
    a[3] = new ScoreInformation("20180003","小王");
    a[4] = new ScoreInformation("20180004","小李");
    int temp = 0;
    x.mainsur();
    int T = in.nextInt();
    while(temp == 0){          //重復調用
      switch(T){
      case 1:
        u.stem1(a);
        T = in.nextInt();
        break;
      case 2:
        u.stem2(a);
        T = in.nextInt();
        break;
      case 3:
        u.stem3(a);
        T = in.nextInt();
        break;
      case 4:
        x.endsur();
        temp = 1;
        break;
      default:
        System.out.println("該選項不存在");
        x.mainsur();
        temp = 1;
        break;
      }
    }
      in.close();
  }
}

這個類就是主函數類了,用于實現各種操作。因為涉及到輸入的問題,所以使用了Scanner。老師為我們放寬了要求,輸入5位同學的信息即可,更改也是比較方便的,可以根據實際情況來進行對象數組的分配,在此就不多說了。題目中的系統是要重復調用的,又有4個選項,因此我選擇while+switch兩個結構來實現。代碼中聲明的Main和Surface類的對象,主要目的是在于調用MaIn和Surface類中的方法,操作數據都是ScoreInformation類的對象。在Main類中,stem1,stem2,stem3三個方法對應的是1-3的選項,將不同的實現操作分裝在不同的方法里,目的是讓代碼看著更加清晰。最后,代碼中多次出現的int型變量temp/temp1是我用來作為if判斷的標志,根據它的值來決定接下來的操作,這是我個人的編寫習慣,退出循環或者其他情況都會設置一個變量進行判斷。

以上就是本次介紹的全部知識點內容,感謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

济宁市| 湘潭县| 平泉县| 青冈县| 宜兴市| 苗栗县| 津市市| 绥芬河市| 德格县| 同江市| 贵南县| 东源县| 额尔古纳市| 海兴县| 上犹县| 南川市| 互助| 百色市| 松潘县| 永靖县| 滁州市| 鹤峰县| 綦江县| 内黄县| 怀集县| 临邑县| 拜泉县| 扎兰屯市| 辽宁省| 乐亭县| 灌云县| 伽师县| 盘山县| 桂平市| 沙雅县| 武穴市| 东乌| 洞口县| 武清区| 榆林市| 大姚县|