C語言課程設(shè)計報告-保研名額查詢.doc_第1頁
C語言課程設(shè)計報告-保研名額查詢.doc_第2頁
C語言課程設(shè)計報告-保研名額查詢.doc_第3頁
C語言課程設(shè)計報告-保研名額查詢.doc_第4頁
C語言課程設(shè)計報告-保研名額查詢.doc_第5頁
免費預覽已結(jié)束,剩余21頁可下載查看

下載本文檔

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

文檔簡介

1、中國地質(zhì)大學 ( 武漢 )C語言課程設(shè)計報告書姓名:專業(yè):電子信息工程班級學號:指導老師:目錄一、課設(shè)題目 *1二、題目分析 *2三、設(shè)計思路 *23.1、設(shè)計思想 *23.2、總思路 *23.3、圖示分析 *3四、各功能模塊及其運行結(jié)果 *34.1 、菜單和主函數(shù) *34.2 、基礎(chǔ)模塊 *44.3 、功能函數(shù) *7五課設(shè)總結(jié) * 12六附錄(源代碼) *14一、 課設(shè)題目題目:研究生推免 (保研 )排名統(tǒng)計程序具體內(nèi)容:已知文本文件f1.txt中存放了某校應屆大四學生的相關(guān)信息(不超過5000 人),具體數(shù)據(jù)及存放格式為:每行存放一個學生的數(shù)據(jù),共有7 項,依次為:學號、姓名、專業(yè)必修課平

2、均成績、科技活動獎勵加分、社會活動獎勵加分、是否有專業(yè)必修課掛科記錄、是否通過大學英語四級。其中,學號為 8 位數(shù)字字符, 其中前 2 位數(shù)字表示學生所在的學院,第 3 位數(shù)字表示學生的專業(yè),第4-5 位數(shù)字表示學生的年級,統(tǒng)一為09,第 6 位數(shù)字表示學生所在年級同專業(yè)內(nèi)的編號, 即所稱的班號, 第 7-8 位數(shù)字表示學生班級內(nèi)的序號,如學號 07509123 表示,機電學院( 07)通信工程專業(yè)(5) 09 級( 09) 1 班( 1)第 23 號( 23)學生;姓名為長度不超過 10 個的字符;專業(yè)必修課平均成果、 科技活動獎勵加分、 社會活動獎勵加分均為0-100以內(nèi)的整數(shù) (含 0

3、和 100);是否有專業(yè)必修課掛科記錄、 是否通過大學英語四級均為0 或 1兩個整型數(shù)字, 為 1 分別表示有專業(yè)必修課掛科記錄或通過大學英語四級,為 0 分別表示沒有專業(yè)必修課掛科記錄或沒有通過大學英語四級。該校的保研政策是: 必須沒有專業(yè)必修課掛科記錄且通過大學英語四級考試,在此前提下,劃分推免研究生指標。外推指標按專業(yè)排名,給予2%的指標,小數(shù)部分四舍五入。內(nèi)推指標按班級排名,給予15的指標,小數(shù)部分四舍五入。如果某班有外推指標,外推指標不占內(nèi)推指標。排名計算方法:專業(yè)必修課成績占60%,科技活動獎勵占30,社會活動獎勵占 10。請編寫程序,讀出文件f1.txt 中的內(nèi)容,再按保研政策確

4、定每個人的保研狀況(0 表示沒有獲得推免資格, 1 表示獲得內(nèi)推資格, 2 表示獲得外推資格 ) 并存入 f2.txt中,并實現(xiàn)以下功能:(1) 能夠統(tǒng)計某個班所有獲得保研資格的學生信息。(2) 能夠統(tǒng)計某個專業(yè)所有獲得保研資格的學生信息。(3) 能夠統(tǒng)計哪個班獲得的保研資格的學生人數(shù)最多。(4) 能夠統(tǒng)計全校所有獲得外推資格的學生名單,其結(jié)果即可屏幕顯示, 也可存入文件。(5) 學生可以根據(jù)姓名和學號查詢自己是否獲得保研資格。說明:系統(tǒng)程序要有界面存入文件f2.txt中的數(shù)據(jù),每行存一個學生的數(shù)據(jù),每行之間的不同信息用空格分隔。二、 題目分析該題目要求設(shè)計一個研究生推免 ( 保研 ) 排名統(tǒng)

5、計查詢系統(tǒng),導入含有 5000 個考生信息的 txt 文本后,能實現(xiàn)統(tǒng)計某個班所有獲得保研資格的學生信息; 能夠統(tǒng)計某個專業(yè)所有獲得保研資格的學生信息; 能夠統(tǒng)計哪個班獲得的保研資格的學生人數(shù)最多; 能夠統(tǒng)計全校所有獲得外推資格的學生名單, 其結(jié)果即可屏幕顯示, 也可存入文件; 學生根據(jù)姓名和學號查詢自己是否獲得保研資格的功能。 要實現(xiàn)這么多功能, 就需要一個可供選擇的主菜單功能表,每個菜單都要鏈接到相應的程序?qū)崿F(xiàn)相應功能,所以,整體就需要建立一個多分支選擇結(jié)構(gòu)。除此之外, 為了方便用戶查詢, 還要設(shè)計一個使考生只要不關(guān)閉程序或者按指定輸入而結(jié)束程序就能一直查詢下去的功能。三 設(shè)計思路3.1、

6、設(shè)計思想( 1) 將全局變量和局部變量結(jié)合使用,靈活運用。( 2) 巧用指針,簡化數(shù)據(jù)處理難度。( 3) 以全局結(jié)構(gòu)來隨時定義結(jié)構(gòu)數(shù)組。( 4) 以結(jié)構(gòu)化各個功能模塊,函數(shù)間的調(diào)用精簡整個函數(shù)。( 7) 設(shè)置循環(huán),實現(xiàn)多次查詢。( 6) 以冒泡方式比較大小排列出學生成績成績。( 7) 以讀一個打印一個的思想,實現(xiàn)顯示全部信息。(8) 以先判斷再打印的思想,來實現(xiàn)查找推免狀況。3.2、總思路文本讀取 +排序 +統(tǒng)計 +查詢可分為這樣幾個模塊:讀入文件模塊、剔除掛科或四級未過者模塊、全校成績排序模塊、識別院系模塊、外推模塊、識別班級(不包括外推者)模塊、內(nèi)推模塊、保存文件模塊。通過調(diào)用這些模塊來實

7、現(xiàn)題目要求的五大功能。3.3、圖示分析主菜單1. 按2. 按3.統(tǒng)4.統(tǒng)5.根6.根7. 退班 級專 業(yè)計 保計 全據(jù) 學據(jù) 姓出 程查 詢查 詢研 資校 獲號 查名 查序保 研保 研格 名得 外詢 個詢 個資 格信息額 最推 資人 保人 保信息多 班格 名研 信研 信級額息息顯示找到的信息四、各功能模塊及其運行結(jié)果4.1 、菜單和主函數(shù)將各個功能模塊設(shè)計成菜單的選項模式,先輸出在屏幕上,再獲取用戶的鍵盤輸入“v”,由“ v”的值進行一個多分枝選擇結(jié)構(gòu),調(diào)用相應的功能程序模塊?!驹创a】void main()【函數(shù)申明】char INPUT_sub4,INPUT_cla7; /char rec

8、_sub4,rec_cla7;/要輸入的專業(yè)號、班號用于識別專業(yè)號、班號char cInputString10;char v;load(a);sort(a);/ 讀取/ 剔除sort_1(b);/ 全校排名doprintf(nn);printf(/*歡迎使用保研信息查詢系統(tǒng) */nn);printf( 請選擇服務 - 1. 按班級查詢保研資格信息*/nn);printf(/*2.按專業(yè)查詢保研信息*/nn);printf(/*3.統(tǒng)計保研資格名額最多班級/nn);printf(/*4.統(tǒng)計全校獲得外推資格名額/nn);printf(/*5.根據(jù)學號查詢個人保研信息/nn);printf(/*6

9、.根據(jù)姓名查詢個人保研信息/nn);printf(/*7.退出程序 */nn);scanf(%d,&v);【獲取鍵盤輸入值v】getchar();【消除 scanf 對 getchar 的影響】switch(v)【switch多分支選擇結(jié)構(gòu)】【輸出功能菜單】case 1:printf(請輸入要查詢班級的院系編號,如072 *n);gets(INPUT_sub);printf(請輸入要查詢班級的班級編號,如072091n);gets(INPUT_cla);function_1(INPUT_sub,INPUT_cla,b); break; 【調(diào)用功能 01函數(shù)】case 2: 【調(diào)用功能 02函數(shù)

10、】default:break; while(v7);4.2 、基礎(chǔ)模塊4.2.1 、讀入文件函數(shù)這個函數(shù)是整個程序更的根本條件,由于一個學生的信息包含多種不同類型的信息且是一個整體,所以要將學生的信息建立一個結(jié)構(gòu)體,每個成員對應相應的變量類型,由于部分學生的學號第一位為0,所以將學號定義為字符串,名字為字符串, 成績是整型,其他都可以用字符型的數(shù)組,開始判定文件f1 是否存在,存在則執(zhí)行while 循環(huán),從 i=0讀入文件?!驹创a】int i=0;int load(struct student *a)FILE *fp1;if(fp1=fopen(f1.txt,r)=NULL) printf(

11、cannot open this filen);【判斷 f1 是否存在】【不存在的情況】return 0; while(!feof(fp1)【存在就直接執(zhí)行while循環(huán)】fscaf i+;return(i);【依次讀入文件】【返回最后一名學生的位置】4.2.2 、剔除掛科或四級未過者這個函數(shù)是將全校掛科或者四級未過者(即無資格推免的學生)從總名單中提剔除,進而方便接下來的成績排名工作,原理是將工作組a5000 中所有學生資料依次提取,通過判斷其中Fclass和 CET4對應的數(shù)字0/1, 來進行剔除, 并將有資格保研的學生資料存入工作組b5000中。【源代碼】int sort(struct

12、student *a)int j,k=0;for(j=0;ji;j+)if(aj.Fclass=0)&(aj.CET4=1) strcpy(bk.num,aj.num);【通過 for循環(huán)逐個篩選】【判斷是否掛科或CET4未通過】【將篩選后的學生放入b5000 】 i=k;return(i)【返回最后一名學生的位置】4.2.3 、全校排名函數(shù)這個函數(shù)是將工作組b5000 中的所有學生按成績排名,其原理為 “冒泡法” 排序,通過 for循環(huán)將學生按成績由高到低的順序排號好?!驹创a】void sort_1(struct student_1 *b)int j,k=0;float score_j,s

13、core_k;struct student_1 temp;for(j=0;ji-1;j+)score_j=(float)(bj.score_avr)*0.6+(bj.bonus_sci)*0.3+(bj.bonus_soc)*0.1);【計算綜合成績】for(k=j+1;ki;k+)【冒泡法按成績排序】score_k=(float)(bk.score_avr)*0.6+(bk.bonus_sci)*0.3+(bk.bonus_soc) *0.1);if(score_jscore_k) temp=bj;bj=bk;bk=temp; 4.2.4 、識別院系這個函數(shù)是在已按成績完成排序的學生中找到所

14、需學院的學生,其原理為;首先利用 strncpy語句將學生學號的前三位拷貝到一個臨時定義的字符串數(shù)組中,并用 strcmp語句將其與所需學院的編號對比,符合條件者存入工作組sub2000 中,通過for循環(huán)逐個挑選?!驹创a】int devide_1(struct student_1 *b,struct student_1 *sub,char INPUT_sub)int j,r=0;int v;for(j=0;ji;j+) strncpy(rec_sub,bj.num,3);【學生學號的前三位拷貝到rec_sub 】if(strcmp(rec_sub,INPUT_sub)=0)【將 rec_s

15、ub 與所需學院編號比較】subr+=bj;【符合條件者存入工作組sub500 中】return r;【返回最后一名學生的位置】4.2.5 、外推模塊這個函數(shù)是在已經(jīng)識別出的學院的學生中按2%的比例確定外推名額,并將外推者資料除存入工作組struct student_1 suc_out800中,其原理為將“學院總?cè)藬?shù)”*2% 四舍五入后得到該學院外推總?cè)藬?shù)j ,然后再將sub2000 中的前 j 名學生選出即為外推者,并存入工作組suc_out800?!驹创a】int success_out(struct student_1 *sub,int num)int j,k=0;j=(int)(num

16、)*0.2+5)/10);if (0=j)return 0; for(k=0;kj;k+)suc_outk=subk;suc_outk.status=2; 【四舍五入】【如果某學院人數(shù)太少則無外推者】【將學院前j 名學生選出】【選出外推者】return k;【返回最后一名學生是位置】4.2.6 、識別班級(不包括外推)這個函數(shù)是在同院系除去外推者的學生中找出所需班級的學生,其原理與上述2.4 識別院系相似,再次不贅述?!驹创a】 int j,k=0;for(j=numout;jnumsub;j+)strncpy(rec_cla,subj.num,6); if(strcmp(rec_cla,IN

17、PUT_cla)=0) clak+=subj; 【學生學號的前6 位拷貝到rec_cla 】【將 rec_cla與所需班級編號比較】【將符合條件者存入cla1000】return k;【返回最后一名學生的位置】4.2.7 、內(nèi)推模塊這個函數(shù)是在已經(jīng)識別班級中除去外推者按15%的名額實施內(nèi)推, 其原理與上述2.5 外推模塊相似,再次不贅述?!驹创a】int success_in(struct student_1 *cla,int numcla)int j,k;j=(int)(numcla)*1.5+5)/10;【四舍五入】for(k=0;kj;k+) suc_ink=clak; return k

18、; 4.3. 功能函數(shù)4.3.1 按班級查詢保研資格信息原理:根據(jù)輸入的學院、班級編號利用上述基礎(chǔ)模塊實現(xiàn)題目要求功能,依次輸出所查班級的外推者和內(nèi)推者名單?!驹创a】void function_1(char INPUTsub,char INPUT_cla,struct student_1 *b) int j=0,k=0,m;int CountSub;/學院總數(shù)int CountClass;/班級總數(shù)int CountOut;/學院外推總數(shù)int CountIn;/班級內(nèi)推總數(shù)CountSub=devide_1(b,sub,INPUTsub);/識別院系CountOut=success_out

19、(sub,CountSub);/確定外推名額CountClass=devide_2(sub,CountSub,CountOut,INPUT_cla); /識別班級CountIn=success_in(cla,CountClass);/確定內(nèi)推名額j=CountOut;/外推總數(shù)k=CountIn;/班級內(nèi)推總數(shù)printffor(m=0;mj;m+)strncpy(rec_cla,suc_outm.num,6);/ 輸出本班外推者if(strcmp(rec_cla,INPUT_cla)=0)printfprintf(輸出本班內(nèi)推者for(m=0;mk;m+)n);/輸出內(nèi)推者printf4.3

20、.2 按專業(yè)查詢保研信息原理:根據(jù)輸入的學院、專業(yè)編號利用上述基礎(chǔ)模塊實現(xiàn)題目要求功能,通過 for循環(huán)找出要查專業(yè)所有班級的保研情況?!驹创a】void function_2(char INPUTsub,struct student_1 *b)char AllClass7; int i;int j=0,k=0,m;int CountSub;/學院總數(shù)int CountClass;/班級總數(shù)int CountOut;/學院外推總數(shù)int CountIn;/班級內(nèi)推總數(shù)CountSub=devide_1(b,sub,INPUTsub);/ 識別院系CountOut=success_out(sub

21、,CountSub);/確定外推名額j=CountOut;/外推總數(shù)printf(/*輸出專業(yè)保研名單 */n);for(m=0;mj;m+)/輸出專業(yè)外推者printfprintf(輸出專業(yè)內(nèi)推者 n);/輸出專業(yè)內(nèi)推者for (i=0;i10;i+)/按班級循環(huán)依次輸出for(m=0;mk;m+)/ 輸出內(nèi)推者Printf4.3.3 統(tǒng)計保研資格名額最多班級原理:通過for循環(huán)找出要查專業(yè)所有班級的保研情況存入工作組中,利用冒泡法按保研人數(shù)排名并找出人數(shù)最多的班級。【源代碼】void function_3()char AllClass7;char AllSub4;int j=0,k=0,m

22、;int i=0;int l;int CountSub;/學院總數(shù)int CountClass;/班級總數(shù)int CountOut;/學院外推總數(shù)int CountIn;/班級內(nèi)推總數(shù)int CountClassout=0;/班級外推總數(shù)int CountClassAll;/班級保研總數(shù)int SchoolNO;int ClassNO;int max=0;int number=0;AllClass6=0;for (SchoolNO=0;SchoolNO999;SchoolNO+) AllSub0=AllClass0=(SchoolNO/100)+48;AllSub1=AllClass1=(Sc

23、hoolNO/10)%10)+48;AllSub2=AllClass2=(SchoolNO%10)+48;AllSub3=0;AllClass3=0+48;AllClass4=9+48;for (ClassNO=0;ClassNO9;ClassNO+)AllClass5=ClassNO+48;CountSub=devide_1(b,sub,AllSub); CountOut=success_out(sub,CountSub); CountClass=devide_2(sub,CountSub,CountOut,AllClass); CountIn=success_in(cla,CountCla

24、ss); j=CountOut;/ 識別院系/ 確定外推名額識別班級/ 確定內(nèi)推名額/ 外推總數(shù)for(m=0;mmax)max=CountClassAll;number=l;Printf 4.3.4統(tǒng)計全校獲得外推資格名額(含存儲文件的程序)原理:與原理3.3 相似【源代碼】void function_4()char AllClass7;char AllSub4;int j=0,k=0,m;int i=0;int l;int CountSub;/學院總數(shù)int CountClass;/班級總數(shù)int CountOut;/學院外推總數(shù)int CountIn;/班級內(nèi)推總數(shù)int CountCl

25、assout=0;/班級外推總數(shù)int CountClassAll;/班級保研總數(shù)int SchoolNO;int ClassNO;int max=0;int number=0;FILE *fp;FILE *fp3;if(fp=fopen(f2.txt,w)=NULL)printf(File open error.n); exit(0); if(fp3=fopen(f3.txt,w)=NULL)printf(File open error.n); exit(0); AllClass6=0;for (SchoolNO=0;SchoolNO999;SchoolNO+)AllSub0=AllClas

26、s0=(SchoolNO/100)+48; AllSub1=AllClass1=(SchoolNO/10)%10)+48; AllSub2=AllClass2=(SchoolNO%10)+48;AllSub3=0; AllClass3=0+48; AllClass4=9+48;for (ClassNO=0;ClassNO9;ClassNO+)AllClass5=ClassNO+48;CountSub=devide_1(b,sub,AllSub);CountOut=success_out(sub,CountSub);CountClass=devide_2(sub,CountSub,CountOu

27、t,AllClass);CountIn=success_in(cla,CountClass);for(m=0;mCountIn;m+)/ 識別院系/ 確定外推名額識別班級/ 確定內(nèi)推名額fprintf for(m=0;mCountOut;m+)p rintffprintf(fprintf( fclose(fp); fclose(fp3);4.3.5根據(jù)學號或姓名查詢個人保研信息原理:利用2 中的基礎(chǔ)模塊,并通過for循環(huán)實現(xiàn)查詢功能【源代碼】void function_5(char INPUTid,int ntype)struct student_1 SUCall5000;char AllCl

28、ass7;char AllSub4;int j=0,k=0,m;int i=0;int l;int CountSub;int CountClass;int CountOut;int CountIn;int CountClassout=0;int CountClassAll;int SchoolNO;int ClassNO;int nlookup=0;AllClass6=0;for (SchoolNO=0;SchoolNO999;SchoolNO+)/學院總數(shù)/班級總數(shù)/學院外推總數(shù)/班級內(nèi)推總數(shù)/班級外推總數(shù)/班級保研總數(shù)AllSub0=AllClass0=(SchoolNO/100)+48;

29、AllSub1=AllClass1=(SchoolNO/10)%10)+48;AllSub2=AllClass2=(SchoolNO%10)+48; AllSub3=0;AllClass3=0+48; AllClass4=9+48;for (ClassNO=0;ClassNO9;ClassNO+)AllClass5=ClassNO+48;CountSub=devide_1(b,sub,AllSub); CountOut=success_out(sub,CountSub); CountClass=devide_2(sub,CountSub,CountOut,AllClass); CountIn=

30、success_in(cla,CountClass);/ 識別院系/ 確定外推名額識別班級/ 確定內(nèi)推名額for(m=0;mCountIn;m+)SUCalli+=suc_inm; for(m=0;mCountOut;m+)SUCalli+=suc_outm;for(m=0;mi;m+)if (0=ntype)/按學號查詢 if(strcmp(INPUTid,SUCallm.num)=0)printfif (1=SUCallm.status) printf(if (2=SUCallm.status) printf(內(nèi)推 n);外推 n);nlookup=1;Else/按姓名查詢if(strcm

31、p(INPUTid,SUC)=0) printf( 學號: %s 姓名: %s 平均成績: %d 科技活動: %d 社會活動: %d ,SUCallm.num,SUC,SUCallm.score_avr,SUCallm.bonus_sci, SUCallm.bonus_soc);if (1=SUCallm.status) if (2=SUCallm.status) printf(printf(內(nèi)推 n);外推 n);nlookup=1;if (0=nlookup)printf(該考生沒有保研資格n);五 . 課設(shè)總結(jié)為期 4 天的課程設(shè)計即將結(jié)束,在這幾天里

32、,我收獲頗多。首先,我確實感受到課程設(shè)計的重要性。 課程設(shè)計是培養(yǎng)學生綜合運用所學知識 , 發(fā)現(xiàn) , 提出 , 分析和解決實際問題 , 鍛煉實踐能力的重要環(huán)節(jié) , 是對學生實際工作能力的具體訓練和考察過程 . 隨著科學技術(shù)發(fā)展的日新日異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握計算機開發(fā)技術(shù)是十分重要的。但是,我們光學習了課本知識還遠遠不能勝任復雜多變的實際應用情況。實踐是對所學知識是否掌握的最好檢測依據(jù)。其次, 我體會到了編程工作的艱辛。 從拿到題目, 到構(gòu)思整體框架,然后分析所需要完成的功能, 之后將其分為不同的模塊, 還要考慮到各模塊之間的連接。 這些工

33、作完成后就是編寫代碼。 編寫代碼的過程需要細心謹慎, 一點極小的錯誤就有可能使整個程序不能實現(xiàn)預定的功能, 嚴重的甚至會引起系統(tǒng)癱瘓。再之后, 就是復雜的調(diào)試過程,如果前面的代碼寫的不好, 很有可能出現(xiàn)幾十個甚至上百個錯誤,修改錯誤的過程是一個非常復雜的過程,有的大程序好幾個星期找不出來錯誤從而嚴重影響編程進度。再次,我也充分體會到編程方法和規(guī)范化編程的重要性。程序的可讀性、 可維護性以及穩(wěn)定性將極大的影響系統(tǒng)的使用。另外,調(diào)試的技巧和良好的人機界面也對系統(tǒng)的編寫和運行產(chǎn)生很大的影響。最后, 此次課程設(shè)計讓我感覺到人外有人,山外有山,一個人的能力畢竟是有限的,我們要善于在不懂的時候向懂得比較多

34、的老師、同學們請教。 在請教的過程中,不僅學會了自己不懂的知識, 而且還加強了和他們的交流溝通。未來的編程工作量及其大,光靠自己的力量是不可能完成的,我們要從現(xiàn)在就開始培養(yǎng)我們的團隊合作精神,充分發(fā)揮大家的長處,來完成自己不可能完成的工作。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在老師的辛勤指導下,終于迎刃而解。同時,在老師的身上我學得到很多實用的知識,在次我表示感謝!同時,對給過我?guī)椭乃型瑢W和各位指導老師再次表示忠心的感謝!六 . 附錄(源代碼)#include#include#include#includestruct studentchar num9;char n

35、ame10;int score_avr;int bonus_sci;int bonus_soc;int Fclass;int CET4;struct student_1char num9;char name10;int score_avr;int bonus_sci;int bonus_soc;int Fclass;int CET4;int status ;;struct classALLNOchar classname7;int AllNO;char INPUT_sub4,INPUT_cla7; /要輸入的專業(yè)號、班號char rec_sub4,rec_cla7;/用于識別專業(yè)號、班號str

36、uct classALLNO classNOAll5000;struct student a5000;struct student_1 b5000;struct student_1 sub2000;/一個專業(yè)的工作組struct student_1 cla1000;/一個班級的工作組struct student_1 suc_out800;/一個專業(yè)外推名額工作組struct student_1 suc_in2000;/一個班內(nèi)推名額工作組int num_sub,num_cla;/一個專業(yè)、班級的人數(shù)int num_out;/一個專業(yè)外推人數(shù)int num_in;/一個班級內(nèi)推人數(shù)/*讀取文件

37、*/int i=0; /*將 i設(shè)置成為全局變量,以便于其他子函數(shù)直接使用*/int load(struct student *a)FILE *fp1;if(fp1=fopen(f1.txt,r)=NULL)printf(cannot open this filen);return 0;while(!feof(fp1)fscanf(fp1,%s %s %d %d %d %d %d,ai.num,,&ai.score_avr, &ai.bonus_sci,&ai.bonus_soc,&ai.Fclass,&ai.CET4);i+;return(i);/*剔除掛科或四級未過者*/in

38、t sort(struct student *a)int j,k=0;for(j=0;ji;j+)if(aj.Fclass=0)&(aj.CET4=1)strcpy(bk.num,aj.num); strcpy(,);bk.score_avr=aj.score_avr; bk.bonus_sci=aj.bonus_sci; bk.bonus_soc=aj.bonus_soc; bk.Fclass=aj.Fclass; bk.CET4=aj.CET4; bk+.status=1; i=k;return(i);/*全校排名 */void sort_1(struct st

39、udent_1 *b)int j,k=0; float score_j,score_k; struct student_1 temp; for(j=0;ji-1;j+) score_j=(float)(bj.score_avr)*0.6+(bj.bonus_sci)*0.3+(bj.bonu s_soc)*0.1);/ 計算綜合成績for(k=j+1;ki;k+) score_k=(float)(bk.score_avr)*0.6+(bk.bonus_sci)*0.3+(bk.bon us_soc)*0.1);if(score_jscore_k)temp=bj;bj=bk;bk=temp;/*識別院系 */int devide_1(struct student_1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論