版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄目錄- 1 -第一章 JAVA語言實驗機(jī)器與環(huán)境- 2 -1.1計算機(jī)的硬件配置- 2 -1.2計算機(jī)的軟件配置- 2 -的安裝和設(shè)置- 2 -1.4 配置環(huán)境變量- 5 -1.5 測試安裝- 8 -1.6 使用Eclipse IDE編譯與運(yùn)行程序- 8 -第二章 JDK開發(fā)工具簡介及JAVA程序開發(fā)步驟- 10 -2.1編輯運(yùn)行Java程序- 10 -2.2在Eclipse中運(yùn)行java程序- 13 -第三章實驗內(nèi)容- 15 -實驗一熟悉Java的編程環(huán)境- 15 -實驗二面向?qū)ο缶幊蹋?)- 1 -實驗三面向?qū)ο缶幊蹋?)- 1 -實驗四多線程異常處理- 10 -實驗五 Java 輸入
2、輸出流- 13 -實驗六Java圖形用戶界面- 15 -實驗七 Java Applet小應(yīng)用程序- 18 -實驗八網(wǎng)絡(luò)編程基礎(chǔ)- 22 -實驗九通過JDBC方式操作數(shù)據(jù)庫- 24 -附錄- 26 -1 SWT/JFace 簡介- 26 -2 SWT/JFace 常用組件- 30 -3 容器類- 45 -4 布局管理器- 50 -5 SWT 的事件處理- 68 -6 SWT Designer簡介- 74 -7 本章小結(jié)- 81 -第一章 Java語言實驗機(jī)器與環(huán)境1.1計算機(jī)的硬件配置PC系列微機(jī),包括286、386、486、奔騰及各種兼容機(jī),要求內(nèi)存為64M以上,一個硬盤驅(qū)動器和一個軟盤驅(qū)動器
3、。80列字符監(jiān)視器。配備鼠標(biāo)器。1.2計算機(jī)的軟件配置DOS6.22或Windows xp、Windows 2000。安裝軟件jdk-1_5_0-windows-i586.exe1.3 JDK1.5.0的安裝和設(shè)置1.3.1下載jdk-1_5_0-windows-i586.exeJDK開發(fā)工具包可以免費下載。下載網(wǎng)址下載如下文件:jdk-1_5_0-windows-i586.exe。1.3.2安裝jdk-1_5_0-windows-i586.exe由于目前大多數(shù)用戶使用的是Window xp 操作系統(tǒng),所以我們以在Window xp操作系統(tǒng)上安裝jdk-1_5_0-windows-i586.e
4、xe為例,說明安裝jdk-1_5_0的過程。jdk-1_5_0-windows-i586.exe是一個自解壓文件,雙擊它就可以解壓縮,同時進(jìn)行安裝工作,雙擊jdk-1_5_0-windows-i586.exe,文件會自動解壓縮,如圖2.1所示。圖1.1jdk-1_5_0-windows-i586.exe的解壓過程解壓縮工作完成之后,會出現(xiàn)JDK1.5.0的許可協(xié)議,如圖1.2所示圖1.2選擇許可協(xié)議界面點擊“next”按鈕,出現(xiàn)如圖1.3所示對話框,用戶可選擇要安裝的組件及選擇安裝目錄。 點擊“change”,可改變安裝目錄。圖1.3 組件的選擇選好后,點擊“next”按鈕,開始安裝,如圖1.
5、4所示。圖1.4 安裝進(jìn)度界面運(yùn)行環(huán)境設(shè)置及安裝,如圖1.5所示。圖1.5 安裝過程界面單擊“Next”按鈕,出現(xiàn)如圖1.6所示對話框,選擇瀏覽器,選中后,單擊“Next”按鈕繼續(xù)安裝。圖1.6選擇瀏覽器界面最后出現(xiàn)如圖1.7所示界面,單擊“finish”按鈕結(jié)束安裝。圖1.7 安裝結(jié)束界面1.4 配置環(huán)境變量1方法一平臺為 Windows2000 時,需要修改系統(tǒng)根目錄下的autoexec.bat文件。使用記事本或其它文本編輯器打開文件autuexec.bat,在該文件的最后增加如下兩行SET PATH=%CLASSPATH%;C:Program FilesJavajdk_04jrelibr
6、t.jarSET PATH=%PATH%;C:Program FilesJavajdk_04bin;其中,環(huán)境變量path和classpath分別指定了JDK命令搜索路徑和Java類路徑。在這里我們假設(shè)JDK安裝在C:Program FilesJavajdk_04目錄下,JDK的所有命令都放在C:Program FilesJavajdk1.5.0_04bin目錄下。設(shè)置環(huán)境變量path的作用是使DOS操作系統(tǒng)可以找到JDK命令。設(shè)置環(huán)境變量classpath的作用是告訴Java類裝載器到哪里去尋找第三方提供的類和用戶定義的類。JVM和其它JDK工具通過依次搜索平臺庫、庫擴(kuò)展和類路徑來查找類。如
7、果用戶在安裝jdk1.5.0時,選擇了另外的JDK安裝路徑,則環(huán)境變量path和classpath要作相應(yīng)的調(diào)整。2方法二右單擊“我的電腦”,選擇“屬性”,出現(xiàn)如圖1.7對話框,選擇“高級”選項卡,選擇其中的“環(huán)境變量”,出現(xiàn)如圖1.8對話框,在系統(tǒng)變量中建立或設(shè)置環(huán)境變量。在“變量名”對話框中輸入環(huán)境變量名,在“變量值”對話框中輸入相關(guān)值得路徑。設(shè)置過程如圖1.9、圖1.10所示,設(shè)置完成后,單擊“確定”完成設(shè)置。圖1.7 系統(tǒng)屬性對話框圖1.8 設(shè)置環(huán)境變量圖1.9 新建環(huán)境變量path圖1.10新建環(huán)境變量classpath1.5測試安裝環(huán)境變量設(shè)置完成后,重新啟動計算機(jī),在DOS窗口下
8、,敲入javac并回車后,如果出現(xiàn)Javac的用法參數(shù)提示信息,則安裝正確。否則要檢查環(huán)境變量設(shè)置是否正確。1.6使用Eclipse IDE編譯與運(yùn)行程序使用Eclipse IDE軟件可以很方便地進(jìn)行編譯和運(yùn)行程序的工作,但如果程序有交互的功能,還需要安裝其它插件。1下載到你的計算機(jī)將文件拷貝到C:盤根目錄下,然后右單擊該文件將其解壓到當(dāng)前文件夾下,如圖1.11所示。解壓后的目錄結(jié)構(gòu)如圖1.12所示。圖1.11 解壓操作界面圖1.12 解壓后的目錄結(jié)構(gòu)圖2測試安裝雙擊C:eclipseeclipse.exe文件,可看到如圖1.13所示啟動界面。圖1.13 eclipse啟動界面改變工作目錄如圖
9、1.14所示。圖1.14選擇工作區(qū)界面選擇好工作空間以后,單擊“確定”按鈕,如果能看到如圖1.15所示界面,則安裝成功。圖1.15選擇工作區(qū)界面第二章JDK開發(fā)工具簡介及Java程序開發(fā)步驟在jdk1.5.0的bin目錄下,存放著Java 2提供的一些可執(zhí)行程序,為我們開發(fā)和測試Java程序提供了工具。在我們的學(xué)習(xí)中,常用的JDK開發(fā)工具有如下幾種:(1)javac.exe:Java語言的編譯器。(2)java.exe:Java程序執(zhí)行引擎。(3)appletviewer:小應(yīng)用程序瀏覽器。在使用Eclipse之前,必須熟練掌握這些工具的用法。2.1編輯運(yùn)行Java程序單擊“文件Ø新
10、建Ø項目 ”,如圖2.1所示。圖2.1新建項目界面選擇了項目后出現(xiàn)如下界面,選擇“Java 項目”后單擊“下一步”。圖2.2 新建Java項目界面在圖2.3 所示界面中,在“項目名”一欄中,填入“Simple Java Program”其它使用缺省值。單擊下一步,出現(xiàn)如圖2.4所示界面。圖2.3 新建Java項目界面圖2.4 新建Java項目界面在如圖2.4所示界面中單擊“庫”選項卡,出現(xiàn)如圖2.5所示界面,確保JRE設(shè)置沒問題。單擊“完成”按鈕。圖2.5 新建Java項目界面2.2在Eclipse中運(yùn)行java程序在包資源管理器中右單擊“Simple Java Program”項目
11、如圖2.6所示,點擊“新建Ø類 ”,彈出如圖2.7所示界面。圖2.6新建Java類界面圖2.7新建Java類界面在圖2.7所示界面中在“名稱”一欄中填寫“HelloChina”,其它設(shè)置如圖2.7所示。單擊“完成”。在包資源管理器中查看源程序如圖2.8及圖2.9所示。圖2.8 包資源管理器中結(jié)構(gòu)圖圖2.9 代碼視圖在包資源管理器中右單擊“HelloChina.java”,如圖2.10所示點擊“運(yùn)行方式ØJava應(yīng)用程序 ”,運(yùn)行結(jié)果如圖2.11所示。圖2.10 運(yùn)行界面圖2.11 運(yùn)行界面第三章 實驗內(nèi)容實驗一熟悉Java的編程環(huán)境1.實驗?zāi)康?1) 掌握使用JDK開發(fā)Ja
12、va程序的步驟。(2) 掌握J(rèn)ava程序的基本語法;熟練運(yùn)用java的三個工具編譯或運(yùn)行程序。2.實驗內(nèi)容實驗題1按下面步驟進(jìn)行實驗(1)開機(jī)后,創(chuàng)建目錄d:java。把這個目錄作為我們的工作目錄。我們的Java源程序、編譯后的字節(jié)碼文件和用來運(yùn)行Java Applet的html文件都放在這個目錄中。(2)啟動EditPlus或其它編輯軟件編寫源代碼. public class ArithmaticTestpublic static void main( String args )int a=9;int b=-a;int i=0;int j=i+;int k=+j;System.out.pri
13、ntln("a = "+a);System.out.println("b = "+b);System.out.println("i = "+i);System.out.println("j = "+j);System.out.println("k = "+k);如果你使用的是EditPlus,那么可以看到如圖3.1的編輯結(jié)果:圖3.1 EditPlus編輯器界面(3)保存程序。注意:保存源程序時,程序名要與主類名一致。所以用ArithmaticTest.java作為本程序的文件名。如果用記事本編
14、寫程序,因記事本默認(rèn)的擴(kuò)展名是.txt,所以要給文件名加引號后保存。把該文件保存到目錄D:java中。(4)編譯程序圖3.2 application程序的編譯界面如果編譯成功,則在:java目錄中生成字節(jié)碼文件ArithmaticTest.class。如果不成功,則顯示錯誤信息,用戶可修改錯誤,(5)運(yùn)行程序圖3.3 application程序的運(yùn)行界面(6)觀察程序的運(yùn)行結(jié)果實驗題2 用ECLIPSE開發(fā)實現(xiàn)HelloWorld!程序。實驗題3 求解一元二次多項式的根:將不同的a,b,c值硬編碼到程序中,測試你的程序,觀察輸出結(jié)果。如:a=1,b=2,c=1a=0,b=1,c=1a=1,b=
15、1,c=1實驗題4 排序和查找給定一個數(shù)組: int a=28,39,49,78,23; / 你可以用任意的測試數(shù)據(jù)請對數(shù)組中的元素進(jìn)行排序。給定一個數(shù)字 x=49,請在排序后的數(shù)組中查找該元素。要求: * 最好使用折半查找 * 排序和查找自己寫函數(shù)實現(xiàn),不要使用標(biāo)準(zhǔn)API。實驗題5輸出九九乘法表要求: * 格式對齊 * 不允許僅用輸出語句實現(xiàn)。實驗二面向?qū)ο缶幊蹋?)1實驗?zāi)康恼莆認(rèn)ava程序面向?qū)ο缶幊痰幕炯軜?gòu),會運(yùn)用面向?qū)ο蟮乃枷刖帉慗ava程序。2實驗內(nèi)容實驗題1閱讀如下程序,完成思考題。class CCircle double pi; double radius;double ge
16、tRadius()return radius; void setCircle(double r, double p) pi=p; radius=r; public class Ex2_1 public static void main(String args) CCircle cir1=new CCircle(); cir1.setCircle(2.0,3.1416);System.out.println("radius="+cir1.getRadius(); 基本要求運(yùn)行程序并觀察運(yùn)行結(jié)果。思考問題試述程序中主要語句的作用。實驗題2設(shè)計一個用來描述汽車的類,使用類的非靜態(tài)
17、成員變量來表示汽車的車主姓名、當(dāng)前的速率和當(dāng)前方向盤的轉(zhuǎn)向角度,使用類的非靜態(tài)成員方法來表示改變汽車的速率和停車兩個操作。實驗題3定義一個類MyProgram,包含兩個屬性:一個是private的整型屬性data、一個是private的String類型的屬性str,封裝這兩個屬性的四個方法setData()和getData()、setStr( )和getStr();將這兩個屬性轉(zhuǎn)變?yōu)樽址姆椒ㄊ莟oStr()。編寫程序,使用MyProgram類,實現(xiàn)數(shù)據(jù)的訪問和修改,并調(diào)用toStr()方法顯示該類的屬性?;疽缶帉懲暾绦?。思考問題試述程序中各個方法的作用。實驗題4定義一個類實現(xiàn)銀行帳戶
18、的概念,包括的變量有"帳號"和"存款余額",包括的方法有"存款"、"取款"、"查詢余額"和”顯示帳號”。定義主類,創(chuàng)建帳戶類的對象,并完成相應(yīng)操作。提示:關(guān)鍵代碼如下:public int getleftmoney()return leftmoney;public void savemoney(double money)leftmoney+=money;public void getmoney(double money)if(money<=leftmoney)leftmoney-=mone
19、y;elseSystem.out.println("只能取:"+leftmoney);bankaccount ba=new bankaccount(888123,1000);ba.savemoney(21000);System.out.println("存入21000元后余額為:"+ba.getleftmoney();ba.getmoney(11500);System.out.println("11500元后余額為:"+ba.getleftmoney();實驗題5定義鏈表類,實現(xiàn)單鏈表基本操作。提示:關(guān)鍵代碼如下:public cla
20、ss Node public int data; Node next; public Node(int data) this.data = data; this.next=null; public void NodeDisplay() System.out.println (""+data+""); public class Link private Node first; public Link () this.first=null; public boolean isEmpty() public void insertHeadNode(int dat
21、a) public Node deleteHeadNode() public void findNode(int k) public void displayLink() public static void main (String args) 實驗三 面向?qū)ο缶幊蹋?)1實驗?zāi)康模?)掌握J(rèn)ava中的繼承機(jī)制及包(package)、接口(interface)等的設(shè)計方法。(2)掌握static、this、super等關(guān)鍵字的使用。2實驗內(nèi)容實驗題1有圖形類的父類Shape,參照圓Circle類補(bǔ)充完整正方性Square和三角形Triangle類,并分析運(yùn)行結(jié)果。class Shape vo
22、id draw() void erase() class Circle extends Shape void draw() System.out.println("Circle.draw()"); void erase() System.out.println("Circle.erase()");class Square extends Shape void draw() void erase() class Triangle extends Shape void draw() void erase() public class Shapes publi
23、c static Shape randShape() switch(int)(Math.random() * 3) default: / To quiet the compiler case 0: return new Circle(); case 1: return new Square(); case 2: return new Triangle(); public static void main(String args) Shape s = new Shape9; / Fill up the array with shapes: for(int i = 0; i < s.leng
24、th; i+) si = randShape(); / Make polymorphic method calls: for(int i = 0; i < s.length; i+) si.draw(); 實驗題2有兩個類:MobileManagement和Mobile,分別描述如圖3.7所示兩部手機(jī)名稱及價格,類MobileManagement在包中,而Mobile在包中。它們代碼如下。運(yùn)行MobileManagement.java,你應(yīng)該看到如圖3.8所示結(jié)果?;疽?在空白處填寫相關(guān)代碼并修改上面程序,使程序能夠顯示兩部手機(jī)的價格和數(shù)量,運(yùn)行結(jié)果如圖3.9 所示。E365, 17
25、80 RMBM330, 1450 RMB圖3.4手機(jī)及價格圖圖3.5 運(yùn)行結(jié)果圖程序Mobile.java源代碼:publicclassMobile /* Holds the name of the mobile. */private String name;/* Holds the price of the mobile. */privatefloat price;/* Creates a new mobile object. */publicMobile(String name, float price) = name;this.price = price;/* Get
26、s the name of the mobile. */public String getName() return name;/* Gets the price of the mobile. */publicfloat getPrice() return price;程序MobileManagement.java源代碼:import javax.swing.JOptionPane;publicclass MobileManagement /* Defines the entry point of the application. */publicstaticvoid main(String
27、args) / Creates two mobile phone objects.Mobile mobile1 = new Mobile("E365", 1780);Mobile mobile2 = newMobile("M330", 1450);/ Displays the two mobile phones in a dialog box.JOptionPane.showMessageDialog(null, "Mobile phones:nn"+mobile1.getName()+"n"+mobile2.ge
28、tName();圖3.6 運(yùn)行結(jié)果圖實驗題3有四個類,主類Store在包中,Mobile、Mp3Player、Product在包.data中,Mobile、Mp3Player是Product的子類,Product和Store代碼如下:Store.java源代碼:package .nwsuaf.jp.p4;import java.util.Arrays;import javax.swing.JOptionPane;import .nwsuaf.jp.p4.data.Mobile;import .nwsuaf.jp.p4.data.Mp3Player;impor
29、t .nwsuaf.jp.p4.data.Product;public class Store /* Defines the entry point of the application. */public static void main(String args) / Creates two mobile phone objects.Mobile mobile1 = new Mobile("China Mobile", "E365",1780);Mobile mobile2 = new Mobile("China Mobile&q
30、uot;, "M330",1450);Mp3Player player1 = new Mp3Player("Meizo X3", 256, 399);Mp3Player player2 = new Mp3Player("Meizo E5", 512, 580);Mp3Player player3 = new Mp3Player("Xlive XM MP3 Play",256, 930);Product products=mobile1,mobile2,player1,player2, player3;Arrays.
31、sort(products);String text = ""for(int index = 0; index < products.length; +index)text += productsindex.toString()+"n"/ Displays the two mobile phones in a dialog box.JOptionPane.showMessageDialog(null,"The productsare:nn"+text+"nThere are "+Product.getCoun
32、t()+" products.");Product.java源代碼:package .nwsuaf.jp.p4.data;publicabstractclass Product implements Comparable<Product> /* Holds the name of the product. */protected String name;/* Holds the price of the product. */protectedfloat price;/* Holds the number of products. */protect
33、edstaticintcount;/* Create a new product object. */protected Product(String name, float price) = name;this.price = price;+count;/* Gets the name of the product. */public String getName() return name;/* Gets the price of the product. */publicfloat getPrice() return price;/* Gets the number
34、of products. */publicstaticint getCount() returncount;/* Compares this product with the given product. */publicint compareTo(Product product) returnnew Float(product.getPrice().compareTo(price); 基本要求 設(shè)計類Mobile和類MP3Player,使它們和類Product、Store組成一個完整的程序,且運(yùn)行結(jié)果如圖3.10所示。圖3.7 運(yùn)行結(jié)果圖實驗題4用LIST存放對象。利用面向?qū)ο蟮乃枷?,?chuàng)建以
35、下類:Person類,包含Person的姓名和身份證號碼。Student類,首先是一個Person,除此之外,包含學(xué)生的語文、數(shù)學(xué)、英文課的成績。Teacher類,首先是一個Person,除此之外,包含教師的工資。請創(chuàng)建 姓名 張三 身份證號 12310000的Person對象。 請創(chuàng)建 姓名 李四 身份證號 12320000 語文: 89 數(shù)學(xué): 93 英文: 94的Student對象。 請創(chuàng)建 姓名 王五 身份證號 12330000 工資: 3000的Teacher對象。將這些對象存放在List中,并打印出List中存放的內(nèi)容。實驗題5用SET存放對象。利用面向?qū)ο蟮乃枷?,?chuàng)建以下類:Pe
36、rson類,包含Person的姓名和身份證號碼。請創(chuàng)建三個對象,放在HashSet中: 姓名 張三 身份證號 12310000 姓名 李四 身份證號 12320000 姓名 王五 身份證號 12330000再創(chuàng)建對象: 姓名 張三 身份證號 12310000能放入到剛才創(chuàng)建的HashSet中么? 把集合中的元素打印出來。用TreeSet存放上面三個人,要求按照身份證號排序,打印出來。能夠把上面步驟中創(chuàng)建的對象放到這個TreeSet中么?;疽?使用Java API中的Set相關(guān)的技術(shù)來完成實驗任務(wù)。技術(shù)提示l 使用HashSet要覆蓋hashCode()方法, equals()方法l 打印集
37、合內(nèi)的元素,要覆蓋toString()方法。l 使用TreeSet要實現(xiàn)Comparable接口。實驗題6用Map存放對象參見Exp3.4.TXT,里面存放了30個同學(xué)的學(xué)號和姓名。給定學(xué)生的學(xué)號,問該學(xué)生在不在名單中,如果在,給出姓名?;疽?使用Java API中的Map相關(guān)的技術(shù)來完成實驗任務(wù)。技術(shù)提示 使用Java API中的Set相關(guān)的技術(shù)來完成實驗任務(wù)。l 使用文件操作,讀出文件中的學(xué)號和姓名;l 學(xué)號作為KEY,姓名作為VALUE,放到MAP中;l 從命令行中輸入的學(xué)號,作為KEY,在MAP中進(jìn)行檢索。實驗四多線程異常處理1實驗?zāi)康?1) 掌握J(rèn)ava的異常處理機(jī)制及相關(guān)實現(xiàn)方
38、法能夠在程序設(shè)計中熟練運(yùn)用異常及相關(guān)類及對象;(2) 掌握J(rèn)ava多線程的概念和實現(xiàn)方法;(3) 掌握J(rèn)ava多線程的同步問題;2實驗內(nèi)容實驗題1創(chuàng)建兩個線程,一個線程打印“A”,另一個線程打印“B”,比如ABBABAABBA.實驗題2假設(shè)有火車票1000張,創(chuàng)建10個線程模擬10個售票點,每個售票點100毫秒買一張票。打印出售票過程,注意使用synchronized確保同一張票只能賣出一次。輸出格式如下:第4售票點賣出第100張票第2售票點賣出第101張票 實驗題3假設(shè)某家銀行,它可接受顧客的匯款,每做一次匯款,便可計算出匯款的總額?,F(xiàn)有兩個顧客,每人都分3次,每次100元將錢到入。試編寫一
39、個程序,模擬實際作業(yè)。程序如下:class CBankprivate static int sum=0; public static void add(int n) int tmp=sum; tmp=tmp+n; / 累加匯款總額 tryThread.sleep(int)(10000*Math.random(); / 小睡幾秒鐘 catch(InterruptedException e) sum=tmp; System.out.println("sum= "+sum); class CCustomer extends Thread / CCustomer類,繼承自Threa
40、d類public void run() / run() method for(int i=1;i<=3;i+) CBank.add(100); / 將100元分三次匯入 public class Ex6_1 public static void main(String args) CCustomer c1=new CCustomer(); CCustomer c2=new CCustomer(); c1.start(); c2.start(); 基本要求運(yùn)行程序5次,觀察每次運(yùn)行結(jié)果是否相同。思考問題程序運(yùn)行結(jié)果每次是否相同,運(yùn)行時間是否相同,為什么?要使程序運(yùn)行結(jié)果每次相同,應(yīng)該怎樣修
41、改程序?程序中為什么要使用異常處理?實驗題4在程序中主動產(chǎn)生一個ArithmeticException 類型被0 除的異常,并用catch 語句捕獲這個異常。最后通過ArithmeticException 類的對象e 的方法getMessage 給出異常的具體類型并顯示出來。實驗題5在一個類的靜態(tài)方法mathod()方法內(nèi)使用throw 產(chǎn)生異常,使用throws 子句拋出mathod()的異常,在main 方法中捕獲處理異常。實驗題6在try 子句中設(shè)計兩個以上可能出現(xiàn)的異常。通過多個catch 子句分別來捕獲異常。并使用finally子句確保一段代碼不管發(fā)生什么異常都能被執(zhí)行。實驗題7編寫
42、一個程序,輸入一個班某門課程成績,統(tǒng)計及格人數(shù)、不及格人數(shù)平均分。為此設(shè)計一個異常類,當(dāng)輸入的成績小于0分或大于100分時,拋出異常,程序?qū)⒉蹲竭@個異常,并作出相應(yīng)處理?;疽缶帉懲暾绦?qū)嶒炍錔ava 輸入輸出流1實驗?zāi)康?1) 掌握輸入輸出流的總體結(jié)構(gòu);(2) 掌握流的概念;(3) 了解各種流(包括文件流、管道流、連接文件、過濾流、對象的序列化、隨機(jī)訪問)的使用。2實驗內(nèi)容實驗題1編寫一個Java Application程序,打印命令行輸入的所有參數(shù)?;疽缶帉懲暾绦?。實驗題2 閱讀下面程序,敘述其功能package .nwsuaf.jp;import java.io.F
43、ileReader;import java.io.IOException;public class FileViewer /* Defines the entry point of the program. */public static void main(String args) System.out.println("Please enter the file path:");try String fileName = ""while(true) int readByte = System.in.read();if(readByte = -1 |
44、readByte = 'r')break;fileName += (char) readByte;/ Reads the file and prints it to the System.out stream.char buffer = new char20;FileReader reader = new FileReader(fileName);while(true) int length = reader.read(buffer);if(length < 0) / Reads a long as there is more data.break;String text
45、 = new String(buffer, 0, length);System.out.print(text); catch (IOException e) e.printStackTrace();基本要求 寫出本題程序的功能。實驗題3 設(shè)計一個類FileRWTest,實現(xiàn)從input.txt文件中讀入數(shù)據(jù)到字符數(shù)組cBuffer中,然后再寫入到文件“output.txt”中?;疽缶帉懲暾绦?。實驗題4"水仙花數(shù)"。所謂"水仙花數(shù)"是指一個3位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如,153就是一水仙花數(shù),因為153 = 13+53+33 。
46、 請計算出100萬以內(nèi)所有的水仙花數(shù),并以一行一個水仙花數(shù)的格式保存到文本文件data.txt中。輸出格式如下:153 = 1*1*1 + 5*5*5 + 3*3*3實驗題 5寫一程序統(tǒng)計純文本文件“Early-Precaution.txt”的大寫字母、小寫字母個數(shù),并將所有小寫字母轉(zhuǎn)換為大寫字母,輸出到result.txt實驗六Java圖形用戶界面1實驗?zāi)康模?)掌握圖形用戶界面基本組件。(2)了解如何使用布局管理器對組件進(jìn)行管理。(3)掌握J(rèn)ava事件處理機(jī)制。2實驗內(nèi)容實驗題1編寫一個模擬計算器的程序,使用面板和網(wǎng)格布局,添加一個文本框,10個數(shù)字按鈕(0-9),4個加減乘除按鈕,一個等
47、號按鈕,一個清除按鈕,要求將計算公式和結(jié)果顯示在文本框中?;疽缶帉懲暾绦?qū)嶒烆}2 編寫一個程序,有一個窗口,該窗口為BorderLayout布局。窗口的中心添加一個Panel容器:pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter的中放置49個標(biāo)簽,用來顯示日歷。窗口北面添加一個Panel容器pNorth,其布局是FlowLayout布局,pNorth放置兩個按鈕:nextMonth和previousMonth按鈕,單擊nextMonth,可以顯示當(dāng)前月的下一個月的日歷;單擊previousMonth按鈕,可以顯示當(dāng)前月的上一個月的日歷。窗口的南面添
48、加一個Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一個標(biāo)簽用來顯示一些信息。運(yùn)行結(jié)果如圖所示。圖3.8 運(yùn)行結(jié)果圖基本要求編寫完整程序。實驗題3實現(xiàn)如圖6.2所示的布局方式功能:前兩個文本框輸入整型數(shù)據(jù)。第三個文本框存放前兩個文本框數(shù)據(jù)之和。要求如下:第一個文本框的數(shù)據(jù)是100,200,如果超出該范圍彈出對話框提示用戶。彈出提示對話框的時刻是光標(biāo)離開第一個文本框時。圖3.9 求和實驗題4編寫一個顯示圖像文件的Application應(yīng)用程序,在該程序JFrame窗體中添加JPanel面板和一個JToolBar工具欄,在工具欄上添加一個JButton“打開”按扭
49、,單擊“打開”按紐,彈出JFileChooser文件打開選擇對話框,選擇圖像文件后將其顯示在JPnel面板中。實驗題5使用SWT技術(shù)完成圖3.8 所示圖形界面的制作。要求“查詢結(jié)果”用group組件。圖3.10 數(shù)據(jù)查詢界面實驗題6使用SWT技術(shù)完成圖3.9所示學(xué)籍管理主界面的設(shè)計與制作。圖3.11學(xué)籍管理主界面實驗題7使用SWT技術(shù)在圖3.9所示界面中,在“用戶登錄”菜單中添加組件選擇事件,當(dāng)選中“用戶登錄”時,打開圖4.0所示用戶登錄界面。圖3.12 用戶登錄窗體實驗七 Java Applet小應(yīng)用程序1實驗?zāi)康模?)掌握J(rèn)ava Applet的編程方法和執(zhí)行過程。(2)掌握Applet的
50、生命周期。(3)掌握AWT的事件處理模型(4)掌握接口2實驗內(nèi)容實驗題1一個能進(jìn)行加法運(yùn)算的Applet程序如下:import java.awt.*;import java.awt.event.*;import java.applet.Applet;public class Ex5_1 extends Applet implements ActionListener Label label1 = new Label("+");Label label2 = new Label("=");TextField field1 = new TextField(6)
51、;TextField field2 = new TextField(6);TextField field3 = new TextField(6);Button button1 = new Button("相加");public void init()/初始化add(field1);add(label1);add(field2);add(label2);add(field3);add(button1);button1.addActionListener(this);public void actionPerformed(ActionEvent e) int x;x=Integ
52、er.parseInt(field1.getText()+integer.parseInt(field2.getText();field3.setText(Integer.toString(x);操作步驟使用eclipse編輯源程序。編譯程序?qū)pplet嵌入HTML網(wǎng)頁。方法是,用記事本創(chuàng)建一個文件,文件內(nèi)容如下:<applet codebase="." code="Ex5_1.class" width=360 height=120></applet>文件建好后,以“Ex5_1.html”為文件名保存文件。把文件Ex5_1.ht
53、ml與文件Ex5_1.class保存到同一個目錄。用瀏覽器打開文件Ex_5.html輸入整數(shù)進(jìn)行相加運(yùn)算,觀察運(yùn)算結(jié)果思考問題試述Applet的生命周期。試述AWT的事件處理模型。實驗題2編寫一個Applet程序,顯示一圓心在Applet中心,半徑從0到100像素不斷變大的綠色球的動畫?;疽缶帉懲暾绦?qū)嶒烆}3利用所學(xué)的Java語言知識,完成一個實現(xiàn)秒表功能的Applet程序。它的GUI界面如下所示: 圖3.13 獲取時間要求該程序能夠完成以下功能:(1) 在界面上方的文本框中,按照"小時:分鐘:秒"的順序?qū)崟r顯示系統(tǒng)時間;(2) 當(dāng)按下界面中間的"Current Time:"按鈕時,當(dāng)前系統(tǒng)時間能夠在界面下方的文本框中顯示出來。提示:可以通過調(diào)用java.util.Data類的方法,獲得系統(tǒng)時間。Data類的接口如下所示,public class Date / 返回當(dāng)前系統(tǒng)時間的小時值public String getHours( ) / 返回當(dāng)前系統(tǒng)時間的分鐘值public String getMintues( ) / 返回當(dāng)前系統(tǒng)時間的秒鐘值public String getSeconds( ) 實驗題4 編寫一Applet程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提前施工委托書
- 2025年天津b2考貨運(yùn)資格證要多久
- 《型翻轉(zhuǎn)床推廣方案》課件
- 2025年山西貨運(yùn)從業(yè)資格證考試模擬題庫答案大全
- 2025年牡丹江貨運(yùn)上崗證考試題庫答案
- 2025年安順貨運(yùn)從業(yè)資格證考題
- 2025年安陽a2駕駛證貨運(yùn)從業(yè)資格證模擬考試
- 仿古住宅小區(qū)開發(fā)協(xié)議
- 制造業(yè)工傷理賠調(diào)解協(xié)議
- 公路建設(shè)項目招投標(biāo)難點分析
- “僵尸型”社會組織注銷登記表
- 住院HIS系統(tǒng)流程圖
- 采購部年終總結(jié)計劃PPT模板
- 智能交互式無紙化會議系統(tǒng)設(shè)計方案
- 機(jī)械制造工藝學(xué)課程設(shè)計
- 配電箱安裝施工方案
- 湘少版英語四年級上冊Unit12Petercanjumphigh單元測試題(含答案及)
- 早產(chǎn)兒知情同意書
- 手術(shù)質(zhì)量與安全監(jiān)測分析制度
- 2020年事業(yè)單位招聘考試《氣象專業(yè)基礎(chǔ)知識》真題庫及答案1000題
- 模型構(gòu)建的原則和主要步驟
評論
0/150
提交評論