目錄
一、問題描述
1.基本要求
2.設計要求
二、問題分析
三、邏輯設計
1.采用的數據類型
2.主要模塊
四、物理設計
1.Main類
2.CompetitionManagementSystem類
3.Universities類
4.Teams類(extends Universities)
一、問題描述
參加計算機設計大賽的n個學校編號為1~n,賽事分成m個項目,項目的編號為1~m.比賽獲獎按照得分降序,取前三名,寫一個統計程序產生各種成績單和得分報表。
1.基本要求
- 每個比賽項目至少有10支參賽隊;每個學校最多有6支隊伍參賽并且每個隊伍只能參加一個比賽項目
- 能統計各學校的總分
- 可以按照學校編號或名稱,學校的總分、各項目的總分排序輸出
- 可以按學校編號查詢學校某個項目的獲獎情況;可以按項目編號查詢取得前三名的學校
- 數據存入文件并能隨時查詢
2.設計要求
- 輸入數據形式和范圍:可以輸入學校的名稱,賽事項目的名稱
- 輸出形式:有中文提示,各學校分數為整數
- 界面要求:交互設計要合理,每個功能可以設立菜單,根據提示,可以完成相關功能的要求
- 存儲結構:學生自己根據系統功能要求自己設計,但是賽事相關數據要存儲在文件中
二、問題分析
本項目用于管理全國計算機設計大賽參賽隊伍的相關信息,并能按用戶需要輸出競賽成績以及獲獎情況,此外具有存儲功能以便于隨時查詢已輸入的隊伍信息
三、邏輯設計
1.采用的數據類型
本項目主要采用數組存儲每個學校的參賽信息,并利用Map將參賽項目與對應的參賽隊伍聯系起來,并聲明Universities類以及Teams類,分別用于存放對應學校參賽信息和隊伍信息
2.主要模塊
- 信息輸入:用來輸入競賽的相關信息,當輸入信息有誤時提示相關信息
- 數據的處理:主要操作為對競賽成績進行排序,如對每個學校的各項目總分排序、對指定項目的所有參賽隊伍成績排序、獲得前三名的信息等
- 信息輸出:根據用戶需求輸出指定數據,例如用戶輸入學校編號可得到對應獲獎情況、根據所選項目輸出前三名的信息
- 數據存儲:每次完成輸出后對當前數據進行保存,在下次打開項目時進行讀取
四、物理設計
1.Main類
控制程序的啟動,以及完成存儲和讀取數據
2.CompetitionManagementSystem類
實現程序的主體功能
1.成員變量
int m | 參賽學校的總數 |
int n | 競賽項目總數 |
Map<String, List<Teams> competition | 存放對應項目參賽隊伍信息 |
String [] allName | 存放競賽項目名稱 |
Universities [] universities | 存放參賽學校的信息 |
2.方法
public void initialize() | 初始化參賽信息 |
public void function() | 選擇系統功能 |
public void sort() | 對參賽成績進行排名 |
public void queryUniversityIf() | 根據學校編號或名稱查詢學校信息 |
public void queryAwardIf() | 查詢學校獲獎情況 |
public void queryTopThree() | 查詢競賽項目前三名學校信息 |
public void printAllTeamsIf() | 打印參加對應競賽項目所有隊伍的信息 |
3.Universities類
存儲學校相關信息,并管理對應學校的隊伍信息
1.成員變量
int number | 學校編號 |
String universityName | 學校名稱 |
int n | 參加競賽的隊伍數目 |
Teams [] teams | 存儲參賽隊伍信息 |
2.方法
public Universities() | 初始化對象 |
public int sumScore() | 返回學??偡?/td> |
public int comScore() | 放回競賽項目總分 |
4.Teams類(extends Universities)
存儲隊伍信息
1.成員變量
String teamName | 隊伍名 |
String compititionName | 參賽的競賽名稱 |
int score | 競賽成績 |