下載文檔到電腦,查找使用更方便
5 積分
下載資源
《《java程序設(shè)計》實驗指導書完整.doc》由會員分享,可在線閱讀,更多相關(guān)《《java程序設(shè)計》實驗指導書完整.doc(53頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、XX學院java實驗報告 實驗一 Java實驗環(huán)境的建立 一、實驗目的 1.掌握Java編程環(huán)境的搭建過程; 2.掌握Jcreator pro軟件的使用方法; 3.能使用Java doc文檔。 二、實驗內(nèi)容 1.下載并安裝JDK1.6,配置JDK環(huán)境變量; 2.下載Javadoc壓縮包并解壓在JDK安裝路徑下; 3.下載Jcreator pro 4.0并安裝和配置使用環(huán)境; 4.使用實驗環(huán)境運行書中實例代碼,在屏幕上輸出“Hello Java”字符串。 ①Java application程序代碼如下: public class HelloJava {
2、 public static void main(String args[]) { System.out.println("Hello Java!"); } } ②Java applet程序代碼如下: import java.awt.*; public class Hello extends java.applet.Applet { public void paint(Graphics g) { g.drawString("Hello!",30,30); }
3、} 三、試驗要求 1、預習試驗內(nèi)容并寫出上機報告。 2、實驗中出現(xiàn)的問題及實驗體會。 實驗二 Java語言程序設(shè)計訓練 一、實驗目的: 1.輸入、輸出操作實現(xiàn)原理和方法 2.掌握程序流程控制的實現(xiàn)方法 3.掌握數(shù)組的定義和操作方法 二、實驗內(nèi)容 1.計算 Result=1!+2!+3!+…+10! public class TestJieC{ public static void main(String arg[]){ long result=1; for(int i=1;i<=10;i++) { result=i
4、*result; result+=result; } System.out.println(" "+result); } } 2.計算1---50之間所有素數(shù)的和。 public class Test{ public static void main(String args[]){ int count = 0; for(int i = 2;i<=50;i++){ for(int j = 2;j<=i;j++){ if(i>j){ if(i%j == 0){ count++;
5、 } } } if(count==0){ System.out.println(i); } count = 0; } } } } 3. 產(chǎn)生10個100之內(nèi)的隨機整數(shù)輸出,并把這10個數(shù)按從小到大的順序輸出。 public class TestMath{ public static void main(String args[]){ int math[] = new int[10]; for(int i = 0;i<10;i++){
6、 math[i] = (int)(Math.random()*100); System.out.print(math[i]+" "); } System.out.println(); for(int i = 0;i<10;i++){ for(int j = 0;j<10;j++){ if(math[i] 7、+){ System.out.print(math[i]+" "); } } } 4. 隨機產(chǎn)生20個50~100間的整數(shù),輸出這20個數(shù)并找出最大數(shù)及最小數(shù)輸出。 public class TestMath{ public static void main(String args[]){ int math[] = new int[20]; int max = 0;int min = 100; for(int i = 0;i<20;i++){ math[i] = (int)(Math.random()*50+50); Sy 8、stem.out.print(math[i]+" "); } System.out.println(); for(int i = 0;i<20;i++){ max = max>math[i] ? max : math[i]; min = min 9、port java.util.Scanner; public class Test{ public static void main(String args[]) throws Exception{ Scanner is = new Scanner(System.in); System.out.println("請輸入長方形的寬"); int a = is.nextInt(); System.out.println("請輸入長方形的高"); int b = is.nextInt(); System.out.println("輸入1求出周長,輸入2求出面 10、積,輸入三求出周長與面積"); int c = is.nextInt(); if(c == 1){ System.out.println("周長"+(a+b)*2); }else if(c == 2){ System.out.println("面積"+a*b); }else if(c == 3){ System.out.println("周長"+(a+b)*2+",面積"+a*b); }else{ System.out.println("輸入有誤,退出"); } } } 6.驗證書中的例題。 三、試驗要求 1、預習 11、試驗內(nèi)容并寫出上機報告。 2、實驗中出現(xiàn)的問題及實驗體會。 實驗三 面向?qū)ο蟮某绦蛟O(shè)計(一) 一、實驗目的 1. 熟悉類的創(chuàng)建方法。 2. 掌握對象的聲明與創(chuàng)建。 3. 能利用面向?qū)ο蟮乃枷虢鉀Q一般問題。 二、實驗內(nèi)容 1. 以下程序能否通過編譯?上機驗證并指明錯誤原因與改正方法 Class Location{ Private int x,y; Public void Location(int a,int b) { X=a; y=b;} Public int getX(){return x;} Public int getY(){retu 12、rn y;} Public static void main(String args[]){ Location loc=new Location(12,20); System.out.println(loc.getX()); System.out.println(loc.getY()); } 2.創(chuàng)建一個圖書類,類中包含的屬性有:書名、作者、出版社;包含的方法有:設(shè)置書籍狀態(tài),查看書籍狀態(tài)。書籍狀態(tài)有在館和外借兩種。 public class Lib{ //創(chuàng)建一個圖書類,類中包含的屬性有:書名、作者、出版社;包含的方法有:設(shè)置書籍狀態(tài),查看書籍狀態(tài)。書籍狀態(tài)有在館和外借兩種 13、。 // private String Bname; private String Aname; private String Baddress; //書籍狀態(tài) private boolean zt; //包含方法set get public void setzt(boolean zt){ this.zt=zt; } public boolean getzt(boolean zt){ return zt; } public static void main(String[] args){ } }3. 設(shè)計一個Birthda 14、y類,其成員變量有:year,month,day;提供構(gòu)造方法、輸出Birthday對象值的方法和計算年齡的方法。編寫程序測試這個類。 public class Birthday{ //設(shè)計一個Birthday類,其成員變量有:year,month,day;提供構(gòu)造方法、輸出Birthday對象值的方法和計算年齡的方法。編寫程序測試這個類。 private int year; private int month; private int day; public Birthday(int year,int month,int day){ this.year= 15、year; this.month=month; this.day=day; } public void printBirthDay(){ System.out.println(year+"-"+month+"-"+day); } public int printAge(){ return 2012-year; } public static void main(String[] args){ } }4.(選作)編寫一個學生和教師數(shù)據(jù)輸入和顯示程序,學生數(shù)據(jù)有編號、姓名、班號和成績,教師數(shù)據(jù)有編號、姓名、職稱和部門。要求將編號、姓名輸入和顯示 16、設(shè)計成一個類Person,并作為學生數(shù)據(jù)操作類Student和教師數(shù)據(jù)操作類Teacher的基類。 public class Person { //定義Person類 public int bianhao; public String name; public Person(int biaohao,String name){ this.bianhao=bianhao; this.name=name; } public void input(int bianhao,String name){ this.bianhao=bianhao; this. 17、name=name; } public void printXS(){ //定義顯示(這邊有點疑問) System.out.println(bianhao+" "+name); } public static void main(String[] args) { } } class Student extends Person{ //定義學生類 int banhao; int chengji; private Student(int bianhao,String name,int banhao,int cj){ super(b 18、ianhao,name); this.banhao=banhao; this.chengji=cj; } } class Teacher extends Person{ //定義教師類 String zhicheng; String bumen; private Teacher(int bianhao,String name,String zhicheng,String bumen){ super(bianhao,name); this.bianhao=bianhao; this.name=name; this.zhicheng=zhic 19、heng; this.bumen=bumen; } } 5.驗證書中的例題。 三、實驗要求 1. 事先預習,寫出預習報告 2. 上機后寫出實驗報告 實驗四 面向?qū)ο蟮某绦蛟O(shè)計(二) 一、實驗目的 1.熟悉類的定義 2.掌握對象的聲明、實例化及成員的引用 3.掌握構(gòu)造方法及實例方法的區(qū)別與用法 二、實驗內(nèi)容 1.編寫一個類,描述汽車,其中用字符型描述車的牌號,用浮點型描述車的價格。編寫一個測試類,其中有一個修改價格的方法,對汽車對象進行操作,根據(jù)折扣數(shù)修改汽車的價格,最后在main()方法中輸出修改后的汽車信息。 class Car{ St 20、ring chePai; float price; float price1; Car(String chePai,float price){ this.chePai=chePai; this.price1=price*4/5; this.price=price; } void dismessage(){ System.out.println("這輛車的品牌是"+chePai+"原價是"+price+"打折后為"+price1); } } public class TestCar{ public static void main(Stri 21、ng[] args){ Car c=new Car("奔馳S6OO",50000); c.dismessage(); } } 2. 設(shè)計一個銀行帳戶類,成員變量包括賬號、儲戶姓名、開戶時間、身份證號碼、存款余額等帳戶信息,成員方法包括存款、取款操作。 public class Test { public static void main(String args[]){ Bank b1 = new Bank("鹿鹿","鹿容","2012-04-30",1,0.0); b1.cun(100000.00);b1.qu(10000.00);b1.info(); 22、 } } class Bank{ private String user; private String name; private String time; private int id; private double money; Bank(String user,String name,String time,int id,double money){ this.user = user;this.name = name;this.time = time;this.id = id;this.money = money; } public void 23、 cun(double inMoney){ money = money+inMoney; } public void qu(double outMoney){ if(money-outMoney>=0){ money = money-outMoney; } } public void info(){ System.out.println("余額還有"+money); } } 3. 編寫一個java程序,設(shè)計一個汽車類Vehicle,包含的屬性有車輪的個數(shù)wheels和車重weight。小汽車類Car是Vehicle的子類,包含的屬 24、性有載人數(shù)loader??ㄜ囶怲ruck是Car類的子類,其中包含的屬性有載重量payload。每個類都有構(gòu)造方法和輸出相關(guān)數(shù)據(jù)的方法。 public class Vehicle { int wheels; double weights; Vehicle(int wheels,double weights){ //這是構(gòu)造方法 this.wheels=wheels; this.weights=weights; } void disMessage(){ System.out.println("這個車車輪個數(shù)是"+wheels+"重量是"+weights 25、+"斤"); } public static void main(String[] args){ Vehicle v=new Vehicle(8,10.00); smallCar c=new smallCar(6); Truck t=new Truck(10); v.disMessage(); c.disM(); t.disM2(); t.disM3(); } } class smallCar extends Vehicle{ int loader; smallCar(int loader){ super(8,10.00) 26、; this.loader=loader; } void disM(){ System.out.println("這個小汽車可載"+loader+"人"); } } class Truck extends smallCar{ int payload; Truck(int payload){ super(6); this.payload=payload; } void disM2(){ System.out.println("這卡車載重為"+payload+"kg"); } void disM3(){ System.ou 27、t.println("這卡車有"+wheels+"個輪子"+"車重有"+weights+"斤"+"可載"+loader+"人"+"載重為"+payload+"斤"); } } 4. 驗證書中的例題。 三、實驗要求 1.事先預習,寫出預習報告 2.上機后寫出實驗報告 53 實驗五 面向?qū)ο缶C合實驗 一、實驗目的 1.熟悉類的定義; 2.掌握對象的聲明、實例化及成員的引用; 3.掌握構(gòu)造方法及實例方法的區(qū)別與用法。 二、實驗內(nèi)容 多數(shù)用戶對去銀行辦理存款、取款等業(yè)務并不默生,用戶自然感覺到了通過計算機辦理業(yè)務的方便、快捷,也自然對編寫出銀行系統(tǒng)程序的程序員 28、發(fā)出由衷的敬意。實際上,當我們具備了面向?qū)ο缶幊痰闹R以后,我們也能編寫出相應的程序。 程序框架如下,將代碼補充完整: 2. 設(shè)計一個銀行帳戶類,成員變量包括賬號、儲戶姓名、開戶時間、身份證號碼、存款余額等帳戶信息,成員方法包括存款、取款操作。 package bank; //創(chuàng)建程序包 import java.util.*; //引入程序包 class BankCount //定義類 { int id; String name,date; float money; public BankCou 29、nt(int id,String name,String date,float money) //構(gòu)造方法 {//方法體 this.id=id; this.name=name; this.date=date; this.money=money; } } class BCOption { Vector vec=new Vector(); //對象聲明與實例化 static int count=0; //類中靜態(tài)變量的定義 public void kaihu(BankCount bc) //方法體,實現(xiàn) 30、開戶功能 //實例方法 { count++; vec.add(bc); } public void moneyOut(int id, float outmoney) //方法體,實現(xiàn)取錢功能 { BankCount bc = (BankCount)vec.get(id); bc.money -=outmoney; vec.set(id, bc); 31、 } public void moneyIn(int id, float inmoney) {//方法體,實現(xiàn)存錢功能 BankCount bc = (BankCount)vec.get(id); bc.money +=inmoney; vec.set(id, bc); } public void query(int id) {//方法體,查詢并輸出賬戶信息 Ba 32、nkCount bc = (BankCount)vec.get(id); System.out.println(bc.id+" "+bc.name+" "+bc.date+" "+bc.money); } public static void main(String args[]) {//實現(xiàn)賬戶的相關(guān)操作 BCOption bco = new BCOption(); bco.kaihu(new BankCount(1,"","",12)); 33、 bco.query(0); } } 三、實驗要求 1、根據(jù)題目要求完成程序中沒有完成的模塊。 2、寫好上機報告。 實驗六 異常處理 一、實驗目的 1.熟悉異常的拋出與捕獲的含義; 2.掌握異常捕獲與處理的方法; 3.能自定義異常。 二、實驗內(nèi)容 現(xiàn)在多數(shù)學校的成績管理都由計算機進行管理,這就需要有相應的應用程序。編寫成績管理應用程序,其中有成績錄入模塊,成績錄入過程中,難免出現(xiàn)錄入數(shù)據(jù)的類型出現(xiàn)錯誤,或錄入的成績不在合理的范圍。在成績錄入過程中,若出現(xiàn)上述錯誤,程序應該如何處理。 34、程序框架如下,將代碼補充完整: import javax.swing.JOptionPane; class 負分異常 extends Exception //當錄入了負分時。此處應用了自定義異常 { 負分異常(int i){ System.out.println("分數(shù)為負數(shù)"); } } class 高分異常 extends Exception //當錄入分超過100時。應用了自定義異常 { 高分異常(int i ){ System.out.println("分數(shù)過高"); } } public class Exce 35、ptionDemo { static final int number=2; int score[]=new int[number]; public void 檢查分數(shù)(int 分數(shù)) throws 負分異常,高分異常 //下面方法中判斷如果錄入的成績不合理,則拋出異常,但本方法并不處理異常,僅聲明了異常 { if(分數(shù) >100) throw new 高分異常(分數(shù)); //通過throw,人工拋出異常 if(分數(shù) <0) throw new 負分異常(分數(shù)); } public void 錄入成績() { int i; 36、 for(i=0;i 37、常對象,根據(jù)不同情況,進行不同處理 }catch(高分異常 e){ System.out.println(e); }catch(負分異常 e){ System.out.println(e); } } } public void 輸出成績() { System.out.println(score[0]); System.out.println(score[1]); } public static void main(String arg[]) { 38、 ExceptionDemo demo = new ExceptionDemo(); demo.錄入成績(); demo.輸出成績(); } } 三、實驗要求 1、根據(jù)題目要求完成程序中沒有完成的模塊。 2、寫好上機報告。 實驗七:圖形用戶界面設(shè)計(一) 一、 實驗目的: 1. 鞏固圖形用戶界面設(shè)計的方法 2. 掌握事件處理的設(shè)計方法 二、 實驗內(nèi)容: 1.繪制如下形式的圖形界面,要求:窗體背景為藍色,中間為黃色方格。 import java.awt.*; public class Test{ p 39、ublic static void main(String args[]){ new F(); } } class F extends Frame{ F(){ int x,y,w,h; x = 200;y = 200;w = 200;h = 200; setBounds(x,y,w,h); setBackground(Color.yellow); Panel p = new Panel(); p.setBounds(x/4,y/4,w/2,h/2); p.setBackground(Color.blue); set 40、Layout(null); add(p); setVisible(true); } } 2. 編寫程序,繪制如下格式的界面: import java.awt.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); f.setLayout(new GridLayout(2,1)); f.setBounds(300,300,300,300); Panel 41、 p1 = new Panel(new BorderLayout()); Panel p2 = new Panel(new BorderLayout()); Panel p11 = new Panel(new GridLayout(2,1)); Panel p21 = new Panel(new GridLayout(2,2)); p1.add(new Button("button"),BorderLayout.WEST); p1.add(new Button("button"),BorderLayout.EAST); p11.add(new Button( 42、"button")); p11.add(new Button("button")); p1.add(p11,BorderLayout.CENTER); p2.add(new Button("button"),BorderLayout.WEST); p2.add(new Button("button"),BorderLayout.EAST); for(int i = 0;i<4;i++){ p21.add(new Button("button")); } p2.add(p21,BorderLayout.CENTER); f.add 43、(p1);f.add(p2); f.setVisible(true); } } 3.編寫程序,創(chuàng)建如下圖所示的圖形界面(不必為組件提供功能)。 import java.awt.*; import java.awt.event.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); f.setBounds(300,300,300,300); f.se 44、tLayout(new BorderLayout()); Panel p1 = new Panel(); p1.setLayout(new GridLayout(1,0)); p1.add(new TextField()); Panel p2 = new Panel(); p2.setLayout(new GridLayout(4,4)); p2.add(new Button("7")); p2.add(new Button("8")); p2.add(new Button("9")); p2.add(new Button("/")); 45、 p2.add(new Button("4")); p2.add(new Button("5")); p2.add(new Button("6")); p2.add(new Button("*")); p2.add(new Button("1")); p2.add(new Button("2")); p2.add(new Button("3")); p2.add(new Button("-")); p2.add(new Button("0")); p2.add(new Button(".")); p2.add(new Button( 46、"=")); p2.add(new Button("+")); f.add(p1,BorderLayout.NORTH); f.add(p2,BorderLayout.CENTER); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); f.setVisible(true); } } 47、 4.驗證書中例題。 三、 實驗要求: 1. 事先預習,寫出預習報告 2. 上機驗證后寫出實驗報告 實驗八 圖形用戶界面設(shè)計(二) 一、實驗目的 1.掌握各種組件的用法; 2.掌握布局管理器的布局方式; 3.掌握事件處理機制。 二、實驗內(nèi)容 1.驗證書中例題。 2.試創(chuàng)建如下圖所示的圖形用戶界面,顏色列表框為紅色、綠色和藍色。 import java.awt.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); 48、 f.setBounds(300,300,300,300); f.setLayout(new BorderLayout()); Panel p1 = new Panel();Panel p2 = new Panel();Panel p21 = new Panel();Panel p22 = new Panel(); p1.setLayout(new GridLayout(1,0)); Choice c = new Choice(); c.add("紅色");c.add("綠色");c.add("藍色"); p1.add(c); p2.setLayo 49、ut(new GridLayout(2,1)); p21.setLayout(new FlowLayout(FlowLayout.CENTER));p22.setLayout(new FlowLayout(FlowLayout.CENTER)); p21.add(new Checkbox("背景")); p21.add(new Checkbox("前景")); p22.add(new Button("確定")); p22.add(new Button("取消")); p2.add(p21);p2.add(p22); f.add(p1,BorderLay 50、out.NORTH); f.add(p2,BorderLayout.CENTER); f.setVisible(true); } } 3.編寫程序,創(chuàng)建如下圖所示的圖形界面。(要求實現(xiàn)功能) import java.awt.*; import java.awt.event.*; public class Test extends Frame{ static TextField tf1 = new TextField(); static TextField tf2 = new TextField(); stati 51、c TextField tf3 = new TextField(); static Button b1 = new Button("求和");static Button b2 = new Button("清除"); public static void main(String args[]){ Test f = new Test(); f.setBounds(300,300,300,300); f.setLayout(new GridLayout(3,3)); f.add(new Label("加數(shù)1:")); f.add(tf1); f.a 52、dd(new Label()); tf1.getText(); f.add(new Label("加數(shù)2:")); f.add(tf2);f.add(new Label()); b1.addActionListener(new Test().new T()); b2.addActionListener(new Test().new T()); f.add(b1);f.add(tf3);f.add(b2); f.setVisible(true); } class T implements ActionListener{ pu 53、blic void actionPerformed(ActionEvent e) { // TODO 自動生成方法存根 if(e.getSource() == b1){ int a = Integer.parseInt((tf1.getText())); int b = Integer.parseInt((tf2.getText())); tf3.setText(""+(a+b)); }else if(e.getSource() == b2){ tf1.setText(""); tf2.setText(""); 54、 tf3.setText(""); } } } } 三、實驗要求 1、根據(jù)題目要求完成各程序。 2、寫好上機報告。 實驗九 圖形用戶界面設(shè)計(三) 一、實驗目的 1.掌握各種組件的用法; 2.掌握布局管理器的布局方式; 3.掌握事件處理機制。 4. 熟悉繪圖類的基本用法 5.掌握繪圖類中常用的繪圖方法 二、實驗內(nèi)容 1.驗證書中例題:P200頁 例6.5、P209頁 例6.6。 2.設(shè)計一個程序,程序執(zhí)行時,隨機產(chǎn)生一條直線、一個矩形、一個橢圓,并且每個圖形的顏色不同。(說明:可利用系統(tǒng)類Math中的靜態(tài)方法random 55、(),該方法產(chǎn)生一個0~1間的小數(shù)) import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Random; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229434935585351686L; public void lauchFFrame(){ setBounds(300,300,300 56、,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); setVisible(true); } public void paint(Graphics g){ Random r = new Random(); int i = r.nextInt(3); if(i == 0){ g.se 57、tColor(Color.BLACK); g.fillOval(50, 50, 100, 100); }else if(i == 1){ g.setColor(Color.blue); g.fillRect(50, 50, 100, 100); }else{ g.setColor(Color.CYAN); g.drawLine(50, 50, 100, 100); } } } public class Test { public static void main(String args[]){ new FFra 58、me().lauchFFrame(); } } 3.設(shè)計如下形式的窗口,并實現(xiàn)窗口的關(guān)閉功能: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229434935585351686L; public void lauchFFrame() 59、{ setBounds(300,300,300,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ int x = e.getX( 60、); int y = e.getY(); System.out.println("x:"+x+",y:"+y); } }); setVisible(true); } public void paint(Graphics g){ g.drawString("五星", 200, 200); g.drawLine(81,55,37,190); g.drawLine(37,190,159,93); g.drawLine(159,93,32,96); g.drawLine(32,96,155,188); 61、 g.drawLine(155,188,81,55); } } 4. 設(shè)計如下形式的窗口,并實現(xiàn)窗口的關(guān)閉功能: package paint; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229 62、434935585351686L; public void lauchFFrame(){ setBounds(300,300,500,400); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); addMouseListener(new MouseAdapter(){ public void mou 63、sePressed(MouseEvent e){ int x = e.getX(); int y = e.getY(); System.out.println("x:"+x+",y:"+y); } }); setVisible(true); } public void paint(Graphics g){ g.setColor(Color.BLUE); g.fillRect((500-100)/2, 80, 100, 100); g.drawOval((500-150)/2, 60, 150, 150) 64、; g.setColor(Color.RED); g.fillRect((500-300)/2,150,300,100); g.fillOval(90, 140, 20, 20); g.fillOval(390, 140, 20, 20); g.fillOval(90, 240, 20, 20); g.fillOval(390, 240, 20, 20); g.fillRect(90, 150, 10, 100); g.fillRect(400, 150, 10, 100); g.fillRect(100,140,300,10); g 65、.fillRect(100,250,300,10); g.fillOval(140, 240, 60, 60); g.fillOval(300, 240, 60, 60); g.setColor(Color.BLACK); g.drawLine(50, 300, 450, 300); } } 三、實驗要求 1、根據(jù)題目要求完成各程序。 2、寫好上機報告。 實驗十:圖形用戶界面綜合設(shè)計 一、 實驗目的: 1、 鞏固圖形用戶界面設(shè)計的方法 2、 掌握事件處 66、理的設(shè)計方法 二、 實驗內(nèi)容: 案例 學生信息注冊界面設(shè)計解析 多數(shù)學校的學生檔案信息都由計算機進行管理,在編寫的檔案管理應用程序中,有檔案信息錄入模塊,該模塊的功能是在圖形化的界面下,用戶把信息輸入到計算機中。錄入界面的大致樣式及組件名稱如圖。 圖5-1 信息錄入界面 設(shè)計上述程序界面并實現(xiàn)相應的功能,程序框架如下,補全代碼: import java.awt.*; import java.awt.event.*; public class InputData implements ActionListener { Frame f; //聲明框架對象 Label l1,l2,l3,l4; //聲明標簽對象 TextField t; //聲明文本行對象 Checkbox r1,r2; //聲明單選鈕對象 CheckboxGroup g; //聲明組對象 Checkbox c1,c2,c3; Choice ch;
7、+){ System.out.print(math[i]+" "); } } } 4. 隨機產(chǎn)生20個50~100間的整數(shù),輸出這20個數(shù)并找出最大數(shù)及最小數(shù)輸出。 public class TestMath{ public static void main(String args[]){ int math[] = new int[20]; int max = 0;int min = 100; for(int i = 0;i<20;i++){ math[i] = (int)(Math.random()*50+50); Sy
8、stem.out.print(math[i]+" "); } System.out.println(); for(int i = 0;i<20;i++){ max = max>math[i] ? max : math[i]; min = min 9、port java.util.Scanner; public class Test{ public static void main(String args[]) throws Exception{ Scanner is = new Scanner(System.in); System.out.println("請輸入長方形的寬"); int a = is.nextInt(); System.out.println("請輸入長方形的高"); int b = is.nextInt(); System.out.println("輸入1求出周長,輸入2求出面 10、積,輸入三求出周長與面積"); int c = is.nextInt(); if(c == 1){ System.out.println("周長"+(a+b)*2); }else if(c == 2){ System.out.println("面積"+a*b); }else if(c == 3){ System.out.println("周長"+(a+b)*2+",面積"+a*b); }else{ System.out.println("輸入有誤,退出"); } } } 6.驗證書中的例題。 三、試驗要求 1、預習 11、試驗內(nèi)容并寫出上機報告。 2、實驗中出現(xiàn)的問題及實驗體會。 實驗三 面向?qū)ο蟮某绦蛟O(shè)計(一) 一、實驗目的 1. 熟悉類的創(chuàng)建方法。 2. 掌握對象的聲明與創(chuàng)建。 3. 能利用面向?qū)ο蟮乃枷虢鉀Q一般問題。 二、實驗內(nèi)容 1. 以下程序能否通過編譯?上機驗證并指明錯誤原因與改正方法 Class Location{ Private int x,y; Public void Location(int a,int b) { X=a; y=b;} Public int getX(){return x;} Public int getY(){retu 12、rn y;} Public static void main(String args[]){ Location loc=new Location(12,20); System.out.println(loc.getX()); System.out.println(loc.getY()); } 2.創(chuàng)建一個圖書類,類中包含的屬性有:書名、作者、出版社;包含的方法有:設(shè)置書籍狀態(tài),查看書籍狀態(tài)。書籍狀態(tài)有在館和外借兩種。 public class Lib{ //創(chuàng)建一個圖書類,類中包含的屬性有:書名、作者、出版社;包含的方法有:設(shè)置書籍狀態(tài),查看書籍狀態(tài)。書籍狀態(tài)有在館和外借兩種 13、。 // private String Bname; private String Aname; private String Baddress; //書籍狀態(tài) private boolean zt; //包含方法set get public void setzt(boolean zt){ this.zt=zt; } public boolean getzt(boolean zt){ return zt; } public static void main(String[] args){ } }3. 設(shè)計一個Birthda 14、y類,其成員變量有:year,month,day;提供構(gòu)造方法、輸出Birthday對象值的方法和計算年齡的方法。編寫程序測試這個類。 public class Birthday{ //設(shè)計一個Birthday類,其成員變量有:year,month,day;提供構(gòu)造方法、輸出Birthday對象值的方法和計算年齡的方法。編寫程序測試這個類。 private int year; private int month; private int day; public Birthday(int year,int month,int day){ this.year= 15、year; this.month=month; this.day=day; } public void printBirthDay(){ System.out.println(year+"-"+month+"-"+day); } public int printAge(){ return 2012-year; } public static void main(String[] args){ } }4.(選作)編寫一個學生和教師數(shù)據(jù)輸入和顯示程序,學生數(shù)據(jù)有編號、姓名、班號和成績,教師數(shù)據(jù)有編號、姓名、職稱和部門。要求將編號、姓名輸入和顯示 16、設(shè)計成一個類Person,并作為學生數(shù)據(jù)操作類Student和教師數(shù)據(jù)操作類Teacher的基類。 public class Person { //定義Person類 public int bianhao; public String name; public Person(int biaohao,String name){ this.bianhao=bianhao; this.name=name; } public void input(int bianhao,String name){ this.bianhao=bianhao; this. 17、name=name; } public void printXS(){ //定義顯示(這邊有點疑問) System.out.println(bianhao+" "+name); } public static void main(String[] args) { } } class Student extends Person{ //定義學生類 int banhao; int chengji; private Student(int bianhao,String name,int banhao,int cj){ super(b 18、ianhao,name); this.banhao=banhao; this.chengji=cj; } } class Teacher extends Person{ //定義教師類 String zhicheng; String bumen; private Teacher(int bianhao,String name,String zhicheng,String bumen){ super(bianhao,name); this.bianhao=bianhao; this.name=name; this.zhicheng=zhic 19、heng; this.bumen=bumen; } } 5.驗證書中的例題。 三、實驗要求 1. 事先預習,寫出預習報告 2. 上機后寫出實驗報告 實驗四 面向?qū)ο蟮某绦蛟O(shè)計(二) 一、實驗目的 1.熟悉類的定義 2.掌握對象的聲明、實例化及成員的引用 3.掌握構(gòu)造方法及實例方法的區(qū)別與用法 二、實驗內(nèi)容 1.編寫一個類,描述汽車,其中用字符型描述車的牌號,用浮點型描述車的價格。編寫一個測試類,其中有一個修改價格的方法,對汽車對象進行操作,根據(jù)折扣數(shù)修改汽車的價格,最后在main()方法中輸出修改后的汽車信息。 class Car{ St 20、ring chePai; float price; float price1; Car(String chePai,float price){ this.chePai=chePai; this.price1=price*4/5; this.price=price; } void dismessage(){ System.out.println("這輛車的品牌是"+chePai+"原價是"+price+"打折后為"+price1); } } public class TestCar{ public static void main(Stri 21、ng[] args){ Car c=new Car("奔馳S6OO",50000); c.dismessage(); } } 2. 設(shè)計一個銀行帳戶類,成員變量包括賬號、儲戶姓名、開戶時間、身份證號碼、存款余額等帳戶信息,成員方法包括存款、取款操作。 public class Test { public static void main(String args[]){ Bank b1 = new Bank("鹿鹿","鹿容","2012-04-30",1,0.0); b1.cun(100000.00);b1.qu(10000.00);b1.info(); 22、 } } class Bank{ private String user; private String name; private String time; private int id; private double money; Bank(String user,String name,String time,int id,double money){ this.user = user;this.name = name;this.time = time;this.id = id;this.money = money; } public void 23、 cun(double inMoney){ money = money+inMoney; } public void qu(double outMoney){ if(money-outMoney>=0){ money = money-outMoney; } } public void info(){ System.out.println("余額還有"+money); } } 3. 編寫一個java程序,設(shè)計一個汽車類Vehicle,包含的屬性有車輪的個數(shù)wheels和車重weight。小汽車類Car是Vehicle的子類,包含的屬 24、性有載人數(shù)loader??ㄜ囶怲ruck是Car類的子類,其中包含的屬性有載重量payload。每個類都有構(gòu)造方法和輸出相關(guān)數(shù)據(jù)的方法。 public class Vehicle { int wheels; double weights; Vehicle(int wheels,double weights){ //這是構(gòu)造方法 this.wheels=wheels; this.weights=weights; } void disMessage(){ System.out.println("這個車車輪個數(shù)是"+wheels+"重量是"+weights 25、+"斤"); } public static void main(String[] args){ Vehicle v=new Vehicle(8,10.00); smallCar c=new smallCar(6); Truck t=new Truck(10); v.disMessage(); c.disM(); t.disM2(); t.disM3(); } } class smallCar extends Vehicle{ int loader; smallCar(int loader){ super(8,10.00) 26、; this.loader=loader; } void disM(){ System.out.println("這個小汽車可載"+loader+"人"); } } class Truck extends smallCar{ int payload; Truck(int payload){ super(6); this.payload=payload; } void disM2(){ System.out.println("這卡車載重為"+payload+"kg"); } void disM3(){ System.ou 27、t.println("這卡車有"+wheels+"個輪子"+"車重有"+weights+"斤"+"可載"+loader+"人"+"載重為"+payload+"斤"); } } 4. 驗證書中的例題。 三、實驗要求 1.事先預習,寫出預習報告 2.上機后寫出實驗報告 53 實驗五 面向?qū)ο缶C合實驗 一、實驗目的 1.熟悉類的定義; 2.掌握對象的聲明、實例化及成員的引用; 3.掌握構(gòu)造方法及實例方法的區(qū)別與用法。 二、實驗內(nèi)容 多數(shù)用戶對去銀行辦理存款、取款等業(yè)務并不默生,用戶自然感覺到了通過計算機辦理業(yè)務的方便、快捷,也自然對編寫出銀行系統(tǒng)程序的程序員 28、發(fā)出由衷的敬意。實際上,當我們具備了面向?qū)ο缶幊痰闹R以后,我們也能編寫出相應的程序。 程序框架如下,將代碼補充完整: 2. 設(shè)計一個銀行帳戶類,成員變量包括賬號、儲戶姓名、開戶時間、身份證號碼、存款余額等帳戶信息,成員方法包括存款、取款操作。 package bank; //創(chuàng)建程序包 import java.util.*; //引入程序包 class BankCount //定義類 { int id; String name,date; float money; public BankCou 29、nt(int id,String name,String date,float money) //構(gòu)造方法 {//方法體 this.id=id; this.name=name; this.date=date; this.money=money; } } class BCOption { Vector vec=new Vector(); //對象聲明與實例化 static int count=0; //類中靜態(tài)變量的定義 public void kaihu(BankCount bc) //方法體,實現(xiàn) 30、開戶功能 //實例方法 { count++; vec.add(bc); } public void moneyOut(int id, float outmoney) //方法體,實現(xiàn)取錢功能 { BankCount bc = (BankCount)vec.get(id); bc.money -=outmoney; vec.set(id, bc); 31、 } public void moneyIn(int id, float inmoney) {//方法體,實現(xiàn)存錢功能 BankCount bc = (BankCount)vec.get(id); bc.money +=inmoney; vec.set(id, bc); } public void query(int id) {//方法體,查詢并輸出賬戶信息 Ba 32、nkCount bc = (BankCount)vec.get(id); System.out.println(bc.id+" "+bc.name+" "+bc.date+" "+bc.money); } public static void main(String args[]) {//實現(xiàn)賬戶的相關(guān)操作 BCOption bco = new BCOption(); bco.kaihu(new BankCount(1,"","",12)); 33、 bco.query(0); } } 三、實驗要求 1、根據(jù)題目要求完成程序中沒有完成的模塊。 2、寫好上機報告。 實驗六 異常處理 一、實驗目的 1.熟悉異常的拋出與捕獲的含義; 2.掌握異常捕獲與處理的方法; 3.能自定義異常。 二、實驗內(nèi)容 現(xiàn)在多數(shù)學校的成績管理都由計算機進行管理,這就需要有相應的應用程序。編寫成績管理應用程序,其中有成績錄入模塊,成績錄入過程中,難免出現(xiàn)錄入數(shù)據(jù)的類型出現(xiàn)錯誤,或錄入的成績不在合理的范圍。在成績錄入過程中,若出現(xiàn)上述錯誤,程序應該如何處理。 34、程序框架如下,將代碼補充完整: import javax.swing.JOptionPane; class 負分異常 extends Exception //當錄入了負分時。此處應用了自定義異常 { 負分異常(int i){ System.out.println("分數(shù)為負數(shù)"); } } class 高分異常 extends Exception //當錄入分超過100時。應用了自定義異常 { 高分異常(int i ){ System.out.println("分數(shù)過高"); } } public class Exce 35、ptionDemo { static final int number=2; int score[]=new int[number]; public void 檢查分數(shù)(int 分數(shù)) throws 負分異常,高分異常 //下面方法中判斷如果錄入的成績不合理,則拋出異常,但本方法并不處理異常,僅聲明了異常 { if(分數(shù) >100) throw new 高分異常(分數(shù)); //通過throw,人工拋出異常 if(分數(shù) <0) throw new 負分異常(分數(shù)); } public void 錄入成績() { int i; 36、 for(i=0;i 37、常對象,根據(jù)不同情況,進行不同處理 }catch(高分異常 e){ System.out.println(e); }catch(負分異常 e){ System.out.println(e); } } } public void 輸出成績() { System.out.println(score[0]); System.out.println(score[1]); } public static void main(String arg[]) { 38、 ExceptionDemo demo = new ExceptionDemo(); demo.錄入成績(); demo.輸出成績(); } } 三、實驗要求 1、根據(jù)題目要求完成程序中沒有完成的模塊。 2、寫好上機報告。 實驗七:圖形用戶界面設(shè)計(一) 一、 實驗目的: 1. 鞏固圖形用戶界面設(shè)計的方法 2. 掌握事件處理的設(shè)計方法 二、 實驗內(nèi)容: 1.繪制如下形式的圖形界面,要求:窗體背景為藍色,中間為黃色方格。 import java.awt.*; public class Test{ p 39、ublic static void main(String args[]){ new F(); } } class F extends Frame{ F(){ int x,y,w,h; x = 200;y = 200;w = 200;h = 200; setBounds(x,y,w,h); setBackground(Color.yellow); Panel p = new Panel(); p.setBounds(x/4,y/4,w/2,h/2); p.setBackground(Color.blue); set 40、Layout(null); add(p); setVisible(true); } } 2. 編寫程序,繪制如下格式的界面: import java.awt.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); f.setLayout(new GridLayout(2,1)); f.setBounds(300,300,300,300); Panel 41、 p1 = new Panel(new BorderLayout()); Panel p2 = new Panel(new BorderLayout()); Panel p11 = new Panel(new GridLayout(2,1)); Panel p21 = new Panel(new GridLayout(2,2)); p1.add(new Button("button"),BorderLayout.WEST); p1.add(new Button("button"),BorderLayout.EAST); p11.add(new Button( 42、"button")); p11.add(new Button("button")); p1.add(p11,BorderLayout.CENTER); p2.add(new Button("button"),BorderLayout.WEST); p2.add(new Button("button"),BorderLayout.EAST); for(int i = 0;i<4;i++){ p21.add(new Button("button")); } p2.add(p21,BorderLayout.CENTER); f.add 43、(p1);f.add(p2); f.setVisible(true); } } 3.編寫程序,創(chuàng)建如下圖所示的圖形界面(不必為組件提供功能)。 import java.awt.*; import java.awt.event.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); f.setBounds(300,300,300,300); f.se 44、tLayout(new BorderLayout()); Panel p1 = new Panel(); p1.setLayout(new GridLayout(1,0)); p1.add(new TextField()); Panel p2 = new Panel(); p2.setLayout(new GridLayout(4,4)); p2.add(new Button("7")); p2.add(new Button("8")); p2.add(new Button("9")); p2.add(new Button("/")); 45、 p2.add(new Button("4")); p2.add(new Button("5")); p2.add(new Button("6")); p2.add(new Button("*")); p2.add(new Button("1")); p2.add(new Button("2")); p2.add(new Button("3")); p2.add(new Button("-")); p2.add(new Button("0")); p2.add(new Button(".")); p2.add(new Button( 46、"=")); p2.add(new Button("+")); f.add(p1,BorderLayout.NORTH); f.add(p2,BorderLayout.CENTER); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); f.setVisible(true); } } 47、 4.驗證書中例題。 三、 實驗要求: 1. 事先預習,寫出預習報告 2. 上機驗證后寫出實驗報告 實驗八 圖形用戶界面設(shè)計(二) 一、實驗目的 1.掌握各種組件的用法; 2.掌握布局管理器的布局方式; 3.掌握事件處理機制。 二、實驗內(nèi)容 1.驗證書中例題。 2.試創(chuàng)建如下圖所示的圖形用戶界面,顏色列表框為紅色、綠色和藍色。 import java.awt.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); 48、 f.setBounds(300,300,300,300); f.setLayout(new BorderLayout()); Panel p1 = new Panel();Panel p2 = new Panel();Panel p21 = new Panel();Panel p22 = new Panel(); p1.setLayout(new GridLayout(1,0)); Choice c = new Choice(); c.add("紅色");c.add("綠色");c.add("藍色"); p1.add(c); p2.setLayo 49、ut(new GridLayout(2,1)); p21.setLayout(new FlowLayout(FlowLayout.CENTER));p22.setLayout(new FlowLayout(FlowLayout.CENTER)); p21.add(new Checkbox("背景")); p21.add(new Checkbox("前景")); p22.add(new Button("確定")); p22.add(new Button("取消")); p2.add(p21);p2.add(p22); f.add(p1,BorderLay 50、out.NORTH); f.add(p2,BorderLayout.CENTER); f.setVisible(true); } } 3.編寫程序,創(chuàng)建如下圖所示的圖形界面。(要求實現(xiàn)功能) import java.awt.*; import java.awt.event.*; public class Test extends Frame{ static TextField tf1 = new TextField(); static TextField tf2 = new TextField(); stati 51、c TextField tf3 = new TextField(); static Button b1 = new Button("求和");static Button b2 = new Button("清除"); public static void main(String args[]){ Test f = new Test(); f.setBounds(300,300,300,300); f.setLayout(new GridLayout(3,3)); f.add(new Label("加數(shù)1:")); f.add(tf1); f.a 52、dd(new Label()); tf1.getText(); f.add(new Label("加數(shù)2:")); f.add(tf2);f.add(new Label()); b1.addActionListener(new Test().new T()); b2.addActionListener(new Test().new T()); f.add(b1);f.add(tf3);f.add(b2); f.setVisible(true); } class T implements ActionListener{ pu 53、blic void actionPerformed(ActionEvent e) { // TODO 自動生成方法存根 if(e.getSource() == b1){ int a = Integer.parseInt((tf1.getText())); int b = Integer.parseInt((tf2.getText())); tf3.setText(""+(a+b)); }else if(e.getSource() == b2){ tf1.setText(""); tf2.setText(""); 54、 tf3.setText(""); } } } } 三、實驗要求 1、根據(jù)題目要求完成各程序。 2、寫好上機報告。 實驗九 圖形用戶界面設(shè)計(三) 一、實驗目的 1.掌握各種組件的用法; 2.掌握布局管理器的布局方式; 3.掌握事件處理機制。 4. 熟悉繪圖類的基本用法 5.掌握繪圖類中常用的繪圖方法 二、實驗內(nèi)容 1.驗證書中例題:P200頁 例6.5、P209頁 例6.6。 2.設(shè)計一個程序,程序執(zhí)行時,隨機產(chǎn)生一條直線、一個矩形、一個橢圓,并且每個圖形的顏色不同。(說明:可利用系統(tǒng)類Math中的靜態(tài)方法random 55、(),該方法產(chǎn)生一個0~1間的小數(shù)) import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Random; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229434935585351686L; public void lauchFFrame(){ setBounds(300,300,300 56、,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); setVisible(true); } public void paint(Graphics g){ Random r = new Random(); int i = r.nextInt(3); if(i == 0){ g.se 57、tColor(Color.BLACK); g.fillOval(50, 50, 100, 100); }else if(i == 1){ g.setColor(Color.blue); g.fillRect(50, 50, 100, 100); }else{ g.setColor(Color.CYAN); g.drawLine(50, 50, 100, 100); } } } public class Test { public static void main(String args[]){ new FFra 58、me().lauchFFrame(); } } 3.設(shè)計如下形式的窗口,并實現(xiàn)窗口的關(guān)閉功能: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229434935585351686L; public void lauchFFrame() 59、{ setBounds(300,300,300,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ int x = e.getX( 60、); int y = e.getY(); System.out.println("x:"+x+",y:"+y); } }); setVisible(true); } public void paint(Graphics g){ g.drawString("五星", 200, 200); g.drawLine(81,55,37,190); g.drawLine(37,190,159,93); g.drawLine(159,93,32,96); g.drawLine(32,96,155,188); 61、 g.drawLine(155,188,81,55); } } 4. 設(shè)計如下形式的窗口,并實現(xiàn)窗口的關(guān)閉功能: package paint; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229 62、434935585351686L; public void lauchFFrame(){ setBounds(300,300,500,400); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); addMouseListener(new MouseAdapter(){ public void mou 63、sePressed(MouseEvent e){ int x = e.getX(); int y = e.getY(); System.out.println("x:"+x+",y:"+y); } }); setVisible(true); } public void paint(Graphics g){ g.setColor(Color.BLUE); g.fillRect((500-100)/2, 80, 100, 100); g.drawOval((500-150)/2, 60, 150, 150) 64、; g.setColor(Color.RED); g.fillRect((500-300)/2,150,300,100); g.fillOval(90, 140, 20, 20); g.fillOval(390, 140, 20, 20); g.fillOval(90, 240, 20, 20); g.fillOval(390, 240, 20, 20); g.fillRect(90, 150, 10, 100); g.fillRect(400, 150, 10, 100); g.fillRect(100,140,300,10); g 65、.fillRect(100,250,300,10); g.fillOval(140, 240, 60, 60); g.fillOval(300, 240, 60, 60); g.setColor(Color.BLACK); g.drawLine(50, 300, 450, 300); } } 三、實驗要求 1、根據(jù)題目要求完成各程序。 2、寫好上機報告。 實驗十:圖形用戶界面綜合設(shè)計 一、 實驗目的: 1、 鞏固圖形用戶界面設(shè)計的方法 2、 掌握事件處 66、理的設(shè)計方法 二、 實驗內(nèi)容: 案例 學生信息注冊界面設(shè)計解析 多數(shù)學校的學生檔案信息都由計算機進行管理,在編寫的檔案管理應用程序中,有檔案信息錄入模塊,該模塊的功能是在圖形化的界面下,用戶把信息輸入到計算機中。錄入界面的大致樣式及組件名稱如圖。 圖5-1 信息錄入界面 設(shè)計上述程序界面并實現(xiàn)相應的功能,程序框架如下,補全代碼: import java.awt.*; import java.awt.event.*; public class InputData implements ActionListener { Frame f; //聲明框架對象 Label l1,l2,l3,l4; //聲明標簽對象 TextField t; //聲明文本行對象 Checkbox r1,r2; //聲明單選鈕對象 CheckboxGroup g; //聲明組對象 Checkbox c1,c2,c3; Choice ch;
9、port java.util.Scanner; public class Test{ public static void main(String args[]) throws Exception{ Scanner is = new Scanner(System.in); System.out.println("請輸入長方形的寬"); int a = is.nextInt(); System.out.println("請輸入長方形的高"); int b = is.nextInt(); System.out.println("輸入1求出周長,輸入2求出面
10、積,輸入三求出周長與面積"); int c = is.nextInt(); if(c == 1){ System.out.println("周長"+(a+b)*2); }else if(c == 2){ System.out.println("面積"+a*b); }else if(c == 3){ System.out.println("周長"+(a+b)*2+",面積"+a*b); }else{ System.out.println("輸入有誤,退出"); } } } 6.驗證書中的例題。 三、試驗要求 1、預習
11、試驗內(nèi)容并寫出上機報告。 2、實驗中出現(xiàn)的問題及實驗體會。 實驗三 面向?qū)ο蟮某绦蛟O(shè)計(一) 一、實驗目的 1. 熟悉類的創(chuàng)建方法。 2. 掌握對象的聲明與創(chuàng)建。 3. 能利用面向?qū)ο蟮乃枷虢鉀Q一般問題。 二、實驗內(nèi)容 1. 以下程序能否通過編譯?上機驗證并指明錯誤原因與改正方法 Class Location{ Private int x,y; Public void Location(int a,int b) { X=a; y=b;} Public int getX(){return x;} Public int getY(){retu
12、rn y;} Public static void main(String args[]){ Location loc=new Location(12,20); System.out.println(loc.getX()); System.out.println(loc.getY()); } 2.創(chuàng)建一個圖書類,類中包含的屬性有:書名、作者、出版社;包含的方法有:設(shè)置書籍狀態(tài),查看書籍狀態(tài)。書籍狀態(tài)有在館和外借兩種。 public class Lib{ //創(chuàng)建一個圖書類,類中包含的屬性有:書名、作者、出版社;包含的方法有:設(shè)置書籍狀態(tài),查看書籍狀態(tài)。書籍狀態(tài)有在館和外借兩種
13、。 // private String Bname; private String Aname; private String Baddress; //書籍狀態(tài) private boolean zt; //包含方法set get public void setzt(boolean zt){ this.zt=zt; } public boolean getzt(boolean zt){ return zt; } public static void main(String[] args){ } }3. 設(shè)計一個Birthda
14、y類,其成員變量有:year,month,day;提供構(gòu)造方法、輸出Birthday對象值的方法和計算年齡的方法。編寫程序測試這個類。 public class Birthday{ //設(shè)計一個Birthday類,其成員變量有:year,month,day;提供構(gòu)造方法、輸出Birthday對象值的方法和計算年齡的方法。編寫程序測試這個類。 private int year; private int month; private int day; public Birthday(int year,int month,int day){ this.year=
15、year; this.month=month; this.day=day; } public void printBirthDay(){ System.out.println(year+"-"+month+"-"+day); } public int printAge(){ return 2012-year; } public static void main(String[] args){ } }4.(選作)編寫一個學生和教師數(shù)據(jù)輸入和顯示程序,學生數(shù)據(jù)有編號、姓名、班號和成績,教師數(shù)據(jù)有編號、姓名、職稱和部門。要求將編號、姓名輸入和顯示
16、設(shè)計成一個類Person,并作為學生數(shù)據(jù)操作類Student和教師數(shù)據(jù)操作類Teacher的基類。 public class Person { //定義Person類 public int bianhao; public String name; public Person(int biaohao,String name){ this.bianhao=bianhao; this.name=name; } public void input(int bianhao,String name){ this.bianhao=bianhao; this.
17、name=name; } public void printXS(){ //定義顯示(這邊有點疑問) System.out.println(bianhao+" "+name); } public static void main(String[] args) { } } class Student extends Person{ //定義學生類 int banhao; int chengji; private Student(int bianhao,String name,int banhao,int cj){ super(b
18、ianhao,name); this.banhao=banhao; this.chengji=cj; } } class Teacher extends Person{ //定義教師類 String zhicheng; String bumen; private Teacher(int bianhao,String name,String zhicheng,String bumen){ super(bianhao,name); this.bianhao=bianhao; this.name=name; this.zhicheng=zhic
19、heng; this.bumen=bumen; } } 5.驗證書中的例題。 三、實驗要求 1. 事先預習,寫出預習報告 2. 上機后寫出實驗報告 實驗四 面向?qū)ο蟮某绦蛟O(shè)計(二) 一、實驗目的 1.熟悉類的定義 2.掌握對象的聲明、實例化及成員的引用 3.掌握構(gòu)造方法及實例方法的區(qū)別與用法 二、實驗內(nèi)容 1.編寫一個類,描述汽車,其中用字符型描述車的牌號,用浮點型描述車的價格。編寫一個測試類,其中有一個修改價格的方法,對汽車對象進行操作,根據(jù)折扣數(shù)修改汽車的價格,最后在main()方法中輸出修改后的汽車信息。 class Car{ St
20、ring chePai; float price; float price1; Car(String chePai,float price){ this.chePai=chePai; this.price1=price*4/5; this.price=price; } void dismessage(){ System.out.println("這輛車的品牌是"+chePai+"原價是"+price+"打折后為"+price1); } } public class TestCar{ public static void main(Stri
21、ng[] args){ Car c=new Car("奔馳S6OO",50000); c.dismessage(); } } 2. 設(shè)計一個銀行帳戶類,成員變量包括賬號、儲戶姓名、開戶時間、身份證號碼、存款余額等帳戶信息,成員方法包括存款、取款操作。 public class Test { public static void main(String args[]){ Bank b1 = new Bank("鹿鹿","鹿容","2012-04-30",1,0.0); b1.cun(100000.00);b1.qu(10000.00);b1.info();
22、 } } class Bank{ private String user; private String name; private String time; private int id; private double money; Bank(String user,String name,String time,int id,double money){ this.user = user;this.name = name;this.time = time;this.id = id;this.money = money; } public void
23、 cun(double inMoney){ money = money+inMoney; } public void qu(double outMoney){ if(money-outMoney>=0){ money = money-outMoney; } } public void info(){ System.out.println("余額還有"+money); } } 3. 編寫一個java程序,設(shè)計一個汽車類Vehicle,包含的屬性有車輪的個數(shù)wheels和車重weight。小汽車類Car是Vehicle的子類,包含的屬
24、性有載人數(shù)loader??ㄜ囶怲ruck是Car類的子類,其中包含的屬性有載重量payload。每個類都有構(gòu)造方法和輸出相關(guān)數(shù)據(jù)的方法。 public class Vehicle { int wheels; double weights; Vehicle(int wheels,double weights){ //這是構(gòu)造方法 this.wheels=wheels; this.weights=weights; } void disMessage(){ System.out.println("這個車車輪個數(shù)是"+wheels+"重量是"+weights
25、+"斤"); } public static void main(String[] args){ Vehicle v=new Vehicle(8,10.00); smallCar c=new smallCar(6); Truck t=new Truck(10); v.disMessage(); c.disM(); t.disM2(); t.disM3(); } } class smallCar extends Vehicle{ int loader; smallCar(int loader){ super(8,10.00)
26、; this.loader=loader; } void disM(){ System.out.println("這個小汽車可載"+loader+"人"); } } class Truck extends smallCar{ int payload; Truck(int payload){ super(6); this.payload=payload; } void disM2(){ System.out.println("這卡車載重為"+payload+"kg"); } void disM3(){ System.ou
27、t.println("這卡車有"+wheels+"個輪子"+"車重有"+weights+"斤"+"可載"+loader+"人"+"載重為"+payload+"斤"); } } 4. 驗證書中的例題。 三、實驗要求 1.事先預習,寫出預習報告 2.上機后寫出實驗報告 53 實驗五 面向?qū)ο缶C合實驗 一、實驗目的 1.熟悉類的定義; 2.掌握對象的聲明、實例化及成員的引用; 3.掌握構(gòu)造方法及實例方法的區(qū)別與用法。 二、實驗內(nèi)容 多數(shù)用戶對去銀行辦理存款、取款等業(yè)務并不默生,用戶自然感覺到了通過計算機辦理業(yè)務的方便、快捷,也自然對編寫出銀行系統(tǒng)程序的程序員
28、發(fā)出由衷的敬意。實際上,當我們具備了面向?qū)ο缶幊痰闹R以后,我們也能編寫出相應的程序。 程序框架如下,將代碼補充完整: 2. 設(shè)計一個銀行帳戶類,成員變量包括賬號、儲戶姓名、開戶時間、身份證號碼、存款余額等帳戶信息,成員方法包括存款、取款操作。 package bank; //創(chuàng)建程序包 import java.util.*; //引入程序包 class BankCount //定義類 { int id; String name,date; float money; public BankCou
29、nt(int id,String name,String date,float money) //構(gòu)造方法 {//方法體 this.id=id; this.name=name; this.date=date; this.money=money; } } class BCOption { Vector vec=new Vector(); //對象聲明與實例化 static int count=0; //類中靜態(tài)變量的定義 public void kaihu(BankCount bc) //方法體,實現(xiàn)
30、開戶功能 //實例方法 { count++; vec.add(bc); } public void moneyOut(int id, float outmoney) //方法體,實現(xiàn)取錢功能 { BankCount bc = (BankCount)vec.get(id); bc.money -=outmoney; vec.set(id, bc);
31、 } public void moneyIn(int id, float inmoney) {//方法體,實現(xiàn)存錢功能 BankCount bc = (BankCount)vec.get(id); bc.money +=inmoney; vec.set(id, bc); } public void query(int id) {//方法體,查詢并輸出賬戶信息 Ba
32、nkCount bc = (BankCount)vec.get(id); System.out.println(bc.id+" "+bc.name+" "+bc.date+" "+bc.money); } public static void main(String args[]) {//實現(xiàn)賬戶的相關(guān)操作 BCOption bco = new BCOption(); bco.kaihu(new BankCount(1,"","",12));
33、 bco.query(0); } } 三、實驗要求 1、根據(jù)題目要求完成程序中沒有完成的模塊。 2、寫好上機報告。 實驗六 異常處理 一、實驗目的 1.熟悉異常的拋出與捕獲的含義; 2.掌握異常捕獲與處理的方法; 3.能自定義異常。 二、實驗內(nèi)容 現(xiàn)在多數(shù)學校的成績管理都由計算機進行管理,這就需要有相應的應用程序。編寫成績管理應用程序,其中有成績錄入模塊,成績錄入過程中,難免出現(xiàn)錄入數(shù)據(jù)的類型出現(xiàn)錯誤,或錄入的成績不在合理的范圍。在成績錄入過程中,若出現(xiàn)上述錯誤,程序應該如何處理。
34、程序框架如下,將代碼補充完整: import javax.swing.JOptionPane; class 負分異常 extends Exception //當錄入了負分時。此處應用了自定義異常 { 負分異常(int i){ System.out.println("分數(shù)為負數(shù)"); } } class 高分異常 extends Exception //當錄入分超過100時。應用了自定義異常 { 高分異常(int i ){ System.out.println("分數(shù)過高"); } } public class Exce
35、ptionDemo { static final int number=2; int score[]=new int[number]; public void 檢查分數(shù)(int 分數(shù)) throws 負分異常,高分異常 //下面方法中判斷如果錄入的成績不合理,則拋出異常,但本方法并不處理異常,僅聲明了異常 { if(分數(shù) >100) throw new 高分異常(分數(shù)); //通過throw,人工拋出異常 if(分數(shù) <0) throw new 負分異常(分數(shù)); } public void 錄入成績() { int i;
36、 for(i=0;i 37、常對象,根據(jù)不同情況,進行不同處理 }catch(高分異常 e){ System.out.println(e); }catch(負分異常 e){ System.out.println(e); } } } public void 輸出成績() { System.out.println(score[0]); System.out.println(score[1]); } public static void main(String arg[]) { 38、 ExceptionDemo demo = new ExceptionDemo(); demo.錄入成績(); demo.輸出成績(); } } 三、實驗要求 1、根據(jù)題目要求完成程序中沒有完成的模塊。 2、寫好上機報告。 實驗七:圖形用戶界面設(shè)計(一) 一、 實驗目的: 1. 鞏固圖形用戶界面設(shè)計的方法 2. 掌握事件處理的設(shè)計方法 二、 實驗內(nèi)容: 1.繪制如下形式的圖形界面,要求:窗體背景為藍色,中間為黃色方格。 import java.awt.*; public class Test{ p 39、ublic static void main(String args[]){ new F(); } } class F extends Frame{ F(){ int x,y,w,h; x = 200;y = 200;w = 200;h = 200; setBounds(x,y,w,h); setBackground(Color.yellow); Panel p = new Panel(); p.setBounds(x/4,y/4,w/2,h/2); p.setBackground(Color.blue); set 40、Layout(null); add(p); setVisible(true); } } 2. 編寫程序,繪制如下格式的界面: import java.awt.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); f.setLayout(new GridLayout(2,1)); f.setBounds(300,300,300,300); Panel 41、 p1 = new Panel(new BorderLayout()); Panel p2 = new Panel(new BorderLayout()); Panel p11 = new Panel(new GridLayout(2,1)); Panel p21 = new Panel(new GridLayout(2,2)); p1.add(new Button("button"),BorderLayout.WEST); p1.add(new Button("button"),BorderLayout.EAST); p11.add(new Button( 42、"button")); p11.add(new Button("button")); p1.add(p11,BorderLayout.CENTER); p2.add(new Button("button"),BorderLayout.WEST); p2.add(new Button("button"),BorderLayout.EAST); for(int i = 0;i<4;i++){ p21.add(new Button("button")); } p2.add(p21,BorderLayout.CENTER); f.add 43、(p1);f.add(p2); f.setVisible(true); } } 3.編寫程序,創(chuàng)建如下圖所示的圖形界面(不必為組件提供功能)。 import java.awt.*; import java.awt.event.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); f.setBounds(300,300,300,300); f.se 44、tLayout(new BorderLayout()); Panel p1 = new Panel(); p1.setLayout(new GridLayout(1,0)); p1.add(new TextField()); Panel p2 = new Panel(); p2.setLayout(new GridLayout(4,4)); p2.add(new Button("7")); p2.add(new Button("8")); p2.add(new Button("9")); p2.add(new Button("/")); 45、 p2.add(new Button("4")); p2.add(new Button("5")); p2.add(new Button("6")); p2.add(new Button("*")); p2.add(new Button("1")); p2.add(new Button("2")); p2.add(new Button("3")); p2.add(new Button("-")); p2.add(new Button("0")); p2.add(new Button(".")); p2.add(new Button( 46、"=")); p2.add(new Button("+")); f.add(p1,BorderLayout.NORTH); f.add(p2,BorderLayout.CENTER); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); f.setVisible(true); } } 47、 4.驗證書中例題。 三、 實驗要求: 1. 事先預習,寫出預習報告 2. 上機驗證后寫出實驗報告 實驗八 圖形用戶界面設(shè)計(二) 一、實驗目的 1.掌握各種組件的用法; 2.掌握布局管理器的布局方式; 3.掌握事件處理機制。 二、實驗內(nèi)容 1.驗證書中例題。 2.試創(chuàng)建如下圖所示的圖形用戶界面,顏色列表框為紅色、綠色和藍色。 import java.awt.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); 48、 f.setBounds(300,300,300,300); f.setLayout(new BorderLayout()); Panel p1 = new Panel();Panel p2 = new Panel();Panel p21 = new Panel();Panel p22 = new Panel(); p1.setLayout(new GridLayout(1,0)); Choice c = new Choice(); c.add("紅色");c.add("綠色");c.add("藍色"); p1.add(c); p2.setLayo 49、ut(new GridLayout(2,1)); p21.setLayout(new FlowLayout(FlowLayout.CENTER));p22.setLayout(new FlowLayout(FlowLayout.CENTER)); p21.add(new Checkbox("背景")); p21.add(new Checkbox("前景")); p22.add(new Button("確定")); p22.add(new Button("取消")); p2.add(p21);p2.add(p22); f.add(p1,BorderLay 50、out.NORTH); f.add(p2,BorderLayout.CENTER); f.setVisible(true); } } 3.編寫程序,創(chuàng)建如下圖所示的圖形界面。(要求實現(xiàn)功能) import java.awt.*; import java.awt.event.*; public class Test extends Frame{ static TextField tf1 = new TextField(); static TextField tf2 = new TextField(); stati 51、c TextField tf3 = new TextField(); static Button b1 = new Button("求和");static Button b2 = new Button("清除"); public static void main(String args[]){ Test f = new Test(); f.setBounds(300,300,300,300); f.setLayout(new GridLayout(3,3)); f.add(new Label("加數(shù)1:")); f.add(tf1); f.a 52、dd(new Label()); tf1.getText(); f.add(new Label("加數(shù)2:")); f.add(tf2);f.add(new Label()); b1.addActionListener(new Test().new T()); b2.addActionListener(new Test().new T()); f.add(b1);f.add(tf3);f.add(b2); f.setVisible(true); } class T implements ActionListener{ pu 53、blic void actionPerformed(ActionEvent e) { // TODO 自動生成方法存根 if(e.getSource() == b1){ int a = Integer.parseInt((tf1.getText())); int b = Integer.parseInt((tf2.getText())); tf3.setText(""+(a+b)); }else if(e.getSource() == b2){ tf1.setText(""); tf2.setText(""); 54、 tf3.setText(""); } } } } 三、實驗要求 1、根據(jù)題目要求完成各程序。 2、寫好上機報告。 實驗九 圖形用戶界面設(shè)計(三) 一、實驗目的 1.掌握各種組件的用法; 2.掌握布局管理器的布局方式; 3.掌握事件處理機制。 4. 熟悉繪圖類的基本用法 5.掌握繪圖類中常用的繪圖方法 二、實驗內(nèi)容 1.驗證書中例題:P200頁 例6.5、P209頁 例6.6。 2.設(shè)計一個程序,程序執(zhí)行時,隨機產(chǎn)生一條直線、一個矩形、一個橢圓,并且每個圖形的顏色不同。(說明:可利用系統(tǒng)類Math中的靜態(tài)方法random 55、(),該方法產(chǎn)生一個0~1間的小數(shù)) import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Random; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229434935585351686L; public void lauchFFrame(){ setBounds(300,300,300 56、,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); setVisible(true); } public void paint(Graphics g){ Random r = new Random(); int i = r.nextInt(3); if(i == 0){ g.se 57、tColor(Color.BLACK); g.fillOval(50, 50, 100, 100); }else if(i == 1){ g.setColor(Color.blue); g.fillRect(50, 50, 100, 100); }else{ g.setColor(Color.CYAN); g.drawLine(50, 50, 100, 100); } } } public class Test { public static void main(String args[]){ new FFra 58、me().lauchFFrame(); } } 3.設(shè)計如下形式的窗口,并實現(xiàn)窗口的關(guān)閉功能: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229434935585351686L; public void lauchFFrame() 59、{ setBounds(300,300,300,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ int x = e.getX( 60、); int y = e.getY(); System.out.println("x:"+x+",y:"+y); } }); setVisible(true); } public void paint(Graphics g){ g.drawString("五星", 200, 200); g.drawLine(81,55,37,190); g.drawLine(37,190,159,93); g.drawLine(159,93,32,96); g.drawLine(32,96,155,188); 61、 g.drawLine(155,188,81,55); } } 4. 設(shè)計如下形式的窗口,并實現(xiàn)窗口的關(guān)閉功能: package paint; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229 62、434935585351686L; public void lauchFFrame(){ setBounds(300,300,500,400); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); addMouseListener(new MouseAdapter(){ public void mou 63、sePressed(MouseEvent e){ int x = e.getX(); int y = e.getY(); System.out.println("x:"+x+",y:"+y); } }); setVisible(true); } public void paint(Graphics g){ g.setColor(Color.BLUE); g.fillRect((500-100)/2, 80, 100, 100); g.drawOval((500-150)/2, 60, 150, 150) 64、; g.setColor(Color.RED); g.fillRect((500-300)/2,150,300,100); g.fillOval(90, 140, 20, 20); g.fillOval(390, 140, 20, 20); g.fillOval(90, 240, 20, 20); g.fillOval(390, 240, 20, 20); g.fillRect(90, 150, 10, 100); g.fillRect(400, 150, 10, 100); g.fillRect(100,140,300,10); g 65、.fillRect(100,250,300,10); g.fillOval(140, 240, 60, 60); g.fillOval(300, 240, 60, 60); g.setColor(Color.BLACK); g.drawLine(50, 300, 450, 300); } } 三、實驗要求 1、根據(jù)題目要求完成各程序。 2、寫好上機報告。 實驗十:圖形用戶界面綜合設(shè)計 一、 實驗目的: 1、 鞏固圖形用戶界面設(shè)計的方法 2、 掌握事件處 66、理的設(shè)計方法 二、 實驗內(nèi)容: 案例 學生信息注冊界面設(shè)計解析 多數(shù)學校的學生檔案信息都由計算機進行管理,在編寫的檔案管理應用程序中,有檔案信息錄入模塊,該模塊的功能是在圖形化的界面下,用戶把信息輸入到計算機中。錄入界面的大致樣式及組件名稱如圖。 圖5-1 信息錄入界面 設(shè)計上述程序界面并實現(xiàn)相應的功能,程序框架如下,補全代碼: import java.awt.*; import java.awt.event.*; public class InputData implements ActionListener { Frame f; //聲明框架對象 Label l1,l2,l3,l4; //聲明標簽對象 TextField t; //聲明文本行對象 Checkbox r1,r2; //聲明單選鈕對象 CheckboxGroup g; //聲明組對象 Checkbox c1,c2,c3; Choice ch;
37、常對象,根據(jù)不同情況,進行不同處理 }catch(高分異常 e){ System.out.println(e); }catch(負分異常 e){ System.out.println(e); } } } public void 輸出成績() { System.out.println(score[0]); System.out.println(score[1]); } public static void main(String arg[]) {
38、 ExceptionDemo demo = new ExceptionDemo(); demo.錄入成績(); demo.輸出成績(); } } 三、實驗要求 1、根據(jù)題目要求完成程序中沒有完成的模塊。 2、寫好上機報告。 實驗七:圖形用戶界面設(shè)計(一) 一、 實驗目的: 1. 鞏固圖形用戶界面設(shè)計的方法 2. 掌握事件處理的設(shè)計方法 二、 實驗內(nèi)容: 1.繪制如下形式的圖形界面,要求:窗體背景為藍色,中間為黃色方格。 import java.awt.*; public class Test{ p
39、ublic static void main(String args[]){ new F(); } } class F extends Frame{ F(){ int x,y,w,h; x = 200;y = 200;w = 200;h = 200; setBounds(x,y,w,h); setBackground(Color.yellow); Panel p = new Panel(); p.setBounds(x/4,y/4,w/2,h/2); p.setBackground(Color.blue); set
40、Layout(null); add(p); setVisible(true); } } 2. 編寫程序,繪制如下格式的界面: import java.awt.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); f.setLayout(new GridLayout(2,1)); f.setBounds(300,300,300,300); Panel
41、 p1 = new Panel(new BorderLayout()); Panel p2 = new Panel(new BorderLayout()); Panel p11 = new Panel(new GridLayout(2,1)); Panel p21 = new Panel(new GridLayout(2,2)); p1.add(new Button("button"),BorderLayout.WEST); p1.add(new Button("button"),BorderLayout.EAST); p11.add(new Button(
42、"button")); p11.add(new Button("button")); p1.add(p11,BorderLayout.CENTER); p2.add(new Button("button"),BorderLayout.WEST); p2.add(new Button("button"),BorderLayout.EAST); for(int i = 0;i<4;i++){ p21.add(new Button("button")); } p2.add(p21,BorderLayout.CENTER); f.add
43、(p1);f.add(p2); f.setVisible(true); } } 3.編寫程序,創(chuàng)建如下圖所示的圖形界面(不必為組件提供功能)。 import java.awt.*; import java.awt.event.*; public class Test{ public static void main(String args[]){ Frame f = new Frame(); f.setBounds(300,300,300,300); f.se
44、tLayout(new BorderLayout()); Panel p1 = new Panel(); p1.setLayout(new GridLayout(1,0)); p1.add(new TextField()); Panel p2 = new Panel(); p2.setLayout(new GridLayout(4,4)); p2.add(new Button("7")); p2.add(new Button("8")); p2.add(new Button("9")); p2.add(new Button("/"));
45、 p2.add(new Button("4")); p2.add(new Button("5")); p2.add(new Button("6")); p2.add(new Button("*")); p2.add(new Button("1")); p2.add(new Button("2")); p2.add(new Button("3")); p2.add(new Button("-")); p2.add(new Button("0")); p2.add(new Button(".")); p2.add(new Button(
46、"=")); p2.add(new Button("+")); f.add(p1,BorderLayout.NORTH); f.add(p2,BorderLayout.CENTER); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); f.setVisible(true); } }
47、 4.驗證書中例題。 三、 實驗要求: 1. 事先預習,寫出預習報告 2. 上機驗證后寫出實驗報告 實驗八 圖形用戶界面設(shè)計(二) 一、實驗目的 1.掌握各種組件的用法; 2.掌握布局管理器的布局方式; 3.掌握事件處理機制。 二、實驗內(nèi)容 1.驗證書中例題。 2.試創(chuàng)建如下圖所示的圖形用戶界面,顏色列表框為紅色、綠色和藍色。 import java.awt.*; public class Test{ public static void main(String args[]){ Frame f = new Frame();
48、 f.setBounds(300,300,300,300); f.setLayout(new BorderLayout()); Panel p1 = new Panel();Panel p2 = new Panel();Panel p21 = new Panel();Panel p22 = new Panel(); p1.setLayout(new GridLayout(1,0)); Choice c = new Choice(); c.add("紅色");c.add("綠色");c.add("藍色"); p1.add(c); p2.setLayo
49、ut(new GridLayout(2,1)); p21.setLayout(new FlowLayout(FlowLayout.CENTER));p22.setLayout(new FlowLayout(FlowLayout.CENTER)); p21.add(new Checkbox("背景")); p21.add(new Checkbox("前景")); p22.add(new Button("確定")); p22.add(new Button("取消")); p2.add(p21);p2.add(p22); f.add(p1,BorderLay
50、out.NORTH); f.add(p2,BorderLayout.CENTER); f.setVisible(true); } } 3.編寫程序,創(chuàng)建如下圖所示的圖形界面。(要求實現(xiàn)功能) import java.awt.*; import java.awt.event.*; public class Test extends Frame{ static TextField tf1 = new TextField(); static TextField tf2 = new TextField(); stati
51、c TextField tf3 = new TextField(); static Button b1 = new Button("求和");static Button b2 = new Button("清除"); public static void main(String args[]){ Test f = new Test(); f.setBounds(300,300,300,300); f.setLayout(new GridLayout(3,3)); f.add(new Label("加數(shù)1:")); f.add(tf1); f.a
52、dd(new Label()); tf1.getText(); f.add(new Label("加數(shù)2:")); f.add(tf2);f.add(new Label()); b1.addActionListener(new Test().new T()); b2.addActionListener(new Test().new T()); f.add(b1);f.add(tf3);f.add(b2); f.setVisible(true); } class T implements ActionListener{ pu
53、blic void actionPerformed(ActionEvent e) { // TODO 自動生成方法存根 if(e.getSource() == b1){ int a = Integer.parseInt((tf1.getText())); int b = Integer.parseInt((tf2.getText())); tf3.setText(""+(a+b)); }else if(e.getSource() == b2){ tf1.setText(""); tf2.setText("");
54、 tf3.setText(""); } } } } 三、實驗要求 1、根據(jù)題目要求完成各程序。 2、寫好上機報告。 實驗九 圖形用戶界面設(shè)計(三) 一、實驗目的 1.掌握各種組件的用法; 2.掌握布局管理器的布局方式; 3.掌握事件處理機制。 4. 熟悉繪圖類的基本用法 5.掌握繪圖類中常用的繪圖方法 二、實驗內(nèi)容 1.驗證書中例題:P200頁 例6.5、P209頁 例6.6。 2.設(shè)計一個程序,程序執(zhí)行時,隨機產(chǎn)生一條直線、一個矩形、一個橢圓,并且每個圖形的顏色不同。(說明:可利用系統(tǒng)類Math中的靜態(tài)方法random
55、(),該方法產(chǎn)生一個0~1間的小數(shù)) import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Random; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229434935585351686L; public void lauchFFrame(){ setBounds(300,300,300
56、,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); setVisible(true); } public void paint(Graphics g){ Random r = new Random(); int i = r.nextInt(3); if(i == 0){ g.se
57、tColor(Color.BLACK); g.fillOval(50, 50, 100, 100); }else if(i == 1){ g.setColor(Color.blue); g.fillRect(50, 50, 100, 100); }else{ g.setColor(Color.CYAN); g.drawLine(50, 50, 100, 100); } } } public class Test { public static void main(String args[]){ new FFra
58、me().lauchFFrame(); } } 3.設(shè)計如下形式的窗口,并實現(xiàn)窗口的關(guān)閉功能: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229434935585351686L; public void lauchFFrame()
59、{ setBounds(300,300,300,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ int x = e.getX(
60、); int y = e.getY(); System.out.println("x:"+x+",y:"+y); } }); setVisible(true); } public void paint(Graphics g){ g.drawString("五星", 200, 200); g.drawLine(81,55,37,190); g.drawLine(37,190,159,93); g.drawLine(159,93,32,96); g.drawLine(32,96,155,188);
61、 g.drawLine(155,188,81,55); } } 4. 設(shè)計如下形式的窗口,并實現(xiàn)窗口的關(guān)閉功能: package paint; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FFrame extends JFrame{ /** * */ private static final long serialVersionUID = -3229
62、434935585351686L; public void lauchFFrame(){ setBounds(300,300,500,400); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); System.exit(0); } }); addMouseListener(new MouseAdapter(){ public void mou
63、sePressed(MouseEvent e){ int x = e.getX(); int y = e.getY(); System.out.println("x:"+x+",y:"+y); } }); setVisible(true); } public void paint(Graphics g){ g.setColor(Color.BLUE); g.fillRect((500-100)/2, 80, 100, 100); g.drawOval((500-150)/2, 60, 150, 150)
64、; g.setColor(Color.RED); g.fillRect((500-300)/2,150,300,100); g.fillOval(90, 140, 20, 20); g.fillOval(390, 140, 20, 20); g.fillOval(90, 240, 20, 20); g.fillOval(390, 240, 20, 20); g.fillRect(90, 150, 10, 100); g.fillRect(400, 150, 10, 100); g.fillRect(100,140,300,10); g
65、.fillRect(100,250,300,10); g.fillOval(140, 240, 60, 60); g.fillOval(300, 240, 60, 60); g.setColor(Color.BLACK); g.drawLine(50, 300, 450, 300); } } 三、實驗要求 1、根據(jù)題目要求完成各程序。 2、寫好上機報告。 實驗十:圖形用戶界面綜合設(shè)計 一、 實驗目的: 1、 鞏固圖形用戶界面設(shè)計的方法 2、 掌握事件處
66、理的設(shè)計方法 二、 實驗內(nèi)容: 案例 學生信息注冊界面設(shè)計解析 多數(shù)學校的學生檔案信息都由計算機進行管理,在編寫的檔案管理應用程序中,有檔案信息錄入模塊,該模塊的功能是在圖形化的界面下,用戶把信息輸入到計算機中。錄入界面的大致樣式及組件名稱如圖。 圖5-1 信息錄入界面 設(shè)計上述程序界面并實現(xiàn)相應的功能,程序框架如下,補全代碼: import java.awt.*; import java.awt.event.*; public class InputData implements ActionListener { Frame f; //聲明框架對象 Label l1,l2,l3,l4; //聲明標簽對象 TextField t; //聲明文本行對象 Checkbox r1,r2; //聲明單選鈕對象 CheckboxGroup g; //聲明組對象 Checkbox c1,c2,c3; Choice ch;
copyright@ 2023-2025 zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有 聯(lián)系電話:18123376007
備案號:蜀ICP備2024067431號-1 川公網(wǎng)安備51140202000466號
本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!