版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
學生成績管理系統(tǒng)V1.0一、問題描述n507.5~7.10(1)鍵盤輸入每個學生的學號和成績;(2)計算該班高等數(shù)學課程的總分和平均分;(3)按成績由高到低排出名次;(4)按學號由小到大排出成績表;(5)按學號查找學生排名和成績;(~(~~(~)5個等級,統(tǒng)計每個等級的人數(shù)及其所占的百分比;(7)輸出每個學生的學號、考試成績、課程總分和平均分。問題拓展:如果要求程序運行后先顯示如下菜單,并提示用戶輸入選項:TheStudent'sGradeManagementSystem*************************************Menu******************************1.Enterrecord 2.Caculatetotal&averagescore *3.Sortindescendingorderbyscore 4.Sortinascendingorderbynumber*5.Searchbynumber 6.Statisticalanalysis *7.Listrecord 0.Exit **************************************************************************然后根據用戶輸入的選項執(zhí)行相應的操作,那么程序該如何實現(xiàn)?二、相關知識點(1)選擇結構(2)循環(huán)結構(3)函數(shù)(4)數(shù)組三、任務分析(1)某班高數(shù)成績和學號分別用一維數(shù)組表示;(2)這個學生成績管理系統(tǒng)中要實現(xiàn)8個功能:輸入學號和成績、總分、平均分、成績排序、學號排序、查找、統(tǒng)計、顯示學生考試信息。(itRedr(itscr[],lgu[2)floatGetAverage(intscore[intn);3)voidSortScore(intscore[longnum[],intn)、4)學號排序voidSoreNum(intscore[],longnum[],intn);5)查找intSearch(longnum[],longx,intn);6)voidStatAnalysis(intscore[],intcount[],intn);7)顯示學生考試信息voidPrintInfo(intscore[],longnum[],intn)基礎部分:頭文件#include<stdio.h>函數(shù)/*函數(shù)功能:輸入n個學生的一門課成績、學號*/intReadScore(inta[],longnum[]){inti=-1;/*i-110i*/printf("Inputscores:\n");do{//學生數(shù)增1//輸入一個學生的學號和成績}while(00);return;}/*計算n個學生成績的平均分*/floatGetAverage(inta[],intn){//isum{//計算總分}//輸出總分//返回平均分}/*函數(shù)功能:按成績升序排序*/voidSortScore(inta[],longnum[],intn){//定義循環(huán)變量i,j和成績臨時變量temp1//定義學號臨時變量temp2for(i=0;i<n-1;i++){//設置k的值for(j=i+1;j<n;j++){if(成績比較){//修改k}}if(k!=i){/*交換成績*///coding/*交換學號*///coding}}}/*函數(shù)功能:按學號升序排序*/voidSortNum(inta[],longnum[],intn){//定義循環(huán)變量i,j和成績臨時變量temp1//定義學號臨時變量temp2for(i=0;i<n-1;i++){//設置k的值for(j=i+1;j<n;j++){if(學號比較){//修改k}}if(k!=i){/*交換學號*///coding/*交換成績*///coding}}}/*函數(shù)功能:打印學生學號及成績*/voidPrintInfo(inta[],longnum[],intn){inti;for(i=0;i<n;i++){//依次顯示學號、成績}//顯示課程總分、平均分printf("\n");}/*函數(shù)功能:用線性查找法查找值(學號)為x的數(shù)組元素*/intLinearSearch(longnum[],longx,intn){inti;for(i=0;i<n;i++){if(比較要找的學號){/*若找到返回x在數(shù)組中的下標*/}}/*若循環(huán)結束仍未找到,則返回-1*/}/*函功:計個級的數(shù)其占百比*/void StatAnalysis(inta[],intcount[],intn){inti;for(i=0;i<5;i++){//初始化成績等級數(shù)組count,count[i]分別表示每個等級的人數(shù)}for(i=0;i<n;i++){if(成績超過某個范圍)//優(yōu)秀人數(shù)累加elseif(成績超過某個范圍)//良好人數(shù)累加elseif(成績超過某個范圍)//中等人數(shù)累加elseif(成績超過某個范圍)//及格人數(shù)累加else}
//不及格人數(shù)累加printf("優(yōu)秀人數(shù):%d\t,優(yōu)秀率為%.2f%%\n",?,?);printf("良好人數(shù):%d\t,良好率為%.2f%%\n",?,?);printf("中等人數(shù):%d\t,中等率為%.2f%%\n",?,?);printf("及格人數(shù):%d\t,及格率為%.2f%%\n",?,?);printf("不及格人數(shù):%d\t,不及格率為%.2f%%\n",?,?);}/* 主數(shù) */intmain(){printf("\nPleaseenteryourchoice:");//定義字符變量ch,ch表示待執(zhí)行功能的序號,如1、2、…//定義成績數(shù)組score,學生數(shù)變量n,數(shù)組下標變量pos,成績等級數(shù)組count[5];//定義學號數(shù)組num[N],待查找學號變量x;//定義平均分變量aver并初始化printf("\nWelcometoUseTheStudent'sGradeManagementSystem!\n");while(1){//輸入待執(zhí)行功能的序號chswitch(ch){case'1'://調用ReadScore函數(shù)break;case'2'://調用平均分函數(shù)//顯示平均分break;case'3'://調用按成績排序函數(shù)printf("SortedScores:\n");//顯示按成績排序后的學生信息break;case'4'://調用按學號排序函數(shù)printf("SortedNum:\n");//顯示按學號排序后的學生信息break;case'5':printf("pleaseinputthesearchedstudent'snum:'");//輸入待查找的學號//調用查找函數(shù)printf("score=%d\tnum=%ld",?,?);break;case'6'://調用統(tǒng)計分析成績函數(shù)break;case'7'://顯示所有學生成績和學號信息//課程總分、平均分break;case'0':exit(0); /**/printf("endoftheprogram!");break;default:printf("inputerror!");break;}}return0;}高級部分:/*系統(tǒng)界面*/charMenu(){//定義代表選擇功能的字符變量chprintf("\n\n");printf("TheStudent'sGradeManagementSystem\n");printf("\n\n");printf("*****************************Menu****************************\n");//按菜單格式輸入提示功能選擇printf("**************************************************************\n");printf("\nPleaseenteryourchoice:");//輸入你的功能選擇//返回你的功能選擇;}/* 主數(shù) */intmain(){printf("\nPleaseenteryourchoice:");//定義字符變量ch,ch表示待執(zhí)行功能的序號,如1、2、…//定義成績數(shù)組score,學生數(shù)變量n,數(shù)組下標變量pos,成績等級數(shù)組count[5];//定義學號數(shù)組num[N],待查找學號變量x;//定義平均分變量aver并初始化printf("\nWelcometoUseTheStudent'sGradeManagementSystem!\n");while(1){/*調用顯示菜單函數(shù),并讀取用戶輸入*/switch(ch){case'1'://調用ReadScore函數(shù)break;case'2'://調用平均分函數(shù)//顯示平均分break;case'3'://調用按成績排序函數(shù)printf("SortedScores:\n");//顯示按成績排序后的學生信息break;case'4'://調用按學號排序函數(shù)printf("SortedNum:\n");//顯示按學號排序后的學生信息break;case'5':printf("pleaseinputthesearchedstudent'snum:'");//輸入待查找的學號//調用查找函數(shù)printf("score=%d\tnum=%ld",?,?);break;case'6'://調用統(tǒng)計分析成績函數(shù)break;case'7'://顯示所有學生成績和學號信息break;case'0':exit(0); /**/printf("endoftheprogram!");break;default:printf("inputerror!");break;}}return0;}學生成績管理系統(tǒng)V2.0一、問題描述n508.7(1)鍵盤輸入每個學生的學號和成績;(2)計算該班高等數(shù)學課程的總分和平均分;(3)按成績由高到低排出名次;(4)計算最高分及其相應學號;(5)計算最低分及其相應學號;(6)統(tǒng)計高于平均分的人數(shù)及其所占的百分比;(~(~~(~)5個等級,統(tǒng)計每個等級的人數(shù)及其所占的百分比;(8)輸出每個學生的學號、考試成績、課程總分和平均分。問題拓展:如果要求程序運行后先顯示如下菜單,并提示用戶輸入選項:TheStudent'sGradeManagementSystem*************************************Menu******************************1.Enterrecord 2.Caculatetotal&averagescore *3.Sortindescendingorderbyscore 4.Caculatemax&number *5.Caculatemin&number 6.Statisticalaverageanalysis *7.Statisticalanalysis 8.Listrecord *0.Exit **************************************************************************然后根據用戶輸入的選項執(zhí)行相應的操作,那么程序該如何實現(xiàn)?二、相關知識點(1)選擇結構(2)循環(huán)結構(3)函數(shù)(4)數(shù)組(5)指針三、任務分析(1)某班高數(shù)成績和學號分別用一維數(shù)組表示、因為函數(shù)無法通過return語句返回兩個不同類型的值,故最高分/最低分及其學號分別用兩個指針做函數(shù)參數(shù);(2)這個學生成績管理系統(tǒng)中要實現(xiàn)8個功能:輸入學號和成績、總分、平均分、成績排序、最高分、最低分、統(tǒng)計平均分、成績等級統(tǒng)計分析、顯示學生考試信息。(itRedr(itscr[],lgu[2)平均分floatGetAverage(intscore[],intn);3)成績排序voidSortScore(intscore[],intn)、4)最高分voidGetMaxScore(intscore[],longnum[],intn,int*pmaxscore,long*pmaxnum);5)最低分voidGetMinScore(intscore[],longnum[],intn,int*pminscore,long*pminnum);6)voidStatAverage(intscore[intn);7)voidStatAnalysis(intscore[intcountintn);8)voidPrintInfo(intscore[],longnum[],intn)基礎部分:頭文件#include<stdio.h>函數(shù)/*函數(shù)功能:輸入n個學生的一門課成績、學號*/intReadScore(inta[],longnum[]){inti=-1;/*i-110i*/printf("Inputscores:\n");do{//學生數(shù)增1//輸入一個學生的學號和成績}while(學號大于等于0,同時成績大于等于0);return學生數(shù);}/*計算n個學生成績的平均分*/floatGetAverage(inta[],intn){//isum{//計算總分}//輸出總分//返回平均分}/*函數(shù)功能:按成績升序排序*/voidSortScore(inta[],longnum[],intn){//定義循環(huán)變量i,j和成績臨時變量temp1//定義學號臨時變量temp2for(i=0;i<n-1;i++){//設置k的值for(j=i+1;j<n;j++){if(成績比較){//修改k}}if(k!=i){/*交換成績*///coding/*交換學號*///coding}}}/*函數(shù)功能:計算最高分及其學號*/voidGetMaxScore(intscore[],longnum[],intn,int*pmaxscore,long*pmaxnum){//定義循環(huán)變量i//score[0]的成績賦值給pmaxscore指針//num[0]的學號賦值給pmaxnum指針for(i=0;i<n;i++){if(某個學生成績大于pmaxscore指針所指向的值){//更新pmaxscore指針所指向的值//更新pmaxnum指針所指向的值}}}/*函數(shù)功能:計算最低分及其學號*/voidGetMinScore(intscore[],longnum[],intn,int*pminscore,long*pminnum){//定義循環(huán)變量i//score[0]的成績賦值給pminscore指針//num[0]的學號賦值給pminnum指針for(i=0;i<n;i++){if(某個學生成績小于pminscore指針所指向的值){//更新pminscore指針所指向的值//更新pminnum指針所指向的值}}}/*函數(shù)功能:統(tǒng)計高于平均分的人數(shù)及其所占的百分比*/voidStatAverage(intscore[],intn){//定義循環(huán)變量i,平均分人數(shù)變量count;//定義平均分變量av;//調用計算平均分函數(shù)for(i=0;i<n;i++){if(某個學生成績大于等于平均分)//平均分人數(shù)增1}printf(“高于平均分人數(shù)=%d\t所占百分比=%.2f\n”,?,?);}/*函數(shù)功能:打印學生學號及成績、課程總分、平均分*/voidPrintInfo(inta[],longnum[],intn){inti;for(i=0;i<n;i++){//依次顯示學號、成績}//顯示課程總分、平均分printf("\n");}/*函功:計個級的數(shù)其占百比*/void StatAnalysis(inta[],intcount[],intn){inti;for(i=0;i<5;i++){//初始化成績等級數(shù)組count,count[i]分別表示每個等級的人數(shù)}for(i=0;i<n;i++){if(成績超過某個范圍)//優(yōu)秀人數(shù)累加elseif(成績超過某個范圍)//良好人數(shù)累加elseif(成績超過某個范圍)//中等人數(shù)累加elseif(成績超過某個范圍)//及格人數(shù)累加else}
//不及格人數(shù)累加printf("優(yōu)秀人數(shù):%d\t,優(yōu)秀率為%.2f%%\n",?,?);printf("良好人數(shù):%d\t,良好率為%.2f%%\n",?,?);printf("中等人數(shù):%d\t,中等率為%.2f%%\n",?,?);printf("及格人數(shù):%d\t,及格率為%.2f%%\n",?,?);printf("不及格人數(shù):%d\t,不及格率為%.2f%%\n",?,?);}/* 主數(shù) */intmain(){printf("\nPleaseenteryourchoice:");//定義字符變量ch,ch表示待執(zhí)行功能的序號,如1、2、…//定義成績數(shù)組score,學生數(shù)變量n,數(shù)組下標變量pos,成績等級數(shù)組count[5];//定義學號數(shù)組num[N],待查找學號變量x;//定義平均分變量aver并初始化printf("\nWelcometoUseTheStudent'sGradeManagementSystem!\n");while(1){//輸入待執(zhí)行功能的序號chswitch(ch){case'1'://調用ReadScore函數(shù)break;case'2'://調用平均分函數(shù)//顯示平均分break;case'3'://調用按成績排序函數(shù)printf("SortedScores:\n");//顯示按成績排序后的學生信息break;case'4'://調用最高分函數(shù)printf("TheMaxScore&it’sNum:\n");//顯示學生的最高分及其學號break;case'5'://調用最低分函數(shù)printf("TheMinScore&it’sNum:\n");//顯示學生的最低分及其學號break;case'6'://調用成績高于平均分人數(shù)函數(shù)break;case'7'://調用統(tǒng)計分析成績函數(shù)break;case'8':顯示所有學生成績和學號信息break;case'0':exit(0); /*退出程序*/printf("endoftheprogram!");break;default:printf("inputerror!");break;}}return0;}高級部分:/*系統(tǒng)界面*/charMenu(){//定義代表選擇功能的字符變量chprintf("\n\n");printf("TheStudent'sGradeManagementSystem\n");printf("\n\n");printf("*****************************Menu****************************\n");//按菜單格式輸入提示功能選擇printf("**************************************************************\n");printf("\nPleaseenteryourchoice:");//輸入你的功能選擇//返回你的功能選擇;}/* 主數(shù) */intmain(){printf("\nPleaseenteryourchoice:");//定義字符變量ch,ch表示待執(zhí)行功能的序號,如1、2、…//定義成績數(shù)組score,學生數(shù)變量n,數(shù)組下標變量pos,成績等級數(shù)組count[5];//定義學號數(shù)組num[N],待查找學號變量x;//定義平均分變量aver并初始化printf("\nWelcometoUseTheStudent'sGradeManagementSystem!\n");while(1){/*調用顯示菜單函數(shù),并讀取用戶輸入*/switch(ch){case'1'://調用ReadScore函數(shù)break;case'2'://調用平均分函數(shù)//顯示平均分break;case'3'://調用按成績排序函數(shù)printf("SortedScores:\n");//顯示按成績排序后的學生信息break;case'4'://調用最高分函數(shù)printf("TheMaxScore&it’sNum:\n");//顯示學生的最高分及其學號break;case'5'://調用最低分函數(shù)printf("TheMinScore&it’sNum:\n");//顯示學生的最低分及其學號break;case'6'://調用成績高于平均分人數(shù)函數(shù)break;case'7'://調用統(tǒng)計分析成績函數(shù)break;case'8':顯示所有學生成績和學號信息break;case'0':exit(0); /*退出程序*/printf("endoftheprogram!");break;default:printf("inputerror!");break;}}return0;}學生成績管理系統(tǒng)V3.0一、問題描述n509.5(1)鍵盤輸入每個學生的學號、姓名和成績;(2)計算該班高等數(shù)學課程的總分和平均分;(3)按成績由高到低排出名次;(4)按學號由小到大排出成績表;(5)按姓名的字典順序排出成績表;(6)按學號查找學生的排名及成績;(7)按姓名查找學生的排名及成績;(8)統(tǒng)計高于平均分的人數(shù)及其所占的百分比;(~(~~(~)5個等級,統(tǒng)計每個等級的人數(shù)及其所占的百分比;(10)輸出每個學生的學號、姓名、考試成績、課程總分和平均分。問題拓展:如果要求程序運行后,用戶先登錄如下系統(tǒng):WelcometoUseTheStudent’sGradeManagementSytem!Pleaseenteryourusername:zhangPleaseenteryourpassword(atmost15digits):******然后顯示如下菜單,并提示用戶輸入選項:TheStudent'sGradeManagementSystemTheStudent'sGradeManagementSystem*************************************Menu******************************1.Enterrecord 2.Caculatetotal&averagescore *3.Sortindescendingorderbyscore 4.Sortindescendingorderbyscore *5.Sortindictionaryorderbyname 6.Searchbynumber *7.Searchbyname 8.Statisticalaverageanalysis *9.Statisticalanalysis 10.Listrecord *0.Exit **************************************************************************然后根據用戶輸入的選項執(zhí)行相應的操作,那么程序該如何實現(xiàn)?二、相關知識點(1)選擇結構(2)循環(huán)結構(3)函數(shù)(4)數(shù)組(5)字符串處理函數(shù)(6)字符數(shù)組與字符指針三、任務分析(1)某班高數(shù)成績和學號分別用一維數(shù)組表示、學生姓名用二維字符數(shù)組表示;(2)這個學生成績管理系統(tǒng)中要實現(xiàn)8個功能:輸入學號和成績、總分、平均分、成績排序、最高分、最低分、統(tǒng)計平均分、成績等級統(tǒng)計分析、顯示學生考試信息。intReadScore(intscorelongnumaram[[NflatGeag(itscre[],itvdrtcreitscore[],longnum[],charname[][N],intn)、4)voidSoreNum(intscore[],longnum[],charname[][N],intn);5)voidSoreName(intscore[],longnum[],charam[],it學號查找itaclgu[],lgx,it姓名查找itarchcrname[][N],char*x,intn);8)voidStatAverage(intscore[],intn);9)voidStatAnalysis(intscore[],intcount[],intn);10)n)(4)程序分基礎部分和高級部分,基礎部分不要求菜單。四、程序結構基礎部分:頭文件#include<stdio.h>#include<string.h>函數(shù)/*函數(shù)功能:輸入n個學生的一門課成績、學號和姓名*/intReadScore(inta[],longnum[],charname[][N]){inti=-1;/*i-110i*/printf("Inputscores:\n");do{//學生數(shù)增1//輸入一個學生的學號、成績和姓名}while(學號大于等于0,同時成績大于等于0);return學生數(shù);}/*計算n個學生成績的平均分、平均分*/floatGetAverage(inta[],intn){//isum{//計算總分}//輸出總分//返回平均分}/*函數(shù)功能:按成績升序排序*/voidSortScore(inta[],longnum[],charname[][N],intn){//定義循環(huán)變量i,j和成績臨時變量temp1//定義學號臨時變量temp2//定義學生姓名臨時變量temp3for(i=0;i<n-1;i++){//設置k的值for(j=i+1;j<n;j++){if(成績比較){//修改k}}if(k!=i){/*交換成績*///coding/*交換學號*///coding/*交換姓名*///coding}}}/*函數(shù)功能:按學號升序排序*/voidSortNum(inta[],longnum[],charname[][N],intn){//定義循環(huán)變量i,j和成績臨時變量temp1//定義學號臨時變量temp2//定義學生姓名臨時變量temp3for(i=0;i<n-1;i++){//設置k的值for(j=i+1;j<n;j++){if(學號比較){//修改k}}if(k!=i){/*交換學號*///coding/*交換成績*///coding/*交換姓名*///coding}}}voidSortName(inta[],longnum[],charname[][N],intn){//定義循環(huán)變量i,j和成績臨時變量temp1//定義學號臨時變量temp2//定義學生姓名臨時變量temp3for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(姓名i小姓名j) //符串較不用系算符{/*交姓名i與名j *///Yourcode/*交成績i與績j *///Yourcode/*交學號i與號j *///Yourcode}}}}/*函數(shù)功能:按學號查找學生的排名及成績*/intLinearSearch(longnum[],longx,intn){inti;for(i=0;i<n;i++){if(比較要找的學號){/*若找到返回x在數(shù)組中的下標*/}}/*若循環(huán)結束仍未找到,則返回-1*/}/*函數(shù)功能:按姓名查找學生的排名及成績*/intSearch(charname[][N],char*x,intn){inti;for(i=0;i<n;i++){if(比較要找的姓名){/*若找到返回x在數(shù)組中的下標*/}}}/*函數(shù)功能:統(tǒng)計高于平均分的人數(shù)及其所占的百分比*/voidStatAverage(intscore[],intn){//定義循環(huán)變量i,平均分人數(shù)變量count;//定義平均分變量av;//調用計算平均分函數(shù)for(i=0;i<n;i++){if(某個學生成績大于等于平均分)//平均分人數(shù)增1}printf(“高于平均分人數(shù)=%d\t所占百分比=%.2f\n”,?,?);}/*函數(shù)功能:打印學生學號及成績、課程總分、平均分*/voidPrintInfo(inta[],longnum[],intn){inti;for(i=0;i<n;i++){//依次顯示學號、成績}//顯示課程總分、平均分printf("\n");}/*函功:計個級的數(shù)其占百比*/void StatAnalysis(inta[],intcount[],intn){inti;for(i=0;i<5;i++){//初始化成績等級數(shù)組count,count[i]分別表示每個等級的人數(shù)}for(i=0;i<n;i++){if(成績超過某個范圍)//優(yōu)秀人數(shù)累加elseif(成績超過某個范圍)//良好人數(shù)累加elseif(成績超過某個范圍)//中等人數(shù)累加elseif(成績超過某個范圍)//及格人數(shù)累加else}
//不及格人數(shù)累加printf("優(yōu)秀人數(shù):%d\t,優(yōu)秀率為%.2f%%\n",?,?);printf("良好人數(shù):%d\t,良好率為%.2f%%\n",?,?);printf("中等人數(shù):%d\t,中等率為%.2f%%\n",?,?);printf("及格人數(shù):%d\t,及格率為%.2f%%\n",?,?);printf("不及格人數(shù):%d\t,不及格率為%.2f%%\n",?,?);}/* 主數(shù) */intmain(){printf("\nPleaseenteryourchoice:");//定義字符變量ch,ch表示待執(zhí)行功能的序號,如1、2、…//定義成績數(shù)組score,學生數(shù)變量n,數(shù)組下標變量pos,成績等級數(shù)組count[5];//定義學號數(shù)組num[N],待查找學號變量x;//定義姓名數(shù)組name[][N],待查找姓名變量y;//定義平均分變量aver并初始化printf("\nWelcometoUseTheStudent'sGradeManagementSystem!\n");while(1){//輸入待執(zhí)行功能的序號chswitch(ch){case'1'://調用ReadScore函數(shù)break;case'2'://調用平均分函數(shù)//顯示平均分break;case'3'://調用按成績排序函數(shù)printf("SortedScores:\n");//顯示按成績排序后的學生信息break;case'4'://調用按學號排序函數(shù)printf("SortedNum:\n");//顯示按學號排序后的學生信息break;case'5'://調用按姓名字典順序排序函數(shù)printf("SortedName:\n");//顯示按姓名字典順序排序后的學生信息break;case'6'://調用按學號查找學生排名和成績函數(shù)printf("pleaseinputthesearchedstudent'snum:'");//輸入待查找的學號//調用查找函數(shù)printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;case'7'://調用按姓名查找學生排名和成績函數(shù)printf("pleaseinputthesearchedstudent'sname:'");//輸入待查找的姓名//調用查找函數(shù)printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;case'8'://調用成績高于平均分人數(shù)函數(shù)break;case'9'://調用統(tǒng)計分析成績函數(shù)break;case'10':顯示所有學生成績和學號信息break;case'0':exit(0); /*退出程序*/printf("endoftheprogram!");break;default:printf("inputerror!");break;}}return0;}高級部分:/*用戶登錄*/intLogOn(){/*定義用戶名,密碼*///Yourcodeprintf("\nPleaseenterusername:");/*輸入用戶名*///Yourcode"Peaeenerwod(atost15ginti=0;while((i>=0)&&(password[i++]=getch())!=13){if(password[i-1]=='\b'){}else}
printf("%c%c%c",'\b','\0','\b');i=i-2;printf("*");password[--i]='\0';if(用戶名為"zhang"同時密碼為"123456"){}else}
printf("\nLoggingsuccess!");return1;return0;/*系統(tǒng)界面*/charMenu(){//定義代表選擇功能的字符變量chprintf("\n\n");printf("TheStudent'sGradeManagementSystem\n");printf("\n\n");printf("*****************************Menu****************************\n");//按菜單格式輸入提示功能選擇printf("**************************************************************\n");printf("\nPleaseenteryourchoice:");//輸入你的功能選擇//返回你的功能選擇;}/* 主數(shù) */intmain(){printf("\nPleaseenteryourchoice:");//定義字符變量ch,ch表示待執(zhí)行功能的序號,如1、2、…//定義成績數(shù)組score,學生數(shù)變量n,數(shù)組下標變量pos,成績等級數(shù)組count[5];//定義學號數(shù)組num[N],待查找學號變量x;//定義姓名數(shù)組name[][N],待查找姓名變量y;//定義平均分變量aver并初始化;//定義登錄次數(shù)變量icheck.printf("\nWelcometoUseTheStudent'sGradeManagementSystem!\n");while(icheck<3){if(用戶名與密碼不正確)//登錄次數(shù)增1else}
break;if(icheck==3){printf("\nLogginginthreetimesinarowwasunsuccessful,exit!");exit(0);}while(1){/*調用顯示菜單函數(shù),并讀取用戶輸入*/switch(ch){case'1'://調用ReadScore函數(shù)break;case'2'://調用平均分函數(shù)//顯示平均分break;case'3'://調用按成績排序函數(shù)printf("SortedScores:\n");//顯示按成績排序后的學生信息break;case'4'://調用按學號排序函數(shù)printf("SortedNum:\n");//顯示按學號排序后的學生信息break;case'5'://調用按姓名字典順序排序函數(shù)printf("SortedName:\n");//顯示按姓名字典順序排序后的學生信息break;case'6'://調用按學號查找學生排名和成績函數(shù)printf("pleaseinputthesearchedstudent'snum:'");//輸入待查找的學號//調用查找函數(shù)printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;case'7'://調用按姓名查找學生排名和成績函數(shù)printf("pleaseinputthesearchedstudent'sname:'");//輸入待查找的姓名//調用查找函數(shù)printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;case'8'://調用成績高于平均分人數(shù)函數(shù)break;case'9'://調用統(tǒng)計分析成績函數(shù)break;case'10':顯示所有學生成績和學號信息break;case'0':exit(0); /*退出程序*/printf("endoftheprogram!");break;default:printf("inputerror!");break;}}return0;}學生成績管理系統(tǒng)V4.0一、問題描述某班有m個學生(最多不超過50參加n門課程的期末考5(1)鍵盤輸入每個學生的學號、姓名和各科考試成績;(2)計算該班每門課的總分和平均分;(3)計算該班每個學生的總分和平均分;(4)按每個學生的總分由高到低排出名次;(5)按學號查找學生排名及其各科考試成績;(6)按姓名查找學生排名及其各科考試成績;(~~(~)5個等級,統(tǒng)計每門課程每個等級的人數(shù)及其所占的百分比;(8)輸出每個學生的學號、姓名、各科考試成績、課程總分、平均分,以及每門課的總分和平均分。要求程序運行后,用戶先登錄如下系統(tǒng):WelcometoUseTheStudent'sGradeManagementSystem!Pleaseenterusername:zhangPleseeterpswdatst5gis:然后顯示如下菜單,并提示用戶輸入選項:TheStudent'sGradeManagementSystem***********************************Menu********************************1.Enterrecord *2.Caculatetotal&averagescoreofeachcourse *3.Caculatetotal&averagescoreofeachstudent *4.Sortinascendingorderbytotalscoreofeachstudent *5.Searchbynumber 6.Searchbyname *7.Statisticalanalysisforeverycourse *8.Listrecord 0.Exit ***************************************************************************Pleaseenteryourchoice:然后根據用戶輸入的選項執(zhí)行相應的操作。二、相關知識點(1)選擇結構(2)循環(huán)結構(3)函數(shù)(4)數(shù)組(5)字符串處理函數(shù)(6)字符數(shù)組與字符指針(7)行指針與列指針(8)指針數(shù)組三、任務分析/(2)這個學生成績管理系統(tǒng)中要實現(xiàn)8個功能:輸入學號和成績、總分、平均分、成績排序、最高分、最低分、統(tǒng)計平均分、成績等級統(tǒng)計分析、顯示學生考試信息。voidReadScore(float*p)[COL],longnumchar*nameintfloatAverforStud(float*p)[COLfloatsumfloataver[intn);3)floatAverforCourse(float*p)[COLfloatsum[],floataver[],intn);4)voidSortScore(float(*p)[COL],longnum[],char*name[],floatsum[],floataver[],intn)、5)學號查找intSearchbyNum(float(*p)[COL],longnum[],longx,intn);6)姓名查找intSearchbyName(float(*p)[COL],char*name[]),char*x,intn);7)成績等級統(tǒng)計分析voidStatAnalysis(float(*p)[COL],int(*count)[COL],intn);8)顯示學生考試信息voidPrintInfo(float(*p)[COL],longnum[],char*name[],floatsum1[],floataver1[],floatsum2[],floataver2[],intn)四、程序結構基礎部分:#include<stdio.h>#include<string.h>#defineROW50 #defineCOL5 函數(shù)/*n*/voidReadScore(float(*p)[COL],longnum[],char*name[],intn){inti,j;printf("Inputscores:\n");for(i=0;i<n;i++){/*依次輸入一個學生的學號、姓名*///Yourcodefor(j=0;j<COL;j++){/*依次輸入一個學生的各門課成績*///Yourcode}}/*計算n個學生成績的總分、平均分*/floatAverforStud(float(*p)[COL],floatsum[],floataver[],intn){/*定義循環(huán)變量i,j*///Yourcodefor(i=0;i<n;i++){/*對sum數(shù)組初始化*///Yourcodefor(j=0;j<COL;j++){/*計算每個學生的總分*///Yourcode}/*計算每個學生的平均分*///Yourcode}}floatAverforCourse(float(*p)[COL],floatsum[],floataver[],intn){/*定義循環(huán)變量i,j*///Yourcodefor(i=0;i<COL;i++){/*對sum數(shù)組初始化*///Yourcodefor(j=0;j<n;j++){/*計算每門課的總分*///Yourcode}/*計算每門課的平均分*///Yourcode}}/*函數(shù)功能:按成績升序排序*/voidSortScore(float(*p)[COL],longnum[],char*name[],floatsum[],floataver[],intn){//定義循環(huán)變量i,j和成績臨時變量temp1、總成績臨時變量temp2、平均分臨時變量temp3、名次臨時變量temp4//定義學號臨時變量temp5//定義學生姓名臨時變量temp6for(i=0;i<n-1;i++){//設置k的值for(j=i+1;j<n;j++){if(每個學生的總成績比較){//修改k}}if(k!=i){/*交換成績*///Yourcoding/*交換學號*///Yourcoding/*交換姓名*///Yourcoding/*交換總成績*///Yourcoding/*交換平均分*///Yourcoding/*交換名次*///Yourcoding}}}/*函數(shù)功能:按學號查找學生的排名及各科成績*/intSearchbyNum(float(*p)[COL],longnum[],longx,intn){inti,j;for(i=0;i<n;i++){if(比較要找的學號){/*若找到返回x在數(shù)組中的下標*///Yourcode}}/*若循環(huán)結束仍未找到,則返回-1*///Yourcode/*顯示該學生的各科成績和名次*///Yourcode}/*函數(shù)功能:按姓名查找學生的排名及成績*/intSearchbyName(float(*p)[COL],char*name[]),char*x,intn){inti,j;for(i=0;i<n;i++){if(比較要找的姓名){/*若找到返回x在數(shù)組中的下標*///Yourcode}}/*若循環(huán)結束仍未找到,則返回-1*///Yourcode/*顯示該學生的各科成績和名次*///Yourcode}/*的總分和平均分*/voidPrintInfo(float(*p)[COL],longnum[],char*name[],floatsum1[],floataver1[],floatsum2[],floataver2[],intn){inti,j;for(i=0;i<n;i++){/*依次顯示每個學生的學號、姓名、總分、平均分*///Yourcodefor(j=0;j<COL;j++){/*依次顯示每個學生的各科成績*///Yourcode}}printf("\n");for(j=0;j<COL;j++){/*依次顯示每門課的總分、平均分*///Yourcode}printf("\n");}/*函數(shù)功能:統(tǒng)計各科課程每個等級的人數(shù)及其所占的百分比*/voidStatAnalysis(float(*p)[COL],int(*count)[5],intn,intm){inti,j;for(i=0;i<n;i++) //n{for(j=0;j<5;j++){//初始化各科成績等級行指針count,*(*(count+i)+j)表示每科課程每個等級的人數(shù)}}for(i=0;i<n;i++) //{for(j=0;j<m;j++) //m{if(某課程某人的成績超過某個范圍)//優(yōu)秀人數(shù)累加elseif(某課程某人的成績超過某個范圍)//良好人數(shù)累加elseif(某課程某人的成績超過某個范圍)//中等人數(shù)累加elseif(某課程某人的成績超過某個范圍)//及格人數(shù)累加else}
//不及格人數(shù)累加printf("優(yōu)秀人數(shù):%d\t,優(yōu)秀率為%.2f%%\n",?,?);printf("良好人數(shù):%d\t,良好率為%.2f%%\n",?,?);printf("中等人數(shù):%d\t,中等率為%.2f%%\n",?,?);printf("及格人數(shù):%d\t,及格率為%.2f%%\n",?,?);printf("不及格人數(shù):%d\t,不及格率為%.2f%%\n",?,?);}}/*用戶登錄*/intLogOn(){/*定義用戶名,密碼*///Yourcodeprintf("\nPleaseenterusername:");/*輸入用戶名*///YourcodepnnPeaeenerpaod(atost15dg:inti=0;while((i>=0)&&(password[i++]=getch())!=13){if(password[i-1]=='\b'){}else}
printf("%c%c%c",'\b','\0','\b');i=i-2;printf("*");password[--i]='\0';if(用戶名為"zhang"同時密碼為"123456"){}else
printf("\nLoggingsuccess!");return1;return0;}/*系統(tǒng)界面*/charMenu(){//定義代表選擇功能的字符變量chprintf("\n\n");printf("TheStudent'sGradeManagementSystem\n");printf("\n\n");printf("*****************************Menu****************************\n");//按菜單格式輸入提示功能選擇printf("**************************************************************\n");printf("\nPleaseenteryourchoice:");/* 輸你功選擇 *///Yourcode/* 返你功選擇 *///Yourcode}/* 主數(shù) */intmain(){printf("\nPleaseenteryourchoice:");//定義字符變量ch,ch表示待執(zhí)行功能的序號,如1、2、…//定義成績數(shù)組score,學生總分數(shù)組sum1,課程總分數(shù)組sum2,學生數(shù)變量n,數(shù)組下標變量pos,成績等級數(shù)組count[COL][5];//定義學號數(shù)組num[N],待查找學號變量x;//定義姓名數(shù)組name[][N],待查找姓名變量y;//定義學生平均分數(shù)組aver1,課程平均分數(shù)組aver2,并初始化;//定義登錄次數(shù)變量icheck;//定義名次數(shù)組order.printf("\nWelcometoUseTheStudent'sGradeManagementSystem!\n");while(icheck<3){if(用戶名與密碼不正確)//登錄次數(shù)增1else}
break;if(icheck==3){printf("\nLogginginthreetimesinarowwasunsuccessful,exit!");exit(0);}while(1){/*調用顯示菜單函數(shù),并讀取用戶輸入*/switch(ch){case'1'://調用ReadScore函數(shù)break;case'2'://調用每科課程總分、平均分函數(shù)//顯示每科的總分、平均分break;case'3'://調用每個學生總分、平均分函數(shù)//顯示每個學生的總分、平均分break;case'4'://調用按總成績排序函數(shù)printf("SortedScores:\n");//顯示按總成績排序后的學生信息break;case'5'://調用按學號查找學生排名和成績函數(shù)printf("pleaseinputthesearchedstudent'snum:'");//輸入待查找的學號//調用查找函數(shù)printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;case'6'://調用按姓名查找學生排名和成績函數(shù)printf("pleaseinputthesearchedstudent'sname:'");//輸入待查找的姓名//調用查找函數(shù)printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;case'7'://調用統(tǒng)計分析成績函數(shù)break;case'8':/**/break;case'0':exit(0); /*退出程序*/printf("endoftheprogram!");break;default:printf("inputerror!");break;}}return0;}學生成績管理系統(tǒng)V5.0一、問題描述某班有n個學生(最多不超過50參加m門課程的期末考5(1)鍵盤輸入每個學生的學號、姓名、出生年月和各科考試成績;(2)計算該班每個學生的總分和平均分;(3)按每個學生的總分由高到低排出名次;(4)按學號查找學生排名及其各科考試成績;(5)按姓名查找學生排名及其各科考試成績;(~~(~)5個等級,統(tǒng)計每門課程每個等級的人數(shù)及其所占的百分比;(7)輸出每個學生的學號、姓名、各科考試成績、課程總分、平均分。要求程序運行后,用戶先登錄如下系統(tǒng):WelcometoUseTheStudent'sGradeManagementSystem!Pleaseenterusername:zhangPleseeterpswdatst5gis:然后顯示如下菜單,并提示用戶輸入選項:TheStudent'sGradeManagementSystem***********************************Menu********************************1.Enterrecord *2.Calculatetotal&averagescoreofeachstudent *3.Sortinascendingorderbytotalscoreofeachstudent *4.Searchbynumber 5.Searchbyname *6.Statisticalanalysisforeverycourse *7.Listrecord 0.Exit ***************************************************************************Pleaseenteryourchoice:1.參考例11.11,用動態(tài)單向鏈表替代結構體數(shù)組實現(xiàn)上述功能。2.在問題1的基礎上,增加添加記錄、刪除記錄、插入記錄功能,理解動態(tài)鏈表與結構體數(shù)組的不同點和優(yōu)缺點。二、相關知識點(1)選擇結構(2)循環(huán)結構(3)函數(shù)(4)數(shù)組(5)字符串處理函數(shù)(6)指針(7)結構體、結構體數(shù)組、結構體指針(8)動態(tài)內存分配三、任務分析(1)某班學生信息用結構體用結構體數(shù)組表示;(2)7個功能:輸入學號//(3)1)voidReadScore(STUDENTstu[],intm,intn);2)floatAverforStud(STUDENTstu[],intm,intn);3)成voidSortScore(STUDENTstuintmintn);4)intSearchbyNum(STUDENTstulongx,intmintn);5)intSearchbyName(STUDENTstuchar*xintmintn);6)成績等級統(tǒng)計分析voidStatAnalysis(STUDENTstu[],intm,intn);7)顯示學生考試信息voidPrintInfo(STUDENTstu[],intm,intn)(4)程序分基礎部分和高級部分,基礎部分不要求使用動態(tài)內存分配。四、程序結構基礎部分:#include<stdio.h>#include<string.h>#defineROW50 #defineCOL5 typedefstructdate{intmonth;intday;intyear;}DATE;typedefstructstudent{longid;charname[20];DATEbirthday;floatscore[4];floatsum;floataver;};函數(shù)/*函數(shù)功能:輸入n個學生的學號、姓名、出生年月、4門課成績*/voidReadScore(STUDENTstu[],intm,intn){inti,j;printf("Inputscores:\n");for(i=0;i<m;i++){/*依次輸入一個學生的學號、姓名、出生年月*///Yourcodefor(j=0;j<n;j++){/*依次輸入一個學生的各門課成績*///Yourcode}}}/*n*/floatAverforStud(STUDENTstu[],intm,intn){/*定義循環(huán)變量i,j*///Yourcodefor(i=0;i<m;i++){for(j=0;j<n;j++){/*計算每個學生的總分*///Yourcode}/*計算每個學生的平均分*///Yourcode}}/*函數(shù)功能:按成績升序排序*/voidSortScore(STUDENTstu[],intm,intn){//定義循環(huán)變量i,j和結構體臨時變量temp1for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(第i個學生的總成績小于第j個學生的總成績){分*/}}
/*交換第i、j個學生的學號、姓名、出生年月、4門課成績、總分、平均//Yourcoding}}/*函數(shù)功能:按學號查找學生的排名及各科成績*/intSearchbyNum(STUDENTstu[],longx,intm,intn){inti,j;for(i=0;i<n;i++){if(比較要找的學號){/*若找到返回x在數(shù)組中的下標*///Yourcode}}/*若循環(huán)結束仍未找到,則返回-1*///Yourcode/*顯示該學生的各科成績和名次*///Yourcode}/*函數(shù)功能:按姓名查找學生的排名及成績*/intSearchbyName(STUDENTstu[],char*x,intm,intn){inti,j;for(i=0;i<n;i++){if(比較要找的姓名){/*若找到返回x在數(shù)組中的下標*///Yourcode}}/*若循環(huán)結束仍未找到,則返回-1*///Yourcode/*顯示該學生的各科成績和名次*///Yourcode}/**/voidPrintInfo(STUDENTstu[],intm,intn){inti,j;for(i=0;i<m;i++){/*依次顯示每個學生的學號、姓名、出生年月、總分、平均分*///Yourcodefor(j=0;j<n;j++){/*依次顯示每個學生的各科成績*///Yourcode}}printf("\n");}/*函數(shù)功能:統(tǒng)計各科課程每個等級的人數(shù)及其所占的百分比*/voidStatAnalysis(STUDENTstu[],intm,intn){inti,j;/*定義4門課5個等級數(shù)組count*///Yourcodefor(i=0;i<n;i++) //n{for(j=0;i<5;i++){/*初始化各科5個成績等級數(shù)組count*///Yourcode}}for(i=0;i<n;i++) //{for(j=0;j<m;j++) //m{if(某人某課程的成績超過某個范圍)//優(yōu)秀人數(shù)累加elseif(某人某課程的成績超過某個范圍)//良好人數(shù)累加elseif(某人某課程的成績超過某個范圍)//中等人數(shù)累加elseif(某人某課程的成績超過某個范圍)//及格人數(shù)累加else}
//不及格人數(shù)累加printf("優(yōu)秀人數(shù):%d\t,優(yōu)秀率為%.2f%%\n",?,?);printf("良好人數(shù):%d\t,良好率為%.2f%%\n",?,?);printf("中等人數(shù):%d\t,中等率為%.2f%%\n",?,?);printf("及格人數(shù):%d\t,及格率為%.2f%%\n",?,?);printf("不及格人數(shù):%d\t,不及格率為%.2f%%\n",?,?);}}/*用戶登錄*/intLogOn(){/*定義用戶名,密碼*///Yourcodeprintf("\nPleaseenterusername:");/*輸入用戶名*///YourcodepnnPeaeenerpaod(atost15dg:inti=0;while((i>=0)&&(password[i++]=getch())!=13){if(password[i-1]=='\b'){}else}
printf("%c%c%c",'\b','\0','\b');i=i-2;printf("*");password[--i]='\0';if(用戶名為"zhang"同時密碼為"123456"){}else}
printf("\nLoggingsuccess!");return1;return0;/*系統(tǒng)界面*/charMenu(){//定義代表選擇功能的字符變量chprintf("\n\n");printf("TheStudent'sGradeManagementSystem\n");printf("\n\n");printf("*****************************Menu****************************\n");//按菜單格式輸入提示功能選擇printf("**************************************************************\n");printf("\nPleaseenteryourchoice:");/* 輸你功選擇 *///Yourcode/* 返你功選擇 *///Yourcode}/* 主數(shù) */intmain(){printf("\nPleaseenteryourchoice:");//定義字符變量ch,ch表示待執(zhí)行功能的序號,如1、2、…//定義學生結構體stu;//定義學號數(shù)組num[N],待查找學號變量x;//定義姓名數(shù)組name[][N],待查找姓名變量y;//定義4科5個成績等級數(shù)組count[4][5];//定義登錄次數(shù)變量icheck;//定義被查找目標在數(shù)組中的下標變量posprintf("\nWelcometoUseTheStudent'sGradeManagementSystem!\n");while(icheck<3){if(用戶名與密碼不正確)//登錄次數(shù)增1else}
break;if(icheck==3){printf("\nLogginginthreetimesinarowwasunsuccessful,exit!");exit(0);}while(1)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- -記上海第二醫(yī)科大學病理生理學教研室主任陳國強知識講解
- 會計學第九章財產清查
- 2024年浙江經貿職業(yè)技術學院高職單招職業(yè)適應性測試歷年參考題庫含答案解析
- 一年級道德與法治上冊第一單元我是小學生啦1開開心心上學去課件新人教版
- 2024年浙江醫(yī)藥高等??茖W校高職單招語文歷年參考題庫含答案解析
- 產品宣傳冊設計合同8篇
- 2024年陸軍五十七醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年陽泉市城區(qū)人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年江陽城建職業(yè)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2024年江蘇海事職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 刑法涉及安全生產的16宗罪解讀
- 北京高考化學方程式知識點總結
- 銅精礦加工費簡析
- 機電拆除專項施工方案
- 平鍵鍵槽的尺寸與公差
- 8S目視化管理實施計劃表(放大)
- 分式混合運算專項練習158題(有答案)26頁
- 地鐵日常保潔程序及應急預案
- 牛津譯林版四年級英語上冊專項訓練排序
- 畢業(yè)設計(論文)-多軸自動螺栓擰緊機的設計
- 材料四:CG設備介紹
評論
0/150
提交評論