千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下Java如何实现简易学生成绩系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!刚刚接触Java不久,写法
千家信息网最后更新 2026年11月01日Java如何实现简易学生成绩系统

小编给大家分享一下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如何实现简易学生成绩系统"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

学生 成绩 大学 系统 工程 软件 学号 学籍 管理系统 管理 工程系 界面 铁道 石家庄 石家 考试 姓名 输入 大学英语 数学 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 广东猪兼强互联网科技有限公司 中关村互联网科技集团 互联网电商科技 广州互联网科技公司 互联网科技公司发展 互联网金融公司科技 九亚互联网科技 小马过河互联网科技 互联网科技公司做什么 镁科技互联网资讯平台 深圳卡尔迅互联网科技有限公司怎么样 卫星互联网科技股票 南平创想时代互联网科技有限公司 昊天互联网科技有限公司 允成互联网科技有限公司融资 国大互联网教育科技有限公司薪资 江苏互联网智能科技产品出厂价 亚光科技低轨卫星互联网 平安好医生打造互联网科技医疗 湖北九亚互联网络科技有限公司 互联网科技有限公司图片 麻工互联网科技 互联网 科技 上海致骋互联网科技 菲比寻常互联网科技 华夏互联网科技业 互联网科技公司营业执照怎么办理 美国互联网科技实力 互联网科技快速发展优美句子
0