第一篇:java上機實驗
1、實驗一:多線程程序設計:炮打飛機
實驗目的:學會使用多線程進行并發(fā)程序設計
實驗內容:編寫一個應用程序模擬大炮打飛機。在GUI界面上,飛機水平飛行,用界面上的按鈕控制大炮的運行方向(如向左,向右,向上,向下)。當炮彈碰著飛機后,飛機墜落。
2、實驗二:數(shù)據(jù)庫編程:書目信息管理
實驗目的:掌握數(shù)據(jù)庫編程技術。能正確連接數(shù)據(jù)庫,能對數(shù)據(jù)庫中信息進行查詢、插
入、刪除、修改。
實驗內容:在數(shù)據(jù)庫中創(chuàng)建一張書目信息表,包括書名、作者、出版社、出版日期、書
號、價格字段。設計一個GUI界面進行書目管理。在該界面上有四個選項卡,分別是查詢、插入、刪除、修改。點擊查詢選項卡,出現(xiàn)的界面上有書名、作者、出版社、書號四個文本框,一個按鈕和一個只讀文本區(qū)。文本框內容可以為空,輸入相應的查詢信息后(例如根據(jù)書名查詢可以僅輸入書名),點擊界面上的“查詢”按鈕,可以在界面下方的文本區(qū)中顯示出符合條件的書目詳細信息。點擊插入選項卡,出現(xiàn)的界面上有書名、作者、出版社、出版日期、書號、價格文本框,一個按鈕。在文本框中輸入信息后,點擊“插入”按鈕,該書目信息插入數(shù)據(jù)庫表中。點擊刪除選項卡,出現(xiàn)的界面上有書名文本框和一個按鈕,輸入書名后點擊“刪除”按鈕,該書目信息從數(shù)據(jù)庫表中刪除。點擊修改選項卡,出現(xiàn)的界面上有書名、作者、出版社、出版日期、書號、價格文本框,一個按鈕。輸入的書名必須是已存在的,否則會彈出消息框顯示出錯信息。輸入信息后,點擊“修改”按鈕,數(shù)據(jù)庫表中的相應書目信息被修改為新值。
3、實驗三:Applet編程:鴨子的移動
實驗目的:掌握Applet程序設計的方法,學會在Applet中繪制圖片,能采用雙緩沖技術進行圖片繪制,會在Applet中采用多線程進行動畫顯示。能在Applet中實現(xiàn)動畫的平滑顯示,避免閃爍現(xiàn)象。
實驗內容:在Applet窗口中顯示一只鴨子圖片,要求這只鴨子以每秒100幀的速率水平移動,移到窗口邊界再返回移動。在窗口中點擊鼠標,鴨子停止移動;再次點擊鼠標,鴨子恢復移動。
4、實驗四:網絡編程:聊天室的實現(xiàn)
實驗目的:會編寫客戶端和服務器程序實現(xiàn)C/S模式下的通信,會使用多線程進行網絡編程。
實驗內容:編寫一個聊天室程序:客戶端界面請自行設計,可使其具有個性化特征; 可在實現(xiàn)基本的聊天室功能的基礎上添加個性化的功能。
第二篇:java上機實驗心得體會報告
北京聯(lián)合大學信息學院
“面向對象程序設計”課程上機實驗報告
題目:
JAVA上機實驗心得體會 姓名(學號):
專業(yè):計算機科學與技術
編制時間:
2012年12月19日
版本:
1.0.0
指導教師:
北京聯(lián)合大學-信息學院編制 實驗1 熟悉Java運行環(huán)境
實驗目的:熟悉JDK環(huán)境和操作,編寫簡單的Java應用程序。
心得體會:在該實驗中,我碰到的問題是JDK環(huán)境變量的設置。解決方法是通過查閱資料書和網上搜索相關解決方法及同學的有力幫助。實驗2 選擇語句練習
實驗目的:正確理解并能夠熟練操作和使用Java的if和switch語句。
心得體會:我個人感覺有了C的編程基礎,if和switch這些簡單的流程控制語句運用起來比較輕松,實現(xiàn)簡單的邏輯運算也跟C非常相近,所以上手比較快。但是在這次程序中,首次涉及到了java程序的數(shù)據(jù)輸入,與C區(qū)別很大。但經過老師的講解和查閱相關資料,基本明白相關的使用規(guī)則和注意事項。在第二個小題中還涉及到了charAt()方法,經查閱JDK文檔,知道charAt()方法返回一個位于提供給它的參數(shù)索引處的字符,如: str.chatAt(0)檢索str中的第一個字符,str.charAt(str.length()-1)檢索最后一個字符。我運用此方法解決了比較字符串間首字母異同的問題。
實驗3 迭代練習
實驗目的:正確理解并能夠熟練操作和使用Java的for、while、do..while語句。心得體會:在該實驗中,我學會了為具體操作選擇最合適的循環(huán)語句及for、while、do..while語句的相互轉換使用。最重要的是,明白了JAVA程序中,定義方法中的局部變量時一定要賦初始值,否則編譯不能通過會報錯;但類中的成員變量則不一定需要。如我在實驗3main()方法定義的整型局部變量command,當不初始化則不能通過編譯。原因是局部變量不能有JVM自動賦給相關的默認值,而成員變量可以。實驗4 方法的實現(xiàn)練習
實驗目的:聲明、定義和調用方法,理解實參和形參的含義。
心得體會:在該實驗中,我掌握如何寫方法、調用方法,并掌握如何向方法中傳遞信息和從方法中返回信息。方法聲明為非void(構造方法除外)則需要用return語句返回一個相應類型的返回值。
實驗5 簡單類型數(shù)組練習
實驗目的:學習創(chuàng)建簡單類型的數(shù)組,并能用循環(huán)語句處理數(shù)組。
心得體會:通過該實驗,我學會了如何讓建立簡單類型的數(shù)組,并掌握了將數(shù)組作為方法的傳入參數(shù)和返回值。在該實驗中,遇到的問題主要是如何將一個連續(xù)的多位數(shù)在存入數(shù)組時,每個數(shù)組元素只對應改多位數(shù)的一個組成數(shù)。我解決的方法如下: for(i=0;i<6;i++){ n[i] = aa%10;//aa%10的結果是aa的末尾數(shù),將多位數(shù)aa的末尾數(shù)賦給a[i] aa =(int)aa/10;//對aa/10的結果強制取整,去掉了aa的末尾數(shù),以便對下一位數(shù)的存數(shù)。}
實驗6 類和對象的練習
實驗目的:正確理解并能夠熟練操作和使用Java的類、對象和方法。心得體會:我學會了如何建立類和對象,分別輸出其中包含的成員值;以及分別引用各方法,實現(xiàn)不同的操作。在該程序中,我進一步了解了如何定義成員方法和成員屬性以及相關方法的調用。特別是我掌握了利用構造方法對成員屬性賦初始值。值得一提的是,我在相應的程序中運用了toUpperCase方法,經查看JDK文檔知道該方法的作用是返回一個所有字母都被轉化為大寫字母字符串。實驗7 類的實現(xiàn)
實驗目的:使用統(tǒng)一建模語言(UML)設計類,并實現(xiàn)類。
心得體會:通過該實驗,我學會了使用public、private控制訪問及其訪問權限;體會了static關鍵字的作用。并對JAVA程序中的類及面向對象的編程思想有了更進一步的了解。實驗8 繼承的練習
實驗目的:正確理解并能夠熟練操作和使用Java類的繼承關系。
心得體會:理解了繼承的含義,并使用UML符號設計了繼承結構;掌握了用Java實現(xiàn)繼承關系;學會了區(qū)分方法重寫和方法重載;并深入理解了abstract 和 final修飾符的作用。用final標記的變量只能賦值一次,標記的類不可被繼承,方法不可被子類重寫。用關鍵字extends表繼承,例如子類A繼承了父類B則可寫作 class A extends B。在這些概念性知識點弄明白后,在解決實際問題時,碰到了輸入年月日計算車齡的問題,我的解決辦法如下: public int age(int year){
int age;
int a1 =(int)(time/10000);//(int)time/10000是將8位數(shù)表示的生產年月日強制轉換成四位數(shù)表示的年
int a2 =(int)(year/10000);//將當前年月日轉換為年
age = a2-a1 +1;//計算車齡
return age;} 實驗9 抽象類、接口練習
實驗目的:綜合運用接口,類的知識。
心得體會:在該實驗中,我掌握了接口定義,以及類實現(xiàn)接口。接口用interface關鍵字定義,在接口中,可以用abstract是修飾方法的,也可以去掉abstract,編譯時會默認為抽象方法。類實現(xiàn)接口可用implements表示,例如class Circle implements Shape表示,Circle類實現(xiàn)了接口Shape。實驗10 多態(tài)練習
實驗目的:理解并使用面向對象的特征:多態(tài)。
心得體會:在實驗10中,我基本掌握了多態(tài)的句柄、多態(tài)方法的定義。在改程序中,我遇到了要求隨機產生一個圖形的難題,通過網上查閱資料,利用系統(tǒng)函數(shù)Math.random()經一系列的運算處理來隨機產生一個圖形解決了該難題,具體的程序如下: public static void main(String[] args)
{
Circle cir = new Circle(9);
Square squ = new Square(4);
Shape shape;
int r;
r =(int)(Math.random()*2);//用Math.random()方法產生0.00到1.00的隨機數(shù),乘2取整后非0即1
if(r == 0)
shape = cir;
else
shape = squ;
} shape.testShape(shape);//同一條語句產生不同的執(zhí)行結果,多態(tài)性。
實驗11 多線程處理
實驗目的:理解線程的基本概念。
心得體會:通過該實驗,基本能夠理解線程的運行了。學會調用Thread類中的系統(tǒng)函數(shù)以及掌握這些函數(shù)的作用是難點,setName()是設置線程名字,start()是開辟一條新線程,Thread.currentThread().getName()是獲得正在執(zhí)行的線程的名字,Thread.currentThread().getId()是thread類中返回該線程的標識符的方法,Thread.currentThread().getPriority()是thread類中返回線程的優(yōu)先級的方法。
實驗12 I/O及文件處理
實驗目的:掌握并使用Java中的I/O和文件。
心得體會:對于該實驗,由于比較難,只是基本掌握了文件讀寫的方法和規(guī)則,還有待17周JAVA實訓時繼續(xù)攻堅克難。
結語:在這一系列的實驗中,我基本掌握了Java的編程規(guī)則、知識要點和一些小技巧,特別是對面向對象的編程思想和風格有了進一步的認識和體會。同時,因正確的編出程序而帶來的成就感讓我對編程更加感興趣。對于在這些實驗過程中,請教老師、同學互助、查閱資料等基本的學習方式,使我更加領悟到集體和團隊的力量,也樹立了敢于攻堅的信心。
第三篇:Java上機實驗報告
Homework3實驗報告
一、實驗目的與要求
1、掌握Java中類和接口的基本知識;
2、繼承的基本知識;
3、集合的基本操作
二、實驗內容 1.PIMCollection 類
創(chuàng)建一個可以管理PIMEntities實體的集合,該類實現(xiàn)了Collection接口,且必須實現(xiàn)了以下方法:(1).getNotes();返回PIMCollection中所有的PIMNote項,如果不包含PIMNote項,則返回一個空集合
(2).getTodos();返回集合PIMCollection中所有的PIMTodo項,如果不包含PIMTodo項,則返回一個空集合
(3).getAppointment();返回集合PIMCollection中所有的PIMAppointment項,如果不包含PIMAppointment項。則返回一個空集合(4).getContacts();返回結合PIMCollection中所有的PIMContact項,如果不包含PIMContact項,則返回一個空集合
(5).getItemsForDate(Date d);返回集合PIMCollection中所有與d匹配的PIMEntities,如果沒有匹配d的項,則返回一個空集合
(只有PIMTodo和PIMAppointment項,因為PIMNote和PIMContact跟日期沒有關系)。
2.TestPIMCollection類(自己的測試類)
向PIMCollection集合類中加入了一些PIMEntity實體類,并用PIMCollection類中實現(xiàn)的方法分別篩選出了其中的PIMNote、PIMTodo、PIMAppointment、PIMContact、符合指定日期d的集合并打印輸出。
三、實驗器材
計算機+windows操作系統(tǒng)+eclipse
四、實驗步驟
1.程序源代碼(壓縮在文件夾里)2.編譯執(zhí)行程序 3.記錄執(zhí)行結果
五、實驗結果
1.TestPIMCollection的測試代碼:
2.程序的執(zhí)行結果:
如圖所示:程序分別輸出了Todo、Note、Appointment、Contact、以及匹配指定日期的結合的結果。
六、實驗小結
1、熟悉了Java集合的基本內容和操作,也包括了泛型的一些知識。
2、通過這個實驗鞏固了java的基礎知識:類和接口的有關知識,繼承的應用。
3、掌握了在eclipse下編譯執(zhí)行Java程序的知識。
4、通過幾次的編程,熟悉了java的編程規(guī)則。
5、綜合應用所學知識完成java程序的分析、設計、調試和總結,為以后編寫更復雜的java程序打下了很好的基礎。
第四篇:計算方法上機實驗
龍格-庫塔
#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; } 實驗八 折半查找 一、實驗目的1、熟悉visual C++上機環(huán)境,進一步掌握C語言的結構特點。 2、進一步掌握圖的基本概念及其含義。 3、掌握查找的結構特征,以及各種存儲結構的特點及使用范圍。 4、掌握查找的基本運算及其實現(xiàn)。 二、實驗內容(參照課本上的第220頁) 設計一個算法,實現(xiàn)折半查找算法。 三、實驗要求 參照課本220頁算法9.2 四、實驗報告要求(參照《數(shù)據(jù)結構題集》第83頁實驗報告模板) 實驗報告必須有以下內容:實驗目的、實驗內容、實驗要求、源程序、測試結果(打印界面的形式表示)。第五篇:上機實驗八