編程實現如下學生成績管理:
(1)錄入每個學生的學號和考試成績;
(2)計算課程的總分和平均分;
(3)按成績由高到低排出名次表;
(4)按學號由小到大排出成績表;
(5)按學號查詢學生排名及其考試成績;
(6)按優秀(90-100)、良好(80-89)、中等(70-79)、及格(60-69)、不及格(0-59)5個類別,統計每個類別的人數以及所占的百分比;
(7)輸出每個學生的學號、考試成績,以及課程總分和平均分。
輸入格式:
( 1 ) 錄入學生的人數:
要求輸入數據格式為:"%d"
提示信息為:“Input student number(n<30):\n”
( 2 )錄入每個學生的學號和考試成績:
要求輸入數據格式為:"%ld%f"
提示信息為:“Input student's ID and score:\n”
輸出格式:
1、菜單項的輸出顯示:
Management for Students' scores
1.Input record
2.Calculate total and average score of course
3.Sort in descending order by score
4.Sort in ascending order by number
5.Search by number
6.Statistic analysis
7.List record
0.Exit
Please Input your choice:
2、計算課程的總分和平均分:
要求輸出總分與平均分格式為:“sum=%.0f,aver=%.2f\n”
3、按成績由高到低排出名次表:
要求輸出格式為:"%ld\t%.0f\n"
提示信息為:“Sort in descending order by score:\n”
4、按學號由小到大排出成績表:
要求輸出格式為:"%ld\t%.0f\n"
提示信息為:“Sort in ascending order by number:\n”
5、按學號查詢學生信息及其考試成績(輸出學號與成績):
如果未查到此學號的學生,提示信息為:“Not found!\n”;
如果查詢到該學生,要求輸出格式為:"%ld\t%.0f\n"
6、按優秀(90-100)、良好(80-89)、中等(70-79)、及格(60-69)、不及格(0-59)5個類別,統計每個類別的人數以及所占的百分比:
成績<60輸出提示格式為:"<60\t%d\t%.2f%%\n";
成績=100輸出格式為:"%d\t%d\t%.2f%%\n";
其他要求輸出百分比格式為:"%d-%d\t%d\t%.2f%%\n"
演示效果:
代碼:
#include<stdio.h>#include<stdlib.h>#include<conio.h>//宏定義最大學生人數#definestu_max30/*進行函數的全局聲明*///獲取學生人數intstu_num();//顯示菜單獲取用戶輸入charmenu_tips();//獲取學生學號,及本門考試成績voidstu_information(longnum[],floatscore[],intn);//計算輸出課程的總分和平均分voidsum_aver(floatscore[],intn);//模塊功能:交換兩個長整型數據voidexchange_long(long*a,long*b);//模塊功能:交換兩個浮點型數據voidexchange_float(float*a,float*b);//按成績由高到低輸出名次表voidoutput_score(longnum[],floatscore[],intn);//按學號從小到大排出成績表voidoutput_num(longnum[],floatscore[],intn);//查詢輸出學生信息及考試成績:voidquery(longnum[],floatscore[],intn);//分數劃界處理并輸出voidscore_pro(floatscore[],intn);//直接輸出對應列表voidoutput(longnum[],floatscore[],intn);//暫停清屏voidclean();intmain(){intn,i;longnum[stu_max];floatscore[stu_max];n=stu_num();while(1){i=menu_tips();switch(i){case'1':printf("1"),stu_information(num,score,n),system("cls");break;case'2':printf("2"),sum_aver(score,n),clean();break;case'3':printf("3"),output_score(num,score,n),clean();break;case'4':printf("4"),output_num(num,score,n),clean();break;case'5':printf("5"),query(num,score,n),clean();break;case'6':printf("6"),score_pro(score,n),clean();break;case'7':printf("7"),output(num,score,n),clean();break;case'0':printf("0"),exit(0);break;default:printf("Inputerror!\n"),clean();}}}/*以下為函數功能模塊*///獲取學生人數intstu_num(){intn;printf("Inputstudentnumber(n<30):\n");scanf("%d",&n);system("cls");returnn;}//顯示菜單獲取用戶輸入charmenu_tips(){printf("-----------------------------------------------------------\n");printf("|ManagementforStudents'scores|\n");printf("-----------------------------------------------------------\n");printf("|1.Inputrecord|\n");printf("|2.Calculatetotalandaveragescoreofcourse|\n");printf("|3.Sortindescendingorderbyscore|\n");printf("|4.Sortinascendingorderbynumbe|\n");printf("|5.Searchbynumber|\n");printf("|6.Statisticanalysis|\n");printf("|7.Listrecord|\n");printf("|0.Exit|\n");printf("-----------------------------------------------------------\n");printf("\nPleaseInputyourchoice:\n");chari;i=getch();returni;}//獲取學生學號,及本門考試成績voidstu_information(longnum[],floatscore[],intn){inti;printf("\nInputstudent'sIDandscore:\n");for(i=0;i<n;i++)scanf("%ld%f",&num[i],&score[i]);}//計算輸出課程的總分和平均分voidsum_aver(floatscore[],intn){inti;floatsum,aver;for(i=0,sum=0;i<n;i++)sum+=score[i];aver=sum/n;printf("\nsum=%.0f,aver=%.2f\n",sum,aver);}//模塊功能:交換兩個長整型數據voidexchange_long(long*a,long*b){longt;t=*a;*a=*b;*b=t;}//模塊功能:交換兩個浮點型數據voidexchange_float(float*a,float*b){floatt;t=*a;*a=*b;*b=t;}//按成績由高到低輸出名次表voidoutput_score(longnum[],floatscore[],intn){inti,j;for(j=n-1;j>0;j--){for(i=0;i<j;i++)if(score[i]<score[i+1]){exchange_float(&score[i],&score[i+1]);exchange_long(&num[i],&num[i+1]);}}printf("\nSortindescendingorderbyscore:");output(num,score,n);}//按學號從小到大排出成績表voidoutput_num(longnum[],floatscore[],intn){inti,j;for(j=n-1;j>0;j--){for(i=0;i<j;i++)if(num[i]>num[i+1]){exchange_float(&score[i],&score[i+1]);exchange_long(&num[i],&num[i+1]);}}output(num,score,n);}//查詢輸出學生信息及考試成績:voidquery(longnum[],floatscore[],intn){printf("\nEntertheIDtoquery:\n");longtemp;scanf("%ld",&temp);inti;for(i=0;i<n;i++){if(num[i]==temp){printf("%ld\t%.0f\n",num[i],score[i]);return;}}printf("\nNotfound!\n");}//分數劃界處理并輸出voidscore_pro(floatscore[],intn){intt[6]={0,0,0,0,0,0};/*前五個分別對應優秀、良好、中等、及格、不及格五個類別第六位存儲100分的人數*/inti,m;for(i=0;i<n;i++){if(score[i]>=90&&score[i]<100)t[0]++;if(score[i]>=80&&score[i]<=89)t[1]++;if(score[i]>=70&&score[i]<=79)t[2]++;if(score[i]>=60&&score[i]<=69)t[3]++;if(score[i]>=0&&score[i]<=59)t[4]++;if(score[i]==100)t[5]++;}//遍歷t數組,輸出對應的數據for(i=0,m=9;i<6;i++){if(i==4)printf("<60\t%d\t%.2f%%\n",t[4],(float)t[4]/n*100);if(i==5)printf("%d\t%d\t%.2f%%\n",100,t[5],(float)t[5]/n*100);if(i!=4&&i!=5){if(i==0)printf("\n");printf("%d-%d\t%d\t%.2f%%\n",m*10,m*10+9,t[i],(float)t[i]/n*100);m--;}}}//直接輸出對應列表voidoutput(longnum[],floatscore[],intn){inti;for(i=0;i<n;i++){if(i==0)printf("\n");printf("%ld\t%.0f\n",num[i],score[i]);}}//暫停清屏voidclean(){system("pause");system("cls");}
以上就是使用C語言怎么編寫一個學生成績管理系統,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注本站行業資訊頻道。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
【資料圖】最近這段時間總有小伙伴問小編新版qq秘密在哪里是什么,小編為此在網上搜尋了一些有關于新版qq秘密在哪里的知識送給大家,希望能解答各位小伙伴的疑惑。新版qq秘密在哪里?下面就給大家分享一下。首先在手機上打開QQ空間,點擊右上角的“+”號。接著點擊下方的“小秘密&rdquo;在這里我們就可以投遞或者看人家發的小秘密了。你學會了嗎?...
1、首因效應是指最初接觸到的信息所形成的印象對我們以后的行為活動和評價的影響,實際上指的就是“第一印象”的影響。即人們根據最初獲得的信息所形成的印象不易改變,甚至會左右對后來獲得的新信息的解釋2、近因效應是指當人們識記一系列事 物時對末尾部分項目的記憶效果優于中間部分項目的現象。3、近因效應與首因效應相反,是指交往中最后- -次見面給人留 下的印象,這個印象在對方的腦海中也...
余額寶年利率是多少2023?截止2023年1月16日余額寶的7日年化收益率是1.7610%,30日年化收益率是1.7400%,萬份收益率是0.4833。余額寶一萬一天的收益約為0.4833元,余額寶收益=(你實際的資金×每萬份收益)÷10000,或余額寶收益=每萬份收益÷10000×你實際的資金。要想知道余額寶一萬元一天有多少利息,關鍵是看當日萬...