C語言實現(xiàn)學(xué)生獎學(xué)金評定系統(tǒng)
本文實例為大家分享了C語言實現(xiàn)學(xué)生獎學(xué)金評定系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
說明:
學(xué)生綜合積分由文化積分和德育積分構(gòu)成,文化積分是所有門課程成績總和除以課程門數(shù)(平均分),德育積分是參加各類活動的積分,學(xué)生綜合積分=文化積分×70%+德育積分×30%。按照學(xué)生綜合積分排名,獲得一等獎學(xué)金1名學(xué)生,獲得二等獎學(xué)金2名學(xué)生,獲得三等獎學(xué)金3名學(xué)生,項目要求輸入班級學(xué)生成績信息,輸出獲得獎學(xué)金的學(xué)生名單。已知學(xué)生成績信息包括學(xué)號、姓名、英語成績、網(wǎng)絡(luò)成績、C語言成績、數(shù)據(jù)庫成績、文化積分、德育積分和綜合積分,運行結(jié)果如圖所示。
實例分析與實現(xiàn)
首先,按照學(xué)生成績信息的組成定義結(jié)構(gòu)體,輸入各門課程成績和德育積分,根據(jù)已知的公式,求出文化積分和綜合積分;然后,按照學(xué)生綜合積分從高到低進行排名,并輸出排名結(jié)果;最后,輸出下標(biāo)為0的學(xué)生獲得一等獎學(xué)金,下標(biāo)為1和2的學(xué)生獲得二等獎學(xué)金,下標(biāo)為3、4、5的學(xué)生獲得三等獎學(xué)金。具體算法如下。
① 定義結(jié)構(gòu)體類型student。
② 利用定義的結(jié)構(gòu)體類型定義一個十名學(xué)生的數(shù)組。
③ 利用for循環(huán)輸入十名學(xué)生的各門課成績,計算學(xué)生文化積分和綜合積分。
④ 利用for循環(huán)嵌套對學(xué)生的成績按總積分由高到低進行排序。
⑤ 打印總積分從高到低的排序結(jié)果、獲得獎學(xué)金學(xué)生名單。
⑥實現(xiàn)輸出每門課程不及格學(xué)生名單。
#include <stdio.h> #include <windows.h> #include<string.h> #define NUM 10 ?//修改NUM就可以加學(xué)生數(shù)量 struct student_scores{//定義學(xué)生屬性 ?? ?int ID;//學(xué)號 ?? ?char name[20];//姓名 ?? ?float english;//英語 ?? ?float net;//網(wǎng)絡(luò) ?? ?float c_;//c語言 ?? ?float sql_;//數(shù)據(jù)庫 ?? ?float ave;//文化積分 ?? ?float deyu;//德育 ?德育積分是參加各類活動的積分 ?? ?float zonghe;//綜合?? ??? ? }; //學(xué)生綜合積分由文化積分和德育積分構(gòu)成,文化積分是所有門課程成績總和除以課程門數(shù)(平均分), //德育積分是參加各類活動的積分,學(xué)生綜合積分=文化積分×70%+德育積分×30%。按照學(xué)生綜合積分排名, //獲得一等獎學(xué)金1名學(xué)生,獲得二等獎學(xué)金2名學(xué)生,獲得三等獎學(xué)金3名學(xué)生,項目要求輸入班級學(xué)生成績信息,輸出獲得獎學(xué)金的學(xué)生名單。 void main() {?? ? ?? ?struct student_scores student[NUM],temp;//定義一個結(jié)構(gòu)體名稱數(shù)組 10個學(xué)生 ?? ?int i,k; ?? ?printf("請按1鍵開始錄入\n");?? ? ?? ?printf("請輸入學(xué)號、姓名、英語成績、網(wǎng)絡(luò)成績、C語言成績、數(shù)據(jù)庫成績、德育積分>:\n");?? ? ?? ?printf("-----------------------------------------------------------------------\n"); ?? ?for( i=0;i<NUM;i++)//動態(tài)錄入 ?? ?{?? ??? ??? ? ?? ??? ?scanf("%d ",&student[i].ID); ?? ??? ?scanf("%s ",&student[i].name); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ??? ?scanf("%f %f %f %f %f",&student[i].english,&student[i].net,&student[i].c_,&student[i].sql_,&student[i].deyu); ?? ??? ?student[i].ave=(student[i].english+student[i].net+student[i].c_+student[i].sql_)/4;//文化積分(平均分) ?? ??? ?student[i].zonghe=student[i].ave*70/100+student[i].deyu*30/100; ?? ?} ?? ?printf("-----------------------------------------------------------------------\n");?? ? ?? ?printf("\n"); //?? ?system("cls");//清屏 ?? ?for( i=0;i<NUM-1;i++) ?? ?{ ?? ??? ?for(k=0;k<NUM-1-i;k++) ?? ??? ?{ ?? ??? ??? ?if(student[k].zonghe<student[k+1].zonghe) ?? ??? ??? ?{ ?? ??? ??? ??? ?temp.ID = student[k].ID; ?? ??? ??? ??? ?for(i=0;i<20;i++) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?temp.name[i] = student[k].name[i]; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?temp.ave = student[k].ave; ?? ??? ??? ??? ?temp.deyu = student[k].deyu; ?? ??? ??? ??? ?temp.zonghe = student[k].zonghe; ?? ??? ??? ??? ? ?? ??? ??? ??? ?student[k].ID = student[k+1].ID; ?? ??? ??? ??? ?for(i=0;i<20;i++) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?student[k].name[i] = student[k+1].name[i]; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?student[k].ave = student[k+1].ave; ?? ??? ??? ??? ?student[k].deyu = student[k+1].deyu; ?? ??? ??? ??? ?student[k].zonghe = student[k+1].zonghe; ?? ??? ??? ??? ?student[k+1].ID = temp.ID; ?? ??? ??? ??? ?for(i=0;i<20;i++) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?student[k+1].name[i] = temp.name[i]; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?student[k+1].ave =temp.ave; ?? ??? ??? ??? ?student[k+1].deyu =temp.deyu; ?? ??? ??? ??? ?student[k+1].zonghe = temp.zonghe; ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?printf("成績排名<學(xué)號、姓名、文化積分、德育積分、總積分>:\n");?? ? ?? ?printf("-----------------------------------------------------------------------\n"); ?? ?printf("\n"); ?? ?for(i=0;i<NUM;i++) ?? ?{ ?? ??? ?printf("%d ",student[i].ID); ?? ??? ?printf("%s ",student[i].name); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ??? ?printf("%f %f %f\n",student[i].ave,student[i].deyu,student[i].zonghe); ?? ?} ?? ?printf("-----------------------------------------------------------------------\n"); ?? ?printf("獎學(xué)金名單如下:\n");?? ? ?? ?printf("-----------------------------------------------------------------------\n"); ?? ?printf("一等獎學(xué)金獲得者:%s\n",student[0].name); ?? ?printf("二等獎學(xué)金獲得者:%s %s\n",student[1].name,student[2].name); ?? ?printf("三等獎學(xué)金獲得者:%s %s %s\n",student[3].name,student[4].name,student[5].name); ?? ?system("pause"); }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
用C實現(xiàn)PHP擴展 Image_Tool 圖片常用處理工具類的使用
該擴展是基于ImageMagick基礎(chǔ)實現(xiàn)的,圖片操作調(diào)用的是ImageMagick API2013-04-04jQuery移動頁面開發(fā)中主題按鈕的設(shè)計示例
這篇文章主要介紹了jQuery移動頁面開發(fā)中主題按鈕的設(shè)計示例,jQuery是當(dāng)今最具人氣的JavaScript開發(fā)類庫,需要的朋友可以參考下2015-12-12