


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中國地質(zhì)大學(xué)(武漢)C語言課程設(shè)計(jì)報(bào)告書姓名:王友琪專業(yè):地質(zhì)學(xué)學(xué)號(hào):20131000518指導(dǎo)老師:王茂才課設(shè)題目簡(jiǎn)要介紹已知文本文件f1.txt中存放了報(bào)考某校研究生的考生相關(guān)信息(不超過5000人),具體數(shù)據(jù)及存放格式為:每行存放一個(gè)考生的數(shù)據(jù),數(shù)據(jù)之間用空格分隔,共有8項(xiàng),依次為:考號(hào)、姓名、報(bào)考專業(yè)編號(hào)、政治課筆試成績(jī)、英語課筆試成績(jī)、專業(yè)課一筆試成績(jī)、專業(yè)課二筆試成績(jī)、面試成績(jī)。文本文件f2.txt中存放了該校50個(gè)專業(yè)當(dāng)年的研究生招生計(jì)劃,具體數(shù)據(jù)及存放格式為:每行存放一個(gè)專業(yè)的數(shù)據(jù),數(shù)據(jù)之間用空格分隔,共有2項(xiàng),依次為:專業(yè)編號(hào)、專業(yè)招生計(jì)劃。其中,考號(hào)為5位數(shù)字字符;姓名為長(zhǎng)
2、度不超過10個(gè)的字符;報(bào)考專業(yè)編號(hào)為兩位數(shù)字字符,編號(hào)從01-50;政治課與英語課為0-100的整數(shù);兩門專業(yè)課為0-150的整數(shù);面試成績(jī)?yōu)?-100的整數(shù)。該校的研究生錄取標(biāo)準(zhǔn)及政策如下:錄取分?jǐn)?shù)線:根據(jù)專業(yè)錄取計(jì)劃,分專業(yè)劃定錄取分?jǐn)?shù)線。政治課及英語課,按全校錄取計(jì)劃的200%劃定錄取分?jǐn)?shù)線,若政治或英語課的錄取分?jǐn)?shù)線低于45分,按45分劃線;兩門專業(yè)課,按專業(yè)錄取計(jì)劃的150%劃定錄取分?jǐn)?shù)線,若專業(yè)課的錄取分?jǐn)?shù)線低于90分,按90分劃線;總分,按專業(yè)錄取計(jì)劃的150%劃定錄取分?jǐn)?shù)線,若總分的錄取線低于280分,按280分劃線。錄取基本條件:四門筆試課程及總分均通過錄取分?jǐn)?shù)線,面試成績(jī)及
3、格。錄取政策:在具備錄取基本條件的考生中,筆試成績(jī)占70%,面試成績(jī)占30%,綜合計(jì)算考生的總成績(jī),按專業(yè)排名從高到低錄取。請(qǐng)編寫程序,根據(jù)文件f1.txt及f2.txt中的數(shù)據(jù),劃定各個(gè)專業(yè)的錄取分?jǐn)?shù)線并存入f3.txt文件中。存放格式為:每行存放一個(gè)專業(yè)的錄取分?jǐn)?shù)線,數(shù)據(jù)之間用空格分隔,共有6項(xiàng),依次為:專業(yè)編號(hào)、政治課錄取分?jǐn)?shù)線、英語課錄取分?jǐn)?shù)線、專業(yè)課一錄取分?jǐn)?shù)線、專業(yè)課二錄取分?jǐn)?shù)二、總分錄取分?jǐn)?shù)線。根據(jù)f1.txt及f3.txt中的數(shù)據(jù),將被錄取考生的信息存入f4.txt文件中。存放格式為:每行存放一個(gè)被錄取的考生信息,數(shù)據(jù)之間用空格分隔,共有10項(xiàng),依次為:考號(hào)、姓名、報(bào)考專業(yè)、政
4、治課成績(jī)、英語課成績(jī)、專業(yè)課一成績(jī)、專業(yè)課二成績(jī)、總分、面試成績(jī)、專業(yè)排名。并實(shí)現(xiàn)以下功能:(1) 能夠統(tǒng)計(jì)沒有完成錄取計(jì)劃的所有專業(yè)信息。(2) 能夠統(tǒng)計(jì)錄取分?jǐn)?shù)線中有僅僅達(dá)標(biāo)(即公共課分?jǐn)?shù)線為45分,或者專業(yè)課分?jǐn)?shù)線為90分,或者總分為280分)的所有專業(yè)信息。(3) 能夠統(tǒng)計(jì)所有達(dá)到錄取分?jǐn)?shù)線,但因?yàn)槊嬖嚦煽?jī)不及格沒被錄取的考生信息。(4) 能夠根據(jù)專業(yè)信息查詢某個(gè)專業(yè)的實(shí)際錄取人數(shù)及所有錄取考生的信息。(5) 考生能夠根據(jù)自己的考號(hào)及姓名查詢自己的錄取結(jié)果,如果輸入的考號(hào)與姓名不匹配,禁止查詢,給出錯(cuò)誤提示。:、題目分析首先,文件一f1.txt和文件二f2.txt是題目需要的所有的數(shù)據(jù)
5、信息,一切處理都圍繞文件里的數(shù)據(jù)展開。文件一f1.txt中存放的是5000名考生的考號(hào)(學(xué)號(hào))、姓名、報(bào)考專業(yè)、政治課成績(jī)、英語課成績(jī)、專業(yè)課一成績(jī)、專業(yè)課二成績(jī)和面試成績(jī)共9項(xiàng)信息,每個(gè)人有且僅有一個(gè)考號(hào),且各不相同;文件二f2.txt存放的是該校50個(gè)專業(yè)當(dāng)年的研究生招生計(jì)劃,包括專業(yè)編號(hào)和計(jì)劃招生人數(shù)2項(xiàng),每個(gè)專業(yè)有且僅有一個(gè)專業(yè)編號(hào)。政治課及英語課,按全校錄取計(jì)劃的200%劃定錄取分?jǐn)?shù)線,即按照該校50個(gè)專業(yè)計(jì)劃招收人數(shù)的總和的2倍劃定政治成績(jī)和英語成績(jī)的錄取分?jǐn)?shù)線,該分?jǐn)?shù)線不能低于45分,否則按45分劃定分?jǐn)?shù)線。兩門專業(yè)課,按專業(yè)錄取計(jì)劃的150%劃定錄取分?jǐn)?shù)線,例如:專業(yè)01計(jì)劃招
6、收21名研究生,劃線的標(biāo)準(zhǔn)是21的1.5倍,劃定的分?jǐn)?shù)線不得低于90分,否則按90分劃定分?jǐn)?shù)線??偡质钦纬煽?jī)、英語成績(jī)、專業(yè)課一的成績(jī)和專業(yè)課二的成績(jī)的總和,不包括面試成績(jī),總分的劃線也是分專業(yè)的,與專業(yè)課一和專業(yè)課二的劃線相同,不同的是劃定的分?jǐn)?shù)線不能低于280分,否則按280分劃線。所有劃定的分?jǐn)?shù)線信息分專業(yè)寫入文件三f3.txt。錄取的基本條件有6項(xiàng),必須全部滿足,要求考生的政治成績(jī)不低于劃定的政治錄取分?jǐn)?shù)線,英語成績(jī)不低于劃定的英語分?jǐn)?shù)線,專業(yè)課一和專業(yè)課二的成績(jī)不低于本專業(yè)的專業(yè)課一分?jǐn)?shù)線和專業(yè)課二分?jǐn)?shù)線,總分不低于本專業(yè)總分分?jǐn)?shù)線,面試成績(jī)合格(不低于60分),。滿足基本錄取條件
7、的考生才能進(jìn)入錄取階段,分專業(yè)按照總成績(jī)的排名由高到低錄取??偝煽?jī)有別于總分,總成績(jī)=0.7*(政治成績(jī)+英語成績(jī)+專業(yè)課一成績(jī)+專業(yè)課二成績(jī))+0.3*面試成績(jī)。分專業(yè)按照總成績(jī)排名由高到低錄取要求最后錄取的考生排名不超過該專業(yè)本來的計(jì)劃招生人數(shù),例如:達(dá)到專業(yè)08基本錄取條件的考生,若他的排名在13之后,則不被錄取。錄取完成,要把錄取的考生的全部信息寫入文件四f4.txto統(tǒng)計(jì)的內(nèi)容有3項(xiàng):其一要統(tǒng)計(jì)沒有完成錄取計(jì)劃的所有專業(yè)信息,意即文件四中每個(gè)專業(yè)最終錄取到的考生人數(shù)少于本專業(yè)計(jì)劃招生人數(shù)的專業(yè)和缺錄的人數(shù)。其二統(tǒng)計(jì)分?jǐn)?shù)線中僅僅達(dá)標(biāo)的專業(yè),即政治分?jǐn)?shù)線為45分,或者英語分?jǐn)?shù)線為45分或
8、者專業(yè)課分?jǐn)?shù)線為90分,或者總分為280分,4條中滿足任何一條即為分?jǐn)?shù)線僅僅達(dá)標(biāo)的專業(yè),滿足1條以上也為分?jǐn)?shù)線僅僅達(dá)標(biāo)的專業(yè)。其三統(tǒng)計(jì)政治課成績(jī)不低于政治分?jǐn)?shù)線,英語成績(jī)不低于英語分?jǐn)?shù)線,專業(yè)課一成績(jī)不低于該專業(yè)專業(yè)課一分?jǐn)?shù)線,專業(yè)課二成績(jī)不低于該專業(yè)專業(yè)課二分?jǐn)?shù)線,總分不低于該專業(yè)總分分?jǐn)?shù)線,唯獨(dú)面試成績(jī)不合格(低于60分)的所有考生信息,5條必須同時(shí)滿足。查詢內(nèi)容有2項(xiàng):其一是輸入專業(yè)編號(hào),得到該專業(yè)實(shí)際錄取的人數(shù)和該專業(yè)錄取到的所有考生信息的反饋。若輸入有錯(cuò)也給出輸入有錯(cuò)的反饋。其二是輸入個(gè)人的考號(hào)和姓名,得到個(gè)人的所有成績(jī)、總分、專業(yè)排名(總成績(jī)排名)的反饋信息,還要看該考生是否在文件
9、四f4.txt中,即是否最終被錄取。是不是被錄取都需給出反饋信息。若輸入有錯(cuò)也給出輸入有錯(cuò)的反饋。二、設(shè)計(jì)思路依據(jù)題目,設(shè)計(jì)的程序要完成寫文件三f3.txt和文件四f4.txt的工作以及實(shí)現(xiàn)統(tǒng)計(jì)和查詢的功能。文件三f3.txt存放50個(gè)專業(yè)的專業(yè)編號(hào)、政治分?jǐn)?shù)線、英語分?jǐn)?shù)線、專業(yè)課一分?jǐn)?shù)線、專業(yè)課二分?jǐn)?shù)線和總分分?jǐn)?shù)線共6項(xiàng)內(nèi)容。2門公共課的分?jǐn)?shù)線和其它3個(gè)分?jǐn)?shù)線產(chǎn)生需要不同的函數(shù),因?yàn)楣舱n是在全體考生中劃定的,而其它分?jǐn)?shù)線需要分專業(yè)劃定。劃定分?jǐn)?shù)線之前要完成排序的工作,兩種劃定方式對(duì)應(yīng)兩種排序方式。排序的對(duì)象是文件一f1.txt中的考生,需要定義2個(gè)結(jié)構(gòu)體類型的數(shù)組,用來讀取文件一f1.tx
10、t中的考生信息。文件二f2.txt中存有50個(gè)專業(yè)的專業(yè)編號(hào)和計(jì)劃招收人數(shù)2項(xiàng)內(nèi)容,定義長(zhǎng)度為50的結(jié)構(gòu)體數(shù)組存放50個(gè)專業(yè)的專業(yè)信息。按照從大到小的順序就政治成績(jī)和英語成績(jī)排序,以計(jì)劃招生人數(shù)總和的2倍為準(zhǔn),與之對(duì)應(yīng)的考生的政治成績(jī)就是政治分?jǐn)?shù)線,英語成績(jī)就是英語分?jǐn)?shù)線。當(dāng)然,這兩個(gè)成績(jī)都要與45分作比較,低于45分就以45分劃定分?jǐn)?shù)線。專業(yè)課和總分排序前先要把文件一f1.txt中各考生與文件二f2.txt中各專業(yè)編號(hào)逐個(gè)比較,同一專業(yè)的考生存入第二個(gè)數(shù)組,再就專業(yè)課一成績(jī)、專業(yè)課二成績(jī)和總分對(duì)數(shù)組中的考生從大到小排序。最后以該專業(yè)計(jì)劃招收人數(shù)的1.5倍(若為小數(shù)則取整)為準(zhǔn),與之對(duì)應(yīng)的考生
11、的專業(yè)課一成績(jī)則為該專業(yè)的專業(yè)課一分?jǐn)?shù)線,與之對(duì)應(yīng)的專業(yè)課二成績(jī)則為專業(yè)課二分?jǐn)?shù)線,與之對(duì)應(yīng)的總分則為總分分?jǐn)?shù)線。同理,兩個(gè)專業(yè)課的成績(jī)要與90分作比較,大的作最后劃定的分?jǐn)?shù)線,總分要與280分作比較,大的作最后劃定的分?jǐn)?shù)線。劃定的政治分?jǐn)?shù)線和英語分?jǐn)?shù)線分別用2個(gè)整形變量存放,50個(gè)不同的專業(yè)的專業(yè)課一分?jǐn)?shù)線、專業(yè)課二分?jǐn)?shù)線和總分分?jǐn)?shù)線用3個(gè)長(zhǎng)度為50的整形數(shù)組存放。再將這些數(shù)據(jù)寫入文件三f3.txt。文件四f4.txt中存放考號(hào)、姓名、報(bào)考專業(yè)、政治課成績(jī)、英語課成績(jī)、專業(yè)課一成績(jī)、專業(yè)課二成績(jī)、總分、面試成績(jī)、專業(yè)排名共計(jì)10項(xiàng)內(nèi)容,比文件一f1.txt中的內(nèi)容多一項(xiàng)專業(yè)排名,因此之前定義
12、結(jié)構(gòu)體類型數(shù)組時(shí)要加上總成績(jī)和專業(yè)排名2項(xiàng)內(nèi)容,即數(shù)組中每個(gè)個(gè)體有總計(jì)11項(xiàng)內(nèi)容,分別是考號(hào)、姓名、報(bào)考專業(yè)、政治課成績(jī)、英語課成績(jī)、專業(yè)課一成績(jī)、專業(yè)課二成績(jī)、總分、面試成績(jī)、專業(yè)排名和總成績(jī)。因?yàn)槲募膄4.txt中存放最終被錄取的考生,人數(shù)應(yīng)該少于文件一f1.txt中存放的考生人數(shù),且為了統(tǒng)計(jì)和查詢方便,可定義第三個(gè)結(jié)構(gòu)體的數(shù)組對(duì)其先存放。具體方法是把文件一f1.txt的考生信息讀入第一個(gè)結(jié)構(gòu)體數(shù)組,此時(shí)第一個(gè)數(shù)組中總分、總成績(jī)和專業(yè)排名3項(xiàng)還沒有初始值,先按要求逐個(gè)計(jì)算出各自的總分、總成績(jī)和專業(yè)排名并存入數(shù)組,再逐個(gè)判斷是否達(dá)到錄取的所有要求,把達(dá)到的考生依次存入第三個(gè)結(jié)構(gòu)體數(shù)組,最后
13、逐個(gè)寫入文件四f4.txto只是寫入時(shí)剔除總成績(jī)一項(xiàng),寫入其它10項(xiàng)內(nèi)容。統(tǒng)計(jì)沒有完成錄取計(jì)劃的所有專業(yè)同時(shí)需要文件二f2.txt和文件四f4.txt中的信息,計(jì)算每個(gè)專業(yè)實(shí)際錄取的人數(shù)是多少,與計(jì)劃招收人數(shù)作比較,若小于計(jì)劃招收人數(shù)則為未完成錄取,用每個(gè)計(jì)劃招收人數(shù)減去該專業(yè)實(shí)際錄取人數(shù)得缺錄人數(shù),然后在屏幕上輸出未完成錄取計(jì)劃的專業(yè)的專業(yè)編號(hào)和缺錄人數(shù)。統(tǒng)計(jì)分?jǐn)?shù)線中僅僅達(dá)標(biāo)的專業(yè)需要把文件三f3.txt中公共課分?jǐn)?shù)線與45分作比較,專業(yè)課分?jǐn)?shù)線與90分作比較,總分與280分作比較,若相等則在屏幕上輸出該專業(yè)以及該專業(yè)的各科分?jǐn)?shù)線和總分分?jǐn)?shù)線。對(duì)第一個(gè)結(jié)構(gòu)體數(shù)組中的政治課成績(jī)、英語課成績(jī)、專
14、業(yè)課一和專業(yè)課二成績(jī)、總分成績(jī)作判斷,符合公共課成績(jī)不低于公共課分?jǐn)?shù)線、專業(yè)課成績(jī)不低于該專業(yè)專業(yè)課分?jǐn)?shù)線、總分不低于該專業(yè)總分分?jǐn)?shù)線、面試成績(jī)不合格(低于60分)的所有考生就是統(tǒng)計(jì)內(nèi)容的第三項(xiàng),因?yàn)樵擁?xiàng)內(nèi)容信息較多,可寫入文件五f5.txt而不用在屏幕上輸出。查詢函數(shù)根據(jù)輸入的查詢信息反饋查詢結(jié)果。查詢時(shí),文件一f1.txt、文件二f2.txt文件三f3.txt、文件四f4.txt和文件五f4.txt都可作為已知,只是根據(jù)所需查詢的內(nèi)容讀取和分析不同的文件數(shù)據(jù)即可。其實(shí)文件一f1.txt已存放在第一個(gè)結(jié)構(gòu)體數(shù)組中,文件二f2.txt已存放在第二個(gè)結(jié)構(gòu)體數(shù)組中,文件四f4.txt已存放在第三個(gè)
15、結(jié)構(gòu)體數(shù)組中,所以可以省去再一次讀取文件的步驟而直接從數(shù)組中訪問數(shù)據(jù)。四、實(shí)現(xiàn)結(jié)果綜上所述,實(shí)現(xiàn)程序需要排序、劃線、錄取、統(tǒng)計(jì)和個(gè)人信息查詢、專業(yè)信息查詢6個(gè)子函數(shù)。定義菜單函數(shù)menu,在屏幕上輸出菜單界面,界面提示輸入1-6任意一個(gè)數(shù)字。運(yùn)用switch選擇語句調(diào)用劃線、錄取、統(tǒng)計(jì)、個(gè)人信息查詢、專業(yè)信息查詢和exit函數(shù)。排序、戈峨、錄取和統(tǒng)計(jì)都涉及文件的讀寫過程,為了使程序簡(jiǎn)潔,可以吧讀取過程放在主函數(shù)中,把4個(gè)結(jié)構(gòu)體類型的數(shù)組(其中3個(gè)為存放考生信息的數(shù)組,另一個(gè)為存放專業(yè)信息的數(shù)組)定位為全局變量,方便在所有函數(shù)中調(diào)用。存放考生信息的3個(gè)結(jié)構(gòu)體類型數(shù)組長(zhǎng)度不完全相同,第一個(gè)結(jié)構(gòu)體數(shù)
16、組因?yàn)橐娣盼募籪1.txt中的全部考生信息,所以長(zhǎng)度為5000;第二個(gè)結(jié)構(gòu)體變量存放不同專業(yè)的考生信息,它的長(zhǎng)度在整個(gè)調(diào)用排序函數(shù)過程中是變化的,所以在調(diào)用排序函數(shù)之前要定義一個(gè)長(zhǎng)度為50的整形數(shù)組用以衡量不同專業(yè)數(shù)組的長(zhǎng)度,但最開始定義時(shí)可以把第二個(gè)結(jié)構(gòu)體數(shù)組的長(zhǎng)度定義為200,保證各個(gè)專業(yè)的考生數(shù)的1.5倍取整后也不會(huì)超過這個(gè)值;第三個(gè)數(shù)組存放文件四f4.txt中的所有考生信息,它的長(zhǎng)度理論上不超過5000,定義時(shí)將其長(zhǎng)度定義為5000,讀取文件四f4.txt是也定義一整形變量用以計(jì)數(shù),最終確定該數(shù)組的實(shí)際長(zhǎng)度。同時(shí),把政治分?jǐn)?shù)線、英語分?jǐn)?shù)線、專業(yè)課一分?jǐn)?shù)線、專業(yè)課二分?jǐn)?shù)線和總分分?jǐn)?shù)線
17、也定義為全局變量。要實(shí)現(xiàn)的功能很多,劃分不同的函數(shù)模塊可以讓整個(gè)程序有條理。有的數(shù)據(jù)需要多次訪問,就定義全局變量來存放。循環(huán)體中的計(jì)數(shù)變量定義為局部變量,下一次循環(huán)執(zhí)行時(shí)可以再初始化,相應(yīng)的函數(shù)執(zhí)行結(jié)束局部變量隨即釋放內(nèi)存。程序先為函數(shù)聲明,接著為定義全局變量,然后為主函數(shù)語句,最后是其它函數(shù)語句。文件中數(shù)據(jù)個(gè)數(shù)很多,函數(shù)執(zhí)行時(shí)需要很多次的讀取、判斷、比較、賦值和寫入等過程,統(tǒng)一用for循環(huán)語句來實(shí)現(xiàn)。判斷時(shí)統(tǒng)一用if條件語句實(shí)現(xiàn)。根據(jù)排序?qū)ο蟛煌判蚝瘮?shù)分為兩種,排序方法都為冒泡法。采用地址傳遞的方法,排序后數(shù)組中的考生順序分別就是按政治成績(jī)、英語成績(jī)、專業(yè)課一成績(jī)、專業(yè)課二成績(jī)、總分和總成
18、績(jī)由大到小的順序,所以每一次排序后立即就把劃定的分?jǐn)?shù)線賦給政治分?jǐn)?shù)線、英語分?jǐn)?shù)線、專業(yè)課一分?jǐn)?shù)線、專業(yè)課二分?jǐn)?shù)線和總分分?jǐn)?shù)線等全局變量,因?yàn)橄乱淮闻判蚝笊弦淮蔚捻樞蛞巡粡?fù)存在。每一次賦值都用選擇語句(考慮到公共課分?jǐn)?shù)線大于等于45分,專業(yè)課分?jǐn)?shù)線大于等于90分,總分分?jǐn)?shù)線大于等于280分)。總成績(jī)的排序還包括給專業(yè)排名一項(xiàng)賦值,這個(gè)值直接賦給第一個(gè)結(jié)構(gòu)體數(shù)組,若賦給第二個(gè)結(jié)構(gòu)體數(shù)組(存放每個(gè)專業(yè)的考生信息)則下一次排序時(shí)就會(huì)被覆蓋。公共課、專業(yè)課和總分的排序函數(shù)是在劃線函數(shù)中調(diào)用的,錄取函數(shù)中調(diào)用總成績(jī)的排序函數(shù)。戈,線函數(shù)同時(shí)執(zhí)行寫文件三f3.txt的任務(wù),錄取函數(shù)同時(shí)執(zhí)行寫文件四f4.tx
19、t的任務(wù)統(tǒng)計(jì)函數(shù)執(zhí)行向屏幕輸出未完成錄取計(jì)劃的專業(yè)、分?jǐn)?shù)線僅僅達(dá)標(biāo)的專業(yè)和寫文件五f5.txt的任務(wù)。向屏幕輸出未完成錄取計(jì)劃的專業(yè)時(shí)定義一長(zhǎng)度為50的整形數(shù)組用以計(jì)量各個(gè)專業(yè)的實(shí)際錄取人數(shù)。查詢函數(shù)執(zhí)行人機(jī)交互并反饋查詢結(jié)果的任務(wù),在屏幕上根據(jù)輸入的查詢信息輸出查詢結(jié)果。具體方法是讀入文件四f4.txt的所有考生,定義一長(zhǎng)度為50的整形數(shù)組用以計(jì)量各個(gè)專業(yè)的人數(shù),即為實(shí)際錄取的人數(shù)。根據(jù)輸入的專業(yè)編號(hào),然后在屏幕上輸出實(shí)際錄取人數(shù)和被這個(gè)專業(yè)錄取的所有考生。根據(jù)輸入的考生考號(hào)和姓名輸出與之匹配的考生信息,若該考生在文件四f4.txt中,即第三個(gè)結(jié)構(gòu)體數(shù)組中有個(gè)體與之匹配,貝U輸出“恭喜你!你
20、被錄取?!钡姆答佇畔ⅲ魞H與第一個(gè)結(jié)構(gòu)體數(shù)組中的某個(gè)個(gè)體匹配則輸出“很遺憾。明年再戰(zhàn)!”的反饋信息,若沒有與之匹配的考生信息則說明輸入錯(cuò)誤,當(dāng)在屏幕上給出“輸入錯(cuò)誤,請(qǐng)檢查后再輸。”每一步函數(shù)調(diào)用后視情況(屏幕上有輸出內(nèi)容時(shí))清屏并再次顯示菜單menu界面,方便執(zhí)行下一個(gè)用戶想要執(zhí)行的功能函數(shù)。五、課設(shè)總結(jié)這一次C語言課程設(shè)計(jì)的題目雖然傳統(tǒng),但是是對(duì)全面地運(yùn)用C語言的訓(xùn)練,包含了讀文件、寫文件、定義和調(diào)用結(jié)構(gòu)體類型數(shù)組、函數(shù)的調(diào)用、參數(shù)的傳遞、嵌套循環(huán)結(jié)構(gòu)、設(shè)計(jì)人機(jī)交互的菜單界面等多種訓(xùn)練。本來我們自己完成整個(gè)題目幾乎是不可能的事,我們大二上完C語言課程后就將C語言的相關(guān)內(nèi)容束之高閣,遺忘了很
21、多的東西。好在老師用相似的例子做過一次示范演講,講了怎么布局程序函數(shù),怎么設(shè)計(jì)菜單函數(shù),怎么正確地讀寫函數(shù)等方法。我們依樣畫葫蘆,慢慢地也寫出了題目要求的C程序。有時(shí)候一個(gè)能執(zhí)行的C程序也不一定是正確地,每一項(xiàng)題目要求完成后,我會(huì)與同學(xué)得出的結(jié)果作比較,然后就不同的結(jié)果進(jìn)行討論,找出不同的原因。這個(gè)過程中我也學(xué)到了很多。開始時(shí)我把題目中的總分和總成績(jī)兩個(gè)概念相混淆,多次閱讀題目才弄清兩項(xiàng)的計(jì)算方法??偡质怯脕韯澏偡址?jǐn)?shù)線時(shí)用以排序的,而總成績(jī)是用來計(jì)算每個(gè)專業(yè)考生的專業(yè)排名的。實(shí)現(xiàn)題目要求的各項(xiàng)功能后,我還在修改程序,力圖讓自己的程序簡(jiǎn)潔(方便閱讀)又不失其功能(完成題目的要求)。這個(gè)過程有
22、點(diǎn)像是修改作文。寫程序的過程中,我對(duì)全局變量和局部變量的存儲(chǔ)形式有了更加深刻的認(rèn)識(shí),對(duì)訪問結(jié)構(gòu)體數(shù)組變量和傳遞函數(shù)參數(shù)也更加得心應(yīng)手。每一步功能實(shí)現(xiàn)后都能感受到莫大的歡欣快慰,尤其是屢次失敗后最終成功的一剎那于此同時(shí),我認(rèn)識(shí)到計(jì)算機(jī)科學(xué)是一門很精深的科學(xué),需要十分嚴(yán)謹(jǐn)?shù)乃紤]和執(zhí)行過程,需要十足的耐心和不達(dá)目的誓不罷休的恒心。當(dāng)然,我還只是個(gè)初學(xué)者,尤其對(duì)編譯時(shí)出現(xiàn)的許多問題還不能獨(dú)立解決,對(duì)VisulC+這個(gè)編寫軟件的運(yùn)用不熟練。六、附錄(源代碼)#include#include#include函數(shù)聲明#include#include函數(shù)聲明函數(shù)聲明函數(shù)聲明*voidmenu();voidso
23、rt_politics();voidsort_english();voidsort_course_one();voidsort_course_two();voidsort_interview();voidsort_tolal_points();voidhuaxian();voidtongji();voidluqu();voidchaxun_1();voidchaxun_2();voidsort_politics();voidsort_english();voidsort_course_one();voidsort_course_two();voidsort_total_points();voi
24、dsort_comprehensive_score();*voidsort_comprehensive_score();*全局變量*structstucharno6;charname10;charmajor2;intpolitics;intenglish;intcourse_one;intcourse_two;intinterview;inttotal_points;intplacing;doublecomprehensive_score;a5000,b200,s5000;structmajorcharname2;intheadcount;c50;FILE*fp;intpolitics_lin
25、e=0,english_line=0,course_line_one50=0,course_line_two50=0,total_points_line50=0;*主函數(shù)*voidmain()inti=0,j=0,k=0,r0=0,r1=0;if(fp=fopen(f1.txt”,r)=NULL)printf(Fileopenerror.n);return;while(!feof(fp)fscanf(fp,%s%s%s%d%d%d%d%d”,ai.no,,ai.major,&ai.politics,&ai.english,&ai.course_one,&ai.course_two
26、,&erview);ai.total_points=ai.politics+ai.english+ai.course_one+ai.course_two;ai.placing=1;prehensive_score=(ai.politics+ai.english+ai.course_one+ai.course_two)*0.7+erview*0.3;i+;fclose(fp);if(fp=fopen(f2.txt”,r)=NULL)printf(Fileopenerror.n);return;while(!feof(fp)(fscanf(fp,%s%d,cj.
27、name,&cj.headcount);j+;fclose(fp);for(j=0;j45?ar0.politics:45;sort_english();/按英語成績(jī)排序english_line=ar0.english45?ar0.english:45;for(j=0;j50;j+,k=0)(r1=(int)(cj.headcount*1.5);for(i=0;i90?br1.course_one:90;sort_course_two(b,k);/按專業(yè)課二成績(jī)排序course_line_twoj=br1.course_two90?br1.course_two:90;sort_total_po
28、ints(b,k);/分專業(yè)按總成績(jī)排序total_points_linej=br1.total_points280?br1.total_points:280;sort_comprehensive_score(b,k);/專業(yè)排名menu();子函數(shù)*/*voidmenu()(intn;printf(*n);printf(1.劃線2.錄取n);printf(3.統(tǒng)計(jì)4.考生信息查詢n);printf(5.專業(yè)錄取查詢6.退出n);printf(*n);printf(Pleaseinputaint(1-6):);scanf(%d”,&n);while(n6)printf(Inputerror.P
29、leaseinputagain.n);scanf(%d,&n);switch(n)case1:huaxian();break;case2:luqu();break;case3:tongji();break;case4:chaxun_1();break;case5:chaxun_2();break;case6:exit(0);/*排序*voidsort_politics()structstutemp;intx,y;for(x=0;x4999;x+)for(y=x+1;y5000;y+)if(ax.politicsay.politics)temp=ax;ax=ay;ay=temp;voidsort
30、_english()structstutemp;intx,y;for(x=0;x4999;x+)for(y=x+1;y5000;y+)if(ax.englishay.english)(temp=ax;ax=ay;ay=temp;voidsort_course_one(structstut,intr)(structstutemp;intx,y;for(x=0;xr-1;x+)for(y=x+1;yr;y+)if(tx.course_onety.course_one)(temp=tx;tx=by;ty=temp;voidsort_course_two(structstut,intr)(struct
31、stutemp;intx,y;for(x=0;xr-1;x+)for(y=x+1;yr;y+)if(tx.course_twoty.course_two)(temp=tx;tx=ty;ty=temp;voidsort_total_points(structstut,intr)(structstutemp;intx,y;for(x=0;xr-1;x+)for(y=x+1;yr;y+)if(tx.total_pointsty.total_points)(temp=tx;tx=ty;ty=temp;voidsort_comprehensive_score(structstut,intr)(struc
32、tstutemp;intx,y;for(x=0;xr-1;x+)for(y=x+1;yr;y+)if(prehensive_prehensive_score)(temp=tx;tx=ty;ty=temp;for(x=0,y=1;xr;x+)tx.placing=y+;for(x=0;x5000;x+)for(y=0;yr;y+)if(!strcmp(ax.no,ty.no)ax.placing=ty.placing;else;*劃線*voidhuaxian()(intj;if(fp=fopen(f3.txt”,w)=NULL)(printf(Fileopene
33、rror.n);return;for(j=0;j50;j+)(fprintf(fp,專業(yè)編號(hào):%s,);fprintf(fp,政治課錄取分?jǐn)?shù)線:%3d,politics_line);fprintf(fp,英語課錄取分?jǐn)?shù)線:3d,english_line);fprintf(fp,專業(yè)課一錄取分?jǐn)?shù)線:%3d,course_line_onej);fprintf(fp,專業(yè)課二錄取分?jǐn)?shù)線:%3d,course_line_twoj);fprintf(fp,總分錄取分?jǐn)?shù)線:3dn”,total_points_linej);fclose(fp);printf(政治課分?jǐn)?shù)線:%dn,politi
34、cs_line);printf(英語課分?jǐn)?shù)線:dn”,english_line);for(j=0;j50;j+)printf(專業(yè)編號(hào):%s”,);printf(專業(yè)課一分?jǐn)?shù)線:%3d,course_line_onej);printf(專業(yè)課二分?jǐn)?shù)線:3d,course_line_twoj);printf(總分分?jǐn)?shù)線:%3dn,total_points_linej);getchar();getchar();system(cls);menu();*錄取*voidluqu()inti,j;if(fp=fopen(f4.txt”,w)=NULL)printf(Fileopenerror
35、.n);return;for(j=0;j50;j+)for(i=0;i=politics_line&ai.english=english_line&ai.course_one=course_line_onej&ai.course_two=course_line_twoj&ai.total_points=total_points_linej&erview60&ai.placing=cj.headcount)(fprintf(fp,%s,ai.no);fprintf(fp,%s”,);fprintf(fp,%s,ai.major);fprintf(fp,%3d”,ai.p
36、olitics);fprintf(fp,%3d”,ai.english);fprintf(fp,%3d”,ai.course_one);fprintf(fp,%3d”,ai.course_two);fprintf(fp,%3d”,ai.total_points);fprintf(fp,%3d,erview);fprintf(fp,%3dn”,ai.placing);else;fclose(fp);*統(tǒng)計(jì)*voidtongji()(inti=0,j=0,k=0,r50=0;if(fp=fopen(f4.txt,r)=NULL)printf(Fileopenerror.n);retur
37、n;while(!feof(fp)fscanf(fp,%s%s%s%d%d%d%d%d%d%d”,si.no,,si.major,&si.politics,&si.english,&si.course_one,&si.course_two,&si.total_points,&erview,&si.placing);i+;fclose(fp);for(j=0;j50;j+)for(k=0;ki;k+)if(!strcmp(sk.major,)rj+;printf(未完成錄取計(jì)劃的專業(yè):n);for(j=0;j50;j+)if(rjcj.headcount)
38、printf(專業(yè)編號(hào):%st缺錄人數(shù):%dn,,cj.headcount-rj);else;printf(-錄取分?jǐn)?shù)線中僅僅達(dá)標(biāo)(即公共課分?jǐn)?shù)線為45分,或者專業(yè)課分?jǐn)?shù)線為90分,或者總分為280分)的所有專業(yè):n);for(j=0;j50;j+)if(politics_line=45|english_line=45|course_line_onej=90|course_line_twoj=90|total_points_linej=280)printf(專業(yè)編號(hào)%st,);printf(%3dt”,politics_line);printf(%3dt”,engl
39、ish_line);printf(%3dt,course_line_onej);printf(%3dt”,course_line_twoj);printf(%3dn,total_points_linej);if(fp=fopen(f5.txt”,w)=NULL)printf(Fileopenerror.n);return;for(j=0;j50;j+)for(i=0;i=politics_line&ai.english=english_line&ai.course_one=course_line_onej&ai.course_two=course_line_twoj&ai.total_points=total_points_linej)if(erview60)fprintf(fp,考號(hào):%st,ai.no);fprintf(fp,姓名:%st,);fprintf(fp,報(bào)考專業(yè):%st,ai.major);fprintf(fp,面試成績(jī):%3dn,ervi
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省云學(xué)聯(lián)盟2024-2025學(xué)年高一下學(xué)期3月月考物理試題(原卷版+解析版)
- 不完全市場(chǎng)下發(fā)展中國家的農(nóng)村市場(chǎng)講義
- 《登泰山記》讀析
- 2025年黨章黨史國史國情知識(shí)競(jìng)賽題庫及答案(共200題)
- 盆底肌訓(xùn)練與盆底電刺激在產(chǎn)婦產(chǎn)后盆底肌力康復(fù)治療中的應(yīng)用價(jià)值探討
- 《國際市場(chǎng)營銷》課件-第9章 國際市場(chǎng)促銷策略
- 《電子商務(wù)基礎(chǔ)》課件-話題3 電子商務(wù)運(yùn)用
- 橄欖球俱樂部簡(jiǎn)裝合同樣本
- 保險(xiǎn)業(yè)務(wù)代理居間協(xié)議
- 電子商務(wù)平臺(tái)訂單管理表
- 寧德時(shí)代SHL測(cè)評(píng)答案
- 2025年《收納師》職業(yè)技能培訓(xùn)考試題庫
- 2024年社會(huì)工作者之初級(jí)社會(huì)綜合能力考試題庫完整
- 《中國資本市場(chǎng)》課件
- 2024年03月天津天津銀行招考總行部門及分支機(jī)構(gòu)負(fù)責(zé)人筆試歷年參考題庫附帶答案詳解
- 2025年學(xué)校信息中心工作計(jì)劃
- VR游戲設(shè)計(jì)與制作知到智慧樹章節(jié)測(cè)試課后答案2024年秋四川長(zhǎng)江職業(yè)學(xué)院
- 平行線的判定與性質(zhì)證明題專訓(xùn)30題(人教版)(人教版) 帶解析
- 心理咨詢倫理守則
- UL2775標(biāo)準(zhǔn)中文版-2019氣溶膠滅火器UL中文版標(biāo)準(zhǔn)
- 【MOOC】森林植物識(shí)別技術(shù) -珍稀植物識(shí)別-南京森林警察學(xué)院 中國大學(xué)慕課MOOC答案
評(píng)論
0/150
提交評(píng)論