C語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁
C語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁
C語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁
C語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁
C語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告?摘要:本報(bào)告詳細(xì)介紹了使用C語言開發(fā)的學(xué)生成績管理系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了學(xué)生信息的錄入、成績的錄入與修改、查詢、統(tǒng)計(jì)以及排序等功能。通過模塊化設(shè)計(jì),提高了代碼的可讀性和可維護(hù)性。本文闡述了系統(tǒng)的功能需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)以及測試結(jié)果等內(nèi)容。

關(guān)鍵詞:C語言;學(xué)生成績管理系統(tǒng);課程設(shè)計(jì)

一、引言(一)項(xiàng)目背景在學(xué)校的教學(xué)管理中,學(xué)生成績管理是一項(xiàng)重要且繁瑣的工作。傳統(tǒng)的手工管理方式效率低下、容易出錯,難以滿足現(xiàn)代教育管理的需求。因此,開發(fā)一個(gè)功能完善、操作簡便的學(xué)生成績管理系統(tǒng)具有重要的現(xiàn)實(shí)意義。

(二)課程設(shè)計(jì)目標(biāo)本次課程設(shè)計(jì)旨在運(yùn)用C語言實(shí)現(xiàn)一個(gè)學(xué)生成績管理系統(tǒng),該系統(tǒng)應(yīng)具備以下功能:1.能夠方便地錄入學(xué)生的基本信息和成績。2.可以對學(xué)生的成績進(jìn)行修改、刪除操作。3.支持按多種條件查詢學(xué)生成績。4.能夠?qū)W(xué)生的成績進(jìn)行統(tǒng)計(jì)分析,如平均分、最高分等。5.可以對學(xué)生成績進(jìn)行排序。

二、需求分析(一)功能需求1.學(xué)生信息管理-錄入學(xué)生的基本信息,包括學(xué)號、姓名、性別、專業(yè)等。-修改學(xué)生的基本信息。-刪除學(xué)生的基本信息。2.成績管理-錄入學(xué)生的課程成績,包括課程編號、課程名稱、成績等。-修改學(xué)生的課程成績。-刪除學(xué)生的課程成績記錄。3.查詢功能-按學(xué)號查詢學(xué)生的基本信息和成績。-按姓名查詢學(xué)生的基本信息和成績。-按專業(yè)查詢學(xué)生的基本信息和成績。4.統(tǒng)計(jì)功能-計(jì)算某門課程的平均分。-找出某門課程的最高分和最低分。-統(tǒng)計(jì)每個(gè)學(xué)生的總成績和平均成績。5.排序功能-按學(xué)號升序或降序排列學(xué)生信息和成績。-按總成績升序或降序排列學(xué)生信息和成績。

(二)性能需求1.系統(tǒng)應(yīng)具有較高的響應(yīng)速度,在合理的時(shí)間內(nèi)完成各項(xiàng)操作。2.對于大量數(shù)據(jù)的處理,應(yīng)保證系統(tǒng)的穩(wěn)定性和準(zhǔn)確性。3.界面應(yīng)簡潔明了,易于操作。

(三)用戶界面需求1.提供清晰的菜單選項(xiàng),方便用戶選擇不同的功能。2.在操作過程中,給出相應(yīng)的提示信息,引導(dǎo)用戶正確操作。3.對于查詢、統(tǒng)計(jì)等操作的結(jié)果,應(yīng)進(jìn)行合理的顯示,便于用戶查看。

三、總體設(shè)計(jì)(一)系統(tǒng)架構(gòu)設(shè)計(jì)本系統(tǒng)采用模塊化設(shè)計(jì),主要包括以下幾個(gè)模塊:1.主函數(shù)模塊:負(fù)責(zé)調(diào)用各個(gè)功能模塊,實(shí)現(xiàn)系統(tǒng)的整體控制。2.學(xué)生信息管理模塊:處理學(xué)生基本信息的錄入、修改、刪除等操作。3.成績管理模塊:負(fù)責(zé)學(xué)生成績的錄入、修改、刪除等操作。4.查詢模塊:實(shí)現(xiàn)按不同條件查詢學(xué)生成績的功能。5.統(tǒng)計(jì)模塊:進(jìn)行成績的統(tǒng)計(jì)分析。6.排序模塊:對學(xué)生成績進(jìn)行排序。7.數(shù)據(jù)存儲模塊:負(fù)責(zé)學(xué)生信息和成績數(shù)據(jù)的存儲和讀取。

(二)數(shù)據(jù)庫設(shè)計(jì)本系統(tǒng)采用文件存儲數(shù)據(jù),通過結(jié)構(gòu)體數(shù)組來存儲學(xué)生信息和成績。1.學(xué)生信息結(jié)構(gòu)體```ctypedefstruct{intid;charname[20];chargender[10];charmajor[20];}Student;```2.學(xué)生成績結(jié)構(gòu)體```ctypedefstruct{intid;intcourseId;charcourseName[20];floatscore;}Score;```

(三)模塊間的關(guān)系主函數(shù)模塊調(diào)用其他各個(gè)功能模塊,每個(gè)功能模塊完成特定的任務(wù),并通過數(shù)據(jù)存儲模塊進(jìn)行數(shù)據(jù)的交互。例如,學(xué)生信息管理模塊和成績管理模塊在操作數(shù)據(jù)時(shí),會調(diào)用數(shù)據(jù)存儲模塊進(jìn)行數(shù)據(jù)的讀寫;查詢模塊、統(tǒng)計(jì)模塊和排序模塊在獲取數(shù)據(jù)時(shí),也會從數(shù)據(jù)存儲模塊讀取相應(yīng)的數(shù)據(jù)。

四、詳細(xì)設(shè)計(jì)(一)主函數(shù)模塊主函數(shù)負(fù)責(zé)顯示系統(tǒng)菜單,根據(jù)用戶的選擇調(diào)用相應(yīng)的功能模塊。```cintmain(){intchoice;while(1){displayMenu();scanf("%d",&choice);switch(choice){case1:studentInfoManagement();break;case2:scoreManagement();break;case3:queryFunction();break;case4:statisticsFunction();break;case5:sortingFunction();break;case6:exitSystem();break;default:printf("無效選擇,請重新輸入!\n");}}return0;}```

(二)學(xué)生信息管理模塊1.錄入學(xué)生信息```cvoidaddStudent(Studentstudents[],int*count){printf("請輸入學(xué)號:");scanf("%d",&students[*count].id);printf("請輸入姓名:");scanf("%s",students[*count].name);printf("請輸入性別:");scanf("%s",students[*count].gender);printf("請輸入專業(yè):");scanf("%s",students[*count].major);(*count)++;saveStudents(students,*count);printf("學(xué)生信息錄入成功!\n");}```2.修改學(xué)生信息```cvoidmodifyStudent(Studentstudents[],intcount){intid,found=0;printf("請輸入要修改的學(xué)生學(xué)號:");scanf("%d",&id);for(inti=0;i<count;i++){if(students[i].id==id){printf("請輸入新的姓名:");scanf("%s",students[i].name);printf("請輸入新的性別:");scanf("%s",students[i].gender);printf("請輸入新的專業(yè):");scanf("%s",students[i].major);saveStudents(students,count);found=1;printf("學(xué)生信息修改成功!\n");break;}}if(!found){printf("未找到該學(xué)號的學(xué)生!\n");}}```3.刪除學(xué)生信息```cvoiddeleteStudent(Studentstudents[],int*count){intid,found=0;printf("請輸入要刪除的學(xué)生學(xué)號:");scanf("%d",&id);for(inti=0;i<*count;i++){if(students[i].id==id){for(intj=i;j<*count-1;j++){students[j]=students[j+1];}(*count)--;saveStudents(students,*count);found=1;printf("學(xué)生信息刪除成功!\n");break;}}if(!found){printf("未找到該學(xué)號的學(xué)生!\n");}}```

(三)成績管理模塊1.錄入成績```cvoidaddScore(Scorescores[],int*count,Studentstudents[],intstudentCount){intid,courseId,found=0;floatscore;printf("請輸入學(xué)生學(xué)號:");scanf("%d",&id);for(inti=0;i<studentCount;i++){if(students[i].id==id){found=1;printf("請輸入課程編號:");scanf("%d",&courseId);printf("請輸入課程名稱:");scanf("%s",scores[*count].courseName);printf("請輸入成績:");scanf("%f",&score);scores[*count].id=id;scores[*count].courseId=courseId;scores[*count].score=score;(*count)++;saveScores(scores,*count);printf("成績錄入成功!\n");break;}}if(!found){printf("未找到該學(xué)號的學(xué)生!\n");}}```2.修改成績```cvoidmodifyScore(Scorescores[],intcount){intid,courseId,found=0;floatnewScore;printf("請輸入學(xué)生學(xué)號:");scanf("%d",&id);printf("請輸入課程編號:");scanf("%d",&courseId);for(inti=0;i<count;i++){if(scores[i].id==id&&scores[i].courseId==courseId){printf("請輸入新的成績:");scanf("%f",&newScore);scores[i].score=newScore;saveScores(scores,count);found=1;printf("成績修改成功!\n");break;}}if(!found){printf("未找到該學(xué)生的該課程成績記錄!\n");}}```3.刪除成績```cvoiddeleteScore(Scorescores[],int*count){intid,courseId,found=0;printf("請輸入學(xué)生學(xué)號:");scanf("%d",&id);printf("請輸入課程編號:");scanf("%d",&courseId);for(inti=0;i<*count;i++){if(scores[i].id==id&&scores[i].courseId==courseId){for(intj=i;j<*count-1;j++){scores[j]=scores[j+1];}(*count)--;saveScores(scores,*count);found=1;printf("成績刪除成功!\n");break;}}if(!found){printf("未找到該學(xué)生的該課程成績記錄!\n");}}```

(四)查詢模塊1.按學(xué)號查詢```cvoidqueryById(Studentstudents[],intstudentCount,Scorescores[],intscoreCount){intid,found=0;printf("請輸入要查詢的學(xué)號:");scanf("%d",&id);for(inti=0;i<studentCount;i++){if(students[i].id==id){printf("學(xué)號:%d,姓名:%s,性別:%s,專業(yè):%s\n",students[i].id,students[i].name,students[i].gender,students[i].major);for(intj=0;j<scoreCount;j++){if(scores[j].id==id){printf("課程編號:%d,課程名稱:%s,成績:%.2f\n",scores[j].courseId,scores[j].courseName,scores[j].score);}}found=1;break;}}if(!found){printf("未找到該學(xué)號的學(xué)生!\n");}}```2.按姓名查詢```cvoidqueryByName(Studentstudents[],intstudentCount,Scorescores[],intscoreCount){charname[20];printf("請輸入要查詢的姓名:");scanf("%s",name);intfound=0;for(inti=0;i<studentCount;i++){if(strcmp(students[i].name,name)==0){printf("學(xué)號:%d,姓名:%s,性別:%s,專業(yè):%s\n",students[i].id,students[i].name,students[i].gender,students[i].major);for(intj=0;j<scoreCount;j++){if(scores[j].id==students[i].id){printf("課程編號:%d,課程名稱:%s,成績:%.2f\n",scores[j].courseId,scores[j].courseName,scores[j].score);}}found=1;}}if(!found){printf("未找到該姓名的學(xué)生!\n");}}```3.按專業(yè)查詢```cvoidqueryByMajor(Studentstudents[],intstudentCount,Scorescores[],intscoreCount){charmajor[20];printf("請輸入要查詢的專業(yè):");scanf("%s",major);intfound=0;for(inti=0;i<studentCount;i++){if(strcmp(students[i].major,major)==0){printf("學(xué)號:%d,姓名:%s,性別:%s,專業(yè):%s\n",students[i].id,students[i].name,students[i].gender,students[i].major);for(intj=0;j<scoreCount;j++){if(scores[j].id==students[i].id){printf("課程編號:%d,課程名稱:%s,成績:%.2f\n",scores[j].courseId,scores[j].courseName,scores[j].score);}}found=1;}}if(!found){printf("未找到該專業(yè)的學(xué)生!\n");}}```

(五)統(tǒng)計(jì)模塊1.計(jì)算課程平均分```cvoidcalculateCourseAverage(Scorescores[],intscoreCount){intcourseId;floattotal=0,count=0;printf("請輸入課程編號:");scanf("%d",&courseId);for(inti=0;i<scoreCount;i++){if(scores[i].courseId==courseId){total+=scores[i].score;count++;}}if(count>0){printf("該課程的平均分為:%.2f\n",total/count);}else{printf("未找到該課程的成績記錄!\n");}}```2.找出課程最高分和最低分```cvoidfindCourseMaxMin(Scorescores[],intscoreCount){intcourseId;floatmax=-1,min=101;printf("請輸入課程編號:");scanf("%d",&courseId);for(inti=0;i<scoreCount;i++){if(scores[i].courseId==courseId){if(scores[i].score>max){max=scores[i].score;}if(scores[i].score<min){min=scores[i].score;}}}if(max!=-1&&min!=101){printf("該課程的最高分是:%.2f,最低分是:%.2f\n",max,min);}else{printf("未找到該課程的成績記錄!\n");}}```3.統(tǒng)計(jì)學(xué)生總成績和平均成績```cvoidcalculateStudentTotalAverage(Studentstudents[],intstud

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論