01_學生成績檔案管理系統_準備作業
- 一、實驗題目與要求
- 二、編程語言以及開發環境
- 三、實驗思路
- 1. 思考初始化資料處理
- 2. 學生物件處理
- 3. 操作處理
- 4. 方法描述
- 四、預習小結
一、實驗題目與要求
-
學生資訊錄入,資訊包括學號、姓名、專業、四門課的成績、總分、名次;
-
系統可對學生資訊瀏覽,增加,洗掉和修改;
-
按學生成績確定名次以及資訊輸出,雙向冒泡排序、希爾排序、快速排序、堆排序;
-
要求可對學生資訊查詢,根據學號或姓名進行查找;
-
資訊修改僅可修改四門課程的成績
-
檔案存取學生資訊
二、編程語言以及開發環境
1. 編程語言:
選擇Java,因為在上學期 project 01中對Java進行了一次提高,現在習慣用Java來撰寫
2. 開發環境:
選擇IntelliJ IDEA,使用起來更加方便
三、實驗思路
1. 思考初始化資料處理
-
建立一個包data,里面包含類studentData來處理學生的資訊資料問題,建立一個包Student,包含類Student,來處理學生這個物件,
-
學生資訊包括學號、姓名、專業、四門課的成績、總分、名次共9類,所以可以用一個集合來處理,構造 集合studentList ,
-
建立包Dao,包含類studentDao,用來處理資料的運算,
2. 學生物件處理
-
在Student類里面構造含引數的建構式,并在studentData類中,初始化資料型別為學生的資料,填入鏈表 .add()方法 ,完成資料類的初始化,
-
學生物件的元素有9個,其中總分可以用四科目的成績來代替,其中含引數的建構式中,不包括排名和總分,這兩個元素需要單獨的方法進行計算,
-
在Dao中建立方法rankByScoreAll進行排名,在學生類建構式中進行總分計算,此時總分不顯示,但已經計算完成,
3. 操作處理
-
新建包serves用來展開操作服務,新建類serves,用做服務,
-
新建類main,來當作程式的啟動開關,需要在該類里面將用到的其他類的資料實體化,
-
在serves類里面建造開關方法begin,初始界面顯示已經初始化的資料,然后進行功能選擇,通過switch陳述句進行功能跳轉,
-
從開始方法,選擇1跳轉到增加學生資訊功能,選擇2跳轉到洗掉學生資訊功能,選擇3跳轉到修改學生資訊功能,選擇4跳轉到排序學生資訊功能,選擇5跳轉到查詢學生資訊功能,選擇6跳轉到列印學生資訊功能,選擇7跳轉到退出系統功能,
4. 方法描述
-
增加學生資訊:
在 serves類 中添加方法:addStudent ,需要輸入學生的相關資訊,然后在 studentDao類 中添加方法,進行增加學生資訊,然后在addStudent 方法中進行呼叫, -
洗掉學生資訊:
在 serves類 中添加方法:deleteStudent ,需要輸入要洗掉的學生的學號,可以以引數形式傳入,然后在 studentDao類 中添加方法,進行洗掉學生資訊,然后在deleteStudent方法中進行呼叫, -
修改學生資訊:
在 serves類 中添加方法:modifyStudent ,需要輸入要修改的學生的學號,可以以引數形式傳入,然后在 studentDao類 中添加方法,進行洗掉學生資訊,然后在modifyStudent 方法中進行呼叫, -
排序學生資訊:
此功能中需要進行二次選擇,四種排序方法,雙向冒泡排序、希爾排序、快速排序、堆排序,依次在Dao中進行三個方法的書寫,然后再在服務類里面進行選擇,之后呼叫Dao中的方法就可以,
雙向冒泡排序:此演算法與冒泡排序的不同處在于排序時是以雙向在序列中進行排序,外層比較左右邊界l<r,內層一個回圈從左向右比,取高值置后;一個回圈從右向左,取低值置前;效率上,O(N^2), 不比普通的冒泡快,
希爾排序:把記錄按下標的一定增量分組,對每組使用直接插入排序演算法排序;隨著增量逐漸減少,每組包含的關鍵詞越來越多,當增量減至1時,整個檔案恰被分成一組,演算法便終止,
快速排序:通過一趟排序將待排記錄分隔成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分的關鍵字小,則可分別對這兩部分記錄繼續進行排序,以達到整個序列有序,
堆排序:指利用堆這種資料結構所設計的一種排序演算法,堆是一個近似完全二叉樹的結構,并同時滿足堆積的性質:即子結點的鍵值或索引總是小于(或者大于)它的父節點,
-
查詢學生資訊:
在服務類中設定查詢的函式,其中呼叫Dao中的查詢方法,由兩個選項,通過學號查詢,通過姓名查詢,同樣需要進行選擇, -
列印學生資訊:
可以直接呼叫開始時候的主界面,因為是寫在Dao里的通用函式,所以可以很方便的進行重復使用,不再重新寫,使得代碼更加簡潔,
四、預習小結
在本次預習中,關于排序演算法存在較大問題,需要進行查詢才能做下去,同時也有一個很重要的認知,就是把重復多次使用的函式可以單獨的放在一個類里面,可以方便后面反復多次的使用,而且代碼會顯得很工整簡潔明了,
今日喜歡的句子:
初夏的第一陣微風叫青嵐,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265387.html
標籤:其他
上一篇:從零開始學Docker(超詳細講解+筆記規整+案例分析)
下一篇:Cmd 命令提示符
