Java程序設(shè)計項目教程(第二版)答案_第1頁
Java程序設(shè)計項目教程(第二版)答案_第2頁
Java程序設(shè)計項目教程(第二版)答案_第3頁
Java程序設(shè)計項目教程(第二版)答案_第4頁
Java程序設(shè)計項目教程(第二版)答案_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Java程序設(shè)計項目教程(第二版)-參考答案

項目1

一、思考題

1.Java程序有幾種版本,分別是什么?

Java有三種版本,分別是J2ME、J2SE、J2EE

2.Java程序有何特點?

Java語言的特點如下:

①面向?qū)ο螅褐С执a繼承及重用,是完全面向?qū)ο蟮?,它不支持類似C

語言那樣的面向過程的程序設(shè)“技術(shù)。

②解釋執(zhí)行:Java解釋器(運行系統(tǒng))能直接運行目標(biāo)代碼指令。

③平臺無關(guān):Java源程序被編譯成一種高層次的與機器無關(guān)的Byte-codes

格式語言,被設(shè)計在Java虛擬機上運行。

④多線程:Java提供的多線程功能使得在一個程序里可同時執(zhí)行多個小任

務(wù)。多線程帶來的好處是可以有更好的交互性能和實時控制性能。

⑤健壯性:Java致力于檢查程序在編譯和運行時的錯誤,類型檢查幫助檢

查出許多開發(fā)早期出現(xiàn)的錯誤。

3.什么是JVM,為什么需要JVM?

JVM即Javn虛擬機,是一臺可以存在于不同的真實的軟、硬件環(huán)境下的虛

擬的計算機,其功能是將字節(jié)碼解釋為真實平臺能執(zhí)行的指令。Java正是通過

虛擬機JVM技術(shù),實現(xiàn)了與平臺無關(guān),實現(xiàn)“編寫一次,到處運行”。因此,

任何平臺只要安裝相應(yīng)的Java虛擬機環(huán)境,就能運行Java程序。

4.如何理解Java程序的基本結(jié)構(gòu)?

①語句packagepl;是建立一個包(文件夾),生成的類文件將存放于包

中。

②程序第一行publicclass類名{},是一個類定義語句。public關(guān)鍵字

指明類的訪問方式為公有,也就是在整個程序內(nèi)都可以訪問到它。如果將類定

義為public,則類其名稱必須與主文件名一致,并且大小寫敏感。

③類后大括號內(nèi)可以定義類的成員和方法,對于一個可執(zhí)行的Java類,

main方法是必需的,而且該main方法必須是公有(public)、靜態(tài)(static)

和沒有返回值(void)的,同時它只能帶一個字符串型(String口)的參數(shù)。

④程序的一行“〃……”是注釋,只說明不運行。

⑤每個命令語句結(jié)束,必須以“;”結(jié)尾。

二、編程

1.編寫一Java應(yīng)用程序,要求在屏幕上輸出字符串“HappyNewYear!”。

classPracl

{

publicstaticvoidmain(Stringargs[])

(

System.out.printIn("HappyNewYear!");

)

)

2.編寫一個簡單的Java程序,在屏幕上輸出如下圖形:

*

***

51c51c51c5jc

classPrac2

(

publicstaticvoidmain(Stringargs[])

{

System.out.printlnC"*");

System,out.println(,z***");

System,out.printing*****");

)

項目2

一、選擇題

1.數(shù)組中可以包含什么類型的元素?(D)

A.int型B.String型C.數(shù)組D.以上都

可以

2.Java中定義數(shù)組名為Arr,下面哪項可以得到數(shù)組元素的個數(shù)?(B)

A.Arr.length()B.Arr.lengthC.Arr(xyz)D.Arr

(xyz)

3.下面哪條語句定義了3個元素的數(shù)組?(A)

A.int[]a={20,30,40};

B.inta[]=newint(3);

C.int[3]array;

D.int[]arr;

4.下面的代碼段中,執(zhí)行之后i和j的值是(B)。

inti=10;

intj;

j=i++;

A.10,10B.11,10C.10,11D.11,11

二、編程

1.試編寫一個程序,輸入三條邊長值,并判斷這三條邊長能不能構(gòu)成三角

形,如果能,能構(gòu)成什么樣的三角形(一般、等邊、等腰)C

importjava.util.*;

classPracticel{

publicstaticvoidmain(Stringargs[])

Scanners=newScanner(System,in);

inta,b,c;

a=s.nextlnt();

b=s.nextlnt();

c=s.nextlnt();

if(a+b>c&&a+c>b&&b+c>a)

if(a==b&&a==c)

System.out.print("構(gòu)成的三角形為等邊三角形。〃);

elseif(a==b||a==c||b==c)

System.out.print(〃構(gòu)成的三角形為等腰三角形?!?;

else

System.out.print(〃構(gòu)成的三角形為一般三角形?!?;

)

else

System.out.print(〃不能構(gòu)成三角形?!?;

)

)

2.試編寫一個程序,讀入10個學(xué)生的成績,成績在0?59分為D,成績在

60?79分為C,成績在80?89分為B,成績在90?100分為A,并輸出A、B、C、

D的人數(shù)個數(shù)。

importjava.util.

puhlinclassPractICP2{

publicstaticvoidmain(Stringargs[])throwslOException

(

inta=10,al=0,a2=0,a3=0,a4=0,c;

intnuma[]=newint[a];

for(inti=0;i<a;i++){

System.out.print(〃請輸入第〃+(i+l)+〃個人的成績〃);

c=getInputData();

while(c<0||c>100)

{

System.out.print("請重新輸入第"+(i+l)+”個學(xué)生的成績〃);

c=getInputData();

)

nunia[i]=c;〃保存

System,out.printIn(nunia[i]);

switch(numa[i]/10)(

case10:

System.out.printin「成績?yōu)锳級!”);

al++;

break;

case9:

System.out.printing成績?yōu)锳級!”);

al++;

break;

case8:

System.out.printing成績?yōu)锽級!”);

a2++;

break;

case7:

System,out.printin「成績?yōu)镃級!〃);

a3++;

break;

case6:

System,out.printing成績?yōu)镃級!〃);

a3++;

break;

default:

System,out.prinlln(“成績?yōu)镈級!〃);

a4++;

break;

System,out.printin(*90-100分的人數(shù)=〃+al);

System,out.printIn(?,80-89分的人數(shù)=〃+a2);

System,out.printIn(〃60-79分的人數(shù)=〃+a3);

System.out.printIn(z,0-59分的人數(shù)=〃+a4);

}

publicstaticintgetlnputDataOthrowslOExccption

Scanners=newScanner(System,in);

intn=s.nextlnt();

returnn;

3.試編寫一個程序,輸出以下形式的圖形。

classPractice3

(

publicstaticvoidmain(Stringargs口)

(

for(inti=l:i<=4:i++)

{

for(intj=l;j〈=i;j++)

System,out.print(*");

for(intk=l;k<=5;k++)

System.out.print("*");

System,out.printlnO;

)

)

}

4.試編寫游戲程序,完成猜數(shù)字游戲,數(shù)字是由計算機隨機產(chǎn)生的100以

內(nèi)整數(shù)。一次就猜中得100分,2次才猜中得90分,依次類推,超過10次無分。

程序最后輸出參與者得分。

importjava.util.*;

classPractice4

(

publicstaticvoidmain(Stringargs[])

(

inta=(int)(Math,random。*⑼;

intguess,score=100;

Scanners=newScanner(System,in);

inti:

for(i=l;i<=10;i++)

(

guess=s.nextlnt();

if(guess==a)

break;

score=score-10;

)

System.out.print(i+”得分為:*+score);

)

}

項目3

一、選擇題

1.定義類頭(非內(nèi)部類)時,不可能用到的關(guān)鍵字是(B)

A)classB)privateC)extendsD)public

2.下列類頭定義中,錯誤的是(A)

A)publicxextendsy{...}B)publicclassxextendsy

{...)

C)classxextendsyimplementsyl{...}D)classx{...}

3.設(shè)A為已定義的類名,下列聲明A類的對象a的語句中正確的是(D)

A)floatAa;B)publicAa=A();

C)Aa=newint();D)staticAa=newA();

4.設(shè)X、Y均為已定義的類名,下列聲明類X的對象xl的語句中正確的

是(C)

A)publicXxl=newY();B)Xxl=X();

C)Xxl=newX();D)intXxl;

5.設(shè)X、Y為已定義的類名,下列聲明X類的對象xl的語句中正確的是

(A)

A)staticXxl;B)publicXxl=newX(int

123);

C)Yxl;D)Xxl=X();

6.有一個類A,以下為其構(gòu)造方法的聲明,其中正確的是(A)

A)publicA(intx){...}B)staticA(intx){...}

C)publica(intx){...}D)voidA(intx){...}

7.有一個類Student,以下為其構(gòu)造方法的聲明,其中正確的是(B)

A)voidStudent(intx){...}B)Student(intx){...}

C)s(intx){...}D)voids(intx){...}

8.下列選項中,用于定義接口的關(guān)鍵字是(A)

A)interfaceB)implementsC)abstractD)class

9.現(xiàn)有類A和接口B,以下描述中表示類A實現(xiàn)接口B的語句是(A)

A)classAimplementsBB)classBimplementsA

C)classAextendsBD)classBextendsA

二、填空題

1.如果子類中的某個變量的變量名與它的父類中的某個變量完全一樣,則

稱子類中的這個變量了父類的同名變量。

2.如果子類中的某個方法的名字、返回值類型和參數(shù)列表與它的父

類中的某個方法完全一樣,則稱子類中的這個方法覆蓋了父類的同名方法。

3.抽象方法只有方法頭,沒有方法體一。

4.接口中所有屬性均為pu為ic、static和final

的。

5.一個類如果實現(xiàn)一個接口,那么它就必須實現(xiàn)接口中定義的所有方法,

否則該類就必須定義成的。

6.lava語言中用于表示類間繼承的關(guān)鍵字是extends。

7.下面是一個類的定義,請將其補充完整。

classStudent

(

Stringname;

intage;

Student(Strings,inti)

(

name=s;

age=i;

)

)

8.下面是一個類的定義,請將其補充完整。

class______A

{Strings;

staticinta=666;

A(Stringsi)

(

s二si;

)

staticintgeta()

returna;

三、編程題

1.編寫一個類,描述學(xué)生的學(xué)號、姓名、成績。學(xué)號用整型,成績用浮點

型,姓名用String類型。編寫一個測試類,輸入學(xué)生的學(xué)號、姓名、成績,并

顯示該學(xué)號的學(xué)生姓名,以及成績。

importjava.util.*;

classStudent{

intsNum;

Stringname;

doublescore;

|

classTl_Student{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System,in);

Students=newStudent();

s.sNum=sc.nextlnt();

s.name;sc.next();

s.score=sc.nextDoubleO;

System,out.println(s.name+”的學(xué)號是"+s.sNum+"成績是"+s.score);

)

)

2.設(shè)il^一個Birthday類,其成員變量有:year,month,day:提供構(gòu)造方

法、輸出Birthday對象值的方法和計算年齡的方法。編寫程序測試這個類。

classBirthday{

privateintyear;

privateintmonth;

privateintday;

publicBirthday(intyear,intmonth,intday)

{this.year=year;

this.month=month;

this.day=day;

)

publicvoidprintBirthDay()

{System.out.println(year+"-"+month+"-"+day);

)

publicintprintAge()

{return2021-year,}

publicstaticvoidmain(String[]args)

(

Birthdaybirth=newBirthday(1991,11,5);

birth.printBirthDay();

intage=birth.printAgeO;

System,out.printIn(age);

)

)

3.編寫一個類,描述汽車,其中用字符型描述車的牌號,用浮點型描述車

的價格。編寫一個測試類,其中有一個修改價格方法,對汽車對象進(jìn)行操作,

根據(jù)折扣數(shù)修改汽車的價格,最后在main方法中輸出修改過后的汽車信息。

publicclassChangeCar{

publicstaticvoidmain(StringE]args){

Carc=newCar();

c.carNum=〃魯Allll";

c.price=10;

System,out.printin("beforechange,thecar'snumandprice

is:〃+c.carNum+,z,+c.price);

changePrice(c);

System,out.printIn(z,AfterChange,thecar'sprice

is:〃+c.price);

}

publicstaticvoidchangePrice(Carc){

c.price=c.price*。.8;

classCar{

StringcarNum;

doubleprice;

}

4.編寫一個Java應(yīng)用程序,設(shè)計一個汽車類Vehicle,包含的屬性有車輪

個數(shù)wheels和車重weighu小車類Car是Vehicle的子類,其中包含的屬性

有載人數(shù)loader??ㄜ囶怲ruck是Car類的子類,其中包含的屬性有載重量

payloado每個類都有構(gòu)造方法和輸出相關(guān)數(shù)據(jù)的方法。

classVehicle

(

intwheels;

floatweight;

Vehicle(inta,floatb)

(

wheels=a;

weight=b;

voidoutDataO

System,out.print("Thevehicle,s

data:wheels:〃+whecls+〃,weight:z/+weight);

)

}

classCarextendsVehicle

(

intloader;

Car(inta,floatb,intc)

(

super(a,b);

loader=c;

)

voidoutDataO

(

super.outDataO;

System,out.printloader:?z+loader);

)

)

classTruckextendsCar

(

floatpayload;

Truck(inta,floatb,intc,floatd)

super(a,b,c);

payload'd;

)

voidoutDataO

(

super.outDataO;

System,out.printIn(z/,payload:,,+payload);

)

)

classTest

(

publicstaticvoidmain(Stringargs[])

(

Vehiclev=newVehicle(4,7);

v.outDataO;

System,out.printlnO;

Carc=newCar(4,6,4);

c.outDataO;

System.out.printlnO;

Truckt=newTruck(4,2,10,8);

t.outDataO;

}

5.定義一個接口CanFly,描述會飛的方法publicvoidfly();分別定義

類飛機和鳥,實現(xiàn)CanFly接口。定義一個測試類,測試飛機和鳥,在main方

法中創(chuàng)建飛機對象和鳥對象,讓飛機和鳥起飛。

interfaceCanFly

{

publicvoidfly();

}

classPlaneimplementsCanFly

(

publicvoidfly()

(

System.out.printin(〃飛機需借助螺旋槳飛上了天空?!?;

}

}

classBirdimplementsCanFly

{

publicvoidfly()

(

System.out.printin("鳥需借助翅膀飛上了天空?!?;

}

}

classTest

publicstaticvoidmain(Stringargs[])

(

Planep=newPlane();

Birdb=newBird();

p.fly();

b.fly();

項目4

一、選擇題

1.關(guān)于異常的定義,下列描述中最正確的一個是(D)。

A)程序編譯錯誤B)程序語法錯誤

C)程序自定義的異常事件D)程序編譯或運行時發(fā)生的異常事件

2.拋出異常時,應(yīng)該使用的子句是(A)。

A)throwB)catchC)finallyD)throws

3.自定義異常類時,可以繼承的類是(C)。

A)ErrorB)AppletC)Exception及其子類D)

AssertionError

4.當(dāng)方法產(chǎn)生異常但卻無法確定該如何處理時,應(yīng)采用的方法是(C)。

A)聲明異常B)捕獲異常C)拋出異常D)自定義異常

5.對于try{…}catch子句的排列方式,正確的一項是(A)。

A)子類異常在前,父類異常在后B)父類異常在前,子類異常在后

C)只能有子類異常D)父類異常與子類異常不能同時出

現(xiàn)

6.下列關(guān)于try、catch和finally的表述,錯誤的是(C)。

A)by語句塊后必須緊跟catch語句塊B)catch語句塊必須緊跟在

語句塊后

C)可以有try但無catchD)可以有try但無finally

7.下列描述中,錯誤的一項是(A)。

A)一個程序拋出異常,其他任何運行中的程序都可以捕獲

B)算術(shù)溢出需要進(jìn)行異常處理

C)在方法中檢測到錯誤但不知如何處理時,方法就聲明異常

D)任何沒有被程序捕獲的異常最終被默認(rèn)處理程序處理

8.下面程序運行時,會產(chǎn)生的異常是(C)o

classTest(

publicstaticvoidmain(Stringar[])

{intx=0,y=20,z;

z=(x+y)/(x*y);

System.out.println[〃z="+z);

)

}

A)ArrayIndexOutOfBoundsExceptionB)NumberFomatException

C)ArithMeticExceptionD)NulIPointerException

二、填空題

1.一個try代碼段后必須跟catch代碼段,finally代碼

段可以沒有。

2.自定義異常類必須繼承Exception類或其子類。

3.異常處理機制可以允許根據(jù)具體的情況選擇在何處處理異常,可以在當(dāng)

前方法中捕獲并處理,也可以用throws子句把它交給調(diào)用方法

去處理。

4.數(shù)組下標(biāo)越界對應(yīng)的類是__ArrayIndexOutOfBoundsException_____

5.為達(dá)到高效運行的要求,一運行時產(chǎn)生—的異常,可以直接交函嬴

虛擬機系統(tǒng)來處理,而Exception類派生出的非運行異常,要求編寫程序捕

獲或者聲明。

三、編程題

1.從鍵盤輸入5個數(shù),求出5個數(shù)的階乘之和。若輸入負(fù)數(shù)時,產(chǎn)生異常

并進(jìn)行相應(yīng)的處理。

importjavax.swing.*;

classExceptionExam

publicstaticvoidmain(Stringargs[])

inti,sum=0,j;

for(i=0;i<5;i++)

j=l;

int

x=Integer.parselnt(JOptionPane.showInputDialog(null,“input:'));

try

(

if(x<0)thrownewException();

for(intk=l;k<=x;k++)

sum=sum+j;

}catch(Exceptione)

{

System.out.printin("輸入了一個負(fù)數(shù),請重新輸入!〃);

i—;

)

)

System.out.println]”階乘和為:〃+sum);

)

)

2.設(shè)計自己的異常類,從鍵盤輸入一個數(shù),若輸入的數(shù)不小于0,則輸出它

的平方根。若小于0,則輸出提示信息“輸入錯誤”。(求平方根的方法

為:Math,sqrt(intx))

importjavax.swing.*;

classMyExceptionextendsException

(

staticinti=3;

MyException()

(

super(〃產(chǎn)生異常!〃);

)

)

classExceptionTest

(

publicstaticvoidmain(Stringargs[])

(

int

x=lnteger.parselnt(JOptionPane.showInputDialog(null,“input:〃));

try

(

if(x<0)thrownowMyException();

System,out.printin(〃輸入數(shù)的平方根為:〃+Math.sqrt(x));

}catch(MyExceptione)

System,out.println(e.getMessage());

System.out.printin(〃異常編號為:〃+e.i);

)

)

項目5

一、選擇題

1.下面屬于容器類的是(A)

A.JFrameB.JTextFieldC.ColorD.JMenu

2.FlowLayout的布局策略是(A)

A.按添加的順序由左至右將組件排列在容器中。

B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。

C.將窗口劃分成五部分,在這五個區(qū)域中添加組件。

D.組件相互疊加排列在容器中。

3.BorderLayout的布局策略是(C)

A.按添加的順序由左至右將組件排列在容器中。

B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。

C.將窗口劃分成五部分,在這五個區(qū)域中添加組件。

D.組件相互疊加排列在容器中。

4.GridLayout的布局策略是(B)

A.按添加的順序由左至右將組件排列在容器中。

B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。

C.將窗口劃分成五部分,在這五個區(qū)域中添加組件。

D.組件相互疊加排列在容器中。

5.JFrame中內(nèi)容窗格缺省的布局管理器是(B)

A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout

6.監(jiān)聽事件和處理事件(B)

A.都由Listener完成B.都由相應(yīng)事件Listener處注冊的構(gòu)

件完成

C.由Listener和構(gòu)件分別完成D.由Listener和窗口分別完成

7.在下列事件處理機制中不是機制中的角色的是(A)

A.事件B.事件源C.事件接口D.事件處

理者

8.addActionListcner(this)方法中的this參數(shù)表示的意思是(B)

A.當(dāng)有事件發(fā)生時,應(yīng)該使用this監(jiān)聽器B.this對象類會處理

此事件

C.this事件優(yōu)先于其他事件D.只是一種形式

9,下列關(guān)于Component的方法中,錯誤的是(A)

A.getName()用于獲得組件的名字B.getSize()用于獲得組件

的大小

C.setColor()用于設(shè)置前景顏色D.setVisible()設(shè)置組

件是否可見

10.當(dāng)窗口關(guān)閉時,會觸發(fā)的事件是(C)

A.ContainerEventB.ItemEventC.WindowEvent

D.MouseEvent

二、填空題

1.AWT的用戶界面組件庫被更穩(wěn)定、通用、靈活的庫取代,該庫稱為—

swingo

2.布局管理器用于安排容器上的GUI組件。

3.設(shè)置容器布局管理器的方法是setLayoutO。

4.當(dāng)釋放鼠標(biāo)按鍵時,將產(chǎn)生_mouseRelease事件。

5.Java為那些聲明了多個方法的Listener接口提供了一個對應(yīng)的適配

翟_,在該類中實現(xiàn)了對應(yīng)接口的所有方法。

6.ActionEvcnt事件的監(jiān)聽接口是ActionListcner,注冊方法名是_

addActionListener(),事件處理方法名是publicvoid

actionperformed。。

7.圖形用戶界面通過事件響應(yīng)用戶和程序的交互,產(chǎn)生事件的組

件稱為事件源°

8.Java的Swing包中定義菜單的類是JMenu。

三、編程題

1.設(shè)計如圖所示樣式的圖形用戶界面(不要求實現(xiàn)功能)。

I當(dāng)前時間:p一時四分眄"秒

I鬧鐘時間:I-時I―分I-秒

鬧鐘設(shè)置四三1

importjavax.swing.*;

classDemo

publicDemo()

JLabelbl=newJLabcl("當(dāng)前時間:“);

JLabelb2=newJLabel("時”);

JLabelb3=newJLabel("分”);

JLabelb4=newJLabel("秒”);

JLabelb5=newJLabel("鬧鐘時間:");

JLabelb6=newJLabel("時”);

JLabelb7=newJLabel(〃分”);

JLabelb8=newJLabel(〃秒〃);

JLabelb9=newJLabel("鬧鐘設(shè)置”);

JTextFieldtl=newJTextField(*8*,3);

JTextFieldt2=newJTextField(*57*?3);

JTextFieldt3=newJTextField("59”,3);

JTextFieldt4=newJTextField(3);

JTextFieldt5=newJTextField(3);

JTextFieldt6=newJTextField(3);

JButtonbtl=ncwJ3utton("開");

JButtonbt2=newJ3utton("關(guān)");

JFramewin=newJFrame0;

win.setLayout(newFlowLayout());

win.add(bl)

win.add(tl)

win.add(b2)

win.add(t2)

win.add(b3)

win.add(t3)

win.add(b4)

win.add(b5)

win.add(t4)

win.add(b6)

win.add(t5)

win.add(b7)

win.add(t6)

win.add(b8)

win.add(b9)

win.add(btl);

win.add(bt2);

win.setSize(340,160);

win.setVisible(trje);

)

publicstaticvoidmain(Stringarg[])

newDemo();

)

}

2.編寫一個將華氏溫度轉(zhuǎn)換為攝氏溫度的程序。其中一個文本框輸入華氏

溫度,另一個文本框顯示轉(zhuǎn)換后的攝氏溫度,一個按鈕完成溫度的轉(zhuǎn)換。使用

下面的公式進(jìn)行溫度轉(zhuǎn)換:攝氏溫度=5/9X(華氏溫度-32)。

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classDemoimplementsActionListener

{JLabelbl,b2;

TJextFieldtl,t2;

publicDemo()

{

bl=newJLabel("華氏溫度:〃);

b2=newJLabel("攝氏溫度:”);

tl=newJ(6);

t2=newJTextField(6);

JButtonbtl=newJ3utton("轉(zhuǎn)換”);

JFramewin=newJFrame0;

win.setLayout(newFlowLayout());

win.add(bl);

win.add(tl);

win.add(b2);

win.add(t2);

win.add(btl);

btl.addActionListener(this);

win.setSize(160,120);

win.setVisible(trje);

)

publicvoidactionPerformed(ActionEvente)

(

t2.setTextC*+5.0/9*(Float.parseFloat(tl.getText())-32));

}

publicstaticvoidmain(Stringarg[])

(

newDemo();

)

)

3.設(shè)計一個界面如圖。當(dāng)點擊“確認(rèn)”按鈕后,使“開始考試”按鈕可用,

并使“學(xué)號”、“姓名”后的文本框及“確認(rèn)”按鈕不可用。點擊“開始考試”

按鈕后,使“下一題”按鈕可用,同時設(shè)置“開始考試”按鈕不可用。

:C/S考試系統(tǒng)□0?

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classTestPanelextendsJPanelimplementsActionListener

(

JButtonstartButton;

JLabeltimeLabel;

JTextAreaquestionArea;

JRadioButtonradicButton[]=newJRadioButton[5];〃五個單選按鈕,

目的是設(shè)置前四個答案選項都不選中,而第五個選項選中,但第五個按鈕設(shè)置為不可見

ButtonGroupbuttonGroup=newButtonGroupO;

JButtonanswerButton;

JButtonquestionButton;

JButtonscoreButton;

publicTestPanel()

(

setLayout(newBorderLayout());

JPanelnorthPanel=newJPanel();

northPanel.setLayout(newGridLayout(2,1));

startButton=newJButton("開始考試");

startButton.addActionListener(this);

timeLabel=newJLabel("考試剩余時間”);

northPanel.add(startButton);

northPanel.add(timeLabel);

add(northPanel,BorderLayout.NORTH);

questionArea=newJTextArea(30,10);

questionArea.setLineWrap(true);

questionArea.setWrapStyleWord(true);

questionArea.setFont(newFont("幼圓”,Font.PLAIN,16));

intvScroll=ScrolIPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

inthScroll=ScrolIPaneConstants.HORIZONTAL_SCROLLBAR_NEVER;

add(new

JScrollPane(questionArea,vScroll,hScrol1),BorderLayout.CENTER);

JPanelsouthPanel=newJPanel();

JPanelradioPanel=newJPanel();〃放5個單選按鈕的面板

String=

for(inti=0;i<radioButton.length;i++)

radioButton[i]=newJRadioButton(s[i],false);

buttonGroup.add(radioButton[i]);

radioPanel.add(radioButton[i]);

)

radioButton[radioButton,length-1].setVisible(false);〃第五個

單選按鈕不可見

answerButton=newJButton("提交答案”);

answerButton.setEnabled(false);

answerButton.addActionListener(this);

questionButton=newJButton("下一題”);

questionButton.setEnabled(false);

questionButton.addActionListener(this);

scoreButton=newJButton("成績”);

scoreButton.setEnabled(false);

scoreButton.addActionListener(this);

southPanel.add(radioPanel);

southPanel.add(answerButton);

southPanel.add(questionButton);

southPanel.add(scoreButton);

add(southPanel,BorderLayout.SOUTH);

)

publicvoidactionPerformed(ActionEvente)

(

if(e.getSource()==startButton)

(

questionButton.setEnabled(true);

startButton.setEnabled(false);

}

)

}

classMyFrameextendsJFramcimplementsActionListencr

(

JButtonstartButton;

JLabelxh,xm;

JTcxtFieldxhl,xirl;

JButtonok;

TestPaneltp=newTestPanelO;

MyFrame()

(

JPanelp=newJPanel0;

xh二newJLabel("學(xué)號:〃);

xm=newJLabel("姓名:”);

xhl=newJTextField(lO);

xml=newJTextField(lO);

ok=newJButton("確認(rèn)");

p.add(xh);p.add(xhl);

p.add(xm);p.add(xml);p.add(ok);

add(p,BorderLayout.NORTH);

add(tp);

ok.addActionListener(this);

setSize(400,300);

setVisible(true);

)

publicvoidactionPerformed(ActionEvente)

(

tp.startButton.setEnabled(true);

xhl.setEnabled(false);

xml.setEnabled(false);

ok.setEnabled(false);

)

publicstaticvoidmain(Stringar[])

{newMyFrame();}

}

項目6

一、選擇題

1.以下類中,具有繪圖能力的類是(B)。

A)ImageB)GraphicsC)FontD)Color

2.Graphics類中提供的繪圖方法分為兩類:一類是繪制組形,另一類是繪

制(B)o

A)屏幕B)文本C)顏色D)圖像

3.下列方法中不屬于Graphics類的顯示文本的方法是(D)。

A)drawBytesB)drawCharsC)drawStringD)drawLine

4.下面的程序?qū)崿F(xiàn)了在窗口中繪制一個以(70,70)為圓心,50為半徑,

邊框是綠色的圓,圓心是紅色的。應(yīng)填入的語句行是(B)。

classexamextendsFrame

publicvoidpaint(Graphicsg)

(

g.setColor(Color,green);

g.drawOva1(20,20,100,100);

g.setColor(Color,red);

)

A)drawRect(70,70,1,1);B)g.drawRect(70,70,1,1);

C)g.drawLine(70,70,1,1);D)g.drawOva1(70,70,70,70);

5.在窗體的坐標(biāo)(50,50)處以紅色顯示“紅色文字”,填入的正確語句

是(C)。

classexamextendsFrame

{publicvoidpaint(Graphicsg)

g.drawString(”紅色文字”,50,50);

)

)

A)g.setColor(Color.Red);B)setColor(Color,red);

C)g.setColor(Color,red);D)setcolor(Color,red);

6.下列方法中不能完成畫直線的方法是(D)。

A)drawPolylineB)drawRectC)drawLineD)drawChars

二、填空題

1.paint()方法的參數(shù)是Graphics類的實例。

2.drawRect(intxl,intyl,intx2,inty2)中,x2和y2分別代表矩形的

寬度、高度。

3.如果在(60,80)處畫一個點,通過drawOval方法實現(xiàn),則該方法中的參

數(shù)應(yīng)為(60,80,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論