![C語言課程設(shè)計(jì)報(bào)告-保研名額查詢.doc_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/9/35d068ea-bf1f-44f3-826c-f17ab8ff3d17/35d068ea-bf1f-44f3-826c-f17ab8ff3d171.gif)
![C語言課程設(shè)計(jì)報(bào)告-保研名額查詢.doc_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/9/35d068ea-bf1f-44f3-826c-f17ab8ff3d17/35d068ea-bf1f-44f3-826c-f17ab8ff3d172.gif)
![C語言課程設(shè)計(jì)報(bào)告-保研名額查詢.doc_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/9/35d068ea-bf1f-44f3-826c-f17ab8ff3d17/35d068ea-bf1f-44f3-826c-f17ab8ff3d173.gif)
![C語言課程設(shè)計(jì)報(bào)告-保研名額查詢.doc_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/9/35d068ea-bf1f-44f3-826c-f17ab8ff3d17/35d068ea-bf1f-44f3-826c-f17ab8ff3d174.gif)
![C語言課程設(shè)計(jì)報(bào)告-保研名額查詢.doc_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/9/35d068ea-bf1f-44f3-826c-f17ab8ff3d17/35d068ea-bf1f-44f3-826c-f17ab8ff3d175.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中國(guó)地質(zhì)大學(xué) ( 武漢 )C語言課程設(shè)計(jì)報(bào)告書姓名:專業(yè):電子信息工程班級(jí)學(xué)號(hào):指導(dǎo)老師:目錄一、課設(shè)題目 *1二、題目分析 *2三、設(shè)計(jì)思路 *23.1、設(shè)計(jì)思想 *23.2、總思路 *23.3、圖示分析 *3四、各功能模塊及其運(yùn)行結(jié)果 *34.1 、菜單和主函數(shù) *34.2 、基礎(chǔ)模塊 *44.3 、功能函數(shù) *7五課設(shè)總結(jié) * 12六附錄(源代碼) *14一、 課設(shè)題目題目:研究生推免 (保研 )排名統(tǒng)計(jì)程序具體內(nèi)容:已知文本文件f1.txt中存放了某校應(yīng)屆大四學(xué)生的相關(guān)信息(不超過5000 人),具體數(shù)據(jù)及存放格式為:每行存放一個(gè)學(xué)生的數(shù)據(jù),共有7 項(xiàng),依次為:學(xué)號(hào)、姓名、專業(yè)必修課平
2、均成績(jī)、科技活動(dòng)獎(jiǎng)勵(lì)加分、社會(huì)活動(dòng)獎(jiǎng)勵(lì)加分、是否有專業(yè)必修課掛科記錄、是否通過大學(xué)英語四級(jí)。其中,學(xué)號(hào)為 8 位數(shù)字字符, 其中前 2 位數(shù)字表示學(xué)生所在的學(xué)院,第 3 位數(shù)字表示學(xué)生的專業(yè),第4-5 位數(shù)字表示學(xué)生的年級(jí),統(tǒng)一為09,第 6 位數(shù)字表示學(xué)生所在年級(jí)同專業(yè)內(nèi)的編號(hào), 即所稱的班號(hào), 第 7-8 位數(shù)字表示學(xué)生班級(jí)內(nèi)的序號(hào),如學(xué)號(hào) 07509123 表示,機(jī)電學(xué)院( 07)通信工程專業(yè)(5) 09 級(jí)( 09) 1 班( 1)第 23 號(hào)( 23)學(xué)生;姓名為長(zhǎng)度不超過 10 個(gè)的字符;專業(yè)必修課平均成果、 科技活動(dòng)獎(jiǎng)勵(lì)加分、 社會(huì)活動(dòng)獎(jiǎng)勵(lì)加分均為0-100以內(nèi)的整數(shù) (含 0
3、和 100);是否有專業(yè)必修課掛科記錄、 是否通過大學(xué)英語四級(jí)均為0 或 1兩個(gè)整型數(shù)字, 為 1 分別表示有專業(yè)必修課掛科記錄或通過大學(xué)英語四級(jí),為 0 分別表示沒有專業(yè)必修課掛科記錄或沒有通過大學(xué)英語四級(jí)。該校的保研政策是: 必須沒有專業(yè)必修課掛科記錄且通過大學(xué)英語四級(jí)考試,在此前提下,劃分推免研究生指標(biāo)。外推指標(biāo)按專業(yè)排名,給予2%的指標(biāo),小數(shù)部分四舍五入。內(nèi)推指標(biāo)按班級(jí)排名,給予15的指標(biāo),小數(shù)部分四舍五入。如果某班有外推指標(biāo),外推指標(biāo)不占內(nèi)推指標(biāo)。排名計(jì)算方法:專業(yè)必修課成績(jī)占60%,科技活動(dòng)獎(jiǎng)勵(lì)占30,社會(huì)活動(dòng)獎(jiǎng)勵(lì)占 10。請(qǐng)編寫程序,讀出文件f1.txt 中的內(nèi)容,再按保研政策確
4、定每個(gè)人的保研狀況(0 表示沒有獲得推免資格, 1 表示獲得內(nèi)推資格, 2 表示獲得外推資格 ) 并存入 f2.txt中,并實(shí)現(xiàn)以下功能:(1) 能夠統(tǒng)計(jì)某個(gè)班所有獲得保研資格的學(xué)生信息。(2) 能夠統(tǒng)計(jì)某個(gè)專業(yè)所有獲得保研資格的學(xué)生信息。(3) 能夠統(tǒng)計(jì)哪個(gè)班獲得的保研資格的學(xué)生人數(shù)最多。(4) 能夠統(tǒng)計(jì)全校所有獲得外推資格的學(xué)生名單,其結(jié)果即可屏幕顯示, 也可存入文件。(5) 學(xué)生可以根據(jù)姓名和學(xué)號(hào)查詢自己是否獲得保研資格。說明:系統(tǒng)程序要有界面存入文件f2.txt中的數(shù)據(jù),每行存一個(gè)學(xué)生的數(shù)據(jù),每行之間的不同信息用空格分隔。二、 題目分析該題目要求設(shè)計(jì)一個(gè)研究生推免 ( 保研 ) 排名統(tǒng)
5、計(jì)查詢系統(tǒng),導(dǎo)入含有 5000 個(gè)考生信息的 txt 文本后,能實(shí)現(xiàn)統(tǒng)計(jì)某個(gè)班所有獲得保研資格的學(xué)生信息; 能夠統(tǒng)計(jì)某個(gè)專業(yè)所有獲得保研資格的學(xué)生信息; 能夠統(tǒng)計(jì)哪個(gè)班獲得的保研資格的學(xué)生人數(shù)最多; 能夠統(tǒng)計(jì)全校所有獲得外推資格的學(xué)生名單, 其結(jié)果即可屏幕顯示, 也可存入文件; 學(xué)生根據(jù)姓名和學(xué)號(hào)查詢自己是否獲得保研資格的功能。 要實(shí)現(xiàn)這么多功能, 就需要一個(gè)可供選擇的主菜單功能表,每個(gè)菜單都要鏈接到相應(yīng)的程序?qū)崿F(xiàn)相應(yīng)功能,所以,整體就需要建立一個(gè)多分支選擇結(jié)構(gòu)。除此之外, 為了方便用戶查詢, 還要設(shè)計(jì)一個(gè)使考生只要不關(guān)閉程序或者按指定輸入而結(jié)束程序就能一直查詢下去的功能。三 設(shè)計(jì)思路3.1、
6、設(shè)計(jì)思想( 1) 將全局變量和局部變量結(jié)合使用,靈活運(yùn)用。( 2) 巧用指針,簡(jiǎn)化數(shù)據(jù)處理難度。( 3) 以全局結(jié)構(gòu)來隨時(shí)定義結(jié)構(gòu)數(shù)組。( 4) 以結(jié)構(gòu)化各個(gè)功能模塊,函數(shù)間的調(diào)用精簡(jiǎn)整個(gè)函數(shù)。( 7) 設(shè)置循環(huán),實(shí)現(xiàn)多次查詢。( 6) 以冒泡方式比較大小排列出學(xué)生成績(jī)成績(jī)。( 7) 以讀一個(gè)打印一個(gè)的思想,實(shí)現(xiàn)顯示全部信息。(8) 以先判斷再打印的思想,來實(shí)現(xiàn)查找推免狀況。3.2、總思路文本讀取 +排序 +統(tǒng)計(jì) +查詢可分為這樣幾個(gè)模塊:讀入文件模塊、剔除掛科或四級(jí)未過者模塊、全校成績(jī)排序模塊、識(shí)別院系模塊、外推模塊、識(shí)別班級(jí)(不包括外推者)模塊、內(nèi)推模塊、保存文件模塊。通過調(diào)用這些模塊來實(shí)
7、現(xiàn)題目要求的五大功能。3.3、圖示分析主菜單1. 按2. 按3.統(tǒng)4.統(tǒng)5.根6.根7. 退班 級(jí)專 業(yè)計(jì) 保計(jì) 全據(jù) 學(xué)據(jù) 姓出 程查 詢查 詢研 資校 獲號(hào) 查名 查序保 研保 研格 名得 外詢 個(gè)詢 個(gè)資 格信息額 最推 資人 保人 保信息多 班格 名研 信研 信級(jí)額息息顯示找到的信息四、各功能模塊及其運(yùn)行結(jié)果4.1 、菜單和主函數(shù)將各個(gè)功能模塊設(shè)計(jì)成菜單的選項(xiàng)模式,先輸出在屏幕上,再獲取用戶的鍵盤輸入“v”,由“ v”的值進(jìn)行一個(gè)多分枝選擇結(jié)構(gòu),調(diào)用相應(yīng)的功能程序模塊?!驹创a】void main()【函數(shù)申明】char INPUT_sub4,INPUT_cla7; /char rec
8、_sub4,rec_cla7;/要輸入的專業(yè)號(hào)、班號(hào)用于識(shí)別專業(yè)號(hào)、班號(hào)char cInputString10;char v;load(a);sort(a);/ 讀取/ 剔除sort_1(b);/ 全校排名doprintf(nn);printf(/*歡迎使用保研信息查詢系統(tǒng) */nn);printf( 請(qǐng)選擇服務(wù) - 1. 按班級(jí)查詢保研資格信息*/nn);printf(/*2.按專業(yè)查詢保研信息*/nn);printf(/*3.統(tǒng)計(jì)保研資格名額最多班級(jí)/nn);printf(/*4.統(tǒng)計(jì)全校獲得外推資格名額/nn);printf(/*5.根據(jù)學(xué)號(hào)查詢個(gè)人保研信息/nn);printf(/*6
9、.根據(jù)姓名查詢個(gè)人保研信息/nn);printf(/*7.退出程序 */nn);scanf(%d,&v);【獲取鍵盤輸入值v】getchar();【消除 scanf 對(duì) getchar 的影響】switch(v)【switch多分支選擇結(jié)構(gòu)】【輸出功能菜單】case 1:printf(請(qǐng)輸入要查詢班級(jí)的院系編號(hào),如072 *n);gets(INPUT_sub);printf(請(qǐng)輸入要查詢班級(jí)的班級(jí)編號(hào),如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ù)這個(gè)函數(shù)是整個(gè)程序更的根本條件,由于一個(gè)學(xué)生的信息包含多種不同類型的信息且是一個(gè)整體,所以要將學(xué)生的信息建立一個(gè)結(jié)構(gòu)體,每個(gè)成員對(duì)應(yīng)相應(yīng)的變量類型,由于部分學(xué)生的學(xué)號(hào)第一位為0,所以將學(xué)號(hào)定義為字符串,名字為字符串, 成績(jī)是整型,其他都可以用字符型的數(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);【依次讀入文件】【返回最后一名學(xué)生的位置】4.2.2 、剔除掛科或四級(jí)未過者這個(gè)函數(shù)是將全校掛科或者四級(jí)未過者(即無資格推免的學(xué)生)從總名單中提剔除,進(jìn)而方便接下來的成績(jī)排名工作,原理是將工作組a5000 中所有學(xué)生資料依次提取,通過判斷其中Fclass和 CET4對(duì)應(yīng)的數(shù)字0/1, 來進(jìn)行剔除, 并將有資格保研的學(xué)生資料存入工作組b5000中?!驹创a】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)逐個(gè)篩選】【判斷是否掛科或CET4未通過】【將篩選后的學(xué)生放入b5000 】 i=k;return(i)【返回最后一名學(xué)生的位置】4.2.3 、全校排名函數(shù)這個(gè)函數(shù)是將工作組b5000 中的所有學(xué)生按成績(jī)排名,其原理為 “冒泡法” 排序,通過 for循環(huán)將學(xué)生按成績(jī)由高到低的順序排號(hào)好?!驹创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);【計(jì)算綜合成績(jī)】for(k=j+1;ki;k+)【冒泡法按成績(jī)排序】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í)別院系這個(gè)函數(shù)是在已按成績(jī)完成排序的學(xué)生中找到所
14、需學(xué)院的學(xué)生,其原理為;首先利用 strncpy語句將學(xué)生學(xué)號(hào)的前三位拷貝到一個(gè)臨時(shí)定義的字符串?dāng)?shù)組中,并用 strcmp語句將其與所需學(xué)院的編號(hào)對(duì)比,符合條件者存入工作組sub2000 中,通過for循環(huán)逐個(gè)挑選。【源代碼】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);【學(xué)生學(xué)號(hào)的前三位拷貝到rec_sub 】if(strcmp(rec_sub,INPUT_sub)=0)【將 rec_s
15、ub 與所需學(xué)院編號(hào)比較】subr+=bj;【符合條件者存入工作組sub500 中】return r;【返回最后一名學(xué)生的位置】4.2.5 、外推模塊這個(gè)函數(shù)是在已經(jīng)識(shí)別出的學(xué)院的學(xué)生中按2%的比例確定外推名額,并將外推者資料除存入工作組struct student_1 suc_out800中,其原理為將“學(xué)院總?cè)藬?shù)”*2% 四舍五入后得到該學(xué)院外推總?cè)藬?shù)j ,然后再將sub2000 中的前 j 名學(xué)生選出即為外推者,并存入工作組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; 【四舍五入】【如果某學(xué)院人數(shù)太少則無外推者】【將學(xué)院前j 名學(xué)生選出】【選出外推者】return k;【返回最后一名學(xué)生是位置】4.2.6 、識(shí)別班級(jí)(不包括外推)這個(gè)函數(shù)是在同院系除去外推者的學(xué)生中找出所需班級(jí)的學(xué)生,其原理與上述2.4 識(shí)別院系相似,再次不贅述。【源代碼】 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; 【學(xué)生學(xué)號(hào)的前6 位拷貝到rec_cla 】【將 rec_cla與所需班級(jí)編號(hào)比較】【將符合條件者存入cla1000】return k;【返回最后一名學(xué)生的位置】4.2.7 、內(nèi)推模塊這個(gè)函數(shù)是在已經(jīng)識(shí)別班級(jí)中除去外推者按15%的名額實(shí)施內(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í)查詢保研資格信息原理:根據(jù)輸入的學(xué)院、班級(jí)編號(hào)利用上述基礎(chǔ)模塊實(shí)現(xiàn)題目要求功能,依次輸出所查班級(jí)的外推者和內(nèi)推者名單?!驹创a】void function_1(char INPUTsub,char INPUT_cla,struct student_1 *b) int j=0,k=0,m;int CountSub;/學(xué)院總數(shù)int CountClass;/班級(jí)總數(shù)int CountOut;/學(xué)院外推總數(shù)int CountIn;/班級(jí)內(nèi)推總數(shù)CountSub=devide_1(b,sub,INPUTsub);/識(shí)別院系CountOut=success_out
19、(sub,CountSub);/確定外推名額CountClass=devide_2(sub,CountSub,CountOut,INPUT_cla); /識(shí)別班級(jí)CountIn=success_in(cla,CountClass);/確定內(nèi)推名額j=CountOut;/外推總數(shù)k=CountIn;/班級(jí)內(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ù)輸入的學(xué)院、專業(yè)編號(hào)利用上述基礎(chǔ)模塊實(shí)現(xiàn)題目要求功能,通過 for循環(huán)找出要查專業(yè)所有班級(jí)的保研情況?!驹创a】void function_2(char INPUTsub,struct student_1 *b)char AllClass7; int i;int j=0,k=0,m;int CountSub;/學(xué)院總數(shù)int CountClass;/班級(jí)總數(shù)int CountOut;/學(xué)院外推總數(shù)int CountIn;/班級(jí)內(nèi)推總數(shù)CountSub=devide_1(b,sub,INPUTsub);/ 識(shí)別院系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+)/按班級(jí)循環(huán)依次輸出for(m=0;mk;m+)/ 輸出內(nèi)推者Printf4.3.3 統(tǒng)計(jì)保研資格名額最多班級(jí)原理:通過for循環(huán)找出要查專業(yè)所有班級(jí)的保研情況存入工作組中,利用冒泡法按保研人數(shù)排名并找出人數(shù)最多的班級(jí)?!驹创a】void function_3()char AllClass7;char AllSub4;int j=0,k=0,m
22、;int i=0;int l;int CountSub;/學(xué)院總數(shù)int CountClass;/班級(jí)總數(shù)int CountOut;/學(xué)院外推總數(shù)int CountIn;/班級(jí)內(nèi)推總數(shù)int CountClassout=0;/班級(jí)外推總數(shù)int CountClassAll;/班級(jí)保研總數(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;/ 識(shí)別院系/ 確定外推名額識(shí)別班級(jí)/ 確定內(nèi)推名額/ 外推總數(shù)for(m=0;mmax)max=CountClassAll;number=l;Printf 4.3.4統(tǒng)計(jì)全校獲得外推資格名額(含存儲(chǔ)文件的程序)原理:與原理3.3 相似【源代碼】void function_4()char AllClass7;char AllSub4;int j=0,k=0,m;int i=0;int l;int CountSub;/學(xué)院總數(shù)int CountClass;/班級(jí)總數(shù)int CountOut;/學(xué)院外推總數(shù)int CountIn;/班級(jí)內(nèi)推總數(shù)int CountCl
25、assout=0;/班級(jí)外推總數(shù)int CountClassAll;/班級(jí)保研總數(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+)/ 識(shí)別院系/ 確定外推名額識(shí)別班級(jí)/ 確定內(nèi)推名額fprintf for(m=0;mCountOut;m+)p rintffprintf(fprintf( fclose(fp); fclose(fp3);4.3.5根據(jù)學(xué)號(hào)或姓名查詢個(gè)人保研信息原理:利用2 中的基礎(chǔ)模塊,并通過for循環(huán)實(shí)現(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+)/學(xué)院總數(shù)/班級(jí)總數(shù)/學(xué)院外推總數(shù)/班級(jí)內(nèi)推總數(shù)/班級(jí)外推總數(shù)/班級(jí)保研總數(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);/ 識(shí)別院系/ 確定外推名額識(shí)別班級(jí)/ 確定內(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)/按學(xué)號(hào)查詢 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( 學(xué)號(hào): %s 姓名: %s 平均成績(jī): %d 科技活動(dòng): %d 社會(huì)活動(dòng): %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è)計(jì)即將結(jié)束,在這幾天里
32、,我收獲頗多。首先,我確實(shí)感受到課程設(shè)計(jì)的重要性。 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí) , 發(fā)現(xiàn) , 提出 , 分析和解決實(shí)際問題 , 鍛煉實(shí)踐能力的重要環(huán)節(jié) , 是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程 . 隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握計(jì)算機(jī)開發(fā)技術(shù)是十分重要的。但是,我們光學(xué)習(xí)了課本知識(shí)還遠(yuǎn)遠(yuǎn)不能勝任復(fù)雜多變的實(shí)際應(yīng)用情況。實(shí)踐是對(duì)所學(xué)知識(shí)是否掌握的最好檢測(cè)依據(jù)。其次, 我體會(huì)到了編程工作的艱辛。 從拿到題目, 到構(gòu)思整體框架,然后分析所需要完成的功能, 之后將其分為不同的模塊, 還要考慮到各模塊之間的連接。 這些工
33、作完成后就是編寫代碼。 編寫代碼的過程需要細(xì)心謹(jǐn)慎, 一點(diǎn)極小的錯(cuò)誤就有可能使整個(gè)程序不能實(shí)現(xiàn)預(yù)定的功能, 嚴(yán)重的甚至?xí)鹣到y(tǒng)癱瘓。再之后, 就是復(fù)雜的調(diào)試過程,如果前面的代碼寫的不好, 很有可能出現(xiàn)幾十個(gè)甚至上百個(gè)錯(cuò)誤,修改錯(cuò)誤的過程是一個(gè)非常復(fù)雜的過程,有的大程序好幾個(gè)星期找不出來錯(cuò)誤從而嚴(yán)重影響編程進(jìn)度。再次,我也充分體會(huì)到編程方法和規(guī)范化編程的重要性。程序的可讀性、 可維護(hù)性以及穩(wěn)定性將極大的影響系統(tǒng)的使用。另外,調(diào)試的技巧和良好的人機(jī)界面也對(duì)系統(tǒng)的編寫和運(yùn)行產(chǎn)生很大的影響。最后, 此次課程設(shè)計(jì)讓我感覺到人外有人,山外有山,一個(gè)人的能力畢竟是有限的,我們要善于在不懂的時(shí)候向懂得比較多
34、的老師、同學(xué)們請(qǐng)教。 在請(qǐng)教的過程中,不僅學(xué)會(huì)了自己不懂的知識(shí), 而且還加強(qiáng)了和他們的交流溝通。未來的編程工作量及其大,光靠自己的力量是不可能完成的,我們要從現(xiàn)在就開始培養(yǎng)我們的團(tuán)隊(duì)合作精神,充分發(fā)揮大家的長(zhǎng)處,來完成自己不可能完成的工作。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,最后在老師的辛勤指導(dǎo)下,終于迎刃而解。同時(shí),在老師的身上我學(xué)得到很多實(shí)用的知識(shí),在次我表示感謝!同時(shí),對(duì)給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝!六 . 附錄(源代碼)#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è)號(hào)、班號(hào)char rec_sub4,rec_cla7;/用于識(shí)別專業(yè)號(hào)、班號(hào)str
36、uct classALLNO classNOAll5000;struct student a5000;struct student_1 b5000;struct student_1 sub2000;/一個(gè)專業(yè)的工作組struct student_1 cla1000;/一個(gè)班級(jí)的工作組struct student_1 suc_out800;/一個(gè)專業(yè)外推名額工作組struct student_1 suc_in2000;/一個(gè)班內(nèi)推名額工作組int num_sub,num_cla;/一個(gè)專業(yè)、班級(jí)的人數(shù)int num_out;/一個(gè)專業(yè)外推人數(shù)int num_in;/一個(gè)班級(jí)內(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);/*剔除掛科或四級(jí)未過者*/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);/ 計(jì)算綜合成績(jī)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;/*識(shí)別院系 */int devide_1(struct student_1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/TS 23164:2025 EN Automation systems and integration - Core vocabulary for industrial data
- 【正版授權(quán)】 ISO 7434:2024 EN Fasteners - Slotted set screws with cone point
- 2025年度展覽場(chǎng)地租賃合同保證金與押金繳納細(xì)則
- 2025年涼果蜜餞合作協(xié)議書
- 2025年度智慧交通樞紐包工施工合同(智能交通系統(tǒng))
- 2025房地產(chǎn)股權(quán)并購(gòu)項(xiàng)目盡職調(diào)查及服務(wù)合同
- 2025年度智能家居標(biāo)準(zhǔn)私房買賣合同范文
- 增強(qiáng)知識(shí)管理的主管工作計(jì)劃
- 多元化班級(jí)文化的建設(shè)方法計(jì)劃
- 客戶投訴處理流程的總結(jié)與反思計(jì)劃
- 《2024版CSCO胰腺癌診療指南》更新要點(diǎn)
- 兒童福利機(jī)構(gòu)安全管理規(guī)范
- 鞋類制造過程的節(jié)能與減排
- 第1課 おじぎ 課件高中日語人教版第一冊(cè)-1
- ISO∕IEC 23894-2023 信息技術(shù) -人工智能 - 風(fēng)險(xiǎn)管理指南(雷澤佳譯-2024)
- 事前績(jī)效評(píng)估具體工作實(shí)施方案
- 六年級(jí)下冊(cè)語文第一單元測(cè)試卷 部編版(含答案)
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)新版
- 《研學(xué)旅行市場(chǎng)營(yíng)銷》課件-研學(xué)旅行市場(chǎng)營(yíng)銷之社群營(yíng)銷
- 醫(yī)學(xué)人體美學(xué)的測(cè)量和評(píng)估
- 艱難梭菌感染動(dòng)物模型的建立及其應(yīng)用評(píng)價(jià)
評(píng)論
0/150
提交評(píng)論