計(jì)算機(jī)C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告_第1頁(yè)
計(jì)算機(jī)C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告_第2頁(yè)
計(jì)算機(jī)C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告_第3頁(yè)
計(jì)算機(jī)C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告_第4頁(yè)
計(jì)算機(jī)C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告計(jì)算機(jī)C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告15/15計(jì)算機(jī)C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告班級(jí):地質(zhì)11102學(xué)生姓名:商博文學(xué)號(hào):01指導(dǎo)老師:何老師/陳老師/龍日期目錄一、程序剖析與設(shè)計(jì)1二、流程圖2三、源程序清單9四、調(diào)試過(guò)程17五、程序有待改良的地方17六、本次實(shí)習(xí)的收獲和建議18附錄18語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告一、程序剖析與設(shè)計(jì)1、一開(kāi)始拿到這個(gè)程序我感覺(jué)到它的流程特別清楚,各個(gè)功能項(xiàng)之間聯(lián)系其實(shí)不十分親密,因此各異很簡(jiǎn)單的分紅很多不一樣的部分分別以獨(dú)立的函數(shù)體進(jìn)行書(shū)寫(xiě)和編寫(xiě)。2、確立每一項(xiàng)要求寫(xiě)成一個(gè)或許分紅多個(gè)函數(shù)體進(jìn)行書(shū)寫(xiě)。并依據(jù)要求的先后次序確定函數(shù)體的

2、擺列序次,將最想被調(diào)用與被調(diào)用次數(shù)最多的函數(shù)體放在最前面,一邊用最簡(jiǎn)短的方式書(shū)寫(xiě)程序,盡量少的進(jìn)行函數(shù)申明。3、在確立了函數(shù)名稱后,先將函數(shù)名稱記錄下來(lái),并確立其功能總計(jì)有read(),output(),average(),allaverage(),rrank(),fenshuduan(),nopass(),chengjitiao(),menu(),youdengsheng()等十組函數(shù)。4、確立需要調(diào)用的庫(kù)函數(shù)并進(jìn)行申明,設(shè)定全局變量SIZE為學(xué)生人數(shù)。5、清楚的書(shū)寫(xiě)學(xué)生構(gòu)造體和課程構(gòu)造體stuSIZE,明確構(gòu)造體重每一個(gè)變量的種類和長(zhǎng)度。6、第一書(shū)寫(xiě)讀入輸出函數(shù)read(),將所需數(shù)據(jù)依據(jù)

3、課程構(gòu)造體的標(biāo)準(zhǔn)進(jìn)行讀入用文件格式fscanf。7、寫(xiě)出函數(shù)向所需數(shù)據(jù)的列表進(jìn)行寫(xiě)出。8、寫(xiě)出修業(yè)生均勻成績(jī)的函數(shù)average()并求出學(xué)生均勻成績(jī)?nèi)齻€(gè)相加除三取整。9、寫(xiě)出求各科均勻成績(jī)的函數(shù)allaverage()并求出各科均勻成績(jī)學(xué)生人數(shù)個(gè)相加除學(xué)生人數(shù)取整。10、排名函數(shù)rrank(),用抽排法寫(xiě)出排序并用文件種類輸出。11、分?jǐn)?shù)段函數(shù)fenshuduan()寫(xiě)出不一樣的分?jǐn)?shù)段并運(yùn)用數(shù)組寄存每個(gè)分?jǐn)?shù)段的人數(shù)并用兩種方式寫(xiě)出。12、判斷出不及格的人nopass()并輸出他/她們的學(xué)號(hào),姓名,課程名稱,成績(jī)等信息。13、運(yùn)用比較與循環(huán)寫(xiě)出查問(wèn)學(xué)生信息的函數(shù)chengjitiao()。14

4、、寫(xiě)出菜單的輸出函數(shù)menu()。15、運(yùn)用邏輯運(yùn)算符寫(xiě)出優(yōu)等生的求取函數(shù)youdengsheng()。16、寫(xiě)退出函數(shù)。17、寫(xiě)出主函數(shù)而且用case語(yǔ)句進(jìn)行判斷履行主函數(shù)的各個(gè)功能。18、整個(gè)過(guò)程中,均勻數(shù),學(xué)生信息,均勻分查問(wèn)用文件種類的輸出。1二、流程圖Main函數(shù)函數(shù)圖主體假如輸入1則運(yùn)轉(zhuǎn)學(xué)生信息設(shè)置的函數(shù)假如輸入2則運(yùn)轉(zhuǎn)求個(gè)人均勻分的函數(shù)假如輸入3則均勻分?jǐn)?shù)段函數(shù)假如輸入4運(yùn)轉(zhuǎn)不及格函數(shù)假如輸入0結(jié)束2C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告Read()函數(shù)此段為讀入函數(shù)的流程圖運(yùn)用指針讀入文件中的數(shù)據(jù)假如指針為空輸出沒(méi)法翻開(kāi)Output函數(shù)此段為寫(xiě)出文件函數(shù)用指針指向文件夾寫(xiě)出假如指向空則輸出沒(méi)法

5、翻開(kāi)3average()函數(shù)此段為求每個(gè)學(xué)生均勻成績(jī)的函數(shù)現(xiàn)將每個(gè)學(xué)生的三科成績(jī)相加再將所得數(shù)據(jù)除以3獲得均勻分allaverage()函數(shù)此段為求各科均勻成績(jī)的函數(shù)現(xiàn)將每門課的全部學(xué)生得分相加再除以學(xué)生人數(shù)最后獲得每科總均勻分4C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告rrank()排名的函數(shù)先運(yùn)用抽排法確立每一個(gè)學(xué)生的排名將排名組合到構(gòu)造體再將海涵排名信息的全部學(xué)生信息進(jìn)行輸出5fenshuduan()分?jǐn)?shù)段函數(shù)將每個(gè)學(xué)生的每項(xiàng)成績(jī)進(jìn)行判斷而后將學(xué)生的成績(jī)分別計(jì)數(shù)分別統(tǒng)計(jì)出來(lái)沒(méi)想科目每個(gè)分?jǐn)?shù)段的學(xué)生人數(shù)用文件種類進(jìn)行輸入輸出6C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告nopass()不及格人數(shù)統(tǒng)計(jì)的函數(shù)先求出不及格的成績(jī)并記錄該

6、學(xué)生的各項(xiàng)信息對(duì)各項(xiàng)信息進(jìn)行輸出chengjitiao()輸出學(xué)生的成績(jī)條7menu()打印主菜單youdengsheng()學(xué)生成績(jī)查問(wèn)的函數(shù)依據(jù)課程要求進(jìn)行邏輯用語(yǔ)的編寫(xiě)輸出優(yōu)等生的個(gè)人信息8語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告三、源程序清單#include#include/標(biāo)準(zhǔn)函數(shù)庫(kù)調(diào)用#defineSIZE40/班里學(xué)生40個(gè)intenglish5,C5,math5;/保存小數(shù)點(diǎn)5一位floatenglishave;/此變量算英語(yǔ)成績(jī)均勻分floatCave;/計(jì)算機(jī)floatmathave;/數(shù)學(xué)structstudent/學(xué)生構(gòu)造體charname10;/寄存姓名intnum;/學(xué)號(hào)intscor

7、e3;/學(xué)分floatave;/均勻分intrank;/排名studSIZE;/構(gòu)造體有40個(gè)structcourse/課程設(shè)置構(gòu)造體charcname20;/寄存課程名稱20表示課程名稱最長(zhǎng)有20個(gè)字節(jié)cur3=大學(xué)英語(yǔ),C語(yǔ)言設(shè)計(jì),高等數(shù)學(xué);/分別賦初值為課程的名稱intcour35=0;/后邊分段計(jì)數(shù)的時(shí)候分了5個(gè)分?jǐn)?shù)段共有三門課賦初值為零/讀文件函數(shù)voidread()FILE*fp;/文件型指針變量假如寄存地點(diǎn)為空則輸出cantopenfile!并退出if(fp=fopen(e:stud1.txt,r)=NULL)printf(cantopenfile!n);exit(0);for(

8、inti=0;iSIZE;i+)/從0到40讀入每個(gè)學(xué)生的信息fscanf(fp,%d%s%d%d%d%d,&studi.num,,&studi.score0,&studi.score1,&studi.score2,&studi.score3);/從文件讀守信息fclose(fp);寫(xiě)出文件函數(shù)voidoutput()9FILE*fp;/文件型指針變量if(fp=fopen(e:stud1.txt,r)=NULL)printf(cantopenfile!n);exit(0);printf(t學(xué)生原始成績(jī)n);printf(|學(xué)號(hào)|姓名|英語(yǔ)|C語(yǔ)言|高數(shù)|n);for(in

9、ti=0;iSIZE;i+)fscanf(fp,%d%s%d%d%d,&studi.num,,&studi.score0,&studi.score1,&studi.score2);/從文件讀守信息printf(%6d%12s%6d%6d%6dn,studi.num,,studi.score0,studi.score1,studi.score2,studi.score3);/從程序輸出到文件里修業(yè)生均勻成績(jī)函數(shù)voidaverage()inti,j,sum;for(i=0;iSIZE;i+)/從0到39循環(huán)sum=0;for(j=0;j3;j+)/從第一門

10、課到第三門課循環(huán)sum+=studi.scorej;/每門課的成績(jī)相加studi.ave=(int)(sum)/3;/八三門課的成績(jī)除以3的均勻分/求各科的均勻成績(jī)函數(shù)voidallaverage()inti;englishave=0;Cave=0;mathave=0;for(i=0;iSIZE;i+)/循環(huán)人數(shù)10語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告mathave+=studi.score0;/全部人數(shù)學(xué)課成績(jī)相加englishave=(englishave+studi.score1);/英語(yǔ)Cave=(Cave+studi.score2);/計(jì)算機(jī)englishave=englishave/SIZE;/除

11、以人數(shù)獲得均勻分mathave=mathave/SIZE;Cave=Cave/SIZE;排名函數(shù)voidrrank()inti,j;for(i=0;iSIZE;i+)studi.rank=1;/抽排法for(i=0;iSIZE;i+)studi.rank=1;for(j=0;jSIZE;j+)if(studi.avestudj.ave)studi.rank+;/排名if(studi+1.rank=studi.rank)studi+2.rank+;/假如相等再加一個(gè)FILE*fp;if(fp=fopen(e:stu2.txt,w)=NULL)printf(cantopenthefile);ret

12、urn;fprintf(fp,tttt學(xué)生成績(jī)綜合成績(jī)n);fprintf(fp,序號(hào)tt姓名t高數(shù)t英語(yǔ)t計(jì)基t均勻成績(jī)t名次n);for(i=0;iSIZE;i+)fprintf(fp,%dt%st%dt%dt%dt%15.2ft%5dn,studi.num,,studi.score0,studi.score1,studi.score2,studi.ave,studi.rank);fclose(fp);11求取個(gè)分?jǐn)?shù)段人數(shù)voidfenshuduan()voidallaverage();allaverage();inti,j;printf(tt各科分?jǐn)?shù)段及各科均勻成績(jī)n

13、);for(i=0;iSIZE;i+)for(j=0;j=90)courj4+;/假如該門課該學(xué)生成績(jī)大于90則該門課改分?jǐn)?shù)段人數(shù)加一elseif(studi.scorej=80)courj3+;elseif(studi.scorej=70)courj2+;elseif(studi.scorej=60)courj1+;elsecourj0+;printf(分?jǐn)?shù)段t高數(shù)t英語(yǔ)t計(jì)基n);printf(60t%dt%dt%dn,cour00,cour10,cour20);printf(6069t%dt%dt%dn,cour01,cour11,cour21);printf(7079t%dt%dt%d

14、n,cour02,cour12,cour22);printf(8089t%dt%dt%dn,cour03,cour13,cour23);printf(90100t%dt%dt%dn,cour04,cour14,cour24);printf(均勻成績(jī)t%4.1ft%4.1ft%4.1fn,mathave,englishave,Cave);FILE*fp;if(NULL=(fp=fopen(e:stu3.txt,w)printf(cannotopenthefile);return;fprintf(fp,ttt分?jǐn)?shù)段及均勻分n);fprintf(fp,n);fprintf(fp,分?jǐn)?shù)段t高數(shù)t大英t

15、計(jì)基n);/反斜杠t表示tab反斜杠n表示換行%d表示十進(jìn)制整數(shù)輸出%f表示十進(jìn)制實(shí)數(shù)輸出%s表示字符串種類輸出f前面的4.1表示共四位數(shù)此中有一位小數(shù)fprintf(fp,60t%dt%dt%dn,cour00,cour10,cour20);fprintf(fp,6069t%dt%dt%dn,cour01,cour11,cour21);fprintf(fp,7079t%dt%dt%dn,cour02,cour12,cour22);fprintf(fp,8089t%dt%dt%dn,cour03,cour13,cour23);fprintf(fp,90100t%dt%dt%dn,cour04,

16、cour14,cour24);fprintf(fp,均勻成績(jī)%4.1ft%4.1ft%4.1ftn,mathave,englishave,Cave);fclose(fp);12語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告不及格學(xué)生信息函數(shù)voidnopass()inti,j;printf(t不及格學(xué)生名單n);printf(t學(xué)號(hào)tt姓名tt不及格課程tt不及格分?jǐn)?shù)n);for(i=0;iSIZE;i+)for(j=0;j3;j+)if(studi.scorej60)/假如該人該門課分?jǐn)?shù)低于60則輸出一下信息printf(t%5d%10stt%10stt%dn,studi.num,,ame,studi.scorej);查問(wèn)學(xué)生信息函數(shù)voidchengjitiao()inti,n;printf(請(qǐng)輸入學(xué)號(hào)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論