第一篇:《程序設計實踐》課程實驗內容
《程序設計實踐》實驗內容
實驗一函數與程序結構(1)
實驗一函數與程序結構(2)
1.實驗指導書P123:
一、調試示例,掌握采用“文件包含”和“工程文件”實現多文件模塊程序的兩種方法
2.實驗指導書P132:編程題5,7,8
實驗二 指針進階(1)
實驗二 指針進階(2)
指針進階根據數據結構中的內容做以下要求
要求會使用指針數組,鏈表等內容
實驗題目
1、實驗指導書P138:編程題2,32、實驗指導書P140:
一、調試示例
3、實驗指導書P145:編程題1,2,3實驗三 文件(1)
實驗三 文件(2)
文件實驗指導書中主要涉及普通數據的寫入和結構體類型數據的寫入,我們重點強調一下結構體類型數據的寫入,因此布置集中在結構體類型數據的題目 題目中沒有如何將鏈表寫入文件中,建議補充上去,作為題目4實現吧!
1、實驗指導書P148:改錯題
2、實驗指導書P150:編程題3,7
實驗四綜合設計
以課程報告任務書要求為準:開發一個圖書信息管理系統,圖書信息包括:圖書編號、書名、作者、出版社、類別、出版時間、價格等基本信息(也可以根據自己情況進行擴充,比如是否借出、庫存量等)。使之能提供以下基本功能:
(1)圖書信息錄入功能(圖書信息用文件保存)--輸入?
(2)圖書信息瀏覽功能--輸出
(3)查詢功能(至少一種查詢方式)、排序功能(至少一種排序方式):?①按書名查詢 ②按作者名查詢③ 按照價錢排序 ④按出版時間排序等等
(4)圖書信息的刪除與修改
按照功能模塊大致劃分,也可以細化:輸入、輸出、查詢、統計、排序、插入、刪除等功能,學生根據自己的情況可以提出更好的功能,要求學生給出調試過程抓圖、知識點總結、源代碼,到時候回答問題相結合給成績。
第二篇:《程序設計實踐》課程實驗內容
《程序設計實踐》實驗內容
實驗一函數與程序結構(1-2)
1.實驗指導書P123:
一、調試示例,掌握采用“文件包含”和“工程文件”實現多文件模塊程序的兩種方法
2.實驗指導書P132:編程題2,5,7,8
實驗二 指針進階(1-2)
指針進階根據數據結構中的內容做以下要求
要求會使用指針數組,鏈表等內容
實驗題目
1、實驗指導書P138:編程題2,32、實驗指導書P140:
一、調試示例
3、實驗指導書P145:編程題1,2,3實驗三 文件(1-2)
文件實驗指導書中主要涉及普通數據的寫入和結構體類型數據的寫入,我們重點強調一下結構體類型數據的寫入,因此布置集中在結構體類型數據的題目 題目中沒有如何將鏈表寫入文件中,建議補充上去,作為題目4實現吧!
1、實驗指導書P148:改錯題
2、實驗指導書P150:編程題3,7
實驗四綜合設計
標準化考試系統的設計與實現
開發出一個標準化考試系統,所謂標準化考試系統即僅支持選擇題,也是為方便自動批改的功能的實現。要求實現以下基本功能:
(1)提供給教師添加試題的功能(試題信息用文件保存)--輸入與存儲
(2)試題的整體瀏覽功能(按照知識點、章節、分頁顯示等)--輸出
(3)能夠抽取試題組合成一套試卷(組卷的策略:可以是隨機的,當然若教師添加的試題時有知識點、章節等信息,亦可以實現按照一定的組卷策略實現出題:如每個知識點抽取若干題目,最終組合一套試卷)
(4)教師實現題目信息的管理,比如刪除、修改等
(5)查詢功能(至少一種查詢方式)、排序功能(至少一種排序方式)
擴展功能:可以按照自己的程度進行擴展。比如(1)簡單的權限處理(2)成績報表打印功能(3)甚至根據自己情況,可以加上學生信息和考試成績信息的管理,并擴充為廣義的考試系統。即學生輸入賬號密碼登陸,進行考試,交卷后顯示成績;(4)模糊查詢(5)綜合查詢(6)數據加密、統計、分析等功能。
特別說明:盡可能地運用自己已經學習過的數據結構的知識去展現。
第三篇:程序設計課程教學方法的探討和實踐
程序設計課程教學方法的探討和實踐
高等學校的根本任務是培養人才,人才培養是辦學的核心問題。在高等教育大眾化、國際化的趨勢中,高等學校辦學的競爭日益加劇。教學質量將決定著一所學校的生存和發展。因此,教學質量是教育者、管理者不可不思、不可不謀、不可不為的重要任務。
隨著經濟的發展和科技的進步,對人才素質提出了更高的要求,在人才培養上,各高校都在夯實基礎的同時重視能力的培養,開始實施理論教學和實踐的配套改革,進一步加強實踐教學,加強學生實踐能力、創新能力的培養。但是,對不同層次的高校而言,教育培養的對象雖然都是大學生,但各校均有自己的特性,在教學方法上,有其共性,也具有特殊性,互相之間,只能借鑒,不能照搬,而需要根據自己的情況來制定切合實際的教學方法。本文是以某高校計算機專業的“程序設計”課程為對象,探討教學方法的改進和實踐。
科學的教學方法是通向成功的橋梁。古人曰:“授之以魚,供一飯之需;教之以漁,終身受用不盡。”授之以方法,培養學生的自學能力,是實現“教是為了不教”的正確途徑。教學方法的改進,首先要改傳統的單純灌輸式教學法為啟發式和探究式的教學法,教師提出問題,激發學生積極思維,主動思考,發現未知,發展智力,達到由此及彼、由表及里、聞一知
十、舉一反三的目的。教師不僅要注意培養學生的“智商”,更要發展學生的“情商”,即非智力因素,充分調動學生學習的需要、興趣、動機,引導學生進行科學的思維,包括形式邏輯思維、形象思維、靈感思維等,以培養學生獨立思考問題、提出問題和解決問題的能力,即所謂“既要授之以魚,更要授之以漁”。教師可以假設一種以案例和問題為核心的情景和背景,激發學生探究問題的興趣,通過選擇與確定問題,討論與提出設想,實踐與尋求結果,驗證與得出結論,培養學生獨立思考能力、研究能力和創新能力,形成一種討論式、開放式的現代教學方法,這就體現了大學教學的創新精神和平等合作精神,這種方法稱為程序案例教學法或程序驅動教學法。這種方法要求教師精心備課,根據學生的知識水平和能力,創設實用的程序案例,引導過程中的問題情境,幫助學生激發創新意識,促進學生質疑,培養學習興趣。在課堂上,要努力營造民主、寬松、和諧的學習環境。
現今普遍的程序設計教學方法都是從語法入手,詳細地講解各種編程語言的語法,而涉及的程序案例卻很少,雖然有一些例題,但很簡單,距離解決實際問題的復雜度相差甚遠,學生在學習之后,常常缺乏動手能力和解決問題的能力,無法構建程序設計的思維,而且機械式的記憶語法規則往往是枯燥無味的,很難激發學習的興趣。以“C++程序設計”為例,針對各種語法規則,創建16個實用的程序案例:1)庫存清單應用程序(變量,輸入);2)工資計算應用程序(算法,偽代碼);3)牙科付費應用程序(邏輯運算符,字符串);4)購車還貸應用程序(WHILE循環語句);5)計算班級平均成績應用程序(標記控制循環);6)利息計算應用程序(FOR循環語句和數學函數);7)計算個人所得稅應用程序(多分支選擇語句SWITCH);8)捐款管理應用程序(作用域與函數原型);9)游戲應用程序(生成隨機數和枚舉);10)薪金統計應用程序(一維數組);11)學生成績統計應用程序(二維數組);12)數字時鐘應用程序(自定義類和對象);13)購物清單管理應用程序(指針,引用及動態數據結構);14)工資表應用程序(繼承與多態性);15)便箋信息應用程序(順序訪問文件);16)屏幕抓取應用程序(字符串處理)。
首先教師給出程序案例的框架結構,學生經過思考,選擇合適的算法和指令語句,經互相討論,完善和豐富程序案例,然后上機調試,通過運行來檢驗結果。程序案例的教學法是從興趣入手,首先給人們編程的樂趣,繼而帶領學生進入程序的天地,提高探索的欲望,使學習編程變得生動而有趣。經過對計算機科學專業198名學生的問卷調查表明,其中194人贊成這種教學方法,在反饋的意見中,認為這種方法效果很好,能夠很容易接受。在教學過程中既學到應得的知識,又感受到編程的快樂;既感受到成功的喜悅,又得到探索的樂趣??己说某煽儽砻?85%的學生達到預期的效果,其中有20%的學生達到優秀的水平,雖然,教學實踐取得明顯的效果,但仍有15%的學生尋求適合的解決方法。尚未達到預期的效果,這表明仍有一些問題尚待解決,今后將進一步研究不足之處。
(作者單位:山東省濰坊科技學院)
第四篇:C高級語言程序設計實驗內容
實驗一 C語言的運行環境和基礎知識
一、實驗目的
1.掌握c程序設計編程環境visual c++,掌握運行一個c程序設計的基本步驟,包括編輯、編譯、連接和運行。
2.熟練掌握Visual C++ 6.0環境運行的C程序上機步驟 3.數據類型、常量和變量的使用 4.表達式及運算符的應用 5.C程序的調試。
二、實驗內容和源程序清單、測試數據、結果。
1、最簡單的C程序。(要求文件名:1_1.c)#include
printf(“Hello world!n”);return 0;}
2、一個具有致命錯誤的程序,請修改。(要求文件名:1_2.c)#include
printf(“i=%dn”,i);
return 0;}
3、一個具有警告語法錯的程序。(要求文件名:1_3.c)#include
s=i+j;printf(“s=%dn”,s);return 0;}
4、寫出一個程序測試整型、字符型數據表示,并輸出以驗證是否正確。(要求文件名:1_4.c)#include
int x=010,y=10,z=0x10;
/* 整型數據表示 */ char c1='M',c2='x4d',c3='115',c4=77,c;
/* 字符型數據表示 */
/* 整型數據的輸出 */ printf(“x=%o,y=%d,z=%xn”,x,y,z);
/* 數據以原進制輸出,注意是否有前導0或0x */ printf(“x=%d,y=%d,z=%dn”,x,y,z);
/* 數據以10進制輸出,換算到10進制,結果對嗎? */ /* 字符型數據的輸出 */ printf(“c1=%c,c2=%x,c3=%o,c4=%dn”,c1,c2,c3,c4);
/* 數據以原進制輸出,注意是否有前導0或0x ?*/ printf(“c1=%c,c2=%c,c3=%c,c4=%cn”,c1,c2,c3,c4);
/* 結果都是什么字符?,也就是說字符可以自由的表示成幾種形式? */ printf(“c1=%d,c2=%d,c3=%d,c4=%dn”,c1,c2,c3,c4);
/* 看看這些字符的10進制ASCII碼,哦,ASCII碼一樣,同一種字符 */
/* 字符型數據參與算術運算 */ c=c1+32;
/* 字符怎么參加了數學運算,哦,是字符對應的ASCII碼-整數 /* 參與數學運算;結果還是一個整數-另外一個字符的ASCII碼 */ printf(“c=%c,c=%dn”,c,c);
/* 看看這個字符是什么?哇,'M'+32='m'了,看看ASCII碼表,原來如此!*/ return 0;} 參考結果: x=10,y=10,z=10 x=8,y=10,z=16 c1=M,c2=4d,c3=115,c4=77 c1=M,c2=M,c3=M,c4=M c1=77,c2=77,c3=77,c4=77 c=m,c=109
三、實驗報告要求
將題目:2和4的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。2
實驗二
順序結構程序設計
一、實驗目的:
1.掌握順序結構程序設計 2.掌握賦值語句的用法
3.熟練地進行數據輸入和輸出
二、實驗內容和源程序清單、測試數據、結果。
1、已知:a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮點),計算算術表達式(float)(a+b)/2+(int)x%(int)y的值。試編程上機驗證。(要求文件名:2_1.c)提示編程要點:
(1)先判斷結果值類型,可設置一個此類型的變量用于記錄表達式結果,本例用r存放結果;(2)程序先給幾個變量賦初值,然后將表達式賦值給變量r;(3)最后打印變量r的值就是表達式的值。參考程序:
#include
int a=2,b=3;float x=3.9,y=2.3;
float r;
r=(float)(a+b)/2+(int)x%(int)y;
printf(“%fn”,r);return 0;} 參考結果: 3.500000 思考:為什么是這個結果?
2、分析下面程序結果,并上機驗證。(要求文件名:2_2.c)#include
int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“i=%d, j=%d, m=%d, n=%dn”,i,j,m,n);
return 0;} 參考結果:
i=9, j=11, m=9, n=10
3、用下面的scanf函數輸入數據,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。從鍵盤如何輸入?(要求文件名:2_3.c)#include
4、編程序,用getchar函數讀入兩個字符給c1、c2,然后分別用 putchar函數和 printf函數輸出這兩個字符。(要求文件名:2_4.c)參考程序:
#include
三、實驗報告要求
將題目:1和3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。
實驗三
選擇結構程序設計
一、實驗目的
1.2.3.4.了解C語句表示邏輯量的方法(以0代表“假”以1代表“真”);
學會正確使用邏輯運算符和邏輯表達式;
熟練掌握if語句和switch語句;
熟練掌握switch語句中break語句的作用。
二、實驗內容和源程序清單、測試數據、結果。
(1)掌握各種格式轉換符的正確使用方法,輸出結果。(要求文件名:3_1.c)#include
(2)1.從鍵盤任意輸入一個年號,判斷它是否是閏年。若是閏年,輸出“Yes”,否則輸出“No”。已知符合下列條件之一者是閏年:(1)能被4整除,但不能被100整除;(2)能被400整除。(要求文件名:3_2.c)參考程序:
#include
int year, flag;printf(“Enter year:”);scanf(“%d”, &year);if(year%4==0&&year%100!=0 || year%400==0)
{
flag = 1;
} else
{
flag = 0;
} if(flag)
{
printf(“Yesn”);
} else
{
printf(“Non”);} return 0;}(3)編程序,并給出程序的運行結果,注意思考case中break的用法以及為什么是這樣的結果?(要求文件名:3_3.c)參考程序:
#include
int x=2,y=1,a=1,b=2;switch(x){ case 2:
switch(y)
{
case 1:a++;
case 2:b++;break;
}
case 3:a++;b++;break;} printf(“%d %dn”,a,b);return 0;}(4)編程序:輸入4個整數,要求按由小到大的順序輸出。(要求文件名:3_4.c)參考程序:
#include
int t,a,b,c,d;scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);printf(“a=%d,b=%d,c=%d,d=%dn”,a,b,c,d);if(a>b){t=a;a=b;b=t;} if(a>c){t=a;a=c;c=t;} if(a>d){t=a;a=d;d=t;} if(b>c){t=b;b=c;c=t;} if(b>d){t=b;b=d;d=t;} if(c>d){t=c;c=d;d=t;} printf(“%d,%d,%d,%dn”,a,b,c,d);return 0;}
三、實驗報告要求
將題目:2和3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。
實驗四 循環結構程序設計
一、實驗目的
1.2.3.4.5.熟練使用while、for語句實現循環程序設計
理解循環條件和循環體,以及while、for語句的相同及不同之處 掌握嵌套循環程序設計
熟練掌握下拉菜單Debug的程序調試方法 掌握break和continue的用法
二、實驗內容和源程序清單、測試數據、結果。
(1)輸入兩個正整數m和n,求它們的最大公約數和最小公倍數。(要求文件名:4_1.c)參考程序:
#include
m=x;else
m=y;for(i=1;i<=m;i++){
if((x%i==0)&&(y%i==0))
max=i;} printf(“%dn”,max);printf(“%dn”,x*y/max);return 0;}(2)從鍵盤輸入一個 int 類型的正整數,輸出它的所有因子。如輸入6,輸出1,2,3;輸入20,輸出1,2,4,5,10。(要求文件名:4_2.c)參考程序:
#include printf(“%dn”,i);} return 0;}(3)輸入一行字符,分別統計出其中的英文字母、空格、數字和其他字符的個數。(要求文件名:4_3.c)參考程序: #include if(c>='a'&&c<='z'||c>='A'&&c<='Z') letter++; else if(c>='0'&&c<='9') digit++; else if(c==' ') space++; else other++;} printf(“%d,%d,%d,%dn”,letter,digit,space,other);return 0;}(4)編程計算1?11111??????的值。(要求文件名:4_4.c)23499100參考程序: #include int sign = 1;double sum = 1;double deno = 2;double term = 1;while(deno<=100){ sign =(-1)*sign; term = sign*(1/deno); sum = sum+term; deno++;} printf(“%lfn”,sum);return 0;} 三、實驗報告要求 將題目:3和4的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗五 數組 一、實驗目的 1.掌握一維、二維數組的定義、引用、應用 2.掌握字符數組的定義、引用、應用 3.掌握字符串處理函數 二、實驗內容和源程序清單、測試數據、結果。 (1)給出下面程序的結果,思考為什么?(要求文件名:5_1.c)#include char a[]=“Chinaren”,b[]=“Tiananmen”;char *p1,*p2; int k=0;p1=a; p2=b;for(k=0;k<10;k++) if(*(p1+k)==*(p2+k)) printf(“%c”,*(p1+k));printf(“n”);return 0;}(2)有一個3×4的矩陣,要求輸出其中值最大的元素的值,以及它的行號和列號。(要求文件名:5_2.c)參考程序: #define M 3 #define N 4 #include int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}}; max=a[0][0]; for(i=0;i for(j=0;j if(a[i][j]>max) { max= a[i][j]; r=i; c=j; } printf(“max=%d , row =%d , colum=%d n”,max , r, c); return 0;}(3)編程序用于讀入10個字符串,然后找出最大的字符串并打印。(要求文件名:5_3.c)參考程序: #include char str[10][80],maxstring[80]; int i;printf(“Enter ten strings:n”);for(i=0;i<10;i++) { scanf(“%s”, str[i]);} strcpy(maxstring, str[0]); for(i=1;i<10;i++) { if(strcmp(str[i],maxstring)>0) { strcpy(maxstring,str[i]); } } printf(“The max string is:%sn”,maxstring);}(4)給出下面程序的運行結果,思考為什么?(要求文件名:5_4.c)#include int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};int i,j,s=0;for(i=0;i<4;i++){ for(j=0;j<4;j++) { if(a[i][j]<0)continue; if(a[i][j]==0)break; s+=a[i][j]; } } printf(“%dn”,s);return 0;}(5)測試二維數組的各個地址值,結果是什么,思考原因。(要求文件名:5_5.c)#include int a[M][N];printf(“%xn”,a);printf(“%xn”,a[0]);for(int i=0;i printf(“%x,”,&a[i][j]); return 0;} 三、實驗報告要求 將題目:2和3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗六 函數 一、實驗目的 1.掌握C語言函數的定義方法、函數的聲明及函數的調用方法。 2.了解主調函數和被調函數之間的參數傳遞方式。 二、實驗內容和源程序清單、測試數據、結果。 (1)給出下面程序的結果,思考為什么?(要求文件名:6_1.c)#include #include printf(“%d is prime!”,number);else printf(“%d is not!”,number);return 0;} int prime(int number)/*此函數用于判別素數*/ { int flag=1,n;for(n=2;n if(number%n==0) flag=0;return(flag);}(3)求兩個整數的最大公約數和最小公倍數。寫一個函數求最大公約數。(要求文件名:6_3.c)參考程序: #include max=i;} return(max);}(4)寫一函數,輸入一個十六進制數,輸出相應的十進制數。(要求文件名:6_4.c)參考程序: #include if(shu[i]>=48&&shu[i]<=57) sum=sum+(shu[i]-48)*pow(16,k-i); else if(shu[i]>=65&&shu[i]<=70) sum=sum+(shu[i]-55)*pow(16,k-i); else if(shu[i]>=97&&shu[i]<=102) sum=sum+(shu[i]-87)*pow(16,k-i); else { printf(“error!n”); break; } return sum;} int main(){ char str[100];long s;gets(str);s=change(str);if(!s) printf(“The number is not oxn”);else printf(“change:%ldn”,s);return 0;} 三、實驗報告要求 將題目:3和4的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗七 指針 一、實驗目的 1.掌握指針變量的定義與引用。 2.熟練使用函數指針、數組指針、字符串指針編寫應用程序。 二、實驗內容和源程序清單、測試數據、結果。 (1)輸入三個整數,按由小到大的順序輸出,然后將程序改為:輸入三個字符串,按由小到大順序輸出。參考程序:(輸入三個整數,按由小到大的順序輸出)(要求文件名:7_0.c)#include #include int x,a[100],*p,i;p=a;scanf(“%d”,&x);for(i=0;i scanf(“%d”,p++);p=a;printf(“n”);maopao(p,x);printf(“the sorted numbers:n”);p=a;for(i=0;i printf(“%dt”,*p); return 0;} void maopao(int *p,int x){ int i,j,temp;for(i=0;i for(j=0;j if(*(p+j)>*(p+j+1)) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } }(3)利用函數和指針將給定字母字符串的第一個字母變成大寫字母,其它字母變成小寫字母。在main函數中接收字符串的輸入,改變后的字符串的輸出也在main函數中實現。(要求文件名:7_3.c)參考程序: #include *s-=32;s++; } for(i=0;i *s+=32; 三、實驗報告要求 將題目2和3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗八 結構體和共用體 一、實驗目的 1.掌握結構體類型和結構體變量的定義。 2.掌握結構類型變量的定義和使用。 3.掌握鏈表的概念,初步學會對鏈表進行操作。 二、實驗內容和源程序清單、測試數據、結果。 (1)給出下面程序的運行結果,思考為什么?(要求文件名:8_1.c)#include char num[10]; float score[3];}; int main(){ struct STU s[3]={{“1122301”,90,95,85}, {“1122302”,80,90,75}, {“1122303”,98,92,85}}, *p=s; int i; float sum = 0; for(i=0;i<3;i++){ sum = sum + p->score[i]; } printf(“%6.2fn”,sum); return 0;}(2)有10個學生,每個學生的數據包括學號,姓名,三門課的成績,從鍵盤輸入十個學生的數據,要求打印出每個學生的平均成績,以及最高分的學生的數據(包括學號,姓名,三門課的成績,平均分數)。(要求文件名:8_2.c)#include char num[6]; char name[8]; float score[3]; float avr;} stu[N]; int main(){ int i,j,maxi; float sum,max,average; for(i=0;i { printf(“input scores of student %d:n”,i+1); printf(“NO.:”); scanf(“%s”,stu[i].num); printf(“name:”); scanf(“%s”,stu[i].name); for(j=0;j<3;j++) { printf(“score %d:”,j+1); scanf(“%f”,&stu[i].score[j]); } } average=0; max=0; maxi=0; for(i=0;i { sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0; average+=stu[i].avr; if(sum>max) { max=sum; maxi=i; } } average/=N; printf(“ NO.name score1 score2 score3 averagen”); for(i=0;i for(j=0;j<3;j++) printf(“%9.2f”,stu[i].score[j]); printf(“ %8.2fn”,stu[i].avr); } printf(“average=%5.2fn”,average); printf(“The highest score is : student %s,%sn”,stu[maxi].num,stu[maxi].name);printf(“his scores are:%6.2f,%6.2f,%6.2f,average:%5.2f.n”,stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2],stu[maxi].avr);return 0;}(3)建立一個鏈表,每個結點包括:學號,姓名,性別,年齡。輸入一個年齡,如果鏈表中的結點所包含的年齡等于此年齡,則將此結點刪去。(要求文件名:8_3.c) #include char num[6];char name[8];char sex[2];int age;struct student *next;} stu[10]; int main(){ struct student *p,*pt,*head;int i,length,iage,flag=1;int find=0; //找到待刪除元素 find=1,否則find=0 while(flag==1){ printf(“input length of list(<10):”); scanf(“%d”,&length); if(length<10) flag=0;} //建立鏈表 for(i=0;i p=(struct student *)malloc(LEN); if(i==0) head=pt=p; else pt->next=p; pt=p; printf(“NO.:”); scanf(“%s”,p->num); printf(“name:”); scanf(“%s”,p->name); printf(“sex:”); scanf(“%s”,p->sex); printf(“age:”); scanf(“%d”,&p->age); } p->next=NULL; p=head;printf(“n NO.name sex agen”); //顯示 while(p!=NULL){ printf(“%4s%8s%6s%6dn”,p->num,p->name,p->sex,p->age); p=p->next;} // 刪除 printf(“input age:”); //輸入待刪年齡 scanf(“%d”,&iage);pt=head;p=pt; if(pt->age==iage) //鏈頭是待刪元素 { p=pt->next; head=pt=p; find=1; } else //鏈頭不是待刪元素 pt=pt->next; while(pt!=NULL){ if(pt->age==iage) { p->next=pt->next; find=1; } else // 中間結點不是待刪元素 p=pt; pt=pt->next; } if(!find) printf(“ not found %d.”,iage); p=head; printf(“n NO.name sex agen”);//顯示結果 while(p!=NULL){ printf(“%4s%8s”,p->num,p->name); printf(“%6s%6dn”,p->sex,p->age); p=p->next; } return 0;} 三、實驗報告要求 將題目3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗九 文件操作 一、實驗目的 1.掌握文件和文件指針的概念以及文件的定義方法。 2.了解文件打開和關閉的概念和方法。 3.掌握有關文件的函數。 二、實驗內容和源程序清單、測試數據、結果。 (1)對data.dat文件寫入100條記錄。(要求文件名:8_1.c) #include int i; float x; fp=fopen(“c:data.dat”,“w”); for(i=1;i<=100;i++) { scanf(“%f”,&x); fprintf(fp,“%fn”,x); } fclose(fp); return 0;} (2)設有一文件cj.dat存放了50個人的成績(英語、計算機、數學),存放格式為:每人一行,成績間由逗號分隔。計算三門課平均成績,統計個人平均成績大于或等于90分的學生人數。(要求文件名:8_2.c) #include int num=0; float x , y , z , s1 , s2 , s3; fp=fopen(“c:cj.dat”,“r”); while(!feof(fp)) { fscanf(fp,“%f,%f,%f”,&x,&y,&z); s1=s1+x; s2=s2+y; s3=s3+z; if((x+y+z)/3>=90) num=num+1; } printf(“分數高于90的人數為:%dn”,num); fclose(fp); return 0;} (3)統計上題cj.dat文件中每個學生的總成績,并將原有數據和計算出的總分數存放在磁盤文件“stud”中。(要求文件名:8_3.c) #include “stdio.h” int main(){ FILE *fp1,*fp2; float x,y,z; fp1=fopen(“c:cj.dat”,“r”); fp2=fopen(“c:stud”,“w”); } while(!feof(fp1)){ fscanf(fp1,“%f,%f,%f”,&x,&y,&z); printf(“%f,%f,%f,%fn”,x,y,z,x+y+z); fprintf(fp2,“%f,%f,%f,%fn”,x,y,z,x+y+z);} fclose(fp1);fclose(fp2);return 0; 三、實驗報告要求 將題目1、2和3的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。