河南科技大學(xué)C語言課程設(shè)計(jì)報(bào)告設(shè)計(jì)報(bào)告含源代碼_第1頁
河南科技大學(xué)C語言課程設(shè)計(jì)報(bào)告設(shè)計(jì)報(bào)告含源代碼_第2頁
河南科技大學(xué)C語言課程設(shè)計(jì)報(bào)告設(shè)計(jì)報(bào)告含源代碼_第3頁
河南科技大學(xué)C語言課程設(shè)計(jì)報(bào)告設(shè)計(jì)報(bào)告含源代碼_第4頁
河南科技大學(xué)C語言課程設(shè)計(jì)報(bào)告設(shè)計(jì)報(bào)告含源代碼_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、-. z. . . . . 資料. . .設(shè) 計(jì) 報(bào) 告學(xué)院:電子信息工程學(xué)院 班級:自動(dòng)化101班 *:高賢哲 *:一、綜合訓(xùn)練的任務(wù)及要求任務(wù):C語言綜合訓(xùn)練是為了提高學(xué)生綜合使用本學(xué)期我們所學(xué)的C語言知識(shí)編寫大型程序的能力,了解大型程序設(shè)計(jì)的開發(fā)步驟,以上機(jī)為主,每個(gè)學(xué)生按照要求使用C語言設(shè)計(jì)一個(gè)大型程序,并提供相關(guān)的設(shè)計(jì)文檔和源程序,從提交。要求:在磁盤上有一個(gè)文本文件stuin.t*t,此文件存放了一組學(xué)生的成績信息,按照如下格式存放:1001 stuname1 891002 stuname2 781003 stuname3 601100 stuname100 87請按照如下要求編寫

2、程序:a定義一個(gè)構(gòu)造體類型數(shù)組,構(gòu)造體類型含有*、*和成績?nèi)齻€(gè)域;b將文本文件的內(nèi)容讀入到構(gòu)造體數(shù)組中;c顯示成績最高的人的*、*和成績?nèi)绻幸粯拥娜艘匡@示;d顯示平均成績、高于、低于和等于平均成績的人數(shù);e顯示成績?yōu)閮?yōu)秀90100、良好8089、中等7079、及格6069、不及格059的人數(shù)和所占百比分;f將以上顯示的信息存放到stuout.t*t文件中。二、程序?qū)崿F(xiàn)的功能、算法描述和程序?qū)崿F(xiàn)的流程圖程序的功能:a將指定文本文件的內(nèi)容讀入到程序定義的構(gòu)造體數(shù)組中;b顯示成績最高的人的*、*和成績?nèi)绻幸粯拥娜巳匡@示;c顯示平均成績、高于、低于和等于平均成績的人數(shù);d顯示成績?yōu)閮?yōu)秀901

3、00、良好8089、中等7079、及格6069、不及格059的人數(shù)和所占百分比;e將以上顯示的信息存放到指定文件中。算法描述:S1:定義一個(gè)構(gòu)造體類型struct student數(shù)組student100,構(gòu)造體類型struct student含有int num、char name20、float score三個(gè)域;定義全局整型變量i,score_ma*,sum,more_than,equal,less_than,A,B,C,D,E;定義全局浮點(diǎn)型變量aveS2:以r的方式翻開文本文件stuin.t*tS3:將文本文件stuin.t*t的內(nèi)容讀入到構(gòu)造體數(shù)組student100中S4:score

4、_ma*=student0.scoreS5:i=1S6:假設(shè)studenti.scorescore_ma*執(zhí)行S7;否則,執(zhí)行S8S7:score_ma*=studenti.scoreS8:i=i+1S9:假設(shè)i100,返回S6;否則,執(zhí)行S10S10:輸出所有studenti.score=score_ma*的studenti的成員studenti.num、和studenti.score到屏幕;以w 的方式翻開文本文件stuout.t*t,輸出所有studenti.score=score_ma*的studenti的成員studenti.num、studenti.nam

5、e和studenti.score到文本文件stuout.t*t,然后關(guān)閉文本文件stuout.t*tS11:sum=0S12:i=0S13:sum=sum+studenti.scoreS14:i=i+1S15:假設(shè)iave執(zhí)行S23;否則,執(zhí)行S24S23:more_than=more_than+1,執(zhí)行S27S24:假設(shè)studenti.score=ave執(zhí)行S25;否則,執(zhí)行S26S25:equal=equal+1,執(zhí)行S27S26:less_than=less_than+1S27:i=i+1S28:假設(shè)i100,返回S22;否則,執(zhí)行S29S29:輸出more_than、equal、le

6、ss_than到屏幕;以a 的方式翻開文本文件stuout.t*t,輸出more_than、equal、less_than到文本文件stuout.t*t,然后關(guān)閉文本文件stuout.t*tS30:i=0S31:A=0S32:B=0S33:C=0S34:D=0S35:E=0S36:假設(shè)90studenti.score100執(zhí)行S37;否則,執(zhí)行S38S37:A=A+1,執(zhí)行S46S38:假設(shè)80studenti.score89執(zhí)行S39;否則,執(zhí)行S40S39:B=B+1,執(zhí)行S46S40:假設(shè)70studenti.score79執(zhí)行S41;否則,執(zhí)行S42S41:C=C+1,執(zhí)行S46S42

7、:假設(shè)60studenti.score69執(zhí)行S43;否則,執(zhí)行S44S43:D=D+1,執(zhí)行S46S44:假設(shè)0studenti.score59執(zhí)行S45S45:E=E+1S46:i=i+1S47:假設(shè)i100,返回S36;否則,執(zhí)行S48S48:輸出A,B,C,D,E和A/100*100%, B/100*100% ,C/100*100%, D/100*100%, E/100*100%到屏幕;以a 的方式翻開文本文件stuout.t*t,輸出A,B,C,D,E和A/100*100%, B/100*100% ,C/100*100%, D/100*100%, E/100*100%到文本文件stu

8、out.t*t,然后關(guān)閉文本文件stuout.t*tS49:關(guān)閉文本文件stuin.t*t,stuout.t*t,然后算法完畢流程圖:三、程序的調(diào)試調(diào)試過程中遇到fread函數(shù)使用錯(cuò)誤,導(dǎo)致文件讀取失敗。后改用fscanf函數(shù),解決了文件讀取問題。變量的運(yùn)用出現(xiàn)了一些問題。最后把多個(gè)函數(shù)需要用到的需要保存原值的變量設(shè)為了全局變量。四、課程設(shè)計(jì)總結(jié)與體會(huì)通過這次課程設(shè)計(jì),我對循環(huán)構(gòu)造控制、函數(shù)調(diào)用、構(gòu)造體、文件操作更加熟悉,對C語言程序設(shè)計(jì)有了更加深入的認(rèn)識(shí),鍛煉了編寫大型程序的能力,了解了大型程序設(shè)計(jì)的開發(fā)步驟。C語言主體應(yīng)是由函數(shù)調(diào)用構(gòu)成的,應(yīng)盡可能把相對獨(dú)立的功能單獨(dú)用一個(gè)函數(shù)來編寫,這樣

9、可以提高程序的可讀性,也能降低編寫大型程序的難度,減少編程出錯(cuò)的可能性。源代碼:#includestruct studentint num;char name11;int score;student100;int i,score_ma*,sum,more_than,equal,less_than,A,B,C,D,E;float ave;void ma*()void save_ma*();score_ma*=student0.score;for(i=0;iscore_ma*)score_ma*=studenti.score;printf(取得最高成績的學(xué)生的信息:n);for(i=0;i100;

10、i+)if(studenti.score=score_ma*)printf(%dt%st%dn,studenti.num,,studenti.score);printf(n);save_ma*();void save_ma*()FILE *fp2;fp2=fopen(stuout.t*t,w);fputs(取得最高成績的學(xué)生的信息:n,fp2);for(i=0;i100;i+)if(studenti.score=score_ma*)fprintf(fp2,%dt%st%dn,studenti.num,,studenti.score);fclo

11、se(fp2);void average()void save_average();sum=0;for(i=0;i100;i+)sum+=studenti.score;ave=sum/100.0;printf(平均成績?yōu)椋?fnn,ave);save_average();void save_average()FILE *fp2;fp2=fopen(stuout.t*t,a);fputs(n平均成績?yōu)椋?fp2);fprintf(fp2,%fnn,ave);fclose(fp2);void average_pare()void save_average_pare();more_than=0;eq

12、ual=0;less_than=0;for(i=0;iave)more_than+;else if(studenti.score=ave)equal+;else less_than+;printf(高于平均成績的學(xué)生人數(shù):%dn,more_than);printf(等于于平均成績的學(xué)生人數(shù):%dn,equal);printf(低于平均成績的學(xué)生人數(shù):%dnn,less_than);save_average_pare();void save_average_pare()FILE *fp2;fp2=fopen(stuout.t*t,a);fprintf(fp2,高于平均成績的學(xué)生人數(shù):%dn,mo

13、re_than);fprintf(fp2,等于平均成績的學(xué)生人數(shù):%dn,equal);fprintf(fp2,低于平均成績的學(xué)生人數(shù):%dnn,less_than);fclose(fp2);void rank()void save_rank();A=B=C=D=E=0;for(i=0;i=90)&(studenti.score=80)&(studenti.score=70)&(studenti.score=60)&(studenti.score=69)D+;else E+;printf(取得優(yōu)秀的學(xué)生人數(shù):%dt%.1f%n,A,A/100.0*100);printf(取得良好的學(xué)生人數(shù):%

14、dt%.1f%n,B,B/100.0*100);printf(取得中等的學(xué)生人數(shù):%dt%.1f%n,C,C/100.0*100);printf(取得及格的學(xué)生人數(shù):%dt%.1f%n,D,D/100.0*100);printf(取得不及格的學(xué)生人數(shù):%dt%.1f%n,E,E/100.0*100);save_rank();void save_rank()FILE *fp2;fp2=fopen(stuout.t*t,a);fprintf(fp2,取得優(yōu)秀的學(xué)生人數(shù):%dt%.1f%n,A,A/100.0*100);fprintf(fp2,取得良好的學(xué)生人數(shù):%dt%.1f%n,B,B/100.0*100);fprintf(fp2,取得中等的學(xué)生人數(shù):%dt%.1f%n,C,C/100.0*100);fprintf(fp2,取得及格的學(xué)生人數(shù):%dt%.1f%n,D,D/100.0*100);fprintf(fp2,取得不及格的學(xué)生人數(shù):%dt%.1f%n,E,E/100.0*100);fclo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論