package studentinformation; /**姓名 胡海靖 * 學號 20183609 * 班級 信1805-2 */ class ScoreInformation { private String stunumber;//學號 private String name;//姓名 private double mathematicsscore;//高等數學成績 private double englishiscore;//大學英語成績 private double networkscore;//計算機網絡成績 private double databasescore;//數據庫成績 private double softwarescore;//軟件工程成績 public ScoreInformation() {}; public ScoreInformation(String stunumber, String name, double mathematicsscore, double englishscore, double networkscore, double databasescore, double softwarescore) { super(); this.stunumber = stunumber; this.name = name; this.mathematicsscore = mathematicsscore; this.englishiscore = englishiscore; this.networkscore = networkscore; this.databasescore = databasescore; this.softwarescore = 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; } } package studentinformation; import java.util.Scanner; /**姓名 胡海靖 * 學號 20183609 * 班級 信1805-2 */ public class ScoreManagement { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 定義數組預存五個學生的姓名以及學號; ScoreInformation[] stu = new ScoreInformation[5]; stu[0] = new ScoreInformation("20183606", "晏雯慧",1,1,1,1,1); stu[1] = new ScoreInformation("20183607", "徐嬌美",2,2,2,2,2); stu[2] = new ScoreInformation("20183608", "楊一帆",3,3,3,3,3); stu[3] = new ScoreInformation("20183609", "胡海靖",4,4,4,4,4); stu[4] = new ScoreInformation("20183610", "馮靜妃",5,5,5,5,5); show(stu); } public static void show(ScoreInformation[] stu) {//show函數顯示主頁面 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("*****************************************"); Scanner sc = new Scanner(System.in);// 輸入選項 int choice = sc.nextInt(); switch(choice) { case 1:add(stu);break;//考試成績錄入 case 2:change(stu);break;//考試成績修改 case 3:jisuan(stu);break;//計算學生成績 case 4:finish();break;//退出系統 default: { System.out.println("信息錯誤,該選項不存在"); show(stu); break; } } } public static void add(ScoreInformation[] stu) {//學生信息的錄入 System.out.println("****************************************"); System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019版 "); System.out.println(" 學生考試成績錄入界面 "); System.out.println("****************************************"); System.out.println(" 學生學號: "); Scanner sc = new Scanner(System.in); String number = sc.nextLine(); int flag = 0,i; for (i = 0; i < 5; i++) { if (stu[i].getstunumber().equals(number)) { System.out.println("*********************************************"); System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版 "); System.out.println(" 學生學號:"+stu[i].getstunumber() ); System.out.println(" 學生姓名:"+stu[i].getname() ); System.out.println(" 請輸入高等數學成績:" ); System.out.println("***********************************************"); double math = sc.nextDouble(); System.out.println(stu[i].getname() + "的高數成績是:" + math); System.out.println("請輸入該生的英語成績"); double english = sc.nextDouble(); System.out.println(stu[i].getname() + "的英語成績是:" + english); System.out.println("請輸入該生的計算機網絡成績"); double network = sc.nextDouble(); System.out.println(stu[i].getname() + "的計算機網絡成績是:" + network); System.out.println("請輸入該生的數據庫成績"); double data = sc.nextDouble(); System.out.println(stu[i].getname() + "的數據庫成績是:" + data); System.out.println("請輸入該生的軟件成績"); double soft = sc.nextDouble(); System.out.println("********************************************"); System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版"); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 高等數學成績:"+math); System.out.println(" 大學英語成績:"+english); System.out.println(" 計算機網絡成績:"+network); System.out.println(" 數據庫成績:"+data); System.out.println(" 軟件工程成績:"+soft); System.out.println(" 該學生成績已錄入完畢,是否提交(Y/N)"); System.out.println("**********************************************"); if (sc.next().equals("Y")) { stu[i].setenglishiscore(english); stu[i].setmathematicsscore(math); stu[i].setdatabasescore(data); stu[i].setnetworkscore(network); stu[i].setsoftwarescore(soft); show(stu); } else { System.out.println("返回錄入頁面"); add(stu); } flag = 1; } } // 如果沒有該學生信息,提示重新輸入; if (flag == 0) { System.out.println("該學號不存在,請重新輸入"); add(stu); } } public static void change(ScoreInformation[] stu)//學生成績修改 { Scanner sc = new Scanner(System.in); System.out.println("******************************************"); System.out.println("石家庄鐵道大學軟件工程系學生學籍管理系統2019版"); System.out.println("學生考試成績修改頁面"); System.out.println("*******************************************"); System.out.println("請輸入學生學號:"); String number = sc.nextLine(); int flag = 0; for (int i = 0; i < 5; i++) { if (stu[i].getstunumber().equals(number)) { System.out.println("***********************************************"); System.out.println("石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版"); System.out.println("學生考試成績錄入"); System.out.println("*************************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 1、高等數學成績:"+stu[i].getmathematicsscore()); System.out.println(" 2、大學英語成績:" + stu[i].getenglishiscore()); System.out.println(" 3、計算機網絡成績:" + stu[i].getnetworkscore()); System.out.println(" 4、數據庫成績:" + stu[i].getdatabasescore()); System.out.println(" 5、軟件工程成績:" + stu[i].getsoftwarescore()); System.out.println("**************************************************"); int select = sc.nextInt(); double chang=0; switch (select) { case 1: System.out.println(" 學生考試成績錄入界面 "); System.out.println("*****************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 請輸入修改后的高數成績:"); chang=sc.nextDouble(); System.out.println("********************************************************"); System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統 "); System.out.println("*********************************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 1、高等數學成績:"+chang); System.out.println(" 2、大學英語成績:" + stu[i].getenglishiscore()); System.out.println(" 3、計算機網絡成績:" + stu[i].getnetworkscore()); System.out.println(" 4、數據庫成績:" + stu[i].getdatabasescore()); System.out.println(" 5、軟件工程成績:" + stu[i].getsoftwarescore()); System.out.println("********************************************************"); System.out.println(" 該學生成績已修改完畢,是否提交(Y/N)"); System.out.println("**********************************************************"); if(sc.next().equals("Y")) { stu[i].setmathematicsscore(chang); show(stu); } else { change(stu); } break; case 2: System.out.println(" 學生考試成績錄入界面 "); System.out.println("*****************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 請輸入修改后的大學英語成績:"); chang=sc.nextDouble(); System.out.println("********************************************************"); System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統 "); System.out.println("*********************************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 1、高等數學成績:"+stu[i].getmathematicsscore()); System.out.println(" 2、大學英語成績:" + chang); System.out.println(" 3、計算機網絡成績:" + stu[i].getnetworkscore()); System.out.println(" 4、數據庫成績:" + stu[i].getdatabasescore()); System.out.println(" 5、軟件工程成績:" + stu[i].getsoftwarescore()); System.out.println("********************************************************"); System.out.println(" 該學生成績已修改完畢,是否提交(Y/N)"); System.out.println("**********************************************************"); if(sc.next().equals("Y")) { stu[i].setenglishiscore(chang); show(stu); } else { change(stu); } break; case 3: System.out.println(" 學生考試成績錄入界面 "); System.out.println("*****************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 請輸入修改后的計算機網絡成績:"); chang=sc.nextDouble(); System.out.println("********************************************************"); System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統 "); System.out.println("*********************************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 1、高等數學成績:"+stu[i].getmathematicsscore()); System.out.println(" 2、大學英語成績:" + stu[i].getenglishiscore()); System.out.println(" 3、計算機網絡成績:" + chang); System.out.println(" 4、數據庫成績:" + stu[i].getdatabasescore()); System.out.println(" 5、軟件工程成績:" + stu[i].getsoftwarescore()); System.out.println("********************************************************"); System.out.println(" 該學生成績已修改完畢,是否提交(Y/N)"); System.out.println("**********************************************************"); if(sc.next().equals("Y")) { stu[i].setnetworkscore(chang); show(stu); } else { change(stu); } break; case 4: System.out.println(" 學生考試成績錄入界面 "); System.out.println("*****************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 請輸入修改后的數據庫成績:"); chang=sc.nextDouble(); System.out.println("********************************************************"); System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統 "); System.out.println("*********************************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 1、高等數學成績:"+stu[i].getmathematicsscore()); System.out.println(" 2、大學英語成績:" + stu[i].getenglishiscore()); System.out.println(" 3、計算機網絡成績:" + stu[i].getnetworkscore()); System.out.println(" 4、數據庫成績:" + chang); System.out.println(" 5、軟件工程成績:" + stu[i].getsoftwarescore()); System.out.println("********************************************************"); System.out.println(" 該學生成績已修改完畢,是否提交(Y/N)"); System.out.println("**********************************************************"); if(sc.next().equals("Y")) { stu[i].setdatabasescore(chang); show(stu); } else { change(stu); } break; case 5: System.out.println(" 學生考試成績錄入界面 "); System.out.println("*****************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 請輸入修改后的軟件工程成績:"); chang=sc.nextDouble(); System.out.println("********************************************************"); System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統 "); System.out.println("*********************************************************"); System.out.println(" 學生學號:"+stu[i].getstunumber()); System.out.println(" 學生姓名:"+stu[i].getname()); System.out.println(" 1、高等數學成績:"+stu[i].getmathematicsscore()); System.out.println(" 2、大學英語成績:" + stu[i].getenglishiscore()); System.out.println(" 3、計算機網絡成績:" + stu[i].getnetworkscore()); System.out.println(" 4、數據庫成績:" + stu[i].getdatabasescore()); System.out.println(" 5、軟件工程成績:" + chang); System.out.println("********************************************************"); System.out.println(" 該學生成績已修改完畢,是否提交(Y/N)"); System.out.println("**********************************************************"); if(sc.next().equals("Y")) { stu[i].setsoftwarescore(chang); show(stu); } else { change(stu); } break; default: System.out.println("請輸入正確信息"); change(stu); break; } flag = 1; } } if (flag == 0) { System.out.println("學號輸入錯誤,請重新輸入學號"); change(stu); } } static void jisuan(ScoreInformation[] stu) {//計算學生成績績點 System.out.println("******************************************"); System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019版 "); System.out.println(" 學生考試成績績點計算界面 "); System.out.println("*******************************************"); System.out.println(" 請輸入學生學號:"); Scanner sc=new Scanner(System.in); String number=sc.nextLine(); System.out.println("*********************************************"); System.out.println("**********************************************"); System.out.println(" 石家庄鐵道大學軟甲工程系學生學籍管理系統2019版"); System.out.println(" 學生考試成績績點計算界面"); System.out.println("************************************************"); System.out.println(" 學生學號:"+number); int i; double gao=0,ying=0,ji=0,shu=0,ruan=0; for(i=0;i<5;i++) if (stu[i].getstunumber().equals(number)) { System.out.println(" 學生姓名:"+stu[i].getname()); //計算高等數學的成績績點 if(stu[i].getmathematicsscore()>=90) gao=4.0; else if(stu[i].getmathematicsscore()>=85&&stu[i].getmathematicsscore()<=89.9) gao=3.7; else if(stu[i].getmathematicsscore()>=82&&stu[i].getmathematicsscore()<=84.9) gao=3.3; else if(stu[i].getmathematicsscore()>=78&&stu[i].getmathematicsscore()<=81.9) gao=2.7; else if(stu[i].getmathematicsscore()>=75&&stu[i].getmathematicsscore()<=77.9) gao=2.3; else if(stu[i].getmathematicsscore()>=72&&stu[i].getmathematicsscore()<=74.9) gao=2.0; else if(stu[i].getmathematicsscore()>=68&&stu[i].getmathematicsscore()<=71.9) gao=1.7; else if(stu[i].getmathematicsscore()>=66&&stu[i].getmathematicsscore()<=67.9) gao=1.5; else if(stu[i].getmathematicsscore()>=64&&stu[i].getmathematicsscore()<=65.9) gao=1.0; else if(stu[i].getmathematicsscore()<60) gao=0; System.out.println(" 1.高等數學成績績點:"+gao); //計算大學英語成績績點 if(stu[i].getenglishiscore()>=90) ying=4.0; else if(stu[i].getenglishiscore()>=85&&stu[i].getenglishiscore()<=89.9) ying=3.7; else if(stu[i].getenglishiscore()>=82&&stu[i].getenglishiscore()<=84.9) ying=3.3; else if(stu[i].getenglishiscore()>=78&&stu[i].getenglishiscore()<=81.9) ying=2.7; else if(stu[i].getenglishiscore()>=75&&stu[i].getenglishiscore()<=77.9) ying=2.3; else if(stu[i].getenglishiscore()>=72&&stu[i].getenglishiscore()<=74.9) ying=2.0; else if(stu[i].getenglishiscore()>=68&&stu[i].getenglishiscore()<=71.9) ying=1.7; else if(stu[i].getenglishiscore()>=66&&stu[i].getenglishiscore()<=67.9) ying=1.5; else if(stu[i].getenglishiscore()>=64&&stu[i].getenglishiscore()<=65.9) ying=1.0; else if(stu[i].getenglishiscore()<60) ying=0; System.out.println(" 2.大學英語成績績點:"+ying); //計算計算機網絡成績績點 if(stu[i].getnetworkscore()>=90) ji=4.0; else if(stu[i].getnetworkscore()>=85&&stu[i].getnetworkscore()<=89.9) ji=3.7; else if(stu[i].getnetworkscore()>=82&&stu[i].getnetworkscore()<=84.9) ji=3.3; else if(stu[i].getnetworkscore()>=78&&stu[i].getnetworkscore()<=81.9) ji=2.7; else if(stu[i].getnetworkscore()>=75&&stu[i].getnetworkscore()<=77.9) ji=2.3; else if(stu[i].getnetworkscore()>=72&&stu[i].getnetworkscore()<=74.9) ji=2.0; else if(stu[i].getnetworkscore()>=68&&stu[i].getnetworkscore()<=71.9) ji=1.7; else if(stu[i].getnetworkscore()>=66&&stu[i].getnetworkscore()<=67.9) ji=1.5; else if(stu[i].getnetworkscore()>=64&&stu[i].getnetworkscore()<=65.9) ji=1.0; else if(stu[i].getnetworkscore()<60) ji=0; System.out.println(" 3.計算機網絡成績績點:"+ji); //計算數據庫成績績點 if(stu[i].getdatabasescore()>=90) shu=4.0; else if(stu[i].getdatabasescore()>=85&&stu[i].getdatabasescore()<=89.9) shu=3.7; else if(stu[i].getdatabasescore()>=82&&stu[i].getdatabasescore()<=84.9) shu=3.3; else if(stu[i].getdatabasescore()>=78&&stu[i].getdatabasescore()<=81.9) shu=2.7; else if(stu[i].getdatabasescore()>=75&&stu[i].getdatabasescore()<=77.9) shu=2.3; else if(stu[i].getdatabasescore()>=72&&stu[i].getdatabasescore()<=74.9) shu=2.0; else if(stu[i].getdatabasescore()>=68&&stu[i].getdatabasescore()<=71.9) shu=1.7; else if(stu[i].getdatabasescore()>=66&&stu[i].getdatabasescore()<=67.9) shu=1.5; else if(stu[i].getdatabasescore()>=64&&stu[i].getdatabasescore()<=65.9) shu=1.0; else if(stu[i].getdatabasescore()<60) shu=0; System.out.println(" 4.數據庫成績績點:"+shu); //計算軟件工程成績績點 if(stu[i].getdatabasescore()>=90) ruan=4.0; else if(stu[i].getdatabasescore()>=85&&stu[i].getdatabasescore()<=89.9) ruan=3.7; else if(stu[i].getdatabasescore()>=82&&stu[i].getdatabasescore()<=84.9) ruan=3.3; else if(stu[i].getdatabasescore()>=78&&stu[i].getdatabasescore()<=81.9) ruan=2.7; else if(stu[i].getdatabasescore()>=75&&stu[i].getdatabasescore()<=77.9) ruan=2.3; else if(stu[i].getdatabasescore()>=72&&stu[i].getdatabasescore()<=74.9) ruan=2.0; else if(stu[i].getdatabasescore()>=68&&stu[i].getdatabasescore()<=71.9) ruan=1.7; else if(stu[i].getdatabasescore()>=66&&stu[i].getdatabasescore()<=67.9) ruan=1.5; else if(stu[i].getdatabasescore()>=64&&stu[i].getdatabasescore()<=65.9) ruan=1.0; else if(stu[i].getdatabasescore()<60) ruan=0; System.out.println(" 5.軟件工程成績績點:"+ruan); //計算平均學分績點 double average=0; average=(gao*4+ying*3+ji*4+shu*3+ruan*2)/16; String result=String.format("%.2f",average); System.out.println(" 你的平均學分績點為:"+result); if(average>=2) System.out.println("提示信息:你的學分績點已達到畢業要求!"); else System.out.println("提示信息:你的學分績點不滿足畢業要求!"); System.out.println(" 是否返回系統主界面:(Y/N)"); System.out.println("**************************************"); if(sc.next().equals("Y")) { show(stu); } else break; } } static void finish() {//退出當前程序 System.out.println("********************************************"); System.out.println(" 石家庄鐵道大學軟件工程系學生學籍管理系統2019版"); System.out.println(" 制作人:胡海靖"); System.out.println("********************************************"); } }
代碼測試截圖:
1.成績錄入
2.成績修改
3.計算成績績點
4.退出系統
結果:周一java課對自己暑假的學習成果進行了測試,在老師認為的簡單的題目的情況下,還是未能在規定的時間寫完所有的代碼,未能實現老師指定的全部功能,因此只能得取11.5分,而剩余的3.5分丟失的原因:沒能完成第三項即求取成績績點的功能,還有沒能實現(Y/N)的跳轉;歸根到底為1.打字慢,導致時間不夠用;2.沒有清晰地邏輯思路,所以在寫的時候浪費了很多時間;3.寫的代碼有點繁瑣簡單,好多用的都是笨方法,從而導致代碼很長;
遇到的問題:由於對數組的學習不徹底,導致開始的時候就出現了問題,對對象數組的學習不扎實;
收獲:認識到了自己的不足,和別人差距還很大,更加堅定自己要好好學習的信心。對自己制定嚴格的學習計划,規定每天敲代碼的時間。多多訓練自己的不足,形成很好的邏輯思維。