《C語言程序設(shè)計(jì)》綜合實(shí)習(xí)報(bào)告_第1頁
《C語言程序設(shè)計(jì)》綜合實(shí)習(xí)報(bào)告_第2頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

2、序,要求用指針實(shí)現(xiàn)4. 將第三步內(nèi)容放在函數(shù)中實(shí)現(xiàn),在主函數(shù)中調(diào)用實(shí)現(xiàn)排序,用指針實(shí)現(xiàn),輸出排序后的成績(jī)單5 .采用指針方法,輸入字符串“stu d ent score ”,復(fù)制該字符串并輸出(復(fù)制字符串采用庫函數(shù)或用戶自定義函數(shù))6. 在實(shí)習(xí)報(bào)告中畫出程序流程圖, 說明程序設(shè)訃的算法,附主要程序段運(yùn)行結(jié)果(屏幕截圖)。7.在實(shí)習(xí)報(bào)告中說明知識(shí)點(diǎn)。8.在實(shí)習(xí)報(bào)告中說明程序設(shè)計(jì)過程中的難點(diǎn)、解決辦法及編程小結(jié)或體會(huì)。四、程序流程圖、算法及運(yùn)行結(jié)果1.程序流程圖:開始C 語言程序設(shè)計(jì)綜合實(shí)習(xí)報(bào)告結(jié)朿2. 算法:先定義一個(gè)函數(shù)接收 10 個(gè)學(xué)生的成績(jī),利用指針將數(shù)據(jù)保存在數(shù)組中,再定義第二個(gè)函數(shù)輸出

3、所以學(xué)生的成績(jī),同樣也是使用指針,最后定義一個(gè)函數(shù)用選擇排序法對(duì)成績(jī)進(jìn)行山大到小的排序,將指針指向的是數(shù)組中的第一個(gè)地址,在主函數(shù)中依次調(diào)用這兩個(gè)函數(shù);定義一個(gè)字符指針指向字符串,利用庫函數(shù)中的 s tr c p y 將 st u de n tscore復(fù)制給字符指針,輸出字符審3. 程序:#i n elude stdi o . h#incl u destri n g . h stru ct s t u den tint g r a d e;int num;stu 1 01;v oid inpu t (str u c t s tuden t *p) inti;of or(i=0;in u m,

4、 & p -g r ade) ;void p r into u t (struct s t ud e n t *p) int i;for (i=0;i g r a de);void a rrow (in t *p 1 , in t *p2, int *px, int * p y) int t, m;t =*px;*p x = *py; *p y =t;m=*pl;*pl=*p2;*p2=m;void pl a ce (struct s t ude n t s t u ) int i, j;for(i=l;il0 ;i+ )。for(j二 0; j10-i; j+)i f (st u j

5、 . grad e s t u j+ 1 . gra d e)a r r ow (& s tu j n u m, &stuj+ 1 num, &s t uj grade, &stuj+ 1 g rade);i n t ma i n(voi d ) st r uct s t ud e nt s t u 10,水 pt r ;di n t i ;c har string 1 0 0, * s ;ds=str i n g ;ptr=stu;input(p t r);0p rintout(ptr);p 1 a ce(stu);oprintf(排序后的成績(jī)單為:n );o

6、for(i=0 ; i 1 0: i卄)o p r i n t f (第 %- 2 d 名 -2 d %-5d n ”, i + 1, stu i . n u m, stui g r ad e );print f (n);C 語言程序設(shè)計(jì)綜合實(shí)習(xí)報(bào)告s trcpy(s, student sc o r e ); p r int f (%sn , st r ing);4.運(yùn)行結(jié)果:score11_Li五、知識(shí)點(diǎn)、難點(diǎn)及解決辦法。主要考察的是利用指針作為函數(shù)參數(shù)以及指針數(shù)組的知識(shí)點(diǎn),如何使指針指向數(shù)組并能將值返回給主函數(shù)是一個(gè)難點(diǎn)首先定義一個(gè)整型指針指向數(shù)組 s tu的首地址,在自定義函數(shù)中運(yùn)用循環(huán)

7、結(jié)構(gòu)實(shí)現(xiàn)指針的移動(dòng)并分別存儲(chǔ)各個(gè)學(xué)生的成績(jī)返回給主函數(shù)六、編程小結(jié)或體會(huì)。編程時(shí)除了注意指針與函數(shù)如何調(diào)用外,還要注意細(xì)節(jié)問題,比如自定義變量類型的統(tǒng)一,循環(huán)結(jié)構(gòu)的循環(huán)次數(shù)等等,要謹(jǐn)慎對(duì)待課題二:學(xué)生成績(jī)單制作一、目的1. 掌握結(jié)構(gòu)體變量及數(shù)組的定義、賦值、初始化、輸入、輸出2. 結(jié)構(gòu)體數(shù)組的操作。二、實(shí)習(xí)環(huán)境個(gè)人計(jì)算機(jī),W i n dows 操作系統(tǒng),Tu r bo C 2. 0 或 W i nTC 或 Visual C+等編譯開發(fā)環(huán)境三、實(shí)習(xí)內(nèi)容與步驟主w8756567232學(xué)成咸咸成成成咸成成翳98y,.rvsml%Lr*ci-lHumryuHIE-.0444444444匕4444444

8、44匕444.44甥14二-u -a-4-4二-u-a-v-4二-gr a dem;num=0;fo r (q=0; q g r a de m a )0 a= (p+q)-gra d em;num =q;return num;int h a nshu_ave r age (struct student *p) int im in d e x ;0f 1 oa t a;of o r (m=0;maverage:=0;f o r ( i =0;i a ver a ge=p- a ve r ag e + p -g r a dei;C 語言程序設(shè)計(jì)綜合實(shí)習(xí)報(bào)告p a v erage=p-avera g

9、 e * 1. 0/3;a=p average;for (m=O; maverag e a)0 a=p average:inde x =m;elsea in de x =0;return in d e x;void hansh u_plac e ( s true t student s t u) i n t i , j ;s t ruct stu d en t t;for ( i 二 0; i N; i + + )f or(j=i; jst u i aver a ge)6 t 二 s t u j+1; stuj+l二 s t u i ; st u i =t;void main()s t r u

10、 ct stude n t s t u10, *pt r ;6int i, j, ind e x, m, num ;float avera g e;ptr = st u ;for (i = 0; iN ; i+) pri n t f (請(qǐng)輸入第%(1個(gè)學(xué)生的學(xué)號(hào)、姓名及三科成績(jī):n “,i+ 1 );sea nf (%ld%s, &stu i numb e r , s tui.n a me);0 f or( j =0; j3; j+)a sea n f&stui. grad e jj) ;print f (n);旺 o r (m=0;m3; m+)C 語言程序設(shè)計(jì)綜合實(shí)習(xí)報(bào)告叫

11、 nu m=hanshu_be s t (ptr, m);printf C 學(xué)號(hào)Id 姓名:%10s 最高分 - 8 . 2fn, st u num. n um b e r , stu num, n a me, stu num . grad em) ;i n dex=h a n shu_averag e ( p tr);P r i ntfCn 三門課平均分最高的學(xué)生信息是: n );p r intf (” 學(xué)號(hào)Id 姓名:%-1 Os 平均分% - 8.2 f n , s t u index numb e r , stuEinde x name, s t u i ndex aver a ge)

12、;pr i ntf Cn 1 0 個(gè)學(xué)生由高分到低分排名為:n);p r intf (n umbern ameMat hChineseEng lish ave rage n,z);ha n s h u_ p 1 a c e ( p tr );of o r( i =0: iN; i +) printf (z,%-10 1 d%-10s%zz, stui. number, stu i . n a me);o f or ( j =0; j 3;j+)r in t f (%T0. 2 f, s tui. gr a de j );printf (n%-10. 2 fn,z, s tu i a verag

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

14、相關(guān)操作:打開、讀、寫、關(guān)閉3. 掌握文件的定位操作二、實(shí)習(xí)環(huán)境個(gè)人計(jì)算機(jī),Wind o ws 操作系統(tǒng),Tur b o C 2.0 或 WinTC 或 Visua 1 C+ 等編譯開發(fā)環(huán)境三、實(shí)習(xí)內(nèi)容與步驟1.定義一個(gè)結(jié)構(gòu)體數(shù)組,存放 10 個(gè)學(xué)生的學(xué)號(hào),姓名,三門課的成績(jī)2 從鍵盤輸入 10個(gè)學(xué)生的以上內(nèi)容,存入文件 stud, txt,關(guān)閉文件3打開 stud, txt 文件,將數(shù)據(jù)讀出,查看是否正確寫入,關(guān)閉文件。4. 打開文件 s t ud. txt文件,讀出數(shù)據(jù),將 10 個(gè)學(xué)生按照平均分?jǐn)?shù)從高到低進(jìn)行排序,分別將結(jié)果輸出到屏幕上和另一文件 stud s or t txt中。5.

15、在實(shí)習(xí)報(bào)告中畫出程序流程圖, 說明程序設(shè)訃的算法, 附主要程序段及運(yùn)行結(jié)果(屏幕截圖)。6 在實(shí)習(xí)報(bào)告中說明知識(shí)點(diǎn)。7在實(shí)習(xí)報(bào)告中說明程序設(shè)計(jì)過程中的難點(diǎn)、解決辦法及編程小結(jié)或體會(huì)。四、程序流程圖、算法及運(yùn)行結(jié)果1 程序流程圖:C 語言程序設(shè)計(jì)綜合實(shí)習(xí)報(bào)告開始鍵入每個(gè)學(xué)生的信息2 算法:首先創(chuàng)建一個(gè)可讀可寫的新文件 s tud. tx t ,鍵入十個(gè)學(xué)生的信息并儲(chǔ) 存在文件中,關(guān)閉程序;打開文件 stud, t xt,讀出文件中的信息并輸出,檢 查有無錯(cuò)漏,并按照平均分通過選擇排序法對(duì)學(xué)生山高到低排序,關(guān)閉程序; 將排好序的信息輸出并存儲(chǔ)在新的可寫文件 Stud sort, tx t 中3.程

16、序:#i n cl u de s t d io. h#includest d 1 ib. h#defi n e N 1 0str u c t stu dentI ong num;char name2 0;i n t g r ad e 3j;stu10;int ma i n ( v o i d) FILE *fp, *fp p ;st ru c t s tudent stu10, t:1 oa t aver age100;int i= 0 , j :i f ( (fp= f open (stud t x w+) = = NULL )將排序后的信息存入另一文件按平均分髙低排序工將文件中的信息讀出將

17、學(xué)生信息存入文件中C 語言程序設(shè)計(jì)綜合實(shí)習(xí)報(bào)告 print f(該文件打開失敗!);a ex i t (0);for( i 二 0;iN; i +) pr i ntfC 第%- 2d 個(gè)學(xué)生的學(xué)號(hào)、姓名及三門課成績(jī): n, i+1);6s ca nF ( %ld%s/,& s t u i. num, stui . name);ofprin tf(fp, ”第-2d 個(gè)學(xué)生的學(xué)號(hào)、姓名及三門課成績(jī):n, i +1);o f p r in t f (fp, %ld %-5s , stu i . num, st u i. name); for(j=0; j 3;j+)o s c a nf (

18、%d , &st u i . g r a de j);6f pr i ntf (f p , %d ”,s t u i . grad e j) ; 6fpr i n tf(fp, ”n“);i f (fclos e (fp)o printf(“該文件無法正常關(guān)閉! );o exi t (0) ;i f ( (fp 二 f open(s t u d . tx t , r+ ) ) =NULL)。 printf( ”該文件打開失敗!);0exit(0);oprintf( ” n ”);or(i=0;iN;i+)。 printf (“第%d 個(gè)學(xué)生的學(xué)號(hào)、 姓名及三門課成績(jī):n”, i+ l)

19、; fscanf (f p, %ld%s : & s t u i. n um, s tu i . name);printf(%ld %5s, s t u i . num, stui. name);旺 or(j = 0;j3; j+)f s canf ( f p, d , & s t ui . gr a d e j );prin t f(%d”,stui. gr a d e j ) ;pr intf(n);i f (fclose(fp) pr i ntf (z,該文件無法正常關(guān)閉!n );C 語言程序設(shè)計(jì)綜合實(shí)習(xí)報(bào)告6exit ( 0); i f ( (fp 二 fopen (s

20、tud, txt, r+)二二 NULL) printfC 該文件打開失敗! “);o e x it (0):吐。r (i=0 ; iN;i+) f s c a nf (fp, % 1 d%s, &s t u i. n u m, stu i . n ame);a f o r (j 二 0; j 3 ; j +)6fsc a n f(fp, %d, & s t u i. gradej ) ;for(i = 0;iN;i+)0 fo r (j =0; j 3;j+)a a ver a ge i=averagei +st u i .g r ad e j;o a verageLi =a

21、ver a ge i *1. 0 0 / 3 ;f or(i=0;iavera g e i)6 t = stuj+l; stu j+1 =st u i ; stui=t;6if ( f c 1 o s e (fp)o printff該文件無法正常關(guān)閉!n” );a exi t ( 0 ) ;if ( ( f p p =f o p e n( s tud s or t . t xt, w+ ) ) = NULL)X prin tf (該文件打開失敗!);exit (0) :P rint f (n 由高到低排序?yàn)椋簄);for(i = 0;iN;i+) pr i n tf ( %ld %- 5 s,

22、 stui .num, stu i . name);fpri nt f (f pp, %ld%-5s,s t u i. num, stu i . n a me);for(j二 0;jnum=number)pri n tfC% 1 5s n,z, p-name);p=p-nex t ; whi 1 e (p! =NULL);C 語言程序設(shè)計(jì)綜合實(shí)習(xí)報(bào)告void c d el e te (stru c t studen t * q ) st r uct studen t *pl, *p2;1 on g c o u nt;printf( ”請(qǐng)輸入你要?jiǎng)h除的學(xué)生學(xué)號(hào):”);scanf (,z%ldH,

23、 & count);pl=Q;wh i le ( c ount !=pl- n u m& &p 1 n e xt! =NU L L) p2=pl; p 1 =pl-n e xt; ;i f (count=pl-num) if (pl=q)o q=pl next;Q elseQp2-next = p 1 -n ext;Q print f (de 1 et e : %ldnn, pl-num) ;int m a in (void) st r uct stud e n t *hea d , *tail, *p, *p 1 , *p2, *q;i n t n=0, i ;01 ong num b e r, NUM ;printf (請(qǐng)輸入%(1 個(gè)學(xué)生的信息:n, X);p=t a i 1= (st r u ct st u den t *) mallo c (le n );h e a d = N UL L ;s c a nf (,z% 1 d%sz,, & p - n um, p- n ame);wh i le (p-n u m! = 0 ) n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論