李桂珍
(新疆農(nóng)業(yè)職業(yè)技術(shù)學(xué)院,新疆昌吉,831100)
隨著學(xué)校規(guī)模的不斷擴(kuò)大,各院校專業(yè)、班級、學(xué)生的數(shù)量急劇增加,有關(guān)學(xué)生成績的各種信息也是成倍增加。為了改變學(xué)生成績管理的不便以及繁瑣的工作量,節(jié)省教學(xué)資源,提高工作效率,開發(fā)一個(gè)學(xué)生成績管理系統(tǒng)是很有必要的。本系統(tǒng)從實(shí)際需求分析出發(fā),利用C語言編寫。
本項(xiàng)目采用模塊化的程序設(shè)計(jì)方法,將大的任務(wù)按照一定的原則分為多個(gè)小人物,然后分別設(shè)計(jì)各個(gè)小任務(wù)。小任務(wù)對應(yīng)的模塊之間相對獨(dú)立且相關(guān)。使用模塊化層次結(jié)構(gòu)圖來分析其任務(wù)的劃分。
本項(xiàng)目使用大量的數(shù)組結(jié)構(gòu),由九大模塊組成。主要包括顯示開發(fā)團(tuán)隊(duì)信息、密碼驗(yàn)證登錄、學(xué)生成績錄入、計(jì)算總分、計(jì)算平均值、等級評定、查找修改成績、成績排序以及系統(tǒng)退出功能。
(1)顯示開發(fā)團(tuán)隊(duì)信息模塊:主要利用輸出函數(shù)打印設(shè)計(jì)好的開發(fā)團(tuán)隊(duì)信息。
(2)密碼驗(yàn)證登錄模塊:密碼設(shè)定為一個(gè)字符串,輸入正確進(jìn)入系統(tǒng)主菜單;允許有3次輸入機(jī)會(huì),如果全部輸入錯(cuò)誤,提示系統(tǒng)退出。
(3)學(xué)生成績錄入模塊:可以先輸入學(xué)生人數(shù),根據(jù)輸入的學(xué)生說完成學(xué)生基本信息和成績信息的錄入,并可以顯示輸出。
(4)計(jì)算總分模塊:可以完成每名學(xué)生所有科目成績總分的計(jì)算并輸出。
(5)計(jì)算平均值模塊:可以完成每名學(xué)生所有科目成績平均分的計(jì)算并輸出。
(6)等級評定模塊:可以根據(jù)學(xué)生平均分對學(xué)生成績劃分不及格、及格、良好、優(yōu)秀等幾個(gè)等級的劃分并輸出顯示。
(7)查找修改成績模塊:可以根據(jù)輸入的學(xué)號查找是否系統(tǒng)中存在該名學(xué)生信息。如果存在可以修改學(xué)生成績信息并輸出;如果不存在則進(jìn)行信息提示。
(8)成績排序模塊:可以根據(jù)學(xué)生各科目的總分進(jìn)行排序輸出。
(9)系統(tǒng)退出模塊:可以再操作完成后退出系統(tǒng)。
圖1 系統(tǒng)功能結(jié)構(gòu)圖
(1)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
利用結(jié)構(gòu)體數(shù)組將學(xué)生基本資料和成績進(jìn)行存放。以下以學(xué)生四門課成績?yōu)槔?,定義如下:
運(yùn)用該結(jié)構(gòu)體程序,即可將從鍵盤輸入的學(xué)生基本信息和4門課成績信息存儲(chǔ)在學(xué)生成績管理系統(tǒng)中,以便進(jìn)行后面的相關(guān)操作。
(2)函數(shù)設(shè)計(jì)
本項(xiàng)目一共由10個(gè)函數(shù)構(gòu)成,如下:
(1)點(diǎn)擊系統(tǒng)運(yùn)行,首先啟動(dòng)的界面顯示開發(fā)者團(tuán)隊(duì)信息,并提示輸入密碼:
圖3 系統(tǒng)首界面
(2)成功登錄界面
初始密碼為123456,輸入錯(cuò)誤有3次輸入機(jī)會(huì),輸入成功顯示系統(tǒng)主菜單:
圖4 主菜單界面
(3)選擇0-6菜單項(xiàng),可以完成學(xué)生成績管理系統(tǒng)系統(tǒng)退出、錄入成績、計(jì)算總分、計(jì)算平均分、等級評定、成績修改、成績排序功能。
選擇0:可以退出系統(tǒng);
選擇1:可以輸入學(xué)生人數(shù),并完成指定學(xué)生人數(shù)成績輸入。成績可進(jìn)行[0,100]的驗(yàn)證。
選擇2、3:相應(yīng)進(jìn)入計(jì)算總分和計(jì)算平均分界面。首先判斷學(xué)生人數(shù)是否為0。如果人數(shù)為0,先提示輸入學(xué)生人數(shù),然后調(diào)用錄入成績模塊進(jìn)行學(xué)生成績錄入,然后計(jì)算總分和平均分。
選擇4:進(jìn)入成績評定界面。首先判斷學(xué)生人數(shù)是否為0。如果人數(shù)為0,先提示輸入學(xué)生人數(shù),然后根據(jù)每名學(xué)生的平均分給出相應(yīng)的成績等級認(rèn)定(包括不及格、及格、中等、良好、優(yōu)秀5個(gè)等級)。
選擇5:進(jìn)入成績修改界面。首先輸入要修改的學(xué)生學(xué)號,利用循環(huán)在學(xué)生系統(tǒng)中查找該名學(xué)生。如果找不到會(huì)給出相應(yīng)提示,找到后會(huì)先輸出該名學(xué)生修改前成績,然后提示輸入要修改的成績,并打印輸出修改后的成績。
選擇6:進(jìn)入成績排序界面。首先輸出原系統(tǒng)中所有學(xué)生的成績,然后根據(jù)冒泡排序進(jìn)行排序,并輸出根據(jù)總分從高到低排好序的學(xué)生成績。
運(yùn)行界面如圖5所示。
圖5 成績處理界面
本文利用C語言設(shè)計(jì)并完成了一個(gè)學(xué)生成績管理系統(tǒng)程序,經(jīng)測試該程序運(yùn)行界面良好,可操作性強(qiáng),到達(dá)了最初設(shè)計(jì)的目的。最終將該系統(tǒng)采取項(xiàng)目制教學(xué)方法應(yīng)用到C語言程序設(shè)計(jì)課程中,通過做中學(xué)方式引入相關(guān)知識點(diǎn)講解,使學(xué)生對所學(xué)知識點(diǎn)更加容易理解,極大調(diào)動(dòng)了學(xué)生的學(xué)習(xí)積極性,培養(yǎng)了學(xué)生的創(chuàng)新、自主學(xué)習(xí)能力和團(tuán)隊(duì)協(xié)作能力,取得了良好的教學(xué)效果。