1.源程序思路:将成绩录入、成绩修改、计算绩点、退出系统分别写成四个函数,主函数利用switch以及while循环完成调用和循环。
2.程序源代码:
package Studen;
//定义ScoreInformation类
class ScoreInformation {
private String stunumber;
private String name;
private double mathematicsscore;
private double englishiscore;
private double networkscore;
private double databasescore;
private double softwarescore;
public void setStunumber(String stunumber){
this.stunumber = stunumber;
}
public void setName(String name){
this.name = name;
}
public void setMathematicsscore(double mathematicsscore){
this.mathematicsscore = mathematicsscore;
}
public void setEnglishiscore(double englishiscore){
this.englishiscore = englishiscore;
}
public void setNetworkscore(double networkscore){
this.networkscore = networkscore;
}
public void setDatabasescore(double databasescore){
this.databasescore = databasescore;
}
public void setSoftwarescore(double softwarescore){
this.softwarescore = softwarescore;
}
public String getStunumber(){
return stunumber;
}
public String getName(){
return name;
}
public double getMathematicsscore(){
return mathematicsscore;
}
public double getEnglishiscore(){
return englishiscore;
}
public double getNetworkscore(){
return networkscore;
}
public double getDatabasescore(){
return databasescore;
}
public double getSoftwarescore(){
return softwarescore;
}
}
主方法:
package Studen;
import java.util.*;
import java.text.DecimalFormat;
public class Main {
static ScoreInformation[] ScoreInformation=new ScoreInformation[5];
static Scanner scanner=new Scanner(System.in);
static int num;
public static void main(String[] args) {
// TODO Auto-generated method stub
//退出学籍管理系统
for(int i=0;i<5;i++)
ScoreInformation[i]=new ScoreInformation();
ScoreInformation[0].setStunumber("20183580");
ScoreInformation[0].setName("liuhexin");
ScoreInformation[1].setStunumber("20183581");
ScoreInformation[1].setName("A");
ScoreInformation[2].setStunumber("20183582");
ScoreInformation[2].setName("B");
ScoreInformation[3].setStunumber("20183583");
ScoreInformation[3].setName("C");
ScoreInformation[4].setStunumber("20183584");
ScoreInformation[4].setName("D");
while(true) {
display();
int n = scanner.nextInt();
switch(n){
case 1: add();break;//成绩录入
case 2: change();break; //成绩修改
case 3: JDdisplay();break;//成绩绩点
case 4: exit();break;//退出学籍管理系统
}
}
}
static void display() {//主界面
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("***********************************************************");
}
static void add() {//成绩录入
int num=0;
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("*********************************************************** ");
System.out.print(" 请输入学生学号:");//判断学号
String n = scanner.next();
int flag=0;
for(int i=0;i<5;i++)
{
if(n.equals(ScoreInformation[i].getStunumber())) {
flag=1;
num = i;
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("*********************************************************** ");
System.out.println(" 学生学号:"+ScoreInformation[num].getStunumber());
System.out.println(" 学生姓名:"+ScoreInformation[num].getName());
System.out.print(" 请输入高等数学成绩:");
ScoreInformation[num].setMathematicsscore(scanner.nextDouble());
System.out.println("********************************************************** ");
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("*********************************************************** ");
System.out.println(" 学生学号:"+ScoreInformation[num].getStunumber());
System.out.println(" 学生姓名:"+ScoreInformation[num].getName());
System.out.print(" 请输入大学英语成绩:");
ScoreInformation[num].setEnglishiscore(scanner.nextDouble());
System.out.println("********************************************************** ");
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("*********************************************************** ");
System.out.println(" 学生学号:"+ScoreInformation[num].getStunumber());
System.out.println(" 学生姓名:"+ScoreInformation[num].getName());
System.out.print(" 请输入计算机网络成绩:");
ScoreInformation[num].setNetworkscore(scanner.nextDouble());
System.out.println("********************************************************** ");
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("*********************************************************** ");
System.out.println(" 学生学号:"+ScoreInformation[num].getStunumber());
System.out.println(" 学生姓名:"+ScoreInformation[num].getName());
System.out.print(" 请输入数据库成绩:");
ScoreInformation[num].setDatabasescore(scanner.nextDouble());
System.out.println("********************************************************** ");
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("*********************************************************** ");
System.out.println(" 学生学号:"+ScoreInformation[num].getStunumber());
System.out.println(" 学生姓名:"+ScoreInformation[num].getName());
System.out.print(" 请输入软件工程成绩:");
ScoreInformation[num].setSoftwarescore(scanner.nextDouble());
System.out.println("********************************************************** ");
System.out.println("********************************************************** ");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("*********************************************************** ");
System.out.println(" 学生学号:"+ScoreInformation[num].getStunumber());
System.out.println(" 学生姓名:"+ScoreInformation[num].getName());
System.out.println(" 高等数学成绩:"+ScoreInformation[num].getMathematicsscore());
System.out.println(" 大学英语:"+ScoreInformation[num].getEnglishiscore());
System.out.println(" 计算机网络成绩:"+ScoreInformation[num].getNetworkscore());
System.out.println(" 数据库成绩:"+ScoreInformation[num].getDatabasescore());
System.out.println(" 软件工程成绩:"+ScoreInformation[num].getSoftwarescore());
System.out.println(" 该学生成绩已录入完毕,是否提交(Y/N) ");
System.out.println("*********************************************************** ");
String as = scanner.next();
if(as.equals("Y")) {
display();
}
else {
ScoreInformation[num].setMathematicsscore(0);
ScoreInformation[num].setEnglishiscore(0);
ScoreInformation[num].setNetworkscore(0);
ScoreInformation[num].setDatabasescore(0);
ScoreInformation[num].setSoftwarescore(0);
add();
}
}
}
if(flag==0) {
System.out.println(" 用户学号不存在");
add();
}
}
static void change() {//成绩修改
System.out.println("*********************************************************** ");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩修改界面 ");
System.out.println("*********************************************************** ");
System.out.print(" 请输入学生学号:");
String n = scanner.next();
int flag=0;
System.out.println("*********************************************************** ");
int num;
for(int i=0;i<5;i++) {
if(n.equals(ScoreInformation[i].getStunumber())) {
num=i;
flag=1;
System.out.println("********************************************************** ");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("*********************************************************** ");
System.out.println(" 学生学号:"+ScoreInformation[num].getStunumber());
System.out.println(" 学生姓名:"+ScoreInformation[num].getName());
System.out.println(" 1、高等数学成绩:"+ScoreInformation[num].getMathematicsscore());
System.out.println(" 2、大学英语:"+ScoreInformation[num].getEnglishiscore());
System.out.println(" 3、计算机网络成绩:"+ScoreInformation[num].getNetworkscore());
System.out.println(" 4、数据库成绩:"+ScoreInformation[num].getDatabasescore());
System.out.println(" 5、软件工程成绩:"+ScoreInformation[num].getSoftwarescore());
System.out.println("*********************************************************** ");
System.out.print(" 请输入要修改成绩编号:");
int b = scanner.nextInt();
System.out.println("********************************************************** ");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入界面 ");
System.out.println("*********************************************************** ");
System.out.println(" 学生学号:"+ScoreInformation[num].getStunumber());
System.out.println(" 学生姓名:"+ScoreInformation[num].getName());
switch(b) {
case 1:System.out.print(" 请输入修改后的高等数学成绩:");
ScoreInformation[num].setMathematicsscore(scanner.nextDouble());break;
case 2:System.out.print(" 请输入修改后的大学英语成绩:");
ScoreInformation[num].setEnglishiscore(scanner.nextDouble());break;
case 3:System.out.print(" 请输入修改后的计算机网络成绩:");
ScoreInformation[num].setNetworkscore(scanner.nextDouble());break;
case 4:System.out.print(" 请输入修改后的数据库成绩:");
ScoreInformation[num].setDatabasescore(scanner.nextDouble());break;
case 5:System.out.print(" 请输入修改后的软件工程成绩:");
ScoreInformation[num].setSoftwarescore(scanner.nextDouble());break;
}
System.out.println("********************************************************** ");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("*********************************************************** ");
System.out.println(" 学生学号:"+ScoreInformation[num].getStunumber());
System.out.println(" 学生姓名:"+ScoreInformation[num].getName());
System.out.println(" 1、高等数学成绩:"+ScoreInformation[num].getMathematicsscore());
System.out.println(" 2、大学英语:"+ScoreInformation[num].getEnglishiscore());
System.out.println(" 3、计算机网络成绩:"+ScoreInformation[num].getNetworkscore());
System.out.println(" 4、数据库成绩:"+ScoreInformation[num].getDatabasescore());
System.out.println(" 5、软件工程成绩:"+ScoreInformation[num].getSoftwarescore());
System.out.println(" 该学生成绩已修改完毕,是否提交(Y/N) ");
System.out.println("*********************************************************** ");
String cs = scanner.next();
if(cs.equals("Y")) {
display();
}
else {
change();
}
}
}
if(flag==0) {
System.out.println(" 用户学号不存在");
change();
}
}
static double JD (double score) {//绩点计算
double jd=0;
if(score>=90) jd = 4.0;
if(score>=85&&score<=89.9) jd = 3.7;
if(score>=82&&score<=84.9) jd = 3.3;
if(score>=78&&score<=81.9) jd = 3.0;
if(score>=75&&score<=77.9) jd = 2.7;
if(score>=72&&score<=74.9) jd = 2.3;
if(score>=68&&score<=71.9) jd = 2.0;
if(score>=66&&score<=67.9) jd = 1.7;
if(score>=64&&score<=65.9) jd = 1.5;
if(score>=60&&score<=63.9) jd = 1.0;
if(score<60) jd = 0;
return jd;
}
static void JDdisplay() {//输出绩点
System.out.println("*********************************************************** ");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩绩点计算界面 ");
System.out.println("*********************************************************** ");
System.out.print(" 请输入学生学号:");
String n = scanner.next();
System.out.println("*********************************************************** ");
for(int i=0;i<5;i++) {
if(n.equals(ScoreInformation[i].getStunumber())) {
double M=JD(ScoreInformation[i].getMathematicsscore());
double E=JD(ScoreInformation[i].getEnglishiscore());
double N=JD(ScoreInformation[i].getNetworkscore());
double D=JD(ScoreInformation[i].getDatabasescore());
double S=JD(ScoreInformation[i].getSoftwarescore());
double average = (M*4+E*3+N*4+D*3+S*2)/16;
DecimalFormat df = new DecimalFormat("#0.00");
System.out.println("*********************************************************** ");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩绩点计算界面 ");
System.out.println("*********************************************************** ");
System.out.println(" 学生学号:"+ScoreInformation[num].getStunumber());
System.out.println(" 学生姓名:"+ScoreInformation[num].getName());
System.out.println(" 1、高等数学成绩绩点:"+M);
System.out.println(" 2、大学英语成绩绩点:"+E);
System.out.println(" 3、计算机网络成绩绩点:"+N);
System.out.println(" 4、数据库成绩绩点:"+D);
System.out.println(" 5、软件工程成绩绩点:"+S);
System.out.println(" 你的平均学分绩点为:"+df.format(average));
if(average>2)
System.out.println(" 提示信息:你的学分绩点已达到毕业要求!");
else {
System.out.println(" 提示信息:你的学分绩点不满足毕业要求!");
}
System.out.println(" 是否返回系统主界面:(Y/N) ");
System.out.println("********************************************************** ");
String js = scanner.next();
if(js.equals("Y")) {
display();
}
else {
}
}
}
}
static void exit() {//退出系统
System.out.println("***********************************************************");
System.out.println("谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 制作人:刘贺鑫 ");
System.out.println("*********************************************************** ");
System.exit(0);
}
}
3.程序调试截图
原文地址:https://www.cnblogs.com/Lhxxx/p/11515539.html