1.(1)定义 ScoreInformation 类,其中包括七个私有变量(stunumber,
name, mathematicsscore, englishiscore,networkscore, databasescore,
softwarescore)。
各成员的含义如下:
变量 stunumber 为字符串类型 String,用于存储学生的学号(有 8 位数
字组成)。
变量 name 为字符串类型 String,用于存储学生的姓名。
变量 mathematicsscore 为 double 类型,用于存储学生的高等数学成绩,
高等数学的学分为 4 分。
变量 englishiscore 为 double 类型,用于存储学生的大学英语成绩,大学
英语的学分为 3 分。
变量 networkscore 为 double 类型,用于存储学生的计算机网络成绩,计
算机网络的学分为 4 分。
变量 databasescore 为 double 类型,用于存储学生的数据库成绩,数据库
的学分为 3 分。
变量 softwarescore 为 double 类型,用于存储学生的软件工程成绩,软件
工程的学分为 2 分。
对每个变量定义 get()(读取变量信息)和 set()(设置变量信息)的
方法。
(2) 赋 初 值 方 法 包 括 七 个 参 数 , 用 于 为 变 量 (stunumber ,
name, mathematicsscore, englishiscore,networkscore, databasescore,
softwarescore)赋值
2.该系统完成学生成绩录入,修改,计算学分积点和查询学生成绩的简单
功能,定义 ScoreManagement 类完成下列功能。
(1)利用数组实现至少存储五个学生的信息; (将考生信息作为第一条记
录)
ScoreInformation 类:
/*
信1805-1
20183504
肖洋
*/
public class ScoreInformation {
private String stunumber;
private String name;
private double mathematicsscore;
private double englishiscore;
private double networkscore;
private double databasescore;
private double softwarescore;
public String getStunumber()
{
return stunumber;
}
public void setStunumber(String stunumber)
{
this.stunumber = stunumber;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public double getMathematicsscore()
{
return mathematicsscore;
}
public void setMathematicsscore(double mathematicsscore)
{
this.mathematicsscore = mathematicsscore;
}
public double getEnglishiscore()
{
return englishiscore;
}
public void setEnglishiscore(double englishiscore)
{
this.englishiscore = englishiscore;
}
public double getNetworkscore()
{
return networkscore;
}
public void setNetworkscore(double networkscore)
{
this.networkscore = networkscore;
}
public double getDatabasescore()
{
return databasescore;
}
public void setDatabasescore(double databasescore)
{
this.databasescore = databasescore;
}
public double getSoftwarescore()
{
return softwarescore;
}
public void setSoftwarescore(double softwarescore)
{
this.softwarescore = softwarescore;
}
public ScoreInformation(String stunumber ,String name,double mathematicsscore,double englishiscore,double networkscore,double databasescore,double softwarescore)
{
this.stunumber = stunumber;
this.name = name;
this.mathematicsscore = mathematicsscore;
this.englishiscore = englishiscore;
this.networkscore = networkscore;
this.databasescore = databasescore;
this.softwarescore = softwarescore;
}
}
ScoreManagement 类:
/*
信1805-1
20183504
肖洋
*/
import java.util.Scanner;
public class ScoreManagement {
static int sum=0;
static int choose=0;
static int flag1;
static Scanner sc=null;
static ScoreInformation[] a = new ScoreInformation[1000];
public static void mainscreen()
{
sc = new Scanner(System.in);
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系 \n" +
"学生学籍管理系统 2019 版 \n" +
"***********************************************************\n" +
"1、 学生考试成绩录入 \n" +
"2、 学生考试成绩修改 \n" +
"3、 计算学生成绩绩点 \n" +
"4、退出学籍管理系统 \n" +
"**********************************************************");
System.out.println("请选择:");
choose=sc.nextInt();
}
public static void addscore(String stunumber ,String name,double mathematicsscore,double englishiscore,double networkscore,double databasescore,double softwarescore)
{
a[sum]=new ScoreInformation(stunumber,name,mathematicsscore,englishiscore,networkscore,databasescore,softwarescore);
}
public static void scoreinputscreen1()
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入 \n" +
"***********************************************************\n" +
"请输入学生学号:\n" +
"********************************************************** ");
}
public static void scoreinputscreen2(String stu,String na) {
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"请输入高等数学成绩:\n" +
"********************************************************** ");
}
public static void scoreinputscreen3(String stu,String na,double math)
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"高等数学成绩:"+math+"\n" +
"请输入大学英语成绩:\n"+
"********************************************************** ");
}
public static void scoreinputscreen4(String stu,String na,double math,double english) {
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"高等数学成绩:"+math+"\n" +
"大学英语成绩:"+english+"\n"+
"请输入计算机网络成绩:\n"+
"********************************************************** ");
}
public static void scoreinputscreen5(String stu,String na,double math,double english,double network) {
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"高等数学成绩:"+math+"\n" +
"大学英语成绩:"+english+"\n"+
"计算机网络成绩:"+network+"\n"+
"请输入数据库成绩:\n"+
"********************************************************** ");
}
public static void scoreinputscreen6(String stu,String na,double math,double english,double network,double database) {
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"高等数学成绩:"+math+"\n" +
"大学英语成绩:"+english+"\n"+
"计算机网络成绩:"+network+"\n"+
"数据库成绩:"+database+"\n"+
"请输入软件工程成绩:\n"+
"********************************************************** ");
}
public static void scoreinputscreen7(String stu,String na,double math,double english,double network,double database,double software) {
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"高等数学成绩:"+math+"\n" +
"大学英语成绩:"+english+"\n"+
"计算机网络成绩:"+network+"\n"+
"数据库成绩:"+database+"\n"+
"软件工程成绩:"+software+"\n"+
"该学生成绩已录入完毕,是否提交(Y/N)");
System.out.println("********************************************************** ");
}
public static void scoreinput()
{
sc = new Scanner(System.in);
String stunumber;
int i=0;
int flag=1;
int count=0;
char x='N';
do
{
while(flag==1)
{
scoreinputscreen1();
System.out.println("请输入八位学生学号");
stunumber=sc.next();
for(int k=0;k<5;k++)
{
if(stunumber.equals(a[k].getStunumber()))
{
scoreinputscreen2(stunumber,a[k].getName());
i=k;
flag=0;
break;
}
else {
count++;
}
}
if(count==5)
System.out.println("该学号不存在");
}
String name=a[i].getName();
double mathematicsscore;
double englishiscore;
double networkscore;
double databasescore;
double softwarescore;
mathematicsscore=sc.nextDouble();
scoreinputscreen3(a[i].getStunumber(),a[i].getName(),mathematicsscore);
englishiscore=sc.nextDouble();
scoreinputscreen4(a[i].getStunumber(),a[i].getName(),mathematicsscore,englishiscore);
networkscore=sc.nextDouble();
scoreinputscreen5(a[i].getStunumber(),a[i].getName(),mathematicsscore,englishiscore,networkscore);
databasescore=sc.nextDouble();
scoreinputscreen6(a[i].getStunumber(),a[i].getName(),mathematicsscore,englishiscore,networkscore,databasescore);
softwarescore=sc.nextDouble();
scoreinputscreen7(a[i].getStunumber(),a[i].getName(),mathematicsscore,englishiscore,networkscore,databasescore,softwarescore);
String s = sc.next();
x = s.charAt(0);
if(x=='Y')
{
sum++;
ScoreManagement.addscore(a[i].getStunumber(),name,mathematicsscore,englishiscore,networkscore,databasescore,softwarescore);
}
else {
flag=1;
}
}while(x=='N');
}
public static void scoretuichu()
{
System.out.println("***********************************************************\n" +
"谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"制作人:肖洋\n" +
"*********************************************************** ");
}
public static void scorechange1()
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩修改界面 \n" +
"*********************************************************** \n" +
"请输入学生学号:\n" +
"********************************************************** ");
}
public static void scorechange2(String stu,String na,double math,double english,double network,double database,double software)
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版\n" +
"学生考试成绩录入\n" +
"***********************************************************\n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"1、高等数学成绩:"+math+" \n" +
"2、大学英语成绩:"+english+" \n" +
"3、计算机网络成绩: "+network+"\n" +
"4、数据库成绩:"+database+" \n" +
"5、软件工程成绩:"+software+"\n" +
"**********************************************************");
}
public static void scorechange3(String stu,String na,double math,double english,double network,double database,double software)
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版\n" +
"学生考试成绩录入\n" +
"***********************************************************\n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"1、高等数学成绩:"+math+" \n" +
"2、大学英语成绩:"+english+" \n" +
"3、计算机网络成绩: "+network+"\n" +
"4、数据库成绩:"+database+" \n" +
"5、软件工程成绩:"+software+"\n" +
"该学生成绩已修改完毕,是否提交(Y/N)");
System.out.println("**********************************************************");
}
public static void mathscore(String stu,String na)
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"请输入修改后高等数学成绩: \n" +
"********************************************************** ");
}
public static void englishscore(String stu,String na)
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"请输入修改后大学英语成绩: \n" +
"********************************************************** ");
}
public static void networkscore(String stu,String na)
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"请输入修改后计算机网络成绩: \n" +
"********************************************************** ");
}
public static void databasescore(String stu,String na)
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"请输入修改后数据库成绩: \n" +
"********************************************************** ");
}
public static void softwarescore(String stu,String na)
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩录入界面 \n" +
"*********************************************************** \n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"请输入修改后软件工程成绩: \n" +
"********************************************************** ");
}
public static void scorechange()
{
sc = new Scanner(System.in);
int flag=0;
char x='N';
String s;
int count=0;
int k=0;
int i;
String stunumber="";
do
{
while(flag==0)
{
scorechange1();
System.out.println("请输入八位学生学号");
stunumber=sc.next();
for(i=sum;i>=0;i--) {
if(stunumber.equals(a[i].getStunumber()))
{
scorechange2(a[i].getStunumber(),a[i].getName(),a[i].getMathematicsscore(),a[i].getEnglishiscore(),a[i].getNetworkscore() ,a[i].getDatabasescore(),a[i].getSoftwarescore());
flag=1;
k=i;
break;
}
else {
count++;
}
}
if(count==6)
System.out.println("该学号不存在");
}
double mathematicsscore;
double englishiscore;
double networkscore;
double databasescore;
double softwarescore;
int b=0;
System.out.println("请选择:");
b=sc.nextInt();
switch(b) {
case 1:
mathscore(a[k].getStunumber(),a[k].getName());
mathematicsscore=sc.nextDouble();
scorechange3(a[k].getStunumber(),a[k].getName(),mathematicsscore,a[k].getEnglishiscore(),a[k].getNetworkscore() ,a[k].getDatabasescore(),a[k].getSoftwarescore());
s= sc.next();
x = s.charAt(0);
if(s.equals("Y"))
{
sum++;
ScoreManagement.addscore(a[k].getStunumber(),a[k].getName(),mathematicsscore,a[k].getEnglishiscore(),a[k].getNetworkscore() ,a[k].getDatabasescore(),a[k].getSoftwarescore());
}
break;
case 2:
englishscore(a[k].getStunumber(),a[k].getName());
englishiscore=sc.nextDouble();
scorechange3(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),englishiscore,a[k].getNetworkscore() ,a[k].getDatabasescore(),a[k].getSoftwarescore());
s= sc.next();
x = s.charAt(0);
if(s.equals("Y"))
{
sum++;
ScoreManagement.addscore(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),englishiscore,a[k].getNetworkscore() ,a[k].getDatabasescore(),a[k].getSoftwarescore());
}
break;
case 3:
networkscore(a[k].getStunumber(),a[k].getName());
networkscore=sc.nextDouble();
scorechange3(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),networkscore,a[k].getDatabasescore(),a[k].getSoftwarescore());
s= sc.next();
x = s.charAt(0);
if(s.equals("Y"))
{
sum++;
ScoreManagement.addscore(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),networkscore,a[k].getDatabasescore(),a[k].getSoftwarescore());
}
break;
case 4:
databasescore(a[k].getStunumber(),a[k].getName());
databasescore=sc.nextDouble();
scorechange3(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),a[k].getNetworkscore(),databasescore,a[k].getSoftwarescore());
s= sc.next();
x = s.charAt(0);
if(s.equals("Y"))
{
sum++;
ScoreManagement.addscore(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),a[k].getNetworkscore(),databasescore,a[k].getSoftwarescore());
}
break;
case 5:
softwarescore(a[k].getStunumber(),a[k].getName());
softwarescore=sc.nextDouble();
scorechange3(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),a[k].getNetworkscore(),a[k].getDatabasescore(),softwarescore);
s= sc.next();
x = s.charAt(0);
if(s.equals("Y"))
{
sum++;
ScoreManagement.addscore(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),a[k].getNetworkscore(),a[k].getDatabasescore(),softwarescore);
}
break;
}
if(x=='Y') {
flag=0;
}
}while(x=='N');
}
public static void pointcalculate1()
{
System.out.println("***********************************************************\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
"学生考试成绩绩点计算界面 \n" +
"*********************************************************** \n" +
"请输入学生学号:\n" +
"********************************************************** ");
}
public static double pointcalculate2(double l)
{
double m=0;
if(l<60)
m=0.0;
if(l>=60&&l<=63.9)
m=1.0;
if(l>=64&&l<=65.9)
m=1.5;
if(l>=66&&l<=67.9)
m=1.7;
if(l>=68&&l<=71.9)
m=2.0;
if(l>=72&&l<=74.9)
m=2.3;
if(l>=75&&l<=77.9)
m=2.7;
if(l>=78&&l<=81.9)
m=3.0;
if(l>=82&&l<=84.9)
m=3.3;
if(l>=85&&l<=89.9)
m=3.7;
if(l>=90)
m=4.0;
return m;
}
public static void pointcalculate3(String stu,String na,double ma,double eng,double net,double data,double soft,double avg)
{
System.out.println("***********************************************************\r\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" +
"学生考试成绩绩点计算界面\r\n" +
"*********************************************************** \r\n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"1、高等数学成绩绩点:"+ma+"\n" +
"2、大学英语成绩绩点:"+eng+"\n" +
"3、计算机网络成绩绩点:"+net+"\n" +
"4、数据库成绩绩点:"+data+"\n" +
"5、软件工程成绩绩点:"+soft+"\n" +
"你的平均学分绩点为:"+avg+"\n" +
"提示信息:你的学分绩点已达到毕业要求\n" +
"是否返回系统主界面:(Y/N)");
System.out.println("********************************************************** ");
}
public static void pointcalculate4(String stu,String na,double ma,double eng,double net,double data,double soft,double avg)
{
System.out.println("***********************************************************\r\n" +
"石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" +
"学生考试成绩绩点计算界面\r\n" +
"*********************************************************** \r\n" +
"学生学号:"+stu+"\n" +
"学生姓名:"+na+"\n" +
"1、高等数学成绩绩点:"+ma+"\n" +
"2、大学英语成绩绩点:"+eng+"\n" +
"3、计算机网络成绩绩点:"+net+"\n" +
"4、数据库成绩绩点:"+data+"\n" +
"5、软件工程成绩绩点:"+soft+"\n" +
"你的平均学分绩点为:"+avg+"\n" +
"提示信息:你的学分绩点已达到毕业要求\n" +
"是否返回系统主界面:(Y/N)");
System.out.println("********************************************************** ");
}
public static void pointcalculate()
{
String stunumber;
int i;
int k=0;
sc = new Scanner(System.in);
pointcalculate1();
System.out.println("请输入八位学生学号");
stunumber=sc.next();
for(i=sum;i>=0;i--)
{
if(stunumber.equals(a[i].getStunumber())){
k=i;
break;
}
}
double j;
double math;
double english;
double network;
double database;
double software;
j=a[k].getMathematicsscore();
math=pointcalculate2(j);
j=a[k].getEnglishiscore();
english=pointcalculate2(j);
j=a[k].getNetworkscore();
network=pointcalculate2(j);
j=a[k].getDatabasescore();
database=pointcalculate2(j);
j=a[k].getSoftwarescore();
software=pointcalculate2(j);
double avgpointscore;
avgpointscore=(4*math+3*english+4*network+3*database+2*software)/16;
if(avgpointscore>=2)
pointcalculate3(a[k].getStunumber(),a[k].getName(),math,english,network,database,software,avgpointscore);
else
pointcalculate4(a[k].getStunumber(),a[k].getName(),math,english,network,database,software,avgpointscore);
String s = sc.next();
char x = s.charAt(0);
if(x=='Y')
{
flag1=1;
}
else
{
flag1=0;
}
}
public static void main(String[] args){
sc = new Scanner(System.in);
int k1;
String stunumber;
String name;
double mathematicsscore;
double englishiscore;
double networkscore;
double databasescore;
double softwarescore;
System.out.println("现在是初始创建学生信息,请输入学生信息(格式:学号 姓名 高数成绩 英语成绩 计算机网络成绩 数据库成绩 软件工程成绩):");
for(k1=0;k1<5;k1++) {
stunumber = sc.next();
name = sc.next();
mathematicsscore= sc.nextDouble();
englishiscore = sc.nextDouble();
networkscore= sc.nextDouble();
databasescore=sc.nextDouble();
softwarescore=sc.nextDouble();
ScoreManagement.addscore(stunumber,name,mathematicsscore,englishiscore,networkscore,databasescore,softwarescore);
sum++;
}
mainscreen();
while(choose<1||choose>4)
{
System.out.println("该选项不存在");
mainscreen();
}
while(1<=choose&&choose<=3) {
switch(choose) {
case 1:
scoreinput();
flag1=1;
break;
case 2:
scorechange();
flag1=1;
break;
case 3:
pointcalculate();
break;
}
if(flag1==1)
mainscreen();
else
break;
}
if(choose==4)
scoretuichu();
}
}