Java简易学生成绩系统写法实例

网友投稿 223 2022-12-27


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

以上就是本次介绍的全部知识点内容,感谢大家对我们的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:主流微服务网关(微服务网关高可用)
下一篇:api测试工具怎么用(api测试方法)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~