ScoreInformation.java
import java.util.Scanner;
class ScoreInformation {
private String stunumber; //八位學號
private String name;
private double mathematicsscore;
private double englishscore;
private double networkscore;
private double databasescore;
private double softwarescore;
//構造函數
ScoreInformation(String stunumber,String name,double mathematicssore,double englishscore,double networkscore,double databasescore,double softwarescore) {
this.stunumber=stunumber;
this.name=name;
this.mathematicsscore=mathematicssore;
this.englishscore=englishscore;
this.networkscore=networkscore;
this.databasescore=databasescore;
this.softwarescore=softwarescore;
};
ScoreInformation(){};
//讀取和設置變量信息
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 setmathematicsscore(double math)
{
this.mathematicsscore=math;
}
public double getmathematicsscore()
{
return mathematicsscore;
}
public void setenglishscore(double english)
{
this.englishscore=english;
}
public double getenglishscore()
{
return englishscore;
}
public void setnetworkscore(double network)
{
this.networkscore=network;
}
public double getnetworkscore()
{
return networkscore;
}
public void setdatabasescore(double database)
{
this.databasescore=database;
}
public double getdatebasescore()
{
return databasescore;
}
public void setsoftwarescore(double software)
{
this.softwarescore=software;
}
public double getsoftwarescore()
{
return softwarescore;
}
}
ScoreManagement.java
import java.text.DecimalFormat;
import java.util.Scanner;
public class ScoreManagement {
int t;
public static void main(String[] args)
{
ScoreManagement a=new ScoreManagement();
ScoreInformation s[]=new ScoreInformation[5];
//存儲五個學生信息
s[0]=new ScoreInformation("20183725","楊文青",0,0,0,0,0);
s[1]=new ScoreInformation("20184725","喬一",70,70,70,70,70);
s[2]=new ScoreInformation("20173695","沈瀟",60,70,80,60,80);
s[3]=new ScoreInformation("20183728","王一墨",70,70,70,70,70);
s[4]=new ScoreInformation("20183721","肖奈",60,60,60,60,60);
a.menu(s);
}
//主界面
public void menu(ScoreInformation []s)
{
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("***************************************");
//輸入選項
int a;
Scanner in=new Scanner(System.in);
a=in.nextInt();
while(a<0||a>4)
{
System.out.print("輸入無效,請重新輸入:");
a=in.nextInt();
}
switch(a) {
case 1:add(s);break;
case 2:modif(s);break;
case 3:showjidian(s);
case 4:exit();break;
default:break;
}
}
//退出界面
public void exit()
{
System.out.println("**************************************************");
System.out.println("謝謝使用石家庄鐵道大學軟件工程系學生學籍管理系統2019級版");
System.out.println(" 制作人:楊文青 ");
System.out.println("**************************************************");
System.exit(0);
}
//成績錄入,形參為數組
public void add(ScoreInformation [] s)
{
System.out.println("**************************************************");
System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019級版");
System.out.println("**************************************************");
System.out.println(" 請輸入學生學號(8位): ");
Scanner in=new Scanner(System.in);
int a;
a=in.nextInt();
for(int i=0;i<s.length;i++)
if(a==Integer.parseInt(s[i].getstunumber()))
{
this.luru(s);
//錄入完成后顯示學生成績信息
System.out.println("**************************************************");
System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019級版");
System.out.println(" 學生考試成績錄入界面 ");
System.out.println("**************************************************");
System.out.println(" 學生學號:"+s[i].getstunumber());
System.out.println(" 學生姓名:"+s[i].getname());
System.out.println(" 高等數學成績"+s[i].getmathematicsscore());
System.out.println(" 大學英語成績"+s[i].getenglishscore());
System.out.println(" 計算機網絡成績"+s[i].getnetworkscore());
System.out.println(" 數據庫成績"+s[i].getdatebasescore());
System.out.println(" 軟件工程成績"+s[i].getsoftwarescore());
System.out.println("該學生成績已錄入完畢,是否提交(Y/N)");
System.out.println("**************************************************");
Scanner In=new Scanner(System.in);
String str;
char ch;
str=In.next();
ch=str.charAt(0);
while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')
{
System.out.println("輸入有誤,請重新輸入:");
str=In.next();
ch=str.charAt(0);
}
if(ch=='Y'||ch=='y')
{
this.menu(s);
}
if(ch=='N'||ch=='n')
{
this.luru(s);
}
}
}
//成績成績錄入界面
public void luru(ScoreInformation []s)
{
System.out.println("**************************************************");
System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019級版");
System.out.println(" 學生考試成績錄入界面 ");
System.out.println("**************************************************");
System.out.println(" 學生學號:"+s[t].getstunumber()); //t是全局變量
System.out.println(" 學生姓名:"+s[t].getname());
System.out.println(" 請輸入高等數學成績: ");
Scanner score=new Scanner(System.in);
s[t].setmathematicsscore(score.nextDouble());
System.out.println(" 請輸入大學英語成績: ");
s[t].setenglishscore(score.nextDouble());
System.out.println(" 請輸入計算機網絡成績: ");
s[t].setnetworkscore(score.nextDouble());
System.out.println(" 請輸入數據庫成績: ");
s[t].setdatabasescore(score.nextDouble());
System.out.println(" 請輸入軟件工程成績: ");
s[t].setsoftwarescore(score.nextDouble());
System.out.println("**************************************************");
}
public void modif(ScoreInformation []s)
{
System.out.println("**************************************************");
System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019級版");
System.out.println(" 學生考試成績修改界面 ");
System.out.println("**************************************************");
System.out.println(" 請輸入學生學號(8位): ");
Scanner in=new Scanner(System.in);
int a;
a=in.nextInt();
for(int i=0;i<s.length;i++)
if(a==Integer.parseInt(s[i].getstunumber()))
{
t=i; //標記該學生
System.out.println("**************************************************");
System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019級版");
System.out.println(" 學生考試成績錄入界面 ");
System.out.println("**************************************************");
System.out.println(" 學生學號:"+s[i].getstunumber());
System.out.println(" 學生姓名:"+s[i].getname());
System.out.println(" 1. 高等數學成績"+s[i].getmathematicsscore());
System.out.println(" 2. 大學英語成績"+s[i].getenglishscore());
System.out.println(" 3. 計算機網絡成績"+s[i].getnetworkscore());
System.out.println(" 4. 數據庫成績"+s[i].getdatebasescore());
System.out.println(" 5.軟件工程成績"+s[i].getsoftwarescore());
System.out.println("**************************************************");
}
int m; //輸入選項
Scanner k=new Scanner(System.in);
m=k.nextInt();
System.out.println("**************************************************");
System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019級版");
System.out.println(" 學生考試成績錄入界面 ");
System.out.println("**************************************************");
System.out.println(" 學生學號:"+s[t].getstunumber());
System.out.println(" 學生姓名:"+s[t].getname());
Scanner chengji=new Scanner(System.in); //錄入所要修改的成績
if(m==1)
{ System.out.println(" 請輸入修改后高等數學成績");
s[t].setmathematicsscore(chengji.nextDouble());
}
if(m==2)
{ System.out.println(" 請輸入修改后大學英語成績");
s[t].setenglishscore(chengji.nextDouble());
}
if(m==3)
{ System.out.println(" 請輸入修改后計算機網絡成績");
s[t].setnetworkscore(chengji.nextDouble());
}
if(m==4)
{ System.out.println(" 請輸入修改后數據庫成績");
s[t].setdatabasescore(chengji.nextDouble());}
if(m==5)
{ System.out.println(" 請輸入修改后軟件工程成績");
s[t].setsoftwarescore(chengji.nextDouble());
}
System.out.println("**************************************************");
System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019級版");
System.out.println(" 學生考試成績錄入界面 ");
System.out.println("**************************************************");
System.out.println(" 學生學號:"+s[t].getstunumber());
System.out.println(" 學生姓名:"+s[t].getname());
System.out.println(" 高等數學成績"+s[t].getmathematicsscore());
System.out.println(" 大學英語成績"+s[t].getenglishscore());
System.out.println(" 計算機網絡成績"+s[t].getnetworkscore());
System.out.println(" 數據庫成績"+s[t].getdatebasescore());
System.out.println(" 軟件工程成績"+s[t].getsoftwarescore());
System.out.println("該學生成績已錄入完畢,是否提交(Y/N)");
System.out.println("**************************************************");
Scanner In=new Scanner(System.in);
String str;
char ch;
str=In.next();
ch=str.charAt(0);
while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')
{
System.out.println("輸入有誤,請重新輸入:");
str=In.next();
ch=str.charAt(0);
}
if(ch=='Y'||ch=='y')
{
this.menu(s);
}
if(ch=='N'||ch=='n')
{
this.modif(s);
}
}
public double jidian(double n) //分數
{
//獲得不同成績段對應的績點
if(n>90) return 4.0;
else if(n>=85) return 3.7;
else if(n >=82) return 3.3;
else if(n >=78) return 3.0;
else if(n>=75) return 2.7;
else if(n>=72) return 2.3;
else if(n>=68) return 2.0;
else if(n>=66) return 1.7;
else if(n>=64) return 1.5;
else if(n>=60) return 1.0;
else return 0.;
}
public void showjidian(ScoreInformation []s)
{
System.out.println("**************************************************");
System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019級版");
System.out.println(" 學生考試成績績點計算界面 ");
System.out.println("**************************************************");
System.out.println(" 請輸入學生學號:");
Scanner in=new Scanner(System.in);
int b;
b=in.nextInt();
//計算各學科績點
for(int i=0;i<5;i++)
{if(b==Integer.parseInt(s[i].getstunumber()))
{
System.out.println("**************************************************");
System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019級版");
System.out.println(" 學生考試成績績點計算界面 ");
System.out.println("**************************************************");
System.out.println(" 學生學號:"+s[i].getstunumber());
System.out.println(" 學生姓名:"+s[i].getname());
System.out.println(" 高等數學成績績點:"+jidian(s[i].getmathematicsscore()));
System.out.println(" 大學英語成績績點:"+jidian(s[i].getenglishscore()));
System.out.println(" 計算機網絡成績績點:"+jidian(s[i].getnetworkscore()));
System.out.println(" 數據庫成績績點:"+jidian(s[i].getdatebasescore()));
System.out.println(" 軟件工程成績績點:"+jidian(s[i].getsoftwarescore()));
//假設課程學分為1
double avr=(jidian(s[i].getmathematicsscore())+jidian(s[i].getenglishscore())+jidian(s[i].getnetworkscore())+jidian(s[i].getdatebasescore())+jidian(s[i].getsoftwarescore()))/5;
System.out.println(" 你的平均學分績點為:"+new DecimalFormat("#.00").format(avr)); //小數點后保留兩位
if(avr>=2) System.out.println("提示信息:你的學分績點已達到畢業要求!");
else System.out.println("提示信息:你的學分績點不滿足畢業要求!");
}
}
System.out.println("是否返回系統主界面(Y/N)");
Scanner In=new Scanner(System.in);
String str;
char ch;
str=In.next();
ch=str.charAt(0);
while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')
{
System.out.println("輸入有誤,請重新輸入:");
str=In.next();
ch=str.charAt(0);
}
if(ch=='Y'||ch=='y')
{
this.menu(s);
}
if(ch=='N'||ch=='n')
{
}
}
}
實現的功能如下: