第一篇:Java及Javaweb(jsp)實(shí)驗(yàn)1
實(shí)驗(yàn)1:Java類與對象
一、實(shí)驗(yàn)?zāi)康?/p>
(1)掌握J(rèn)ava類的繼承關(guān)系和派生方法。(2)理解多態(tài)的概念與使用。(3)掌握接口的定義和使用。
二、實(shí)驗(yàn)任務(wù)
(1)按要求編寫一個(gè)Java程序。
(2)按要求完善一個(gè)Java程序,編譯、運(yùn)行這個(gè)程序,并寫出運(yùn)行結(jié)果。
三、實(shí)驗(yàn)內(nèi)容
1.編寫一個(gè)Java程序片斷,以定義一個(gè)表示學(xué)生的類Student。這個(gè)類的屬性有“學(xué)號”、“班號”、“姓名”、“性別”、“年齡”,方法有“獲得學(xué)號”、“獲得班號”、“獲得性別”、“獲得姓名”、“獲得年齡”、“獲得年齡”。2.為類Student增加一個(gè)方法public String toString(),該方法把Student類的對象的所有屬性信息組合成一個(gè)字符串以便輸出顯示。編寫一個(gè)Java Application程序,創(chuàng)建Student類的對象,并驗(yàn)證新增加的功能。
四、調(diào)試過程
五、運(yùn)行結(jié)果
六、心得體會
實(shí)驗(yàn)代碼: package taru.cn;public class SuperClass {
} int x;SuperClass(){
x=3;} voiddoSomething(){ System.out.println(“in SuperClass.doSomething()”);System.out.println(“in SuperClass : x=” +x);
} package taru.cn;public class SubClass extends SuperClass {
int x;SubClass(){
}
super();//調(diào)用父類的構(gòu)造方法
} voiddoSomething(){
super.doSomething();//調(diào)用父類的方法 x=5;
//super()要放在方法中的第一句
System.out.println(“in SubClass :x=”+x);System.out.println(“in SubClass.doSomething()”);System.out.println(“super.x=”+super.x+“ sub.x=”+x);} package taru.cn;class Student{
longstudentID;intclassID;String name;
String sex;int age;
public Student(long studentID,intclassID,Stringname,Stringsex,int age){
this.studentID=studentID;
this.classID=classID;
this.name=name;this.sex=sex;this.age=age;}
public long getStudentID(){
returnstudentID;} publicintgetClassID(){ returnclassID;} public String getName(){
return name;}
public String getSex(){ return sex;}
publicintgetAge(){ return age;}
public String toString(){
return “學(xué)號:”+getStudentID()+“n班號:”+getClassID()+“n姓名:”+getName()+“n性別:”+getSex()+“n年齡:”+getAge();} }
package taru.cn;public class StudentDemo1 {
public static void main(String args[]){
Undergraduate st1 = new Undergraduate(“張三”,50,70,60);
st1.Display();
Graduate st2=new Graduate(“李四”,70,80,90);
st2.Display();
}
} package taru.cn;
public class Inheritance {
} public static void main(String args[]){
SubClasssubC=new SubClass();subC.doSomething();}
第二篇:Java實(shí)驗(yàn)3
實(shí)驗(yàn)3 常用類(2學(xué)時(shí))
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉Java中的String、StringBuffer、Math、包裝器類、Scanner類的使用方法。2.使用常用類解決一般性的應(yīng)用問題。3.掌握J(rèn)avaSE API文檔的使用方法。
二、實(shí)驗(yàn)內(nèi)容
1.編寫一個(gè)Java應(yīng)用程序。用戶從鍵盤輸入一個(gè)整數(shù),程序?qū)⑴袛噙@個(gè)數(shù)是幾位數(shù)并輸出其位數(shù),并判斷這個(gè)數(shù)是否是回文數(shù)(是,則輸出“是回文數(shù)”,否則輸出“不是回文數(shù)”)?;匚臄?shù)是指將該數(shù)含有的數(shù)字逆序排列后得到的數(shù)和原數(shù)相同,例如12121、3223都是回文數(shù)。要求:定義兩個(gè)方法,一個(gè)用于獲取一個(gè)整數(shù)的位數(shù),一個(gè)用于返回一個(gè)整數(shù)是否為回文數(shù)。
2.編寫一個(gè)程序,由用戶從鍵盤輸入一個(gè)字符串,程序輸出該字符串中的大寫英文字母數(shù),小寫英文字母數(shù)以及非英文字母數(shù)。(用戶鍵盤輸入用Scanner類實(shí)現(xiàn))
3.在安排教師監(jiān)考時(shí),需要從一組教師中隨機(jī)選取n個(gè)教師參加監(jiān)考。要求實(shí)現(xiàn)一個(gè)類RandomTeacher的靜態(tài)方法public static String[] getRandomTeachers(String[] teachers, int n),能夠從teachers中隨機(jī)選擇n個(gè)教師(名字)并返回。
4.假設(shè)某餐館中每桌顧客點(diǎn)菜記錄的格式為“北京烤鴨:189 西芹百合:15 清蒸鱸魚:80”。編寫一個(gè)類的方法,能夠根據(jù)點(diǎn)菜內(nèi)容對應(yīng)的字符串輸出點(diǎn)菜記錄中每種菜的價(jià)格以及總的價(jià)格。
5.編寫一個(gè)方法,返回一個(gè)double型的二維數(shù)組,數(shù)組中的元素通過解析字符串參數(shù)獲得。例如,字符串參數(shù):“1,2;3,4,5;6,7,8”,對應(yīng)的數(shù)組為:
d[0,0] = 1.0 d[0,1] = 2.0
d[1,0] = 3.0 d[1,1] = 4.0 d[1,2] = 5.0
d[2,0] = 6.0 d[2,1] = 7.0 d[2,2] = 8.0
三、實(shí)驗(yàn)要求
完成程序設(shè)計(jì)并提交代碼。
第三篇:Java實(shí)驗(yàn)5
實(shí)驗(yàn)五
一、實(shí)驗(yàn)內(nèi)容:
從鍵盤上輸入一行字符串。
①將字符按Unicode字典順序排序后輸出。②統(tǒng)計(jì)每個(gè)字符出現(xiàn)的次數(shù)和位置。③統(tǒng)計(jì)含有的單詞個(gè)數(shù)。④正向和反向輸出單詞。
二、算法思路:
要完成任務(wù)①:使用StringTokenizer類的countTokens()方法和nextToken(),將單詞存儲到String a[ ]數(shù)組中,再定義一個(gè)空的String b[ ] , 用來存放比較大小后的單詞。
要完成任務(wù)③:使用StringTokenizer類中的countTokens()方法。
要完成任務(wù)②:定義charArray[i ]存放字符
intArray[ i]出現(xiàn)字符的次數(shù) addr[i][ ]用來存放出現(xiàn)字符的位置
要完成任務(wù)④:可以通過之前定義存儲的String a[ ]和相關(guān)簡單算法,輸出正向和反向的單詞。
三、實(shí)驗(yàn)結(jié)果:
四、程序代碼: import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;
public class TokenTest extends JFrame{
private JLabel promptLabel;
private JTextField inputField;
private JTextArea outputArea;
public TokenTest(){
super(“字符串”);
Container container=getContentPane();
container.setLayout(new FlowLayout());
promptLabel=new JLabel(“輸入一個(gè)句子,然后按回車鍵”);
container.add(promptLabel);
inputField=new JTextField(20);
inputField.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
StringTokenizer tokens=new StringTokenizer(event.getActionCommand());
int num=100;
int n=0;
num=tokens.countTokens();
String a[]=new String[num];
String b[]=new String[num];
while(tokens.hasMoreTokens())
{
a[n++]=tokens.nextToken();
}
n=0;
int m=0;
while(m { for(int i=0;i<=n;i++) { if(i==n) b[i]=a[m]; else if(a[m].compareToIgnoreCase(b[i])<0) { for(int j=n;j>i;j--) b[j]=b[j-1]; b[i]=a[m]; break; } } m++; n++; } outputArea.setText(“按Unicode字典順序排序后輸出:n”); for(int i=0;i outputArea.append(b[i]+“ ”); outputArea.append(“nn單詞個(gè)數(shù):”+num); String buffer=inputField.getText(); char charArray[]=new char[26]; int intArray[]=new int[26]; int addr[][]=new int[26][26]; n=0; for(int i=0;i { for(int j=0;j<=n;j++) { if(j==n) { charArray[j]=buffer.charAt(i); intArray[j]++; addr[j][intArray[j]-1]=i; } else if(buffer.charAt(i)==' ') {n--;break;} else if(buffer.charAt(i)==charArray[j]) { intArray[j]++; addr[j][intArray[j]-1]=i; n--; break; } } n++; } 置:“); }); } outputArea.append(”nn統(tǒng)計(jì)每個(gè)字符出現(xiàn)的次數(shù)和位置n“);for(int i=0;i outputArea.append(charArray[i]+” 次數(shù):“+intArray[i]+” 位 for(int j=0;j { outputArea.append(addr[i][j]+“ ”); } outputArea.append(“n”);} String s=“n”; outputArea.append(“n單詞正向輸出:n”); for(int i=0;i outputArea.append(a[i]+“ ”); outputArea.append(“nn單詞反向輸出:”); for(int i=0;i { for(int count=a[i].length()-1;count>=0;count--) { s+=a[i].charAt(count); } s+=“ ”; } outputArea.append(s);} container.add(inputField);outputArea=new JTextArea(20,40);outputArea.setEditable(false);container.add(new JScrollPane(outputArea));setSize(500,500);setVisible(true); public static void main(String[] args){ TokenTest application=new TokenTest(); application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } 五、心得體會: 這個(gè)程序,應(yīng)該是我目前所花時(shí)間最長編寫出來的程序,從草稿紙上醞釀出算法,到最后在計(jì)算機(jī)上成功運(yùn)行,花了3個(gè)晚上的時(shí)間,其中有一天晚上,本人忘我編程到凌晨12:30,當(dāng)中遇到了很多出乎意料的問題,但是在遇到問題時(shí),我積極思考,反復(fù)調(diào)試,編程開始階段,程序一直異常跳出,我也花了挺多時(shí)間找錯誤,也花了不少時(shí)間檢驗(yàn)算法的嚴(yán)密性。程序中用紅筆標(biāo)注的,是我花時(shí)間最長的地方,也是本程序的難點(diǎn)和要點(diǎn)。通過這次程序,我很好地深入鉆研了StringTokenizer類的用法,原來使用其對象countTokens()方法和hasMoreTokens()方法一次之后,再次調(diào)用這些方法,countTokens()返回值是0;hasMoreTokens()返回null。正是由于自己一開始對StringTokenizer類用法的不了解,我才在一開始程序中,異想天開的多次使用了countTokens()方法和hasMoreTokens()方法,導(dǎo)致程序無法達(dá)到我的要求,所以我經(jīng)歷了漫長而艱辛的調(diào)試過程后,我才寫出了本程序,但我覺得,通過這種程序的錘煉,自己的變成能力會有很顯著的提升。 1、實(shí)驗(yàn)一:多線程程序設(shè)計(jì):炮打飛機(jī) 實(shí)驗(yàn)?zāi)康模簩W(xué)會使用多線程進(jìn)行并發(fā)程序設(shè)計(jì) 實(shí)驗(yàn)內(nèi)容:編寫一個(gè)應(yīng)用程序模擬大炮打飛機(jī)。在GUI界面上,飛機(jī)水平飛行,用界面上的按鈕控制大炮的運(yùn)行方向(如向左,向右,向上,向下)。當(dāng)炮彈碰著飛機(jī)后,飛機(jī)墜落。 2、實(shí)驗(yàn)二:數(shù)據(jù)庫編程:書目信息管理 實(shí)驗(yàn)?zāi)康模赫莆諗?shù)據(jù)庫編程技術(shù)。能正確連接數(shù)據(jù)庫,能對數(shù)據(jù)庫中信息進(jìn)行查詢、插 入、刪除、修改。 實(shí)驗(yàn)內(nèi)容:在數(shù)據(jù)庫中創(chuàng)建一張書目信息表,包括書名、作者、出版社、出版日期、書 號、價(jià)格字段。設(shè)計(jì)一個(gè)GUI界面進(jìn)行書目管理。在該界面上有四個(gè)選項(xiàng)卡,分別是查詢、插入、刪除、修改。點(diǎn)擊查詢選項(xiàng)卡,出現(xiàn)的界面上有書名、作者、出版社、書號四個(gè)文本框,一個(gè)按鈕和一個(gè)只讀文本區(qū)。文本框內(nèi)容可以為空,輸入相應(yīng)的查詢信息后(例如根據(jù)書名查詢可以僅輸入書名),點(diǎn)擊界面上的“查詢”按鈕,可以在界面下方的文本區(qū)中顯示出符合條件的書目詳細(xì)信息。點(diǎn)擊插入選項(xiàng)卡,出現(xiàn)的界面上有書名、作者、出版社、出版日期、書號、價(jià)格文本框,一個(gè)按鈕。在文本框中輸入信息后,點(diǎn)擊“插入”按鈕,該書目信息插入數(shù)據(jù)庫表中。點(diǎn)擊刪除選項(xiàng)卡,出現(xiàn)的界面上有書名文本框和一個(gè)按鈕,輸入書名后點(diǎn)擊“刪除”按鈕,該書目信息從數(shù)據(jù)庫表中刪除。點(diǎn)擊修改選項(xiàng)卡,出現(xiàn)的界面上有書名、作者、出版社、出版日期、書號、價(jià)格文本框,一個(gè)按鈕。輸入的書名必須是已存在的,否則會彈出消息框顯示出錯信息。輸入信息后,點(diǎn)擊“修改”按鈕,數(shù)據(jù)庫表中的相應(yīng)書目信息被修改為新值。 3、實(shí)驗(yàn)三:Applet編程:鴨子的移動 實(shí)驗(yàn)?zāi)康模赫莆誂pplet程序設(shè)計(jì)的方法,學(xué)會在Applet中繪制圖片,能采用雙緩沖技術(shù)進(jìn)行圖片繪制,會在Applet中采用多線程進(jìn)行動畫顯示。能在Applet中實(shí)現(xiàn)動畫的平滑顯示,避免閃爍現(xiàn)象。 實(shí)驗(yàn)內(nèi)容:在Applet窗口中顯示一只鴨子圖片,要求這只鴨子以每秒100幀的速率水平移動,移到窗口邊界再返回移動。在窗口中點(diǎn)擊鼠標(biāo),鴨子停止移動;再次點(diǎn)擊鼠標(biāo),鴨子恢復(fù)移動。 4、實(shí)驗(yàn)四:網(wǎng)絡(luò)編程:聊天室的實(shí)現(xiàn) 實(shí)驗(yàn)?zāi)康模簳帉懣蛻舳撕头?wù)器程序?qū)崿F(xiàn)C/S模式下的通信,會使用多線程進(jìn)行網(wǎng)絡(luò)編程。 實(shí)驗(yàn)內(nèi)容:編寫一個(gè)聊天室程序:客戶端界面請自行設(shè)計(jì),可使其具有個(gè)性化特征; 可在實(shí)現(xiàn)基本的聊天室功能的基礎(chǔ)上添加個(gè)性化的功能。 實(shí)驗(yàn) 一、簡單Java程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康?/p> 1. 學(xué)習(xí)使用JCreator開發(fā)JAVA代碼。 2. 了解JAVA的運(yùn)行環(huán)境,掌握開發(fā)JAVA代碼所需要的相關(guān)配置。3. 在JCreator中輸入習(xí)題程序,驗(yàn)證程序的正確性,熟悉開發(fā)環(huán)境。 二、實(shí)驗(yàn)內(nèi)容 1. 設(shè)置實(shí)驗(yàn)環(huán)境 a.安裝JDK,下載JDK包以后,按安裝向?qū)У奶崾疽来伟惭b,可直接安裝在C盤根目錄下。 b.更新環(huán)境變量: 2. 編寫程序:由鍵盤輸入兩個(gè)字符串“12”與“24”,將它們轉(zhuǎn)換成整數(shù),然后計(jì)算并輸出這兩個(gè)數(shù)的和。 3. 編寫程序:由鍵盤輸入給出一個(gè)百分制成績,要求輸出成績等級’A’、’B’、’C’和’D’,90分以上為’A’,75~89為’B’,60~74為’C’,60分以下為’D’。 4. 編一程序,求一個(gè)10項(xiàng)所組成的等差數(shù)列,其奇數(shù)項(xiàng)之和為135,偶數(shù)項(xiàng)之和為150。5. 用for語句輸出下列數(shù)字金字塔: 1 3 1 1 3 5 3 1 3 5 7 5 3 1 1 3 5 7 9 7 5 3 1 6. 編寫程序:由鍵盤輸入一正整數(shù),求出小于且等于這個(gè)數(shù)的所有質(zhì)數(shù)。實(shí)驗(yàn) 二、基本數(shù)據(jù)類型和數(shù)組 一、實(shí)驗(yàn)?zāi)康?/p> 1.進(jìn)一步熟悉JCreator開發(fā)JAVA代碼。 2.了解數(shù)組的使用與JAVA中對字符串的主要操作。 3.在JCreator中輸入習(xí)題程序,驗(yàn)證程序的正確性,熟悉開發(fā)環(huán)境。 二、實(shí)驗(yàn)內(nèi)容 1.編寫程序:由鍵盤輸入一整數(shù),求出該數(shù)所有的因子,如輸入6,則輸出的6的所有因子為1、2、3、6。 2假設(shè)有一條鋼材長2000米,每天截取其中的一半,編一程序求出多少天后,鋼材的長度開始短于5米? 3編寫程序:利用數(shù)列4?(1?13?15?17?19?111??)來取得?的近似值。并計(jì)算在得到3.14159之前,這個(gè)數(shù)列要取到第幾項(xiàng)? 4使用java.long.Math類,生成10個(gè)0~99之間的隨機(jī)整數(shù),求出它們中的最大值和最小值。 提示:java.long.Math類支持random方法:Math.Random()。該方法返回值是正數(shù),類型為double,范圍為0~1。如果要得到其它范圍的數(shù),則要進(jìn)行相應(yīng)的轉(zhuǎn)換。例如要得到(a,b)之間的整數(shù)的方法是:(int)((b-a+1)*Math.random()+a)。若要得到(0,99)之間的整數(shù)可以使用下列語句: int m =(int)(100*Math.random());5編寫程序:聲明一數(shù)組來存放12個(gè)月的英文名稱,由用戶從鍵盤輸入月份,如輸入8,則程序輸出相應(yīng)的月份名稱:August。同時(shí)請大家考慮若是用戶輸入了1~12以外的內(nèi)容,你的程序?qū)⑷绾螒?yīng)對? 6編寫程序:由鍵盤輸入一16位的長整數(shù),統(tǒng)計(jì)0~9這十個(gè)數(shù)字每一個(gè)出現(xiàn)的次數(shù)。7編寫程序:將兩個(gè)各有6個(gè)整數(shù)的數(shù)組,合并成一個(gè)由小至大排列的數(shù)組(該數(shù)組的長度為12)。8編寫程序:以遞歸的方式實(shí)現(xiàn)1+2+3+??+n(n = 200)的計(jì)算。 實(shí)驗(yàn) 三、類與對象 一、實(shí)驗(yàn)?zāi)康?/p> 1.進(jìn)一步熟悉JCreator開發(fā)JAVA代碼。2.了解類和對象之間的關(guān)系。 3.在JCreator中聲明一個(gè)類,其中有多個(gè)構(gòu)造方法。用不同的構(gòu)造方法創(chuàng)建對象。 二、實(shí)驗(yàn)內(nèi)容 聲明一個(gè)矩形類Rectangle,其中有多個(gè)構(gòu)造方法。用不同的構(gòu)造方法創(chuàng)建對象,并輸出矩形的周長和面積。聲明一個(gè)矩陣類Matrix,有這樣一些實(shí)例方法:將一個(gè)矩陣轉(zhuǎn)置、求兩個(gè)矩陣的和。寫出下面程序的運(yùn)行結(jié)果 class University { String name, city;University(String name, String city){ this.name = name;this.city = city;System.out.println(“super class”);} boolean samecity(String city){ if(city.equals(this.city))return true;else return false;} boolean samecity(University u){ return samecity(u.city);} } class UniversityWorld extends University { String country;UniversityWorld(String name, String city, String country){ super(name,city);this.country = country;System.out.println(“sub class”);} boolean samecity(String city, String country){ if(city.equals(this.city)&& country.equals(this.country))return true;else return false;} boolean samecity(UniversityWorld other){ return samecity(other.city, other.country);} } class UniversityWorldCity { public static void main(String args[]){ String city = “上?!?country = “中 國”;UniversityWorld u1 =new UniversityWorld(“北京大學(xué)”, “北京”, “中 國”);UniversityWorld u2 = new UniversityWorld(“清 華 大 學(xué)”, “北京”, “中 國”);System.out.println(“u1 = ” + u1.name + “, ” + u1.city + “, ” +u1.country);System.out.println(“u2 = ” + u2.name + “, ” + u2.city+ “,” + u2.country);System.out.println(“city = ” + city + “, country = ” +country);System.out.println(“u1.samecity(u2)= ” + u1.samecity(u2));System.out.println(“u1.samecity(city, country)= ” + u1.samecity(city,country));} } 實(shí)驗(yàn) 四、繼承與接口 一、實(shí)驗(yàn)?zāi)康?/p> 1.進(jìn)一步熟悉JCreator開發(fā)JAVA代碼。2.了解類的成員的訪問權(quán)限和包的關(guān)系。 3.了解繼承和接口的區(qū)別已及它們各自的作用,熟悉開發(fā)環(huán)境。 二、實(shí)驗(yàn)內(nèi)容 創(chuàng)建兩個(gè)String類的對象str1和str2,判斷sr2是否是str1的子串。如果是,輸出str1中,在子串ztr2前和后的字符串。如: “Action”是“addActionListener”的子串,在此子串前是字符串”add”,后面是字符串”Listener”。寫出下面程序的運(yùn)行結(jié)果 class Leve1{ String name=“"; int height,width;public Leve1(){;} public Leve1(Leve1 le){ name=le.name; height=le.height; width=le.width;} public Leve1(String na,int h,int w){ name=na; height=h; width=w;} public int higherthen(Leve1 t){ return this.height-t.height;} public void print(){ System.out.println(”class Leve1: “); System.out.println(”Name=: “+name+”, Height=: “+height+”, Width=: “+width);} } class Leve2 extends Leve1{ int width; public Leve2(){;} public Leve2(Leve1 le,int h,int w){ super(le); height=h; width=w;} public int widerthen(){ return width-super.width;} public void print(){ System.out.println(”class Leve2: “); System.out.println(”Name=: “+name+”, Height=: “+height+”, Width=: “+width);} } public class Lev_ex{ public static void main(String args[]){ Leve1 le1=new Leve1(”Tower_1“,50,20); Leve2 le2=new Leve2(le1,40,25); le1.print(); le2.print(); System.out.println(”Leve1 is “+le1.higherthen(le2)+” highter then Leve2.“); System.out.println(”Leve2 is “+le2.widerthen()+” wider then Leve1.“);} } 3、編寫代碼,完成功能:建立一個(gè)窗口,窗口上方橫列“文件”、“選項(xiàng)”兩個(gè)菜單項(xiàng)。其中“文件”菜單下隱含“退出”、“顯示”、“隱藏”三個(gè)子菜單,每個(gè)子菜單都可用快捷鍵選擇并且“退出”與其他兩個(gè)子菜單之間用分隔線分隔?!斑x項(xiàng)”菜單下包含名稱為“1”、“2”、“3”。。?!?0”的50個(gè)菜單項(xiàng),當(dāng)選擇其中任何一個(gè)數(shù)字選項(xiàng)時(shí),窗口正中將顯示0至該數(shù)字之間所有數(shù)的平方和(包含數(shù)字本身)。如選中選項(xiàng)“3”,則顯示14(SUM=1*1+2*2+3*3=14)。實(shí)驗(yàn) 五、常用實(shí)用類 一、實(shí)驗(yàn)?zāi)康?/p> 1.進(jìn)一步熟悉JCreator開發(fā)JAVA代碼。2.了解常用實(shí)用類的使用。 二、實(shí)驗(yàn)內(nèi)容 求和工具。編寫一個(gè)程序:設(shè)計(jì)如下面圖示的界面。在該界面中,可以在第一個(gè)文本框中輸入第一個(gè)加數(shù),可以在第二個(gè)文本框中輸入第二個(gè)加數(shù),當(dāng)用鼠標(biāo)的左鍵單擊按鈕”="時(shí),在第三個(gè)文本框中顯示出前面兩個(gè)加數(shù)之和。設(shè)計(jì)一個(gè)簡單的計(jì)算器,能進(jìn)行兩個(gè)數(shù)的加、減、乘、除。界面如圖所示?!癱lear”按鈕用于清理文本域的內(nèi)容。16方格排序游戲設(shè)計(jì)。編寫一個(gè)程序:如圖所示,要求在界面上設(shè)計(jì)4×4的按鈕,即16個(gè)按鈕排列成4×4的網(wǎng)格形狀。其中有且只有15個(gè)按鈕上有從1到15的數(shù)字,而且這些數(shù)字在按鈕上不重復(fù)出現(xiàn)。另外有一個(gè)按鈕上沒有數(shù)字。當(dāng)程序剛啟動時(shí)這15個(gè)數(shù)字是隨機(jī)排列的。當(dāng)用鼠標(biāo)左鍵單擊某個(gè)按鈕,如果該按鈕上有數(shù)字而且該按鈕在沒有數(shù)字的按鈕的邊上,則將該按鈕上的數(shù)字給沒有數(shù)字的按鈕,同時(shí)該按鈕就變成了沒有數(shù)字的按鈕。當(dāng)15個(gè)數(shù)字在4×4的網(wǎng)格中呈順序或逆序排列,則顯示消息框表明排列成功,并重新隨機(jī)排列這15個(gè)數(shù)字在按鈕網(wǎng)格上的位置。(提示: Math.random()可以產(chǎn)生隨機(jī)數(shù)) 實(shí)驗(yàn) 六、GUI編程 一、實(shí)驗(yàn)?zāi)康?/p> 1.進(jìn)一步熟悉JCreator開發(fā)JAVA代碼。2.了解GUI編程。 二、實(shí)驗(yàn)內(nèi)容 1. 在下拉列表choice1中選擇整數(shù)N,單擊“生成”按鈕在列表框List1和List2中顯示N對的隨機(jī)數(shù)(2~1000),在列表框List3中顯示每對隨機(jī)數(shù)的最大公約數(shù)。單擊“排序”按鈕,List3中的N個(gè)最大公約數(shù)按從小到大排列。(提示:排序算法采用冒泡法。兩數(shù)的最大公約數(shù)可以采用歐幾里得算法:不斷用兩數(shù)中較大數(shù)減較小的數(shù),至到有一個(gè)數(shù)等于0。另外一個(gè)大于0的數(shù)就是這兩數(shù)的最大公數(shù)約)。 2.完成程序?qū)崿F(xiàn)一個(gè)簡單的文本編輯器,其中File菜單實(shí)現(xiàn)Exit子菜單,Edit菜單實(shí)現(xiàn)Copy、Cut、Paste、DeleteAll功能,Option菜單實(shí)現(xiàn)字體設(shè)置功能。 3.在文本框中輸入函數(shù)y=sin(ax)中a的值,點(diǎn)擊draw按鈕畫出函數(shù)圖形。 實(shí)驗(yàn) 七、多線程 一、實(shí)驗(yàn)?zāi)康?/p> 1.進(jìn)一步熟悉JCreator開發(fā)JAVA代碼。2.了解多線程編程。 二、實(shí)驗(yàn)內(nèi)容 1、編寫程序,有兩個(gè)線程,分別在屏幕上顯示1~50之間的奇數(shù)和偶數(shù)。觀察一共有幾個(gè)線程在運(yùn)行,各個(gè)線程是怎樣被處理器執(zhí)行的。 2、編寫一個(gè)程序,創(chuàng)建兩個(gè)線程,其中一個(gè)產(chǎn)生5個(gè)1~100之間的隨機(jī)整數(shù),另一個(gè)線程將這5個(gè)數(shù)加起來。觀察運(yùn)行的情況,分析是否正確。如果結(jié)果有問題,想辦法解決它。 實(shí)驗(yàn) 八、圖形圖像 一、實(shí)驗(yàn)?zāi)康?/p> 1.進(jìn)一步熟悉JCreator開發(fā)JAVA代碼。2.了解圖形圖像編程。 二、實(shí)驗(yàn)內(nèi)容 1、編寫一個(gè)模擬畫圖的程序,用戶可以選擇繪圖的圖形,如“線”、“矩形”、“圓”、“橢圓”等,選擇后即可在屏幕上移動鼠標(biāo)畫圖。(提示:選擇圖形可以使用單選按鈕組,畫圖需要處理鼠標(biāo)事件。)第四篇:java上機(jī)實(shí)驗(yàn)
第五篇:JAVA實(shí)驗(yàn)指導(dǎo)書