C語(yǔ)言程序設(shè)計(jì)上機(jī)實(shí)習(xí)報(bào)告長(zhǎng)江大學(xué)_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)上機(jī)實(shí)習(xí)報(bào)告長(zhǎng)江大學(xué)_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)上機(jī)實(shí)習(xí)報(bào)告長(zhǎng)江大學(xué)_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)上機(jī)實(shí)習(xí)報(bào)告長(zhǎng)江大學(xué)_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)上機(jī)實(shí)習(xí)報(bào)告長(zhǎng)江大學(xué)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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、長(zhǎng)江大學(xué)機(jī)械工程學(xué)院答辯記錄運(yùn)行情況原始數(shù)據(jù)成績(jī)排名平均分和分?jǐn)?shù)段統(tǒng)計(jì)男女生課程平均分不及格統(tǒng)計(jì)優(yōu)秀生統(tǒng)計(jì)優(yōu)秀學(xué)生干部統(tǒng)計(jì)破譯密碼組成大字符回答問(wèn)題12345計(jì)算機(jī)上機(jī)實(shí)習(xí)實(shí) 習(xí) 報(bào) 告班 級(jí) 裝備11003 學(xué) 號(hào) 201005856 姓 名 鄭天倫 指導(dǎo)教師 周志宏老師 完成日期 2011年12月26日 (一)題目的分析設(shè)計(jì)與說(shuō)明程序要求說(shuō)明:1. 用文字處理軟件(用記事本寫(xiě)字板wordtc,不能用excel)新建一個(gè)文本文件, 將本班M名學(xué)生在本學(xué)期的N門(mén)課程成績(jī)錄入到這個(gè)文件中,按如下形式存放。要求:學(xué)生人數(shù)M不少于30人,課程門(mén)數(shù)N不小于5, 姓名為本班的真實(shí)姓名, 課程中必須有一門(mén)

2、考查課。2. 錄入本班班級(jí)學(xué)生信息,內(nèi)容包含“編號(hào) 課程名稱 課程學(xué)分”,錄入課程學(xué)分情況;讀取原始數(shù)據(jù)文件的內(nèi)容,計(jì)算每個(gè)學(xué)生的加權(quán)平均分 (保留一位小數(shù),4舍5入) ,按平均分排名次,平均分相同則名次相同。創(chuàng)建一個(gè)數(shù)據(jù)文件(建議為:文本文件) ,存放班級(jí)的成績(jī)表,按下列式形存放。計(jì)算加權(quán)平均分的公式如下3. 分別統(tǒng)計(jì)全班每門(mén)課的平均分。計(jì)算各分?jǐn)?shù)段(60;6069;7079;8089;90以上)的學(xué)生人數(shù)。創(chuàng)建一個(gè)數(shù)據(jù)文件(建議為:文本文件) ,存放上述計(jì)算結(jié)果。4. 分別統(tǒng)計(jì)男生和女生每門(mén)課的平均分。結(jié)果存放在一個(gè)數(shù)據(jù)文件中;5. 輸出所有存在不及格課程學(xué)生的名單,包括:學(xué)號(hào)、姓名、性別

3、、不及格課程名稱、課程學(xué)分及成績(jī)。結(jié)果存放在一個(gè)數(shù)據(jù)文件中。6. 輸出優(yōu)秀學(xué)生名單,包括:學(xué)號(hào)、姓名、性別、名門(mén)課成績(jī)、平均分和名次。結(jié)果存放在一個(gè)數(shù)據(jù)文件中。優(yōu)秀學(xué)生的條件為:1平均分90 2. 名次在本班前3名3. 平均分85,并且至少有一門(mén)課的成績(jī)?yōu)?5分4平均分85,并且至少有二門(mén)課的成績(jī)?yōu)?0分1平均分85 2. 名次在本班前20%名3平均分80,并且至少有一門(mén)課的成績(jī)?yōu)?5分4平均分80,并且至少有二門(mén)課的成績(jī)?yōu)?0分7. 輸出優(yōu)秀學(xué)生干部名單,包括:學(xué)號(hào)、姓名、性別、職務(wù)、名門(mén)課成績(jī)、平均分和名次。結(jié)果存放在一個(gè)數(shù)據(jù)文件中。優(yōu)秀學(xué)生的條件為:題目的分析思路要點(diǎn):前期準(zhǔn)備:分別建立

4、三個(gè)數(shù)據(jù)文件文件1(原始成績(jī)數(shù)據(jù)file1.txt)用于存放學(xué)生成績(jī);文件2(學(xué)生基本信息file2.txt)用于存放學(xué)生的基本信息;文件3(課程及學(xué)分設(shè)置file3.txt)用于存放N門(mén)課程及對(duì)應(yīng)的學(xué)分。1)學(xué)生成績(jī)管理系統(tǒng)1.(定義三個(gè)結(jié)構(gòu)體數(shù)組:原始數(shù)據(jù)file1.txt存放學(xué)生成績(jī);學(xué)生基本信息file2.txt;存放學(xué)生基本信息;課程及學(xué)分file3.txt存放課程及其學(xué)分)2.讀入原始數(shù)據(jù)并顯示(將其讀入另外的“成績(jī)”,“基本信息”,”學(xué)分”中);運(yùn)用數(shù)組相關(guān)的知識(shí)點(diǎn),對(duì)漢字信息采用字符串類型的讀入,對(duì)數(shù)字采用整型數(shù)組讀入,同時(shí)輸出相關(guān)信息,其中設(shè)定不同的指針指向文件,便于使用。3

5、.編寫(xiě)函數(shù)用于計(jì)算加權(quán)平均分及名次。(將其讀入另外的”名次表”中);4.編寫(xiě)函數(shù)計(jì)算全班每門(mén)課程的平均分以及不同分?jǐn)?shù)段的人數(shù)(將其讀入另外的”每門(mén)課平均”中);5.編寫(xiě)函數(shù)輸出男女生課程平均分(將其讀入另外的”男女生課程平均分中),運(yùn)用之前輸出的班級(jí)同學(xué)的平均分的文本,運(yùn)用循環(huán)語(yǔ)句及字符串比較函數(shù)等,將性別sex與第一個(gè)男生做比較,如果比較結(jié)果相同則都為男生,輸出成績(jī),計(jì)算男生平均分,女生也相同方式;6.編寫(xiě)函數(shù)統(tǒng)計(jì)不及格情況,按照條件,按照科目順序以及同學(xué)成績(jī)遴選出不及格的同學(xué),輸出其相關(guān)的信息。(將其讀入另外的”不及格表”中) ;7.編寫(xiě)函數(shù)輸出優(yōu)秀學(xué)生按照成績(jī)排名輸出優(yōu)秀學(xué)生。(將其讀入

6、另外的”優(yōu)秀學(xué)生”中);8.編寫(xiě)函數(shù)輸出優(yōu)秀學(xué)生干部(將其讀入另外的”優(yōu)秀學(xué)生干部.txt”中)9.編寫(xiě)菜單,共有8個(gè)菜單項(xiàng),其中7個(gè)為題目要求,第8個(gè)為退出函數(shù)。2)破譯密碼1.求出100-200之間的素?cái)?shù),作為解碼的密匙。2.根據(jù)要求編寫(xiě)出對(duì)應(yīng)密匙的解碼結(jié)果。3.輸出解碼結(jié)果。(二) 程序框圖主菜單功能模塊圖主函數(shù)組成大字符(本題不做)學(xué)生成績(jī)管理 破譯密碼一級(jí)菜單結(jié)構(gòu)圖學(xué)生成績(jī)管理系統(tǒng)8. 返回上級(jí)菜單7. 輸出優(yōu)秀學(xué)生干部名單3. 統(tǒng)計(jì)全班每門(mén)課程的平均分4. 統(tǒng)計(jì)男生和女生每門(mén)課平均分2. 計(jì)算加權(quán)平均分及名次1.讀入原始數(shù)據(jù)并顯示菜單 6. 輸出優(yōu)秀學(xué)生5. 統(tǒng)計(jì)不及格情況破譯密碼

7、流程圖(三)源程序清單解析# includestdio.h# includeconio.h# includestdlib.h#include #include #define M 36 定義一個(gè)全局變量M 36 為班級(jí)學(xué)生的人數(shù)1.定義五個(gè)結(jié)構(gòu)體類型變量,“學(xué)生成績(jī)表”、“學(xué)生信息”、“課程與學(xué)分設(shè)置”、“匯總所有信息”、“平均分”向系統(tǒng)聲明這是一個(gè)結(jié)構(gòu)體類型,它包括成員列表中不同類型的成員。例如:struct student /學(xué)生成績(jī)表 int num; char name30; int score5; char kaocha10; studM; 2.準(zhǔn)備讀入數(shù)據(jù)void function

8、1_1() printf(*讀入原始數(shù)據(jù)并顯示的程序內(nèi)容*n); int i; char f115,f215,f315, f415, f515, f615, f715,f815; char m115,m215,m315,m415,m515; char n115,n215,n315;文件讀入舉例如下:(1)定義文件型數(shù)據(jù)的指針通過(guò)文件指針找到與它關(guān)聯(lián)的文件。例如定義:FILE *fp,*fp1,*fp2;(2)fp文件指向file1對(duì)應(yīng)學(xué)生成績(jī)表,打開(kāi)文件時(shí)通知編譯系統(tǒng)一下三個(gè)信息: 打開(kāi)文件的名字 使用文件的方式哪一個(gè)指針變量指向打開(kāi)的文件運(yùn)用如下方式:fp=fopen(G:00file1.t

9、xt,r); /打開(kāi)文件一,學(xué)生成績(jī)表 if(fp=NULL) printf(cannot open the filen); exit(0); fscanf(fp,%s%s%s%s%s%s%s%sn,f1,f2,f3,f4,f5,f6,f7,f8);/運(yùn)用格式化的方式讀取文件內(nèi)容for(i=0;iM;i+) /設(shè)立一個(gè)循環(huán)要求分別讀入每個(gè)同學(xué)每一科的成績(jī),包括輸出一顆考查課的成績(jī)fscanf(fp,%d%s%d%d%d%d%d%sn,&studi.num,,&studi.score0,&studi.score1,&studi.score2,&studi.score3,&st

10、udi.score4,studi.kaocha); fclose(fp);文件讀取完畢后,關(guān)閉文件(3)讀取完畢后,顯示輸出讀取的內(nèi)容 printf(%2s %5s %8s %8s %8s %9s %9s %10sn,f1,f2,f3,f4,f5,f6,f7,f8);先輸出表頭內(nèi)容for(i=0;iM;i+)設(shè)立循環(huán),輸出所有學(xué)生的相關(guān)信息。printf(%-5d %-8s%6d%8d%10d%10d%10d %10sn,studi.num,,studi.score0,studi.score1, studi.score2,studi.score3,studi.score4,

11、studi.kaocha); printf(n);可以使用同樣方式打開(kāi)“學(xué)生信息”“學(xué)分設(shè)置”的文件3.計(jì)算加權(quán)平均分以及學(xué)生名次void function1_2() printf(*計(jì)算平均分及名次*n); int i,j; float sum1,sum2; FILE *fp,*fp1,*fp2,*fp3; (1)按照上述方式以只讀的形式打開(kāi)“file1.txt”“file2.txt”“file3.txt”,對(duì)里面數(shù)據(jù)進(jìn)行讀取。 (2)設(shè)立循環(huán)語(yǔ)句,從第一個(gè)學(xué)生開(kāi)始,用課程*對(duì)應(yīng)的課程的學(xué)分再將得到的值賦給sum1;將總學(xué)分的值賦給sum2,用sum1/sum2所得的值就是此同學(xué)的加權(quán)平均分

12、,接著i+,進(jìn)行第二個(gè)學(xué)生的加權(quán)平均分統(tǒng)計(jì)。 主要程序如下: for(i=0;iM;i+) sum1=0.0; sum2=0.0; for(j=0;j5;j+) sum1=sum1+studi.scorej*stj.xuefen; /*求加權(quán)平均分,用(課程*對(duì)應(yīng)學(xué)分)/課程學(xué)分*/ sum2=sum2+stj.xuefen; stri.average=sum1/sum2; (3)設(shè)立名次排名的循環(huán),先將第一個(gè)同學(xué)的名次定位rank=1,第下一個(gè)同學(xué)的加權(quán)平均分與這一個(gè)的同學(xué)的進(jìn)行比較,如果出現(xiàn)他得平均小,則stri.rank=stri.rank+1,如果相等則stri.rank=stri.r

13、ank。接著就開(kāi)始進(jìn)行第二個(gè)同學(xué)的比較,同樣將第二個(gè)學(xué)生的名次rank賦值為1,如上進(jìn)行比較 主要程序如下: for(i=0;iM;i+) stri.rank=1; for(j=0;jM;j+) if(stri.averagestrj.average) stri.rank=stri.rank+1; /通過(guò)比較平均分進(jìn)行排名 if(stri.average=strj.average) stri.rank=stri.rank; (4)將所得名次排名等信息,寫(xiě)到一個(gè)新的文件中“w”形式為寫(xiě)到文件中。方式如下:if(fp3=fopen(G:00file2.1.txt,w)=NULL) /在新的文本中輸

14、出信息 printf(cannot open the filen); exit(0); fprintf(fp3,%-2s %4s %5s %6s %9s %9s %8s %8s %s 平均分 名次n,f1,f2,m3,m5,f3,f4,f5,f6,f7,f8 ); printf(%-2s%4s %6s %6s %6s %6s %6s %6s %8s平均分 名次n,f1,f2,m3,m5,f3,f4,f5,f6,f7,f8); 輸出表頭,且加入“平均分”“名次”的表頭。 for(i=0;iM;i+)fprintf(fp3,%-2d %-6s %3s%10s%6d%8d%8d%8d %5d %8.

15、2f%8dn,studi.num,,stui.sex,stui.position,studi.score0,studi.score1,studi.score2,studi.score3,studi.score4,stri.average,stri.rank); printf(%-2d %-6s %3s%10s%6d%8d%8d %8d %6d%8.2f%8dn,studi.num,,stui.sex,stui.position,studi.score0,studi.score1,studi.score2,studi.score3,studi.score4

16、,stri.average,stri.rank);(6)使用完后,關(guān)閉文件 fclose(fp); fclose(fp1); fclose(fp2); fclose(fp3); printf( *按Enter鍵繼續(xù)*n); getchar(); getchar();4.課程平均分和分?jǐn)?shù)段人數(shù)void function1_3() printf(*課程平均分和分?jǐn)?shù)段人數(shù)*n); int i,j,sum; char f110,f210,f310, f410, f510, f610, f710,f815;FILE *fp,*fp5;(1)按照上面介紹的方式打開(kāi)學(xué)生信息的文件file1.txt。 (2)

17、設(shè)立一個(gè)大循環(huán),除去考查課的5個(gè)科目;在大循環(huán)中建立學(xué)生的循環(huán),統(tǒng)計(jì)第一個(gè)學(xué)科所有學(xué)生的成績(jī)賦值到sum中,用sum/36.0可以得到此課程的平均分;接著i+進(jìn)行第二個(gè)課程平均分的統(tǒng)計(jì)。 程序要點(diǎn)如下: for(i=0;i5;i+) sum=0; for(j=0;jM;j+) sum=sum+studj.scorei; peri.ping=sum/36.0; (3)設(shè)立科目的大循環(huán)并在循環(huán)中加入學(xué)生的循環(huán),從第一個(gè)科目開(kāi)始,對(duì)第一個(gè)學(xué)生的成績(jī)進(jìn)行判斷各分?jǐn)?shù)段(60;6069;7079;8089;90以上)如果在相應(yīng)的那個(gè)分?jǐn)?shù)段,就在那分?jǐn)?shù)段的計(jì)數(shù)器count上+1,知道最后一個(gè)學(xué)生信息讀完。接

18、著進(jìn)行第二個(gè)科目的統(tǒng)計(jì)。統(tǒng)計(jì)結(jié)束后設(shè)立新的文本存放統(tǒng)計(jì)結(jié)束后的信息。程序要點(diǎn)如下: for(i=0;i5;i+) for(j=0;j=90) per0.counti+; /*對(duì)不同分?jǐn)?shù)段的人進(jìn)行統(tǒng)計(jì)*/ else if (studj.scorei=80) per1.counti+; else if (studj.scorei=70) per2.counti+; else if (studj.scorei=60) per3.counti+; else per4.counti+; fp5=fopen(G:00file3.1.txt,w); /建立新的文本對(duì)不同分?jǐn)?shù)段的記錄 if(fp5=NULL)

19、 printf(cannot open the filen); exit(0); fprintf(fp5, 范圍 %8s %8s %8s %8s %8sn,f3,f4,f5,f6,f7); printf( 范圍 %8s %8s %8s %8s %8sn,f3,f4,f5,f6,f7); fprintf(fp5, =90(優(yōu)秀) %5d%8d%8d%9d%8dn,per0.count0,per0.count1,per0.count2,per0.count3,per0.count4); printf( =90(優(yōu)秀) %5d%8d%8d%9d%8dn,per0.count0,per0.count1

20、,per0.count2,per0.count3,per0.count4); fprintf(fp5, 8090(良好) %5d%8d%8d%9d%8dn,per1.count0,per1.count1,per1.count2,per1.count3,per1.count4); printf( 8090(良好) %5d%8d%8d%9d%8dn,per1.count0,per1.count1,per1.count2,per1.count3,per1.count4); fprintf(fp5, 7080(中等) %5d%8d%8d%9d%8dn,per2.count0,per2.count1,p

21、er2.count2,per2.count3,per2.count4); printf( 7080(中等) %5d%8d%8d%9d%8dn,per2.count0,per2.count1,per2.count2,per2.count3,per2.count4); fprintf(fp5, 60(不及格) %5d%8d%8d%9d%8dn,per4.count0,per4.count1,per4.count2,per4.count3,per4.count4); printf( 60(不及格) %5d%8d%8d%9d%8dn,per4.count0,per4.count1,per4.count

22、2,per4.count3,per4.count4); fprintf(fp5,課程平均分); printf(課程平均分); for(i=0;i5;i+) fprintf(fp5,% 10.3f,peri.ping); printf(% 10.3f,peri.ping); /輸出各課程的平均分 fclose(fp); fclose(fp5); printf(n);5.男女生課程平均成績(jī) void function1_4() printf(*男生和女生課程平均成績(jī)*n ); int i,j,sum=0; struct sex1 char sex6; float jun5; sex2;FILE *

23、fp,*fp1;(1) 按照上述,對(duì)之前建立的file2.1文件進(jìn)行讀取。(2) 設(shè)立一個(gè)課程的大循環(huán)其間嵌套一個(gè)學(xué)生的小循環(huán),由第一個(gè)科目開(kāi)始, 從第一個(gè)學(xué)生開(kāi)始將第一個(gè)學(xué)生的sex與字符串“男”進(jìn)行比較,如果相同就納入男生成績(jī)總和統(tǒng)計(jì)中,并且可求出其平均數(shù),女生也用同樣方法輸出其平均成績(jī);接著進(jìn)行j+,統(tǒng)計(jì)第二個(gè)科目的男女生平均分,知道所有科目統(tǒng)計(jì)結(jié)束。 程序要點(diǎn)如下:for(j=0;j5;j+) sum=0; for(i=0;iM;i+) if(strcmp(stri.sex,男)=0) sum=sum+stri.scorej; sex0.junj=sum/33.0; sum=0.0;

24、for(i=0;i36;i+) if(strcmp(stri.sex,女)=0)/選出女生對(duì)應(yīng)的數(shù)據(jù) sum=sum+stri.scorej; sex1.junj=sum/3.0; (3) 將讀出的信息寫(xiě)入一個(gè)新的文本中。 程序要點(diǎn)如下:if(fp1=fopen(G:00file4.1.txt,w)=NULL) /將信息重新讀寫(xiě)在一個(gè)新的文本中,便于查看。 printf(cannot open the filen); exit(0); fprintf(fp1,%s %s %s %s %s %sn,f3,f5,f6,f7,f8,f9);printf(%s %s %s %s %s %sn,f3,f

25、5,f6,f7,f8,f9);fprintf(fp1,男 %f %f %f %f %fn,sex0.jun0,sex0.jun1,sex0.jun2,sex0.jun3,sex0.jun4);printf( 男 %f %f %f %f %fn,sex0.jun0,sex0.jun1,sex0.jun2,sex0.jun3,sex0.jun4);fprintf(fp1,女 %f %f %f %f %fn,sex1.jun0,sex1.jun1,sex1.jun2,sex1.jun3,sex1.jun4);printf( 女 %f %f %f %f %fn,sex1.jun0,sex1.jun1,

26、sex1.jun2,sex1.jun3,sex1.jun4);6.統(tǒng)計(jì)班級(jí)不及格情況: 程序設(shè)計(jì)思路:讀取文件file2.1.txt中學(xué)生成績(jī)等相關(guān)信息;文件file3.txt中課程學(xué)分設(shè)置的信息,并且建立一個(gè)新的文件file5.1.txt用于存儲(chǔ)新生成的不及格情況統(tǒng)計(jì)。 void function1_5() printf(*統(tǒng)計(jì)不及格情況*n); int i,j; char f110,f210,f310,f410,f510,f610,f710,f810,f910,f1010,f1110; char n110,n210,n310; FILE *fp,*fp2,*fp3;(1)讀取相關(guān)文件的方式

27、如上,此處不再敘述。(2)建立新的文件夾存儲(chǔ)新生成的不及格情況統(tǒng)計(jì)。 程序要點(diǎn)如下: if(fp3=fopen(G:00file5.1.txt,w)=NULL) printf(cannot open the filen); exit(0); fprintf(fp3, %3s %4s %5s %sn,f1,f2,f3,n3); printf( %-3s %-4s %5s %s 考試分?jǐn)?shù) n,f1,f2,f3,n3); for(i=0;iM;i+) for(j=0;j5;j+) if(stri.scorej=90,名次在班級(jí)前3,若平均分=85,那么應(yīng)該至少有一門(mén)課=95或者至少有二門(mén)課成績(jī)=90

28、. int i,j,m,n; char f110,f210,f310,f410,f510,f610,f710,f810,f910,f1010,f1110;FILE *fp,*fp1;(1) 建立新的文件存放優(yōu)秀學(xué)生信息 程序要點(diǎn)如下: if(fp1=fopen(G:00file6.1.txt,w)=NULL) printf(cannot open the filen); exit(0); if(fp=fopen(G:00file2.1.txt,r)=NULL) printf(cannot open the filen); exit(0); fscanf(fp,%s%s%s%s%s%s%s%s%

29、s%s%s,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11); for(i=0;iM;i+) fscanf(fp,%d%s%s%s%d%d%d%d%d%f%d,&stri.num,,stri.sex,stri.position,&stri.score0,&stri.score1,&stri.score2,&stri.score3,&stri.score4,&stri.average,&stri.rank); fprintf(fp1,%2s%6s%5s %5s %5s %5s %5s %5s %5s %5s %sn,f1,f2,f3,f4,f5,f6,f7

30、 ,f8,f9,f10,f11); printf(%2s %6s %5s %5s %5s %5s %5s %5s %5s %5s%sn,f1,f2,f3,f4,f5,f6,f7, f8,f9,f10,f11);(2)設(shè)立一個(gè)學(xué)生的大循環(huán),其間嵌套一個(gè)科目循環(huán),從第一個(gè)學(xué)生開(kāi)始,讀取他五個(gè)科目的成績(jī)判斷是否滿足1平均分90 2. 名次在本班前3名 3.平均分85,并且至少有一門(mén)課的成績(jī)?yōu)?5分 4平均分85,并且至少有二門(mén)課的成績(jī)?yōu)?0分,如果滿足條件,那么輸出他的“學(xué)號(hào)、姓名、性別、各門(mén)課成績(jī)、平均分和名次”。 程序要點(diǎn)如下:for(i=0;iM;i+) m=0;n=0; for(j=0;j=

31、95) m+; if(stri.scorej=90) n+; if(stri.average=90|stri.rank=85&(m=1|n=2) fprintf(fp1,%2d %5s %3s%8s%5d %5d %5d %6d %5d %6.2f% 5dn,stri.num,,stri.sex,stri.position,stri.score0,stri.score1,stri.score2,stri.score3,stri.score4,stri.average,stri.rank); printf(%2d%10s %3s %8s%5d %5d %5d %6d %5d%6

32、.2f% 5dn,stri.num,,stri.sex,stri.position,stri.score0,stri.score1,stri.score2,stri.score3,stri.score4,stri.average,stri.rank); 8.優(yōu)秀學(xué)生干部 void function1_7() printf(*輸出優(yōu)秀學(xué)生干部*n);/*平均分=80,名次在班級(jí)前20%,若平均分=80,那么應(yīng)該至少有一門(mén)課=85或者至少有二門(mén)課成績(jī)=90.*/ int i,j,m,n; c har f110,f210,f310,f410,f510,f610,f710,f810,

33、f910,f1010,f1110;FILE *fp,*fp1;(1) 打開(kāi)file2.1.txt(平均分及名次)、并建立file7.1.txt的文件存儲(chǔ)優(yōu)秀學(xué)生干部的信息。(2) 設(shè)立循環(huán),從第一個(gè)學(xué)生的第一個(gè)科目開(kāi)始,判斷1平均分85 2. 名次在本班前20%名3平均分80,并且至少有一門(mén)課的成績(jī)?yōu)?5分4平均分80,并且至少有二門(mén)課的成績(jī)?yōu)?0分直到判斷完此學(xué)生所有的成績(jī)信息;接著進(jìn)行第二個(gè)同學(xué)的判斷。最終輸出所有優(yōu)秀學(xué)生的信息,信息包括“學(xué)號(hào)、姓名、性別、職務(wù)、名門(mén)課成績(jī)、平均分和名次”程序要點(diǎn)如下: for(i=0;iM;i+) m=0;n=0; for(j=0;j=95) m+; i

34、f(stri.scorej=90) n+; if(strcmp(stri.position,str0.position)!=0)&(stri.rank=80&(m=1|n=2) fprintf(fp1,%-5d%3s%6s %6s %7d %7d %7d %7d %7d %8.2f%3dn,stri.num,,stri.sex,stri.position,stri.score0,stri.score1,stri.score2,stri.score3,stri.score4,stri.average,stri.rank); printf(%-6d%3s %4s %6s %5d

35、%5d %5d %5d %5d %8.2f %3dn,stri.num,,stri.sex,stri.position,stri.score0,stri.score1,stri.score2,stri.score3,stri.score4,stri.average,stri.rank);fclose(fp);fclose(fp1); printf( *按Enter鍵繼續(xù)*n); getchar();getchar();9.破譯密碼 section2() /*第2個(gè)2級(jí)菜單*/ char ch22; do system(cls);printf(nnnnnnnnnn); prin

36、tf( *破譯密碼*n); FILE*fp,*fp1; /讀取密碼源文件 char str70; int i,j,k,n,s3,count=0; if(fp1=fopen(G:00密碼文件.txt,r)=NULL)printf(cannot open the filen); exit(0); for(n=101;n=200;n=n+2) /求出100-200之間的素?cái)?shù)。 k=sqrt(n); for(j=2;j=k+1) s0=n/100; printf( 解碼密匙是%d,s0); /百位上得數(shù) s1=n%100/10; printf(%d,s1); /十位上得數(shù) s2=n%10; print

37、f(%dn ,s2); /個(gè)位上得數(shù) if(fp=fopen(G:00密碼文件.txt,r)=NULL) printf(cannot open filen); exit(0); fgets(str,70,fp); for(i=0;stri!=0;i+) / if(stri=a&stri=A&stri=a&stri=c&(stri-s0)=a&stri=A&stri=a&stri=c&(stri-s1)=a&stri=A&stri=a&stri=c&(stri-s2)=a&stri=A&stri=Z) stri+=26;break; fprintf(fp1,%sn,str); printf(%s

38、,str); printf(n); printf(nn); printf(解碼結(jié)果是:if you can get the correct answer,you are an excellent student.); 10.大字符輸出 解題思路:建立一個(gè)字符型數(shù)組,存放輸出的0-9這幾個(gè)數(shù)字的方陣位置,按照0-99輸入一個(gè)數(shù)a,用b=a/10表示十位上的數(shù)字c=a%10表示個(gè)位上的數(shù);用接著建立一個(gè)大循環(huán),首先判斷所輸入的數(shù)字是否為兩位數(shù)即b的值是否存在,若b不存在,即只要輸出個(gè)位上的數(shù),設(shè)立一個(gè)循環(huán)按要求從1-7行輸出這個(gè)數(shù),如果b存在,那么輸出的數(shù)有兩位,按照這兩個(gè)數(shù)字,一行行地整體輸出的形式將這兩位數(shù)輸出,程序結(jié)束。 (1)字符型數(shù)組存放0-9這幾個(gè)數(shù)的方陣位置,以存放0、1舉例如下:char h1077=0,0,0,0,0,0,0,0, , , , , ,0,0, , , , , ,0,0, , , , , ,0,0, , , , , ,0,0, , , , , ,0,0,0,0,0,0,0,0, , , ,1, , , , , , ,1, , , , , , ,1, , ,

溫馨提示

  • 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)論