版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)?一、課程設(shè)計(jì)題目學(xué)生成績管理系統(tǒng)
二、課程設(shè)計(jì)目的本次課程設(shè)計(jì)旨在通過實(shí)現(xiàn)一個(gè)學(xué)生成績管理系統(tǒng),加深對數(shù)據(jù)結(jié)構(gòu)的理解和掌握,提高運(yùn)用數(shù)據(jù)結(jié)構(gòu)解決實(shí)際問題的能力,培養(yǎng)程序設(shè)計(jì)的基本技能和良好的編程習(xí)慣,同時(shí)鍛煉團(tuán)隊(duì)協(xié)作與文檔撰寫能力。
三、課程設(shè)計(jì)要求1.能夠?qū)崿F(xiàn)學(xué)生信息(包括學(xué)號、姓名、各科成績等)的錄入、查詢、修改、刪除等功能。2.能夠?qū)W(xué)生的總成績進(jìn)行排序,并輸出排序結(jié)果。3.能夠統(tǒng)計(jì)學(xué)生的平均成績、最高成績、最低成績等信息。4.界面友好,操作方便,具有較好的用戶體驗(yàn)。
四、數(shù)據(jù)結(jié)構(gòu)選擇1.線性表-采用順序表來存儲學(xué)生信息。順序表具有隨機(jī)訪問速度快的優(yōu)點(diǎn),適合頻繁進(jìn)行查詢操作的場景。每個(gè)學(xué)生的信息可以作為一個(gè)結(jié)構(gòu)體,順序表則是由這些結(jié)構(gòu)體組成的數(shù)組。-結(jié)構(gòu)體定義如下:```ctypedefstruct{intid;charname[20];floatscores[5];floattotalScore;}Student;```-其中,`id`為學(xué)號,`name`為姓名,`scores`數(shù)組存儲各科成績,`totalScore`為總成績。
2.排序算法-選擇冒泡排序算法對學(xué)生的總成績進(jìn)行排序。冒泡排序算法簡單易懂,適合數(shù)據(jù)量較小的情況。其基本思想是比較相鄰的元素,如果順序錯(cuò)誤就把它們交換過來。-冒泡排序函數(shù)實(shí)現(xiàn)如下:```cvoidbubbleSort(Studentstudents[],intn){inti,j;for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(students[j].totalScore<students[j+1].totalScore){Studenttemp=students[j];students[j]=students[j+1];students[j+1]=temp;}}}}```
五、系統(tǒng)功能模塊設(shè)計(jì)1.錄入模塊-該模塊用于輸入學(xué)生的基本信息和各科成績,并計(jì)算總成績。-實(shí)現(xiàn)代碼如下:```cvoidinputStudent(Studentstudents[],int*n){printf("請輸入學(xué)生人數(shù):");scanf("%d",n);for(inti=0;i<*n;i++){printf("請輸入第%d個(gè)學(xué)生的學(xué)號:",i+1);scanf("%d",&students[i].id);printf("請輸入第%d個(gè)學(xué)生的姓名:",i+1);scanf("%s",students[i].name);floatsum=0;for(intj=0;j<5;j++){printf("請輸入第%d個(gè)學(xué)生第%d門課的成績:",i+1,j+1);scanf("%f",&students[i].scores[j]);sum+=students[i].scores[j];}students[i].totalScore=sum;}}```2.查詢模塊-可以按學(xué)號、姓名查詢學(xué)生信息。-按學(xué)號查詢實(shí)現(xiàn)代碼:```cvoidqueryById(Studentstudents[],intn){intid;printf("請輸入要查詢的學(xué)號:");scanf("%d",&id);for(inti=0;i<n;i++){if(students[i].id==id){printf("學(xué)號:%d,姓名:%s,總成績:%.2f\n",students[i].id,students[i].name,students[i].totalScore);for(intj=0;j<5;j++){printf("第%d門課成績:%.2f\n",j+1,students[i].scores[j]);}return;}}printf("未找到該學(xué)號的學(xué)生信息\n");}```-按姓名查詢實(shí)現(xiàn)代碼:```cvoidqueryByName(Studentstudents[],intn){charname[20];printf("請輸入要查詢的姓名:");scanf("%s",name);for(inti=0;i<n;i++){if(strcmp(students[i].name,name)==0){printf("學(xué)號:%d,姓名:%s,總成績:%.2f\n",students[i].id,students[i].name,students[i].totalScore);for(intj=0;j<5;j++){printf("第%d門課成績:%.2f\n",j+1,students[i].scores[j]);}return;}}printf("未找到該姓名的學(xué)生信息\n");}```3.修改模塊-可修改學(xué)生的基本信息和各科成績。-修改學(xué)生信息實(shí)現(xiàn)代碼:```cvoidmodifyStudent(Studentstudents[],intn){intid;printf("請輸入要修改的學(xué)生學(xué)號:");scanf("%d",&id);for(inti=0;i<n;i++){if(students[i].id==id){printf("請輸入新的姓名:");scanf("%s",students[i].name);floatsum=0;for(intj=0;j<5;j++){printf("請輸入第%d門課的新成績:",j+1);scanf("%f",&students[i].scores[j]);sum+=students[i].scores[j];}students[i].totalScore=sum;printf("修改成功\n");return;}}printf("未找到該學(xué)號的學(xué)生信息\n");}```4.刪除模塊-按學(xué)號刪除學(xué)生信息。-實(shí)現(xiàn)代碼:```cvoiddeleteStudent(Studentstudents[],int*n){intid;printf("請輸入要刪除的學(xué)生學(xué)號:");scanf("%d",&id);for(inti=0;i<*n;i++){if(students[i].id==id){for(intj=i;j<*n-1;j++){students[j]=students[j+1];}(*n)--;printf("刪除成功\n");return;}}printf("未找到該學(xué)號的學(xué)生信息\n");}```5.排序模塊-對學(xué)生總成績進(jìn)行排序并輸出。-調(diào)用冒泡排序函數(shù)實(shí)現(xiàn)排序并輸出結(jié)果:```cvoidsortAndPrint(Studentstudents[],intn){bubbleSort(students,n);printf("總成績排序結(jié)果:\n");for(inti=0;i<n;i++){printf("學(xué)號:%d,姓名:%s,總成績:%.2f\n",students[i].id,students[i].name,students[i].totalScore);}}```6.統(tǒng)計(jì)模塊-統(tǒng)計(jì)平均成績、最高成績、最低成績等。-實(shí)現(xiàn)代碼:```cvoidstatistics(Studentstudents[],intn){floattotalSum=0;floatmaxScore=students[0].totalScore;floatminScore=students[0].totalScore;for(inti=0;i<n;i++){totalSum+=students[i].totalScore;if(students[i].totalScore>maxScore){maxScore=students[i].totalScore;}if(students[i].totalScore<minScore){minScore=students[i].totalScore;}}floataverageScore=totalSum/n;printf("平均成績:%.2f\n",averageScore);printf("最高成績:%.2f\n",maxScore);printf("最低成績:%.2f\n",minScore);}```
六、系統(tǒng)界面設(shè)計(jì)1.主菜單界面```學(xué)生成績管理系統(tǒng)1.錄入學(xué)生信息2.查詢學(xué)生信息3.修改學(xué)生信息4.刪除學(xué)生信息5.成績排序6.成績統(tǒng)計(jì)7.退出系統(tǒng)請選擇操作:```2.各功能操作界面-例如錄入模塊的界面:```請輸入學(xué)生人數(shù):```-查詢模塊按學(xué)號查詢界面:```請輸入要查詢的學(xué)號:```
七、系統(tǒng)測試1.測試用例設(shè)計(jì)-錄入功能測試-輸入合法的學(xué)生人數(shù)和學(xué)生信息,檢查是否正確錄入并計(jì)算總成績。-輸入非法的學(xué)生人數(shù)(如負(fù)數(shù)),檢查是否有相應(yīng)提示。-查詢功能測試-輸入存在的學(xué)號和姓名,檢查是否能正確查詢到學(xué)生信息。-輸入不存在的學(xué)號和姓名,檢查是否有相應(yīng)提示。-修改功能測試-輸入存在的學(xué)號,修改學(xué)生信息后檢查是否更新成功。-輸入不存在的學(xué)號,檢查是否有相應(yīng)提示。-刪除功能測試-輸入存在的學(xué)號,檢查是否刪除成功且數(shù)據(jù)結(jié)構(gòu)更新正確。-輸入不存在的學(xué)號,檢查是否有相應(yīng)提示。-排序功能測試-錄入多個(gè)學(xué)生信息后進(jìn)行排序,檢查排序結(jié)果是否正確。-統(tǒng)計(jì)功能測試-錄入多個(gè)學(xué)生信息后進(jìn)行統(tǒng)計(jì),檢查平均成績、最高成績、最低成績計(jì)算是否正確。2.測試結(jié)果-經(jīng)過測試,各功能均能按要求正常運(yùn)行。例如,錄入功能能正確錄入學(xué)生信息并計(jì)算總成績;查詢功能能準(zhǔn)確查詢到存在的學(xué)生信息,對不存在的信息能給出提示;修改功能能成功修改存在學(xué)生的信息;刪除功能能正確刪除存在的學(xué)生信息;排序功能能對學(xué)生總成績進(jìn)行正確排序;統(tǒng)計(jì)功能能準(zhǔn)確計(jì)算平均成績、最高成績和最低成績。
八、課程設(shè)計(jì)總結(jié)通過本次學(xué)生成績管理系統(tǒng)的課程設(shè)計(jì),對數(shù)據(jù)結(jié)構(gòu)的知識有了更深入的理解和應(yīng)用。在設(shè)計(jì)過程中,熟練掌握了順序表的使用以及冒泡排序算法等
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)生院復(fù)工復(fù)產(chǎn)工作制度
- 衛(wèi)生室醫(yī)保管理制度
- 校園手衛(wèi)生管理制度
- 口腔科工具衛(wèi)生管理制度
- 衛(wèi)生室制度上墻大全
- 手衛(wèi)生規(guī)章管理制度
- 衛(wèi)生室內(nèi)科管理制度
- 溫泉衛(wèi)生清潔制度
- 中小學(xué)衛(wèi)生工作制度
- 衛(wèi)生院資源管理制度
- 2024年陜西藝術(shù)職業(yè)學(xué)院輔導(dǎo)員考試筆試題庫附答案
- 2025-2030中國銅箔市場產(chǎn)銷規(guī)模分析與未來發(fā)展戰(zhàn)略規(guī)劃研究報(bào)告
- 2026年醫(yī)院衛(wèi)生院家庭醫(yī)生簽約服務(wù)工作實(shí)施方案
- 低空經(jīng)濟(jì)應(yīng)用場景:創(chuàng)新與挑戰(zhàn)
- 2025醫(yī)療器械安全和性能基本原則清單
- 2025至2030中國電子束焊接設(shè)備行業(yè)項(xiàng)目調(diào)研及市場前景預(yù)測評估報(bào)告
- 2025初中英語詞匯3500詞匯表
- 國家電力安全生產(chǎn)課件
- 鉆探施工安全培訓(xùn)課件
- 家具拆單操作標(biāo)準(zhǔn)及流程指南
- 貿(mào)易企業(yè)貨權(quán)管理辦法
評論
0/150
提交評論