九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

《C語言程序設(shè)計》綜合實習(xí)報告.doc

上傳人:小** 文檔編號:16651091 上傳時間:2020-10-20 格式:DOC 頁數(shù):17 大小:350.50KB
收藏 版權(quán)申訴 舉報 下載
《C語言程序設(shè)計》綜合實習(xí)報告.doc_第1頁
第1頁 / 共17頁
《C語言程序設(shè)計》綜合實習(xí)報告.doc_第2頁
第2頁 / 共17頁
《C語言程序設(shè)計》綜合實習(xí)報告.doc_第3頁
第3頁 / 共17頁

下載文檔到電腦,查找使用更方便

5 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《C語言程序設(shè)計》綜合實習(xí)報告.doc》由會員分享,可在線閱讀,更多相關(guān)《《C語言程序設(shè)計》綜合實習(xí)報告.doc(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、- 17 - 17 -課題一:用指針優(yōu)化學(xué)生成績排名一、目的1熟悉變量的指針和指向變量的的指針變量的概念和使用2熟悉數(shù)組的指針和指向數(shù)組的的指針變量的概念和使用3. 掌握冒泡法或選擇法排序的算法4. 掌握函數(shù)的定義、調(diào)用、聲明,以及參數(shù)的兩種傳遞方式二、實習(xí)環(huán)境個人計算機,Windows操作系統(tǒng),Turbo C 2.0或 WinTC或Visual C+等編譯開發(fā)環(huán)境三、實習(xí)內(nèi)容與步驟1定義一個數(shù)組stu10存放10個學(xué)生的成績,從鍵盤輸入數(shù)據(jù),要求用指針實現(xiàn)2將數(shù)組stu10的內(nèi)容輸出到屏幕上,要求用指針實現(xiàn)3將成績數(shù)組按照從高到低進行排序,要求用指針實現(xiàn)4將第三步內(nèi)容放在函數(shù)中實現(xiàn),在主函數(shù)

2、中調(diào)用實現(xiàn)排序,用指針實現(xiàn),輸出排序后的成績單5采用指針方法,輸入字符串“student score ”,復(fù)制該字符串并輸出(復(fù)制字符串采用庫函數(shù)或用戶自定義函數(shù))6在實習(xí)報告中畫出程序流程圖,說明程序設(shè)計的算法,附主要程序段運行結(jié)果(屏幕截圖)。7. 在實習(xí)報告中說明知識點。8在實習(xí)報告中說明程序設(shè)計過程中的難點、解決辦法及編程小結(jié)或體會。四、程序流程圖、算法及運行結(jié)果1.程序流程圖:開始由鍵盤輸入成績輸出成績比較成績的高低復(fù)制student score對成績排序輸出字符串輸出排序好的成績結(jié)束2.算法:先定義一個函數(shù)接收10個學(xué)生的成績,利用指針將數(shù)據(jù)保存在數(shù)組中,再定義第二個函數(shù)輸出所以學(xué)

3、生的成績,同樣也是使用指針,最后定義一個函數(shù)用選擇排序法對成績進行由大到小的排序,將指針指向的是數(shù)組中的第一個地址,在主函數(shù)中依次調(diào)用這兩個函數(shù);定義一個字符指針指向字符串,利用庫函數(shù)中的strcpy將student score復(fù)制給字符指針,輸出字符串3.程序:#includestdio.h#includestring.hstruct studentint grade;int num;stu10;void input(struct student *p) int i;for(i=0;inum,&p-grade); void printout(struct student *p) int i;

4、for(i=0;igrade);void arrow (int *p1,int *p2,int *px,int *py) int t,m; t=*px; *px=*py; *py=t;m=*p1; *p1=*p2; *p2=m; void place(struct student stu) int i,j; for(i=1;i10;i+ ) for(j=0;j10-i;j+) if (stuj.gradestuj+1.grade)arrow(&stuj.num,&stuj+1.num,&stuj.grade,&stuj+1.grade); int main(void) struct stude

5、nt stu10,*ptr;int i;char string100,*s;s=string;ptr=stu;input(ptr);printout(ptr);place(stu);printf(排序后的成績單為:n);for(i=0;igradem;num=0;for(q=0;qgradema) a=(p+q)-gradem; num=q; return num;int hanshu_average(struct student *p) int i,m,index;float a;for(m=0;maverage=0;for(i=0;iaverage=p-average+p-gradei;

6、p-average=p-average*1.0/3; a=p-average;for(m=0;maveragea) a=p-average; index=m; elseindex=0;return index;void hanshu_place(struct student stu) int i,j; struct student t;for(i=0;iN;i+)for(j=i;jstui.average) t=stuj+1; stuj+1=stui; stui=t;void main()struct student stu10,*ptr;int i,j,index,m,num;float a

7、verage;ptr=stu;for(i=0;iN;i+) printf(請輸入第%d個學(xué)生的學(xué)號、姓名及三科成績:n,i+1); scanf(%ld%s,&stui.number,stui.name);for(j=0;j3;j+)scanf(%f,&stui.gradej); printf(n);for(m=0;m3;m+) num=hanshu_best(ptr,m);printf(學(xué)號%ld 姓名:%-10s 最高分% -8.2fn,stunum.number,stunum.name,stunum.gradem); index=hanshu_average(ptr); printf(n三

8、門課平均分最高的學(xué)生信息是:n); printf(學(xué)號%ld 姓名:%-10s 平均分%-8.2fn,stuindex.number,stuindex.name,stuindex.average); printf(n10個學(xué)生由高分到低分排名為:n);printf(number name Math Chinese English averagen);hanshu_place(ptr);for(i=0;iN;i+) printf(%-10ld%-10s%,stui.number,stui.name); for(j=0;j3;j+)printf(%-10.2f,stui.gradej);print

9、f(%-10.2fn,stui.average);4.運行結(jié)果:五、知識點、難點及解決辦法。 主要考察的是結(jié)構(gòu)體指針的運用,比較難的地方也就是如何將指針指向結(jié)構(gòu)體并返回我們所要的數(shù)值 先定義一個結(jié)構(gòu)體數(shù)組,再定義一個結(jié)構(gòu)體指針,令指針指向數(shù)組的首地址,在自定義函數(shù)中通過指針的運算實現(xiàn)數(shù)組的運算,并返回相應(yīng)的值六、編程小結(jié)或體會。在輸出我們所需要的數(shù)據(jù)時候可以通過一些小技巧使程序看起來更好看。掌握結(jié)構(gòu)體指針的技巧可以解決很多問題,使自己的程序具有解決多個復(fù)雜問題的能力,以后多練習(xí)此類的程序設(shè)計問題,使自己更加熟練課題三:學(xué)生成績文件管理一、目的1掌握文件指針的概念和運用2掌握文件的相關(guān)操作:打開

10、、讀、寫、關(guān)閉3掌握文件的定位操作二、實習(xí)環(huán)境個人計算機,Windows操作系統(tǒng),Turbo C 2.0或 WinTC或Visual C+等編譯開發(fā)環(huán)境三、實習(xí)內(nèi)容與步驟1定義一個結(jié)構(gòu)體數(shù)組,存放10個學(xué)生的學(xué)號,姓名,三門課的成績2從鍵盤輸入10個學(xué)生的以上內(nèi)容,存入文件stud.txt,關(guān)閉文件3打開stud.txt文件,將數(shù)據(jù)讀出,查看是否正確寫入,關(guān)閉文件。4打開文件stud.txt文件,讀出數(shù)據(jù),將10個學(xué)生按照平均分數(shù)從高到低進行排序,分別將結(jié)果輸出到屏幕上和另一文件studsort.txt中。5在實習(xí)報告中畫出程序流程圖,說明程序設(shè)計的算法,附主要程序段及運行結(jié)果(屏幕截圖)。6

11、在實習(xí)報告中說明知識點。7在實習(xí)報告中說明程序設(shè)計過程中的難點、解決辦法及編程小結(jié)或體會。四、程序流程圖、算法及運行結(jié)果1.程序流程圖: 將學(xué)生信息存入文件中鍵入每個學(xué)生的信息將文件中的信息讀出按平均分高低排序?qū)⑴判蚝蟮男畔⒋嫒肓硪晃募_始結(jié)束2.算法:首先創(chuàng)建一個可讀可寫的新文件stud.txt,鍵入十個學(xué)生的信息并儲存在文件中,關(guān)閉程序;打開文件stud.txt,讀出文件中的信息并輸出,檢查有無錯漏,并按照平均分通過選擇排序法對學(xué)生由高到低排序,關(guān)閉程序;將排好序的信息輸出并存儲在新的可寫文件studsort.txt中3.程序:#includestdio.h#includestdlib.h

12、#define N 10struct studentlong num;char name20;int grade3;stu10;int main(void) FILE *fp,*fpp; struct student stu10,t;float average100;int i=0,j;if(fp=fopen(stud.txt,w+)=NULL) printf(該文件打開失?。?; exit(0); for(i=0;iN;i+) printf(第 %-2d個學(xué)生的學(xué)號、姓名及三門課成績:n,i+1);scanf(%ld%s,&stui.num,stui.name);fprintf(fp,第%-

13、2d個學(xué)生的學(xué)號、姓名及三門課成績:n,i+1);fprintf(fp,%ld %-5s,stui.num,stui.name);for(j=0;j3;j+) scanf(%d,&stui.gradej);fprintf(fp,%d ,stui.gradej); fprintf(fp,n); if(fclose(fp) printf(該文件無法正常關(guān)閉!n); exit(0); if(fp=fopen(stud.txt,r+)=NULL) printf(該文件打開失??!);exit(0); printf(n);for(i=0;iN;i+) printf(第%d個學(xué)生的學(xué)號、姓名及三門課成績:n

14、,i+1);fscanf(fp,%ld%s,&stui.num,stui.name);printf(%ld %-5s,stui.num,stui.name);for(j=0;j3;j+) fscanf(fp,%d,&stui.gradej); printf(%d ,stui.gradej); printf(n);if(fclose(fp) printf(該文件無法正常關(guān)閉!n); exit(0); if(fp=fopen(stud.txt,r+)=NULL) printf(該文件打開失?。?;exit(0); for(i=0;iN;i+) fscanf(fp,%ld%s,&stui.num,s

15、tui.name);for(j=0;j3;j+)fscanf(fp,%d,&stui.gradej); for(i=0;iN;i+) for(j=0;j3;j+)averagei=averagei+stui.gradej;averagei=averagei*1.00/3; for(i=0;iN-1;i+)for(j=i;javeragei) t=stuj+1; stuj+1=stui; stui=t; if(fclose(fp) printf(該文件無法正常關(guān)閉!n); exit(0); if(fpp=fopen(studsort.txt,w+)=NULL) printf(該文件打開失敗!);

16、exit(0); printf(n由高到低排序為:n);for(i=0;iN;i+) printf(%ld %-5s,stui.num,stui.name);fprintf(fpp,%ld %-5s,stui.num,stui.name);for(j=0;jnum=number)printf(%-15sn,p-name); p=p-next; while(p!=NULL);void cdelete(struct student *q) struct student *p1,*p2; long count;printf(請輸入你要刪除的學(xué)生學(xué)號:);scanf(%ld,&count);p1=q;

17、while(count!=p1-num&p1-next!=NULL) p2=p1; p1=p1-next; ;if(count=p1-num) if(p1=q)q=p1-next;elsep2-next=p1-next; printf(delete :%ldn,p1-num); int main(void) struct student *head,*tail,*p,*p1,*p2,*q; int n=0,i;long number,NUM;printf(請輸入%d個學(xué)生的信息:n,N); p=tail=(struct student *)malloc(len);head=NULL;scanf

18、(%ld%s,&p-num,p-name);while(p-num!=0) n+=1;if(n=1)head=p;elsetail-next=p;tail=p;p=(struct student *)malloc(len);scanf(%ld%s,&p-num,p-name); ;tail-next=NULL; printf(n這10個學(xué)生的信息為:n); p=head;if(head!=NULL)do printf(%-15ld%-15sn,p-num,p-name); p=p-next; while(p!=NULL); search(head); q=head;cdelete(q);do printf(%-15ld%-15sn,q-num,q-name); q=q-next; while(q!=NULL);4.運行結(jié)果:五、知識點、難點及解決辦法。 主要考察利用指針制作單向鏈表,難點在于各個結(jié)點的鏈接以及對于鏈表的輸出,刪除結(jié)點時如何不讓鏈表斷開 定義一個頭指針和一個尾指針,通過尾指針的移動實現(xiàn)結(jié)點的鏈接,刪除結(jié)點時先將要刪除結(jié)點兩端的結(jié)點鏈接上,再刪除。六、編程小結(jié)或體會。 制作單向鏈表是對指針的充分運用,可以節(jié)省內(nèi)存,但是要熟練掌握還是有

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!