昨天参加了JAVA的开学测试,大致上完成了需要的功能,有个小细节因为数组越界问题到今天才实现,以下是修改完成后的代码。
首先是ScoreInformation类来存储学生信息。
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; } }
接着是ScoreManagement类来实现功能
/** 信1805-1 * @author 张凯鑫 * 20183551 */import java.util.*;public class ScoreManagement { static ScoreInformation[] a = new ScoreInformation[5]; static Scanner scanner = new Scanner(System.in); static boolean pd=true; public static void main(String[] args) { a[0]=new ScoreInformation(); a[1]=new ScoreInformation(); a[2]=new ScoreInformation(); a[3]=new ScoreInformation(); a[4]=new ScoreInformation(); a[0].setName("一号"); a[0].setStunumber("20183551"); a[1].setName("二号"); a[1].setStunumber("20183552"); a[2].setName("三号"); a[2].setStunumber("20183553"); a[3].setName("四号"); a[3].setStunumber("20183554"); a[4].setName("五号"); a[4].setStunumber("20183555"); int xz; while(pd) { showMain(); xz=scanner.nextInt(); if(xz==1) { zhuchengjiluru(); } else if(xz==2) { chengjixiugai(); } else if(xz==3) { jidian(); } else if(xz==4) { tuichu(); pd=false; } else { System.out.println("该选项不存在。"); } } } public static void showMain() { System.out.println("***********************************************************\r\n" + " 石家庄铁道大学软件工程系\r\n" + " 学生学籍管理系统 2019 版\r\n" + "***********************************************************\r\n" + " 1、 学生考试成绩录入\r\n" + " 2、 学生考试成绩修改\r\n" + " 3、 计算学生成绩绩点\r\n" + " 4、退出学籍管理系统\r\n" + "**********************************************************" ); } public static void zhuchengjiluru() { System.out.println("***********************************************************\r\n" + " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + " 学生考试成绩录入\r\n" + "***********************************************************\r\n" + " 请输入学生学号:XXXXXXXX\r\n" + "**********************************************************"); String stunumber = scanner.next(); int sum; boolean pd2=true; for(sum=0;sum<5;sum++) { if(stunumber.equals(a[sum].getStunumber())) break; } if(sum==5) { pd2=false; } if(pd2) { int i; for(i=1;i<=7;i++) { lurujiemian(); System.out.println(" 学生学号:"+a[sum].getStunumber()); System.out.println(" 学生姓名:"+a[sum].getName()); if(i>1) { System.out.println(" 高等数学成绩:"+a[sum].getMathematicsscore()); } if(i>2) { System.out.println(" 大学英语成绩:"+a[sum].getEnglishiscore()); } if(i>3) { System.out.println(" 计算机网络成绩:"+a[sum].getNetworkscore()); } if(i>4) { System.out.println(" 数据库成绩:"+a[sum].getDatabasescore()); } if(i>5) { System.out.println(" 软件工程成绩:"+a[sum].getSoftwarescore()); } if(i>6) { System.out.println(" 该学生成绩已录入完毕,是否提交(Y/N)"); System.out.println("**********************************************************"); String s=scanner.next(); if(s.equals("Y")) { break; } if(s.equals("N")) { a[sum].setDatabasescore(0); a[sum].setEnglishiscore(0); a[sum].setMathematicsscore(0); a[sum].setNetworkscore(0); a[sum].setSoftwarescore(0); zhuchengjiluru(); } } if(i==1) { System.out.println(" 请输入高等数学成绩:XXX"); System.out.println("**********************************************************"); double s=scanner.nextDouble(); a[sum].setMathematicsscore(s); } else if(i==2) { System.out.println(" 请输入大学英语成绩:XXX"); System.out.println("**********************************************************"); double s=scanner.nextDouble(); a[sum].setEnglishiscore(s); } else if(i==3) { System.out.println(" 请输入计算机网络成绩:XXX"); System.out.println("**********************************************************"); double s=scanner.nextDouble(); a[sum].setNetworkscore(s); } else if(i==4) { System.out.println(" 请输入数据库成绩:XXX"); System.out.println("**********************************************************"); double s=scanner.nextDouble(); a[sum].setDatabasescore(s); } else if(i==5) { System.out.println(" 请输入软件工程成绩:XXX"); System.out.println("**********************************************************"); double s=scanner.nextDouble(); a[sum].setSoftwarescore(s); } System.out.println("**********************************************************"); } } else { System.out.println("该学号不存在!"); zhuchengjiluru(); } } public static void lurujiemian() { System.out.println("***********************************************************\r\n" + " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + " 学生考试成绩录入界面\r\n" + "***********************************************************"); } public static void chengjixiugai() { System.out.println("***********************************************************\r\n" + " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + " 学生考试成绩修改界面\r\n" + "***********************************************************\r\n" + " 请输入学生学号:XXXXXXXX\r\n" + "**********************************************************"); String stunumber = scanner.next(); int sum; double yuan=0; for(sum=0;sum<5;sum++) { if(stunumber.equals(a[sum].getStunumber())) break; } System.out.println("***********************************************************\r\n" + " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + " 学生考试成绩录入\r\n" + "***********************************************************\r\n" + " 学生学号:"+a[sum].getStunumber()+"\r\n" + " 学生姓名:"+a[sum].getName()+"\r\n" + " 1、高等数学成绩:"+a[sum].getMathematicsscore()+"\r\n" + " 2、大学英语成绩:"+a[sum].getEnglishiscore()+"\r\n" + " 3、计算机网络成绩:"+a[sum].getNetworkscore()+"\r\n" + " 4、数据库成绩:"+a[sum].getDatabasescore()+"\r\n" + " 5、软件工程成绩:"+a[sum].getSoftwarescore()+"\r\n" + "**********************************************************"); int x=scanner.nextInt(); System.out.println("***********************************************************\r\n" + " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + " 学生考试成绩录入界面\r\n" + "***********************************************************\r\n"+ " 学生学号:"+a[sum].getStunumber()+"\r\n" + " 学生姓名:"+a[sum].getName() ); if(x==1) { System.out.println(" 请输入修改后的高等数学成绩:XXX"); System.out.println("**********************************************************"); double s=scanner.nextDouble(); yuan=a[sum].getMathematicsscore(); a[sum].setMathematicsscore(s); } if(x==2) { System.out.println(" 请输入修改后的大学英语成绩:XXX"); System.out.println("**********************************************************"); double s=scanner.nextDouble(); yuan=a[sum].getEnglishiscore(); a[sum].setEnglishiscore(s); } if(x==3) { System.out.println(" 请输入修改后的计算机网络成绩:XXX"); System.out.println("**********************************************************"); double s=scanner.nextDouble(); yuan=a[sum].getNetworkscore(); a[sum].setNetworkscore(s); } if(x==4) { System.out.println(" 请输入修改后的数据库成绩:XXX"); System.out.println("**********************************************************"); double s=scanner.nextDouble(); yuan=a[sum].getDatabasescore(); a[sum].setDatabasescore(s); } if(x==5) { System.out.println(" 请输入修改后的软件工程成绩:XXX"); System.out.println("**********************************************************"); double s=scanner.nextDouble(); yuan=a[sum].getSoftwarescore(); a[sum].setSoftwarescore(s); } System.out.println("***********************************************************\r\n" + " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + " 学生考试成绩录入\r\n" + "***********************************************************\r\n" + " 学生学号:"+a[sum].getStunumber()+"\r\n" + " 学生姓名:"+a[sum].getName()+"\r\n" + " 1、高等数学成绩:"+a[sum].getMathematicsscore()+"\r\n" + " 2、大学英语成绩:"+a[sum].getEnglishiscore()+"\r\n" + " 3、计算机网络成绩:"+a[sum].getNetworkscore()+"\r\n" + " 4、数据库成绩:"+a[sum].getDatabasescore()+"\r\n" + " 5、软件工程成绩:"+a[sum].getSoftwarescore()+"\r\n" + " 该学生成绩已修改完毕,是否提交(Y/N)\r\n"+ "**********************************************************"); String xz=scanner.next(); if(xz.equals("Y")) { return;} else if(xz.equals("N")) { if(x==1) { a[sum].setMathematicsscore(yuan); } if(x==2) { a[sum].setEnglishiscore(yuan); } if(x==3) { a[sum].setNetworkscore(yuan); } if(x==4) { a[sum].setDatabasescore(yuan); } if(x==5) { a[sum].setSoftwarescore(yuan); } chengjixiugai(); } } public static void jidian() { System.out.println("***********************************************************\r\n" + " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + " 学生考试成绩绩点计算界面\r\n" + "***********************************************************\r\n" + " 请输入学生学号:XXXXXXXX\r\n" + "**********************************************************"); String stunumber = scanner.next(); int sum; for(sum=0;sum<5;sum++) { if(stunumber.equals(a[sum].getStunumber())) break; } boolean pd1=false; double zh=(jisuanjidian(a[sum].getDatabasescore())*3+jisuanjidian(a[sum].getEnglishiscore())*3 +jisuanjidian(a[sum].getMathematicsscore())*4+jisuanjidian(a[sum].getNetworkscore())*4 +jisuanjidian(a[sum].getSoftwarescore())*2)/16; if(zh>=2.0) pd1=true; if(pd1) { System.out.println("***********************************************************\r\n" + " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + " 学生考试成绩绩点计算界面\r\n" + "***********************************************************\r\n" + " 学生学号:"+a[sum].getStunumber()+"\r\n" + " 学生姓名:"+a[sum].getName()+"\r\n" + " 1、高等数学成绩绩点:"+jisuanjidian(a[sum].getMathematicsscore())+"\r\n" + " 2、大学英语成绩绩点:"+jisuanjidian(a[sum].getEnglishiscore())+"\r\n" + " 3、计算机网络成绩绩点:"+jisuanjidian(a[sum].getNetworkscore())+"\r\n" + " 4、数据库成绩绩点:"+jisuanjidian(a[sum].getDatabasescore())+"\r\n" + " 5、软件工程成绩绩点:"+jisuanjidian(a[sum].getSoftwarescore())+"\r\n" + " 你的平均学分绩点为:"+zh+"\r\n" + " 提示信息:你的学分绩点已达到毕业要求!\r\n" + " 是否返回系统主界面:(Y/N)\r\n" + "**********************************************************"); } if(!pd1) { System.out.println("***********************************************************\r\n" + " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + " 学生考试成绩绩点计算界面\r\n" + "***********************************************************\r\n" + " 学生学号:"+a[sum].getStunumber()+"\r\n" + " 学生姓名:"+a[sum].getName()+"\r\n" + " 1、高等数学成绩绩点:"+jisuanjidian(a[sum].getMathematicsscore())+"\r\n" + " 2、大学英语成绩绩点:"+jisuanjidian(a[sum].getEnglishiscore())+"\r\n" + " 3、计算机网络成绩绩点:"+jisuanjidian(a[sum].getNetworkscore())+"\r\n" + " 4、数据库成绩绩点:"+jisuanjidian(a[sum].getDatabasescore())+"\r\n" + " 5、软件工程成绩绩点:"+jisuanjidian(a[sum].getSoftwarescore())+"\r\n" + " 你的平均学分绩点为:"+zh+"\r\n" + " 提示信息:你的学分绩点不满足毕业要求!\r\n" + " 是否返回系统主界面:(Y/N)\r\n" + "**********************************************************"); } String s=scanner.next(); if(s.equals("Y")) ; if(s.equals("N")) { pd=false; } } public static double jisuanjidian(double x) { double jd=0.0; if(x<60) ; if(x>=60&&x<=63.9) jd=1.0; if(x>=64&&x<=65.9) jd=1.5; if(x>=66&&x<=67.9) jd=1.7; if(x>=68&&x<=71.9) jd=2.0; if(x>=72&&x<=74.9) jd=2.3; if(x>=75&&x<=77.9) jd=2.7; if(x>=78&&x<=81.9) jd=3.0; if(x>=82&&x<=84.9) jd=3.3; if(x>=85&&x<=89.9) jd=3.7; if(x>=90) jd=4.0; return jd; } public static void tuichu() { System.out.println("***********************************************************\r\n" + " 谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + " 制作人:张凯鑫\r\n" + "***********************************************************"); }}
基本就是将各个功能分成不同的函数,一个函数来实现一个功能,具体有些地方的实现利用了不同的方法。
1、成绩录入界面,输入成绩后显示已经录入的成绩并提示下一项科目输入利用了for循环,因为已知需要运行几次,所以在第一次循环的时候提示输出高数成绩,第二次第三次等等依次输出,然后就是输出之前以前录入的成绩,可以设定判断条件,即当i大于第几次的时候便输出各种科目的成绩。
2、成绩修改界面也是使用if来判断修改哪个科目,但是在修改函数中要设置一个变量来存储要修改的科目的成绩,在用户修改结束选择“N”即不保存修改的时候来恢复原成绩。
3、绩点的计算是利用一个函数来计算出绩点的。
以下是程序运行截图。
主界面
成绩录入界面
录入成绩界面
1、
2、
3、
成绩修改界面
1、
2、
3、
4、
绩点查询界面
1、
2、
退出界面