第 1 頁 共 8 頁
石家庄鐵道大學 2019 年秋季
2018 級課堂測試試卷(一)(15 分)
課程名稱: JAVA 語言程序設計 任課教師: 王建民 考試時間: 150 分鍾
一、考試要求:
1、按照測試內容要求完成程序的設計與編程;
2、建立學號姓名文件夾,如:“信 1805-1 班 20183557 楊雄豪”,將
源程序文件、accountinformation.txt、accountlist.txt 保存在文件
夾中,壓縮成 rar 文件提交。
3、以班級為單位上交最終考試結果。
4、需要在程序開始的注釋中注明班級、學號、姓名。
二、數據結構要求:(5 分)
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)賦值。
三、功能要求:(10 分)
該系統完成學生成績錄入,修改,計算學分積點和查詢學生成績的簡單
功能,定義 ScoreManagement 類完成下列功能。
1、利用數組實現至少存儲五個學生的信息; (將考生信息作為第一條記
錄)。(1 分)
2、學生成績管理系統的主界面如下圖所示:(1 分)
①界面要求;(0.5 分)
***********************************************************
石家庄鐵道大學軟件工程系
學生學籍管理系統 2019 版
***********************************************************
1、 學生考試成績錄入
2、 學生考試成績修改
3、 計算學生成績績點
4、退出學籍管理系統
**********************************************************
第 2 頁 共 8 頁②功能說明
輸入數字 1-4 執行相應的功能,輸入其他數字提示錯誤信息(該選項
不存在),並返回主界面。(0.5 分)
2、成績錄入功能操作流程:(3 分)
①在主界面選擇成績錄入功能后,進入成績錄入界面,如下圖所示:(0.5
分)
***********************************************************
石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版
學生考試成績錄入
***********************************************************
請輸入學生學號:XXXXXXXX
**********************************************************
提示用戶輸入八位的學號。
②用戶輸入學號后,顯示用戶學號和姓名,如果用戶學號不存在或信息錯
誤提示錯誤信息(該學號不存在),並返回成績錄入界面。(0.5 分)
③用戶輸入學號正確如下圖所示:
***********************************************************
石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版
學生考試成績錄入界面
***********************************************************
學生學號:20183557
學生姓名:楊雄豪
請輸入高等數學成績:XXX
**********************************************************
提示用戶輸入高等數學成績,用戶輸入正確的數字;則提示用戶輸入大學
英語成績,依次類推,提示用戶錄入計算機網絡、數據庫、軟件工程成績,當
第 3 頁 共 8 頁用戶錄完所有成績后,顯示如下界面。(1.5 分)
***********************************************************
石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版
學生考試成績錄入
***********************************************************
學生學號:20183557
學生姓名:楊雄豪
高等數學成績:XXX
大學英語成績:XXX
計算機網絡成績:XXX
數據庫成績:XXX
軟件工程成績:XXX
該學生成績已錄入完畢,是否提交(Y/N)
**********************************************************
選擇“Y”將錄入成績保存到相應的數組中,並返回主界面。選擇“N”,
則忽略上述成績錄入,並返回成績錄入界面。(0.5 分)
3、成績修改功能操作流程:(2 分)
①在主界面選擇成績修改功能后,進入考試成績修改界面,如下圖所示:
***********************************************************
石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版
學生考試成績修改界面
***********************************************************
請輸入學生學號:XXXXXXXX
**********************************************************
提示用戶輸入八位的學號。(0.5 分)
第 4 頁 共 8 頁②用戶輸入學號后,顯示用戶學號、姓名和全部成績信息,如下圖所示。
***********************************************************
石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版
學生考試成績錄入
***********************************************************
學生學號:20183557
學生姓名:楊雄豪
1、高等數學成績:XXX
2、大學英語成績:XXX
3、計算機網絡成績:XXX
4、數據庫成績:XXX
5、軟件工程成績:XXX
**********************************************************
如果用戶學號不存在或信息錯誤提示錯誤信息(該學號不存在),並返回
成績修改界面。(0.5 分)
③用戶選擇相應的數字鍵,切換到如下界面(假如選擇數字“5”)。(0.5
分)
***********************************************************
石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版
學生考試成績錄入界面
***********************************************************
學生學號:20183557
學生姓名:楊雄豪
請輸入修改后軟件工程成績:XXX
**********************************************************
錄入修改后的成績,則進入下一步。
第 5 頁 共 8 頁***********************************************************
石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版
學生考試成績錄入
***********************************************************
學生學號:20183557
學生姓名:楊雄豪
1、高等數學成績:XXX
2、大學英語成績:XXX
3、計算機網絡成績:XXX
4、數據庫成績:XXX
5、軟件工程成績:XXX
該學生成績已修改完畢,是否提交(Y/N)
**********************************************************
選擇“Y”將修改后成績保存到相應的數組中,並返回主界面。選擇“N”,
則忽略上述成績錄入,並返回成績修改界面。(0.5 分)
3、計算學生成績績點功能操作流程:(2 分)
①在主界面選擇計算學生成績績點功能后,進入計算學生成績績點界面,
如下圖所示:
***********************************************************
石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版
學生考試成績績點計算界面
***********************************************************
請輸入學生學號:XXXXXXXX
**********************************************************
第 6 頁 共 8 頁提示用戶輸入八位的學號。
②用戶輸入學號后,顯示用戶學號、姓名、學分績點、提示信息。如下圖
所示。(1.5 分)
***********************************************************
石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版
學生考試成績績點計算界面
***********************************************************
學生學號:20183557
學生姓名:楊雄豪
1、高等數學成績績點:XXX
2、大學英語成績績點:XXX
3、計算機網絡成績績點:XXX
4、數據庫成績績點:XXX
5、軟件工程成績績點:XXX
你的平均學分績點為:XXX
提示信息:XXX XXX XXX XXX XXX XXX XXX
是否返回系統主界面:(Y/N)
**********************************************************
如果學分績點大於等於 2,提示信息顯示“你的學分績點已達到畢業要
求!”;
如果學分績點小於 2,提示信息顯示“你的學分績點不滿足畢業要求!”
第 7 頁 共 8 頁第 8 頁 共 8 頁
學分績點計算方法:
(1) 百分制對應績點
分數 ≥90
85~
89.9
82~
84.9
78~
81.9
75~
77.9
72~
74.9
68~
71.9
66~
67.9
64~
65.9
60~
63.9
<60
績點 4.0 3.7 3.3 3.0 2.7 2.3 2.0 1.7 1.5 1.0 0
(2)平均學分計算方法
平均學分績點=∑ ( 課程績點× 該課程學分) /∑ 課程學分
計算平均學分績點按四舍五入原則, 小數點后保留兩位有效數字。
③選擇“Y”返回系統主界面。選擇“N”,無操作。(0.5 分)
4、用戶選擇數字“4”,顯示如下界面,退出當前程序。(1 分)
***********************************************************
謝謝使用石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版
制作人:考生姓名
***********************************************************
//信1805-1 肖凱 20183582 package Scoreinformationx; 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; } 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; } } package Scoreinformationx; import java.util.Scanner; public class Scoreinformations { static Scoreinformation score1 = new Scoreinformation("20183579","張三",0,0,0,0,0); static Scoreinformation score2 = new Scoreinformation("20183580","李四",0,0,0,0,0); static Scoreinformation score3 = new Scoreinformation("20183581","王五",0,0,0,0,0); static Scoreinformation score4 = new Scoreinformation("20183582","張六",0,0,0,0,0); static Scoreinformation score5 = new Scoreinformation("20183583","陳七",0,0,0,0,0); static Scanner sca=new Scanner(System.in); public static void menu() { 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("****************************************************************"); System.out.println("在1,2,3,4中選擇輸出:"); } public static void menu1() { int n=0;while(n!=4) { menu(); n=sca.nextInt(); if(n==1)luru(); else if(n==2)xiugai(); else if(n==3)jisuan(); else if(n==4); else System.out.println("該選項不存在"); } System.out.println("***********************************************************"); System.out.println("謝謝使用石家庄鐵道大學軟件工程系學生學籍管理系統 2019 版 "); System.out.println(" 制作人:肖凱 "); System.out.println("*********************************************************** "); } public static void shuruxuehao1() {//表示選完1的下一步 System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入 " ); System.out.println ("**************************************************************** "); System.out.println(" 請輸入學生學號: " ); System.out.println("****************************************************************"); } public static void chengji(Scoreinformation s) {//錄入書友科目的成績 System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入界面 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("請輸入高數成績: " ); int g1=sca.nextInt(); System.out.println("請輸入大學英語成績: " ); int g2=sca.nextInt(); System.out.println("請輸入計算機網絡成績: " ); int g3=sca.nextInt(); System.out.println("請輸入數據庫成績: " ); int g4=sca.nextInt(); System.out.println("請輸入軟件工程成績: " ); int g5=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入界面 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("高數成績: "+g1); System.out.println("大學英語成績: "+g2); System.out.println("計算機網絡成績: "+g3); System.out.println("數據庫成績: "+g4); System.out.println("軟件工程成績: "+g5); System.out.println("該學生成績已錄入完畢,是否提交(Y/N"); String z=sca.next(); char x=z.charAt(0); if(x=='Y') { s.setmathematicsscore(g1); s.setenglishiscore(g2); s.setnetworkscore(g3); s.setdatabasescore(g4); s.setsoftwarescore(g5); } else luru(); } public static void luru() {//錄入成績 boolean flag=true; while(flag) { shuruxuehao1(); String xuehao=sca.next(); if(xuehao.equals(score1.getstunumber())) { chengji(score1); flag=false; } else if(xuehao.equals(score2.getstunumber())) { chengji(score2); flag=false; } else if(xuehao.equals(score3.getstunumber())) { chengji(score3); flag=false; } else if(xuehao.equals(score4.getstunumber())) { chengji(score4); flag=false; } else if(xuehao.equals(score5.getstunumber())) { chengji(score5); flag=false; } else System.out.println("該學號不存在"); } } public static void shuruxuehao2() { System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入 " ); System.out.println ("**************************************************************** "); System.out.println(" 請輸入學生學號: " ); System.out.println("****************************************************************"); } public static void chengji2(Scoreinformation s) { System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入界面 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("高數成績: "+s.getmathematicsscore()); System.out.println("大學英語成績: "+s.getenglishiscore()); System.out.println("計算機網絡成績: "+s.getnetworkscore()); System.out.println("數據庫成績: "+s.getdatabasescore()); System.out.println("軟件工程成績: "+s.getsoftwarescore()); System.out.println("請選擇修改內容:"); int g=sca.nextInt(); double p; String l; char a; switch(g) { case 1: System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入界面 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("請輸入修改后的高數成績:"); p=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試錄入 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("高數成績: "+p); System.out.println("大學英語成績: "+s.getenglishiscore()); System.out.println("計算機網絡成績: "+s.getnetworkscore()); System.out.println("數據庫成績: "+s.getdatabasescore()); System.out.println("軟件工程成績: "+s.getsoftwarescore()); System.out.println("該學生成績已修改完畢,是否提交(Y/N)"); System.out.println("****************************************************************"); l=sca.next(); a=l.charAt(0); if(a=='Y') s.setmathematicsscore(p); break; case 2: System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入界面 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("請輸入修改后的大學成績:"); p=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試錄入 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("高數成績: "+s.getmathematicsscore()); System.out.println("大學英語成績: "+p); System.out.println("計算機網絡成績: "+s.getnetworkscore()); System.out.println("數據庫成績: "+s.getdatabasescore()); System.out.println("軟件工程成績: "+s.getsoftwarescore()); System.out.println("該學生成績已修改完畢,是否提交(Y/N)"); System.out.println("****************************************************************"); l=sca.next(); a=l.charAt(0); if(a=='Y') s.setenglishiscore(p); break; case 3: System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入界面 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("請輸入修改后的計算機成績:"); p=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試錄入 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("高數成績: "+s.getenglishiscore()); System.out.println("大學英語成績: "+s.getenglishiscore()); System.out.println("計算機網絡成績: "+p); System.out.println("數據庫成績: "+s.getdatabasescore()); System.out.println("軟件工程成績: "+s.getsoftwarescore()); System.out.println("該學生成績已修改完畢,是否提交(Y/N)"); System.out.println("****************************************************************"); l=sca.next(); a=l.charAt(0); if(a=='Y') s.setnetworkscore(p); break; case 4: System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入界面 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("請輸入修改后的數據庫成績:"); p=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試錄入 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("高數成績: "+s.getenglishiscore()); System.out.println("大學英語成績: "+s.getenglishiscore()); System.out.println("計算機網絡成績: "+s.getnetworkscore()); System.out.println("數據庫成績: "+p); System.out.println("軟件工程成績: "+s.getsoftwarescore()); System.out.println("該學生成績已修改完畢,是否提交(Y/N)"); System.out.println("****************************************************************"); l=sca.next(); a=l.charAt(0); if(a=='Y') s.setdatabasescore(p); break; case 5: System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入界面 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("請輸入修改后的軟工成績:"); p=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試錄入 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("高數成績: "+s.getenglishiscore()); System.out.println("大學英語成績: "+s.getenglishiscore()); System.out.println("計算機網絡成績: "+s.getnetworkscore()); System.out.println("數據庫成績: "+s.getdatabasescore()); System.out.println("軟件工程成績: "+p); System.out.println("該學生成績已修改完畢,是否提交(Y/N)"); System.out.println("****************************************************************"); l=sca.next(); a=l.charAt(0); if(a=='Y') s.setsoftwarescore(p); break; } } public static void xiugai() {//修改成績 boolean flag=true; while(flag) { shuruxuehao2(); String g=sca.next(); if(g.equals(score1.getstunumber())) { chengji2(score1); flag=false; } if(g.equals(score2.getstunumber())) { chengji2(score2); flag=false; } else if(g.equals(score3.getstunumber())) { chengji2(score3); flag=false; } else if(g.equals(score4.getstunumber())) { chengji2(score4); flag=false; } else if(g.equals(score5.getstunumber())) { chengji2(score5); flag=false; } else System.out.println("該學號不存在"); } } public static void shuruxuehao3() { System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績錄入 " ); System.out.println ("**************************************************************** "); System.out.println(" 請輸入學生學號: " ); System.out.println("****************************************************************"); } public static void chengji3(Scoreinformation s) { double [] k=new double [5]; k[0]=s.getmathematicsscore(); k[1]=s.getenglishiscore(); k[2]=s.getnetworkscore(); k[3]=s.getdatabasescore(); k[4]=s.getsoftwarescore();//存入5課的成績 double [] jidian=new double[5]; double []xuefen= {4,3,4,3,2}; double sum=0; for(int i=0;i<k.length;i++) { if(k[i]>=90) jidian[i]=4.0; else if(k[i]>=85&&k[i]<90) jidian[i]=3.7; else if(k[i]>=82&&k[i]<85) jidian[i]=3.3; else if(k[i]>=78&&k[i]<82) jidian[i]=3.0; else if(k[i]>=75&&k[i]<78) jidian[i]=2.7; else if(k[i]>=72&&k[i]<75) jidian[i]=2.3; else if(k[i]>=68&&k[i]<72) jidian[i]=2.0; else if(k[i]>=66&&k[i]<68) jidian[i]=1.7; else if(k[i]>=64&&k[i]<66) jidian[i]=1.5; else if(k[i]>=60&&k[i]<64) jidian[i]=1.0; sum+=jidian[i]*xuefen[i]; } sum=sum/16; boolean flag=true; if(sum<2) flag=false; System.out.println("*************************************************************** ") ; System.out.println (" 石家庄鐵道大學軟件工程系 "); System.out.println(" 學生考試成績績點計算界面 " ); System.out.println ("**************************************************************** "); System.out.println("學生學號: "+s.getstunumber() ); System.out.println("學生姓名: " +s.getname()); System.out.println("高數成績: "+jidian[0]); System.out.println("大學英語成績: "+jidian[1]); System.out.println("計算機網絡成績: "+jidian[2]); System.out.println("數據庫成績: "+jidian[3]); System.out.println("軟件工程成績: "+jidian[4]); System.out.println(String.format("%0.2f", sum)); if(flag) System.out.println("提示信息:你的學分績點已達到畢業要求!"); else System.out.println("你的學分績點不滿足畢業要求!"); System.out.println("是否返回系統主界面:(Y/N)"); String a; char c='2'; while(c!='Y') { a=sca.next(); c=a.charAt(0); } } public static void jisuan() { boolean flag =true; while(flag) { shuruxuehao3(); String k=sca.next(); if(k.equals(score2.getstunumber())) { chengji3(score2); flag=false; } if(k.equals(score2.getstunumber())) { chengji3(score2); flag=false; } if(k.equals(score3.getstunumber())) { chengji3(score3); flag=false; } if(k.equals(score4.getstunumber())) { chengji3(score4); flag=false; } if(k.equals(score5.getstunumber())) { chengji3(score5); flag=false; } else System.out.println("該學號不存在"); } } public static void main(String[] args) { menu1(); } }
