![《C語言程序設(shè)計》綜合實習(xí)報告_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/10/84e82929-bce3-479b-a560-8dc55a00d39a/84e82929-bce3-479b-a560-8dc55a00d39a1.gif)
![《C語言程序設(shè)計》綜合實習(xí)報告_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/10/84e82929-bce3-479b-a560-8dc55a00d39a/84e82929-bce3-479b-a560-8dc55a00d39a2.gif)
![《C語言程序設(shè)計》綜合實習(xí)報告_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/10/84e82929-bce3-479b-a560-8dc55a00d39a/84e82929-bce3-479b-a560-8dc55a00d39a3.gif)
![《C語言程序設(shè)計》綜合實習(xí)報告_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/10/84e82929-bce3-479b-a560-8dc55a00d39a/84e82929-bce3-479b-a560-8dc55a00d39a4.gif)
![《C語言程序設(shè)計》綜合實習(xí)報告_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/10/84e82929-bce3-479b-a560-8dc55a00d39a/84e82929-bce3-479b-a560-8dc55a00d39a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、用指針優(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ù)組stu1O的內(nèi)容輸出到屏幕上,要求用指針實現(xiàn)3將成績數(shù)組按照從高到低進行排序,要求用指針實現(xiàn)4將第三步內(nèi)容放在函數(shù)中實現(xiàn),在主函數(shù)中調(diào)用實現(xiàn)排序,用指針實現(xiàn), 輸出
2、排序后的成績單5. 采用指針方法,輸入字符串“student score ”,復(fù)制該字符串并輸出(復(fù)制字符串采用庫函數(shù)或用戶自定義函數(shù))6. 在實習(xí)報告中畫出程序流程圖,說明程序設(shè)計的算法,附主要程序段運 行結(jié)果(屏幕截圖)。7. 在實習(xí)報告中說明知識點8 .在實習(xí)報告中說明程序設(shè)計過程中的難點、解決辦法及編程小結(jié)或體會四、程序流程圖、算法及運行結(jié)果1. 程序流程圖:開始由鍵盤輸入成績輸出成績丫比較成績的高低復(fù)制stude nt輸出字符串結(jié)束2. 算法:先定義一個函數(shù)接收10個學(xué)生的成績,利用指針將數(shù)據(jù)保存在數(shù)組中, 再定義第二個函數(shù)輸出所以學(xué)生的成績,同樣也是使用指針,最后定義一個函數(shù)用選擇
3、排序法對成績進行由大到小的排序,將指針指向的是數(shù)組中的第一個地址,在主函數(shù)中依次調(diào)用這兩個函數(shù);定義一個字符指針指向字符串,利用庫函數(shù)中的strcpy 將studentscore復(fù)制給字符指針,輸出字符串3. 程序:#in cludestdio.h#in cludestri ng.hstruct stude ntint grade;int num;stu1O;void in put(struct stude nt *p) int i;for(i=0;in um,&p-grade); void printout(struct student *p) int i;for(i=0;igrade);
4、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 student stu10,*ptr;int i
5、;char string100,*s; s=string;ptr=stu;input(ptr); printout(ptr);place(stu);printf( 排序后的成績單為: n); for(i=0;i|二丄二戶二4.二.4二丄二4-.1234567 8 fl 1 2 34E678 911 rmlTI r-Hi?D-ki H-ki ? J-J-x- n-T 7tLIJ J-x- -J-T rifn 刁 jfnn-T nrj?inrbscoietudent五、知識點、難點及解決辦法。主要考察的是利用指針作為函數(shù)參數(shù)以及指針數(shù)組的知識點,如何使指針指向數(shù)組并能將值返回給主函數(shù)是一個難點首先
6、定義一個整型指針指向數(shù)組 stu的首地址,在自定義函數(shù)中運用循環(huán) 結(jié)構(gòu)實現(xiàn)指針的移動并分別存儲各個學(xué)生的成績返回給主函數(shù)六、編程小結(jié)或體會。編程時除了注意指針與函數(shù)如何調(diào)用外,還要注意細節(jié)問題,比如自定義變 量類型的統(tǒng)一,循環(huán)結(jié)構(gòu)的循環(huán)次數(shù)等等,要謹慎對待課題二:學(xué)生成績單制作一、目的1 掌握結(jié)構(gòu)體變量及數(shù)組的定義、賦值、初始化、輸入、輸出2 結(jié)構(gòu)體數(shù)組的操作。二、實習(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)容3
7、輸出單門課成績最高的學(xué)生的學(xué)號、姓名、以及該門課程的成績4輸出三門課程的平均分數(shù)最高的學(xué)生的學(xué)號、姓名及其平均分5 將10個學(xué)生按照平均分數(shù)從高到低進行排序,輸出結(jié)果,格式如下所示:nu mber n ame math Chin ese En glish average103 tom 909010095101 alice 908070806 在實習(xí)報告中畫出程序流程圖,說明程序設(shè)計的算法,附主要程序段及運行結(jié)果(屏幕截圖)。7 在實習(xí)報告中說明知識點。8在實習(xí)報告中說明程序設(shè)計過程中的難點、解決辦法及編程小結(jié)或體會四、程序流程圖、算法及運行結(jié)果1. 程序流程圖:開始鍵入每個學(xué)生的信息比較每個學(xué)
8、生單門課成績計算每個學(xué)生平均分比較按平均分高低排序根據(jù)返回值輸出相應(yīng)的學(xué)生信息按照排序輸出學(xué)生信息2. 算法:先定義一個結(jié)構(gòu)體,存儲學(xué)生的各項信息,定義一個結(jié)構(gòu)體指針指向 結(jié)構(gòu)體數(shù)組,第一個函數(shù)比較每個學(xué)生單門課的成績,返回每一門課最高 分學(xué)生的stu的下標(biāo);第二個函數(shù)比較每個學(xué)生的平均分,返回平均分最高的學(xué)生;第三個函數(shù)主要按照平均分高低對學(xué)生進行排序,通過循環(huán)和選擇排序法實現(xiàn)指針的移動以及重新排列,主函數(shù)中依次調(diào)用這三個函數(shù)3. 程序:#includestdio.h#define N 10struct studentlong number;char name20;float grade3;
9、float average;stu10;int hanshu_best(struct student *p,int m) int q,num;float a;a=p-gradem;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;p-average=p-average*1.0/3; a=p-average
10、;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 average; ptr=stu;for(i=0;iN;i+) prin tf
11、(請輸入第個學(xué)生的學(xué)號、姓名及三科成績:n,i+1);scanf(%ld%s,&stui.number,);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.gradem); in dex=ha nshu_average(ptr);prin tf(n三門課平均分最高的學(xué)生信息是:n);printf(學(xué)號 %ld姓名
12、: %-10s平均分 -8.2fn,stuindex.number,,stuin dex.average);prin tf(n10個學(xué)生由高分到低分排名為:n);prin tf( nu mbern ameMathChin eseEn glishaverage n);han shu_place(ptr);for(i=0;iN;i+) prin tf(%-10ld%-10s%,stui. number,stui. name);for(j=0;j3;j+)prin tf(%-10.2f,stui.gradej);prin tf(%-10.2fn,stui.average);
13、.00.Bflr amg huang c: hen酬嘔最鷲步譬嘰酮站入第1琲學(xué)生的學(xué)號、妊名及二科成績:m In 97 32 434.運行結(jié)果:主要考察的是結(jié)構(gòu)體指針的運用,比較難的地方也就是如何將指針指向結(jié)構(gòu) 體并返回我們所要的數(shù)值高占?曰名-I :B 二冃diueraije時學(xué)生亡高分到假分排名為;iiunlier nameHatrlidilimee English五、知識點、難點及解決辦法先定義一個結(jié)構(gòu)體數(shù)組,再定義一個結(jié)構(gòu)體指針,令指針指向數(shù)組的首地址, 在自定義函數(shù)中通過指針的運算實現(xiàn)數(shù)組的運算,并返回相應(yīng)的值 六、編程小結(jié)或體會。在輸出我們所需要的數(shù)據(jù)時候可以通過一些小技巧使程序看
14、起來更好看。掌握結(jié)構(gòu)體指針的技巧可以解決很多問題,使自己的程序具有解決多個復(fù)雜 問題的能力,以后多練習(xí)此類的程序設(shè)計問題,使自己更加熟練課題三:學(xué)生成績文件管理一、目的1 掌握文件指針的概念和運用2 掌握文件的相關(guān)操作:打開、讀、寫、關(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ù)讀出,查看是否正確寫入,
15、關(guān)閉文件。4. 打開文件stud.txt文件,讀出數(shù)據(jù),將10個學(xué)生按照平均分數(shù)從高到低進 行排序,分別將結(jié)果輸出到屏幕上和另一文件studsort.txt 中。5. 在實習(xí)報告中畫出程序流程圖,說明程序設(shè)計的算法,附主要程序段及運行 結(jié)果(屏幕截圖)。6. 在實習(xí)報告中說明知識點。7. 在實習(xí)報告中說明程序設(shè)計過程中的難點、解決辦法及編程小結(jié)或體會。四、程序流程圖、算法及運行結(jié)果1. 程序流程圖:開始鍵入每個學(xué)生的信息2. 算法:首先創(chuàng)建一個可讀可寫的新文件 stud.txt ,鍵入十個學(xué)生的信息并儲 存在文件中,關(guān)閉程序;打開文件 stud.txt ,讀出文件中的信息并輸出, 檢查有無錯漏
16、, 并按照平均分通過選擇排序法對學(xué)生由高到低排序, 關(guān)閉程 序;將排好序的信息輸出并存儲在新的可寫文件 studsort.txt 中3. 程序:#includestdio.h#includestdlib.h#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
17、(0); for(i=0;iN;i+) printf( 第 %-2d 個學(xué)生的學(xué)號、姓名及三門課成績: n,i+1); scanf(%ld%s,&stui.num,);fprintf(fp,第-2d個學(xué)生的學(xué)號、姓名及三門課成績:n,i+1);fprintf(fp,%ld %-5s,stui.num,);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
18、(fp=fopen(stud.txt,r+)=NULL) printf( 該文件打開失??! );exit(0); printf(n); for(i=0;iN;i+)n,i+1); printf(第個學(xué)生的學(xué)號、姓名及三門課成績:fscanf(fp,%ld%s,&stui.num,); printf(%ld %-5s,stui.num,); for(j=0;j3;j+) fscanf(fp,%d,&stui.gradej);printf(%d ,stui.gradej); printf(n);if(fclose(fp) printf( 該文件無法正常關(guān)閉! n
19、);exit(0); if(fp=fopen(stud.txt,r+)=NULL) printf( 該文件打開失敗! );exit(0); for(i=0;iN;i+) fscanf(fp,%ld%s,&stui.num,);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
20、+1=stui; stui=t; if(fclose(fp) prin tf(該文件無法正常關(guān)閉!n);exit(0); if(fpp=fope n( studsort.txt,w+)=NULL) printf(該文件打開失??!);exit(0); prin tf(n由高到低排序為:n);for(i=0;iN;i+) prin tf(%ld %-5s,stui. num,stui. name);fprin tf(fpp,%ld %-5s,stui. nu m,stui. name); for(j=0;jnum=number) printf(%-15sn,p-name);p=p-next; wh
21、ile(p!=NULL);void cdelete(struct student *q) struct student *p1,*p2;long count;printf( 請輸入你要刪除的學(xué)生學(xué)號: ); scanf(%ld,&count);p1=q;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;prin tf( 請輸入并學(xué)生的信息:n,N);p=tail=(struct student *)malloc(len); head=NULL;scanf(%ld%s,&p-num,p-name);while(p-
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025委托招標(biāo)代理合同
- 2025【合同范本】建筑工程施工合同示本
- 2025二手空調(diào)購銷合同范本
- 長城遺址修繕方案
- 促銷活動合同范例
- 2024年六年級品社下冊《去中學(xué)看看》說課稿2 蘇教版
- 配件報價實施方案
- 2024年五年級英語下冊 Unit 4 Did You Have a Nice Trip Lesson 19 Li Ming Goes Home說課稿 冀教版(三起)
- 貴州籠式球場護欄施工方案
- 砂石加工賬目處理方案
- 城市道路智慧路燈項目 投標(biāo)方案(技術(shù)標(biāo))
- 水泥采購?fù)稑?biāo)方案(技術(shù)標(biāo))
- 醫(yī)院招標(biāo)采購管理辦法及實施細則(試行)
- 初中英語-Unit2 My dream job(writing)教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 廣州市勞動仲裁申請書
- 江西省上饒市高三一模理綜化學(xué)試題附參考答案
- 23-張方紅-IVF的治療流程及護理
- 頂部板式吊耳計算HGT-20574-2018
- 因數(shù)和倍數(shù)復(fù)習(xí)思維導(dǎo)圖
- LY/T 2986-2018流動沙地沙障設(shè)置技術(shù)規(guī)程
- 三級教育考試卷(電工)答案
評論
0/150
提交評論