刚刚接触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判断的标志,根据它的值来决定接下来的操作,这是我个人的编写习惯,退出循环或者其他情况都会设置一个变量进行判断。
以上就是本次介绍的全部知识点内容,感谢大家对小牛知识库的支持。
项目分析 在学生成绩管理系统中,我们将实现7大功能,分别是添加记录、显示记录、修改记录、删除记录、查找记录、排序记录以及退出系统。 需求分析 添加记录 这个功能主要是添加学生的信息,当用户在功能菜单中选择数字1时,会进入添加记录模块,提示用户输入学生的学号、姓名、数学成绩、语文成绩。当用户输入完毕后,会提示用户是否继续添加,Y表示继续,N表示返回。需要注意的是,在添加学号时不能重复,如果输入重复的
学生成绩管理系统 案例描述 案例要求模拟开发一个学生成绩管理系统,此系统具有以下功能: (1)添加学生信息,包括学号、姓名、语文、数学成绩; (2)显示学生信息,将所有学生信息打印输出; (3)修改学生信息,可以根据姓名查找到学生,然后可以修改学生姓名、成绩项; (4)删除学生信息,根据学号查找到学生,将其信息删除; (5)查找学生信息,根据学生姓名,将其信息打印输出; (6)按学生总成绩进行从高
本文向大家介绍C语言实现简单学生成绩管理系统,包括了C语言实现简单学生成绩管理系统的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 C语言小项目 实现一个学生成绩管理系统 系统功能: 1.实现所有学生成绩的录入(利用结构体数组),当输入字符为end时候,结束成绩的录入; 2.实现所有学生信息的输出 3.输入指定学生姓
本文向大家介绍java学生成绩管理系统设计与实现,包括了java学生成绩管理系统设计与实现的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java学生成绩管理系统的具体代码,供大家参考,具体内容如下 部分效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍C语言实现学生成绩管理系统,包括了C语言实现学生成绩管理系统的使用技巧和注意事项,需要的朋友参考一下 设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能。 功能要求 1、每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩。 2、输入功能:可以一次完成若干条记录的输入。 3、显示功能:完成全部学生记录
本文向大家介绍Eclipse+Java+Swing实现学生成绩管理系统的实例代码,包括了Eclipse+Java+Swing实现学生成绩管理系统的实例代码的使用技巧和注意事项,需要的朋友参考一下 一、系统介绍 本系统实现了用户登录,实现了对学生成绩的增删改查,实现了用户修改密码功能,采用MD5加密算法,数据库使用Mysql8.0.13,界面良好。 二、系统展示 1.登录页 2.主页面 3.查询学生