温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java如何实现简易学生成绩系统

发布时间:2021-09-26 17:16:09 来源:亿速云 阅读:127 作者:小新 栏目:编程语言

小编给大家分享一下Java如何实现简易学生成绩系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

刚刚接触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判断的标志,根据它的值来决定接下来的操作,这是我个人的编写习惯,退出循环或者其他情况都会设置一个变量进行判断。

以上是“Java如何实现简易学生成绩系统”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI