第一篇:上機實驗八
實驗八 折半查找
一、實驗目的1、熟悉visual C++上機環(huán)境,進一步掌握C語言的結(jié)構(gòu)特點。
2、進一步掌握圖的基本概念及其含義。
3、掌握查找的結(jié)構(gòu)特征,以及各種存儲結(jié)構(gòu)的特點及使用范圍。
4、掌握查找的基本運算及其實現(xiàn)。
二、實驗內(nèi)容(參照課本上的第220頁)
設計一個算法,實現(xiàn)折半查找算法。
三、實驗要求
參照課本220頁算法9.2
四、實驗報告要求(參照《數(shù)據(jù)結(jié)構(gòu)題集》第83頁實驗報告模板)
實驗報告必須有以下內(nèi)容:實驗目的、實驗內(nèi)容、實驗要求、源程序、測試結(jié)果(打印界面的形式表示)。
第二篇:計算方法上機實驗
龍格-庫塔
#include
#include
float function(float x,float y)
{
return(0-(y*y));//f(x,y)μ?±í′?ê? }
int main()
{
float x0,x1,y0,y1,k1,k2,k3,k4,a,b,c,n,h;int i;
scanf(“%f %f %f %f”,&a,&b,&c,&n);x0=a;
y0=c;
h=(b-a)/n;
for(i=1;i<=n;i++)
{
k1=h*function(x0,y0);
k2=h*function(x0+h/2,y0+k1/2);k3=h*function(x0+h/2,y0+k2/2);k4=h*function(x0+h,y0+k3);x1=x0+h;
y1=y0+(k1+2*k2+2*k3+k4)/6;
printf(“x%d=%f,y%d=%fn”,i,x1,i,y1);x0=x1;
y0=y1;
}
return 0;
}
拉格朗日
#include
#include
#include
#define maxlength 500
#define pi 3.14***
floata[maxlength],f[maxlength];
float n;
floatlagrange(floata[],floatf[],float x,int n)
{
int k=0,j;
floaty=0.0,l;
while(k<=n)
{
l=1.0;
// printf(“%lfn”,y);
for(j=0;j<=n;j++)
{
if(j!=k)
{
l=l*(x-a[j])/(a[k]-a[j]);// printf(“%lfn”,l);
}
}
//printf(“%lfn”,f[k]);
// printf(“%lfn”,l);
y=y+l*f[k];
k++;
}
printf(“x=%f,y=%fn”,x,y);
return y;
}
float fx1(floatx)
{
return(1/(1+x*x));
}
floatfx2(floatx)
{
return exp(x);
}
floatfx3(float x)
{
return sqrt(x);
}
void math1(float c,float n)
{
int i=0;
float h;
h=2*c/n;
while(i<=n)
{
a[i]=i*h-5;
i++;
}
}
void math2()
{
int i=0;
while(i<=n)
{
a[i]=cos((2*i+1)*pi/2/(n+1));
i++;
}
}
int main()
{
n=20;
int i;
math1(5,n);
for(i=0;i<=n;i++)
{
f[i]=fx1(a[i])
}
lagrange(a,f,0.75,n);
return 0;
}
龍貝格
#include
#include
#include
double t[1000],r[1000];
double f(double x)
{
return(x*x*exp(x));
}
int main()
{
double h,a,b,e;
int i,N,m;
scanf(“%lf,%lf,%d,%lf”,&a,&b,&N,&e);
h=b-a;
m=0;
t[1]=0.5*h*(f(a)+f(b));
printf(“%lf”,t[1]);
r[0]=t[0];
while(1)
{
printf(“n”);
for(i=0;i<((m<4)?m:4);i++)
t[i]=r[i];
m++;
h=h/2;
r[0]=t[0]/2;
for(i=1;i<=pow(2,m);i++)
r[0]+=h*f(a+(i-0.5)*h)/2;
printf(“%lf”,r[0]);
r[1]=(4*r[0]-t[0])/3;
printf(“ %lf”,r[1]);
if(m==1)
continue;
r[2]=(16*r[1]-t[1])/15;
printf(“ %lf”,r[2]);
if(m==2)
continue;
r[3]=(64*r[2]-t[2])/63;
printf(“ %lf”,r[3]);
if(m==3)
continue;
if((fabs(r[3]-t[3])<=e)||(m==N))
break;
}
printf(“nthe current time is :%dn”,m);
return 0;
}
牛頓
#include
#include
#include
double function(double point)
{
return(point*point-2*point*exp(-point)+exp(-2*point));
}
double d_function(double point)
{
return(2*point+2*point*exp(-point)-2*exp(-point)-2*exp(-2*point));}
int main()
{
double beginner,error1,error2;
int max_times=0;
beginner=error1=error2=0;
scanf(“%lf %lf %lf %d”,&beginner,&error1,&error2,&max_times);int current_times=0;
while(current_times<=max_times)
{
if(fabs(function(beginner)) { printf(“%lfn”,beginner); return 0; } if(fabs(d_function(beginner)) { printf(“failuren”); return 0; } beginner=beginner-function(beginner)/d_function(beginner);if(fabs(function(beginner)/d_function(beginner)) printf(“%lfn”,beginner); return 0; } current_times++; } printf(“failuren”); return 0; } 實驗四 串的基本操作實現(xiàn)-堆存儲結(jié)構(gòu)的實現(xiàn) 一、實驗目的1、熟悉visual C++上機環(huán)境,進一步掌握C語言的結(jié)構(gòu)特點。 2、掌握串的基本操作:初始化串、判串為空、求串長等運算及C語言實現(xiàn)。 二、實驗內(nèi)容(參照課本上的第72-75頁) 編寫一個程序,實現(xiàn)求串長length_str、串連接、串比較、求子串、串插入、串刪除操作。 三、實驗報告要求(參照《數(shù)據(jù)結(jié)構(gòu)題集》第83頁實驗報告模板) 實驗報告必須有以下內(nèi)容:實驗目的、實驗內(nèi)容、實驗要求、源程序、測試結(jié)果(打印界面的形式表示)。 上機實驗要求 一、實驗前的準備工作 在上機實驗前應事先做好準備工作,以提高上機實驗的效率: 1.了解所用的計算機系統(tǒng)(包括C編譯系統(tǒng))的性能和使用方法。 2.復習和掌握與本實驗有關(guān)的教學內(nèi)容。 3.準備好上機所需程序。要仔細弄清題意,選擇和設計合適的算法。在選擇算法時,應當是在理解現(xiàn)有算法的基礎上,自己動手畫出流程圖再設計源程序。手編寫程序應當書寫整齊,并經(jīng)人工檢查無誤后才能上機,以提高上機效率。切忌不編寫程序或抄襲他人程序,注意培養(yǎng)嚴謹踏實的學習作風。 4.對運行中可能出現(xiàn)的問題應率先作出估計;對程序中自己有疑問的地方,應作上記號,以便在上機時給予重視。 5.準備好調(diào)試和運行時所需的數(shù)據(jù)。 二、上機實驗基本步驟 上機實驗時應該獨立上機。上機過程中出現(xiàn)的問題,除了系統(tǒng)問題外,一般應自己獨立處理,不要輕易舉手問教師。尤其對“出錯信息”,應善于自己分析判斷。這是學習調(diào)試程序的良好機會,碰到困難時切忌輕易放棄。 上機實驗一般應包括以下步驟: 1.調(diào)出C編譯系統(tǒng),進入C工作環(huán)境,如Turbo C2.0集成環(huán)境。 2.輸入自己編好的程序,注意正確的鍵盤輸入指法。 3.檢查一遍已經(jīng)輸入的程序是否有錯(包括輸入錯誤和編程中的錯誤)。 4.進行編譯。如果編譯和連接過程中發(fā)現(xiàn)錯誤,屏幕上會出現(xiàn)“出錯信息”,則根據(jù)提示找到出錯位置和原因,加以改正,再進行編譯??如此反復,直到順利通過編譯和連接為止。 5.運行程序,并分析運行結(jié)果是否正確、合理。組織多組實驗數(shù)據(jù),分別從不同情況下檢查程序的正確性。 6.輸出程序清單和運行結(jié)果。特別要進行上機調(diào)試記錄(尤其是出錯情況和排錯記錄),調(diào)試數(shù)據(jù)和運行結(jié)果記錄、心得體會等。 三、撰寫實驗報告 做完實驗后要寫實驗報告,對整個實驗進行總結(jié)和提高,這是整個實驗過程的一個重要環(huán)節(jié),不要把它看成是一種不必要的負擔,更不能敷衍了事。針對本課程的實驗特點,建議在書寫實驗報告時應包括如下內(nèi)容。 1.實驗目的實驗作為教學的一個重要環(huán)節(jié),其目的在于更深入地理解和掌握課程教學中的有關(guān)基本概念和基本技術(shù),從而進一步提高分析問題和解決問題的能力。因此,當著手做一個實驗的時候,必須明確實驗目的,以保證達到課程所指定的基本要求。在寫實驗報告時,要進一步確認是否達到了預期的目的。 2.實驗內(nèi)容 實驗的目的是要通過解決一些具體問題來達到的。根據(jù)教學安排、進度、實驗條件、可提供的上機時數(shù)、學生的基礎等因素,逐步完成。在實驗報告中,實驗內(nèi)容是指本次實驗中實際完成的內(nèi)容,在每一個實驗題目中,一般都提出了一些具體要求,其中有些具體要求是為了達到實驗目的而提出的。因此,在實驗內(nèi)容中,不僅要寫清楚具體的實驗題目,還應包括具體要求。 3.算法和流程圖 算法設計是程序設計過程中一個重要步驟。本章的某些實驗題目給出了方法說明,有的還提供了流程圖,但有的沒有給出流程圖。如果在做實驗的過程中,使用的算法或流程圖和本書中給出的不一樣,或者書中沒有給出算法和流程圖,則在實驗報告中應給出較詳細的算法說明與流程圖,并對其中的主要符號與變量作相應的說明。 4.程序清單 程序設計的產(chǎn)品就是程序,它應與算法或流程圖相一致。程序要具有易讀性,符合模塊化和結(jié)構(gòu)化原則。 5.運行結(jié)果 程序運行結(jié)果一般是輸出語句所輸出的結(jié)果,對于不同的輸入,其輸出結(jié)果是不同的。因此,在輸出結(jié)果之前一般還應注明輸入的數(shù)據(jù),以便對輸出結(jié)果進行分析和比較。 6.調(diào)試分析和體會 這是實驗報告中最重要的一項,也是最容易忽視的一項。實驗過程中大量的工作是程序測試,在調(diào)試過程中會遇到各種各樣的問題,每解決一個問題就能積累一點經(jīng)驗,提高編程的能力。因此,對實驗的總結(jié),最主要的是程序調(diào)試經(jīng)驗的總結(jié)。調(diào)試分析也包括對結(jié)果的分析。體會主要是指通過本次實驗是否達到了實驗目的,有哪些基本概念得到了深入理解等。 1、實驗一:多線程程序設計:炮打飛機 實驗目的:學會使用多線程進行并發(fā)程序設計 實驗內(nèi)容:編寫一個應用程序模擬大炮打飛機。在GUI界面上,飛機水平飛行,用界面上的按鈕控制大炮的運行方向(如向左,向右,向上,向下)。當炮彈碰著飛機后,飛機墜落。 2、實驗二:數(shù)據(jù)庫編程:書目信息管理 實驗目的:掌握數(shù)據(jù)庫編程技術(shù)。能正確連接數(shù)據(jù)庫,能對數(shù)據(jù)庫中信息進行查詢、插 入、刪除、修改。 實驗內(nèi)容:在數(shù)據(jù)庫中創(chuàng)建一張書目信息表,包括書名、作者、出版社、出版日期、書 號、價格字段。設計一個GUI界面進行書目管理。在該界面上有四個選項卡,分別是查詢、插入、刪除、修改。點擊查詢選項卡,出現(xiàn)的界面上有書名、作者、出版社、書號四個文本框,一個按鈕和一個只讀文本區(qū)。文本框內(nèi)容可以為空,輸入相應的查詢信息后(例如根據(jù)書名查詢可以僅輸入書名),點擊界面上的“查詢”按鈕,可以在界面下方的文本區(qū)中顯示出符合條件的書目詳細信息。點擊插入選項卡,出現(xiàn)的界面上有書名、作者、出版社、出版日期、書號、價格文本框,一個按鈕。在文本框中輸入信息后,點擊“插入”按鈕,該書目信息插入數(shù)據(jù)庫表中。點擊刪除選項卡,出現(xiàn)的界面上有書名文本框和一個按鈕,輸入書名后點擊“刪除”按鈕,該書目信息從數(shù)據(jù)庫表中刪除。點擊修改選項卡,出現(xiàn)的界面上有書名、作者、出版社、出版日期、書號、價格文本框,一個按鈕。輸入的書名必須是已存在的,否則會彈出消息框顯示出錯信息。輸入信息后,點擊“修改”按鈕,數(shù)據(jù)庫表中的相應書目信息被修改為新值。 3、實驗三:Applet編程:鴨子的移動 實驗目的:掌握Applet程序設計的方法,學會在Applet中繪制圖片,能采用雙緩沖技術(shù)進行圖片繪制,會在Applet中采用多線程進行動畫顯示。能在Applet中實現(xiàn)動畫的平滑顯示,避免閃爍現(xiàn)象。 實驗內(nèi)容:在Applet窗口中顯示一只鴨子圖片,要求這只鴨子以每秒100幀的速率水平移動,移到窗口邊界再返回移動。在窗口中點擊鼠標,鴨子停止移動;再次點擊鼠標,鴨子恢復移動。 4、實驗四:網(wǎng)絡編程:聊天室的實現(xiàn) 實驗目的:會編寫客戶端和服務器程序?qū)崿F(xiàn)C/S模式下的通信,會使用多線程進行網(wǎng)絡編程。 實驗內(nèi)容:編寫一個聊天室程序:客戶端界面請自行設計,可使其具有個性化特征; 可在實現(xiàn)基本的聊天室功能的基礎上添加個性化的功能。第三篇:上機實驗四
第四篇:上機實驗要求
第五篇:java上機實驗