葉小芹++張靜
摘要:學(xué)生成績的管理與使用是教學(xué)系統(tǒng)中的重要組成部分,論文重點研究學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn),并在C語言程序設(shè)計及其開發(fā)環(huán)境的基礎(chǔ)上,以河海大學(xué)文天學(xué)院為例,設(shè)計出了一個簡單的學(xué)生成績管理系統(tǒng),便于各高校使用。
關(guān)鍵詞:C語言;學(xué)生成績管理系統(tǒng);程序設(shè)計
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)04-0059-04
1 背景
如今各大高校均需要一個完整的系統(tǒng)來管理和保存學(xué)生的各門課成績信息,以便后期使用,論文以河海大學(xué)文天學(xué)院的工科專業(yè)學(xué)生成績?yōu)槔?,運用C語言程序設(shè)計和程序運行的環(huán)境,設(shè)計了一個簡單的學(xué)生成績管理系統(tǒng),下面就來介紹該系統(tǒng)是如何構(gòu)建的。
2 系統(tǒng)需求分析
2.1 系統(tǒng)功能劃分
該系統(tǒng)主要功能如下:
1)學(xué)生基本信息和成績的錄入;
2)學(xué)生成績的管理,如計算總分、排序、統(tǒng)計等功能。
2.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計
這個學(xué)生成績管理系統(tǒng)中包含的學(xué)生信息有:學(xué)生的學(xué)號、姓名、性別、高數(shù)成績、英語成績、計算機成績、三門功課總分,主要的功能模塊如下:
1)輸出學(xué)生基本信息并算出總分;
2)按照學(xué)號進行排序;
3)按照總分進行排序;
4)統(tǒng)計各門課程平均分;
5)統(tǒng)計男女學(xué)生人數(shù);
6)按照姓名進行排序;
7)統(tǒng)計高數(shù)成績優(yōu)秀(大于等于80分)的人數(shù),并輸出符合條件的記錄;
8)統(tǒng)計每門功課成績都在80分以上,或總分在240分以上的人數(shù),并輸出符合條件的記錄。
C語言中系統(tǒng)的每個功能由一個函數(shù)來實現(xiàn),其系統(tǒng)功能模塊層次結(jié)構(gòu)圖如下:
圖1 學(xué)生成績管理系統(tǒng)功能模塊層次結(jié)構(gòu)圖
因為函數(shù)就是功能,所以對于圖1的功能模塊層次結(jié)構(gòu)圖,每個模塊就對應(yīng)C語言中的一個函數(shù),該系統(tǒng)中所涉及的函數(shù)及其功能如下:
1)int Menu();
主控菜單函數(shù),有返回值,無參數(shù)。用菜單形式顯示該系統(tǒng)能實現(xiàn)的所有功能,以供用戶查看和使用。函數(shù)中的返回值為用戶輸入的序號code,為局部整型變量。
2)void Read(struct student stud[],int *n);
讀入數(shù)據(jù)函數(shù),無返回值,有參數(shù)。形式參數(shù)stud為結(jié)構(gòu)體數(shù)組,由于調(diào)用此函數(shù)時實際參數(shù)為數(shù)組名,因此此處用數(shù)組接收;形式參數(shù)n為指針變量,由于實際參數(shù)為存放學(xué)生人數(shù)的整型變量的地址,因此n指向存放學(xué)生人數(shù)的整型變量,這樣可以在讀入學(xué)生信息的同時,還可以統(tǒng)計出學(xué)生的人數(shù)。
3)void Print(struct student *pstud,int n);
輸出數(shù)據(jù)函數(shù),無返回值,有參數(shù)。形式參數(shù)pstud為指針變量,指向存放學(xué)生信息的結(jié)構(gòu)體數(shù)組,這樣可以將相關(guān)變動信息返回給主調(diào)函數(shù);形式參數(shù)n為整型變量,存放學(xué)生的人數(shù)。
4)void total_order(struct student *pstud,int n);
按總分排序函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。
5)void num_order(struct student *pstud,int n);
按學(xué)號排序函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。
6)void ave_count(struct student *pstud, int n);
統(tǒng)計各門課平均分函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。
7)void nn_count(struct student *pstud,int n);
統(tǒng)計男女學(xué)生人數(shù)函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。
8)void name_order(struct student *pstud,int n);
按姓名排序函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。
9)void gxyx(struct student *pstud,int n);
統(tǒng)計高數(shù)成績優(yōu)秀人數(shù)函數(shù),無返回值,有參數(shù)。形式參數(shù)同上。
10)void mm(struct student *pstud,int n);
統(tǒng)計每門課分數(shù)不小于80分或總分在240分以上人數(shù)函數(shù) ,無返回值,有參數(shù)。形式參數(shù)同上。
3 C語言程序設(shè)計
一個C語言源程序由若干個函數(shù)構(gòu)成,且有且僅有一個主函數(shù),主函數(shù)的名字只能是main,其他函數(shù)名字由用戶自己定義,只要滿足標識符的四大規(guī)則即可。一個程序總是從主函數(shù)開始執(zhí)行,無論主函數(shù)在前還是在后,該系統(tǒng)中除了主函數(shù)外,還有十個函數(shù),下面針對其中幾個重要的函數(shù)進行程序設(shè)計。
3.1 主函數(shù)程序設(shè)計
為了方便讀者更好地讀懂該程序,部分地方加了注釋,以上程序中/* */為注釋,計算機并不執(zhí)行。其中第四行的N為符號常量,表示該系統(tǒng)記錄了10個學(xué)生信息,每個學(xué)生信息用結(jié)構(gòu)體類型的數(shù)組來保存,該結(jié)構(gòu)體類型包含4個子成員,每個成員又是另一種類型的數(shù)據(jù),其中學(xué)號、姓名、性別均由字符數(shù)組存儲,成績由整型數(shù)組存儲,這樣就構(gòu)成了struct student結(jié)構(gòu)體類型,主函數(shù)中的第一條語句就是用這種類型定義了結(jié)構(gòu)體數(shù)組stud,用來存放十個學(xué)生信息。接下來就在主函數(shù)中調(diào)用各個函數(shù),實現(xiàn)相對應(yīng)的功能。
3.2 用戶自定義函數(shù)程序設(shè)計
3.2.1 主控菜單函數(shù)的設(shè)計
在屏幕中顯示主控菜單,scanf為輸入函數(shù),需要輸入一個整數(shù),通過輸入相對應(yīng)的數(shù)字序號,可以實現(xiàn)相應(yīng)的功能,例如輸入1,即顯示學(xué)生全部信息。
3.2.2 讀入數(shù)據(jù)函數(shù)的設(shè)計
該系統(tǒng)是從文件中讀取數(shù)據(jù),10名學(xué)生的信息存儲在文本文件studfile.txt中,如果想修改學(xué)生信息,直接在文件中修改即可,不用修改程序,這樣既方便又快速,大大節(jié)省了時間。
3.2.3 按姓名排序函數(shù)的設(shè)計
以上程序使用冒泡的排序方法按姓名從小到大排序,系統(tǒng)直接將排序的結(jié)果輸出到屏幕中,以供用戶查看和使用。
4 系統(tǒng)界面
將以上程序輸入到計算機C語言開發(fā)環(huán)境Microsoft Visual C++6.0中,經(jīng)過編輯、編譯、連接以后就可以運行了,運行界面如下:
1)系統(tǒng)菜單界面
當(dāng)按下回車鍵,系統(tǒng)進入菜單模式,按照序號選擇需要顯示的信息。
2)顯示學(xué)生信息界面
當(dāng)按下序號1,系統(tǒng)進入顯示全體學(xué)生信息界面,顯示的同時計算出了3門課總分。
3)按學(xué)號排序界面
按下回車鍵繼續(xù)進入菜單進行選擇,當(dāng)按下序號3,系統(tǒng)進入按學(xué)號從小到大排序的界面。
4)統(tǒng)計高數(shù)優(yōu)秀的學(xué)生人數(shù)和記錄
按下回車鍵繼續(xù)進入菜單進行選擇,當(dāng)按下序號7,系統(tǒng)進入統(tǒng)計高數(shù)不低于80分的人數(shù)和記錄。
5 結(jié)束語
論文主要介紹了學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn)過程,分別從系統(tǒng)需求分析、系統(tǒng)程序設(shè)計和系統(tǒng)界面設(shè)計三個方面展示了系統(tǒng)的設(shè)計與實現(xiàn),其中系統(tǒng)需求分析包括大體功能劃分和具體功能結(jié)構(gòu)設(shè)計,并設(shè)計了功能結(jié)構(gòu)圖,描述了各項功能,系統(tǒng)程序設(shè)計包括主函數(shù)和其他自定義函數(shù)的設(shè)計。該系統(tǒng)總共實現(xiàn)了八項功能,學(xué)生信息來源于文本文件,這樣大大方便了學(xué)生信息的增刪改查等功能。系統(tǒng)中所有功能使用到的方法,還可以實現(xiàn)更多的功能,拓展性能良好,便于各高校各專業(yè)使用。
參考文獻:
[1] 胡楓. 《C語言程序設(shè)計》的案例式教學(xué)的設(shè)計[J]. 青海師范大學(xué)學(xué)報, 2010(4).
[2] 譚浩強. C程序設(shè)計[M]. 4版.北京: 清華大學(xué)出版社, 2010.
[3] 宮業(yè)芹. C語言程序設(shè)計網(wǎng)上教學(xué)系統(tǒng)的設(shè)計與實現(xiàn)[D]. 濟南: 山東大學(xué), 2012.
[4] 陳婷. C語言程序設(shè)計實驗教學(xué)改革探究[J].實驗技術(shù)與管理, 2010(10): 182-184.
[5] 錢言玉, 謝超. 《C語言程序設(shè)計》課程實驗教學(xué)研究[J]. 合肥師范學(xué)院學(xué)報, 2014(5).