![Java程序設(shè)計(jì)項(xiàng)目教程(第二版)參考答案_第1頁](http://file4.renrendoc.com/view4/M01/03/10/wKhkGGaBtvaAKmKjAAG8tzbvLn0620.jpg)
![Java程序設(shè)計(jì)項(xiàng)目教程(第二版)參考答案_第2頁](http://file4.renrendoc.com/view4/M01/03/10/wKhkGGaBtvaAKmKjAAG8tzbvLn06202.jpg)
![Java程序設(shè)計(jì)項(xiàng)目教程(第二版)參考答案_第3頁](http://file4.renrendoc.com/view4/M01/03/10/wKhkGGaBtvaAKmKjAAG8tzbvLn06203.jpg)
![Java程序設(shè)計(jì)項(xiàng)目教程(第二版)參考答案_第4頁](http://file4.renrendoc.com/view4/M01/03/10/wKhkGGaBtvaAKmKjAAG8tzbvLn06204.jpg)
![Java程序設(shè)計(jì)項(xiàng)目教程(第二版)參考答案_第5頁](http://file4.renrendoc.com/view4/M01/03/10/wKhkGGaBtvaAKmKjAAG8tzbvLn06205.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Java程序設(shè)計(jì)項(xiàng)目教程(第二版)-參考答案
項(xiàng)目1
一、思考題
LJava程序有幾種版本,分別是什么?
Java有三種版本,分別是J2ME、J2SE、J2EE
2.Java程序有何特點(diǎn)?
Java語言的特點(diǎn)如下:
①面向?qū)ο螅褐С执a繼承及重用,是完全面向?qū)ο蟮?,它不支持類似C
語言那樣的面向過程的程序設(shè)計(jì)技術(shù)。
②解釋執(zhí)行:Java解釋器(運(yùn)行系統(tǒng))能直接運(yùn)行目標(biāo)代碼指令。
③平臺(tái)無關(guān):Java源程序被編譯成一種高層次的與機(jī)器無關(guān)的Byte-codes
格式語言,被設(shè)計(jì)在Java虛擬機(jī)上運(yùn)行。
④多線程:Java提供的多線程功能使得在一個(gè)程序里可同時(shí)執(zhí)行多個(gè)小任
務(wù)。多線程帶來的好處是可以有更好的交互性能和實(shí)時(shí)控制性能。
⑤健壯性:Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤,類型檢查幫助檢
查出許多開發(fā)早期出現(xiàn)的錯(cuò)誤。
3.什么是JVM,為什么需要JVM?
JVM即Java虛擬機(jī),是一臺(tái)可以存在于不同的真實(shí)的軟、硬件環(huán)境下的虛
擬的計(jì)算機(jī),其功能是將字節(jié)碼解釋為真實(shí)平臺(tái)能執(zhí)行的指令。Java正是通過
虛擬機(jī)JVM技術(shù),實(shí)現(xiàn)了與平臺(tái)無關(guān),實(shí)現(xiàn)“編寫一次,到處運(yùn)行”。因此,
任何平臺(tái)只要安裝相應(yīng)的Java虛擬機(jī)環(huán)境,就能運(yùn)行Java程序。
4.如何理解Java程序的基本結(jié)構(gòu)?
①語句packagepl;是建立一個(gè)包(文件夾),生成的類文件將存放于包
中。
②程序第一行publicclass類名{},是一個(gè)類定義語句。public關(guān)鍵字
指明類的訪問方式為公有,也就是在整個(gè)程序內(nèi)都可以訪問到它。如果將類定
義為public,則類其名稱必須與主文件名一致,并且大小寫敏感。
③類后大括號(hào)內(nèi)可以定義類的成員和方法,對(duì)于一個(gè)可執(zhí)行的Java類,
main方法是必需的,而且該main方法必須是公有(public)、靜態(tài)(static)
和沒有返回值(void)的,同時(shí)它只能帶一個(gè)字符串型(String口)的參數(shù)。
④程序的一行“〃……”是注釋,只說明不運(yùn)行。
⑤每個(gè)命令語句結(jié)束,必須以“;”結(jié)尾。
二、編程
1.編寫一Java應(yīng)用程序,要求在屏幕上輸出字符串“HappyNewYear!”。
classPrac1
(
publicstaticvoidmain(Stringargs[])
(
System,out.printin(z,HappyNewYear!");
)
}
2.編寫一個(gè)簡單的Java程序,在屏幕上輸出如下圖形:
*
***
classPrac2
(
publicstaticvoidmain(Stringargs[])
System,out.printIn("*〃);
System,out.printing***〃);
System,out.printin("*****");
}
}
項(xiàng)目2
一、選擇題
1.數(shù)組中可以包含什么類型的元素?(D)
A.int型B.String型C.數(shù)組D.以上都
可以
2.Java中定義數(shù)組名為Arr,下面哪項(xiàng)可以得到數(shù)組元素的個(gè)數(shù)?(B)
A.Arr.length()B.Arr.lengthC.Arr(xyz)D.Arr
(xyz)
3.下面哪條語句定義了3個(gè)元素的數(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è)程序,輸入三條邊長值,并判斷這三條邊長能不能構(gòu)成三角
形,如果能,能構(gòu)成什么樣的三角形(一般、等邊、等腰)。
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.試編寫一個(gè)程序,讀入10個(gè)學(xué)生的成績,成績?cè)??59分為D,成績?cè)?/p>
60?79分為C,成績?cè)?0?89分為B,成績?cè)?0-100分為A,并輸出A、B、C、
D的人數(shù)個(gè)數(shù)。
importjava.util.*;
publicclassPractice2{
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("請(qǐng)輸入第"+(i+1)+”個(gè)人的成績");
c=getInputData();
while(c<0||c>100)
(
System,out.print(〃請(qǐng)重新輸入第〃+(i+l)+〃個(gè)學(xué)生的成績〃);
c=getInputData();
)
皿帽[1]=。;〃保存
System.out.println(numa[i]);
switch(numa[i]/10){
case10:
System,out.printin(〃成績?yōu)锳級(jí)!〃);
al++;
break;
case9:
System.out.println(〃成績?yōu)锳級(jí)!”);
al++;
break;
case8:
System,out.println(〃成績?yōu)锽級(jí)!〃);
a2++;
break;
case7:
System.out.printin(〃成績?yōu)镃級(jí)!〃);
a3++;
break;
case6:
System,out.printin(〃成績?yōu)镃級(jí)!〃);
a3++;
break;
default:
System,out.printin(〃成績?yōu)镈級(jí)!“);
a4++;
break;
)
)
System.out.printin(“90T00分的人數(shù)=〃+al);
System.out.printin(z,80-89分的人數(shù)="+a2);
System,out.printin(z,60-79分的人數(shù)="+@3);
System,out.printin(,z0-59分的人數(shù)=〃+a4);
}
publicstaticintgetlnputDataOthrowslOException
(
Scanners=newScanner(System,in);
intn=s.nextlnt();
returnn;
3.試編寫一個(gè)程序,輸出以下形式的圖形。
classPractices
(
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ù)字是由計(jì)算機(jī)隨機(jī)產(chǎn)生的100以
內(nèi)整數(shù)。一次就猜中得100分,2次才猜中得90分,依次類推,超過10次無分。
程序最后輸出參與者得分。
importjava,util.*;
classPractice4
(
publicstaticvoidmain(Stringargs[])
(
inta=(int)(Math.randomO*10);
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);
}
)
項(xiàng)目3
一、選擇題
1.定義類頭(非內(nèi)部類)時(shí),不可能用到的關(guān)鍵字是(B)
A)classB)privateC)extendsD)public
2.下列類頭定義中,錯(cuò)誤的是(A)
A)publicxextendsy{...}B)publicclassxextendsy
{...)
C)classxextendsyimplementsyl{...}D)classx{...}
3.設(shè)A為已定義的類名,下列聲明A類的對(duì)象a的語句中正確的是(D)
A)floatAa;B)publicAa=A();
C)Aa=newint();D)staticAa=newA();
4.設(shè)X、Y均為已定義的類名,下列聲明類X的對(duì)象xl的語句中正確的
是(C)
A)publicXxl=newY();B)Xxl=X();
C)Xxl=newX();D)intXxl;
5.設(shè)X、Y為已定義的類名,下列聲明X類的對(duì)象xl的語句中正確的是
(A)
A)staticXxl;B)publicXxl=newX(int
123);
C)Yxl;D)Xxl=X();
6.有一個(gè)類A,以下為其構(gòu)造方法的聲明,其中正確的是(A)
A)publicA(intx)}B)staticA(intx){...}
C)publica(intx){...}D)voidA(intx){...}
7.有一個(gè)類Student,以下為其構(gòu)造方法的聲明,其中正確的是(B)
A)voidStudent(intx){...}B)Student(intx){...}
C)s(intx){...}D)voids(intx){...}
8.下列選項(xiàng)中,用于定義接口的關(guān)鍵字是(A)
A)interfaceB)implementsC)abstractD)class
9.現(xiàn)有類A和接口B,以下描述中表示類A實(shí)現(xiàn)接口B的語句是(A)
A)classAimplementsBB)classBimplementsA
C)classAextendsBD)classBextendsA
二、填空題
1.如果子類中的某個(gè)變量的變量名與它的父類中的某個(gè)變量完全一樣,則
稱子類中的這個(gè)變量隱藏了父類的同名變量。
2.如果子類中的某個(gè)方法的名字、返回值類型和參數(shù)列表與它的父
類中的某個(gè)方法完全一樣,則稱子類中的這個(gè)方法覆蓋了父類的同名方法。
3.抽象方法只有方法頭,沒有方法體。
4.接口中所有屬性均為pu為ic、static和final
的。
5.一個(gè)類如果實(shí)現(xiàn)一個(gè)接口,那么它就必須實(shí)現(xiàn)接口中定義的所有方法,
否則該類就必須定義成抽象的。
6.lava語言中用于表示類間繼承的關(guān)鍵字是extends。
7.下面是一個(gè)類的定義,請(qǐng)將其補(bǔ)充完整。
classStudent
(
Stringname;
intage;
Student(Strings,inti)
name=s;
age二i;
)
)
8.下面是一個(gè)類的定義,請(qǐng)將其補(bǔ)充完整。
class______A
{Strings;
staticinta=666;
A(Stringsi)
(
s=sl;
)
staticintgeta()
returna;
)
三、編程題
1.編寫一個(gè)類,描述學(xué)生的學(xué)號(hào)、姓名、成績。學(xué)號(hào)用整型,成績用浮點(diǎn)
型,姓名用String類型。編寫一個(gè)測(cè)試類,輸入學(xué)生的學(xué)號(hào)、姓名、成績,并
顯示該學(xué)號(hào)的學(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.nextDouble();
System.out.printin(s.name+〃的學(xué)號(hào)是〃+s.sNum+〃成績是〃+s.score);
2.設(shè)id—個(gè)Birthday類,其成員變量有:year,month,day;提供構(gòu)造方
法、輸出Birthday對(duì)象值的方法和計(jì)算年齡的方法。編寫程序測(cè)試這個(gè)類。
classBirthday{
privateintyear;
privateintmonth;
privateintday;
publicBirthday(intyear,intmonth,intday)
{this.year=year;
this,month=month;
this.day=day;
)
publicvoidprintBirthDay()
{System.out.printin(year+〃-〃+month+〃-〃+day);
publicintprintAgeO
{return2021-year;}
publicstaticvoidmain(String[]args)
(
Birthdaybirth=newBirthday(1991,11,5);
birth.printBirthDay();
intage=birth.printAge();
System,out.printin(age);
)
)
3.編寫一個(gè)類,描述汽車,其中用字符型描述車的牌號(hào),用浮點(diǎn)型描述車
的價(jià)格。編寫一個(gè)測(cè)試類,其中有一個(gè)修改價(jià)格方法,對(duì)汽車對(duì)象進(jìn)行操作,
根據(jù)折扣數(shù)修改汽車的價(jià)格,最后在main方法中輸出修改過后的汽車信息。
publicclassChangeCar{
publicstaticvoidmain(String[]args){
Carc=newCar();
c.carNum=〃魯Al111”;
c.price=10;
System,out.printin(''beforechange,thecar'snumandprice
is:〃+c.carNum+z,〃+c.price);
changePrice(c);
System,out.println(z/AfterChange,thecar,sprice
is:〃+c.price);
)
publicstaticvoidchangePrice(Carc){
c.price=c.price*O.8;
)
classCar{
StringcarNum;
doubleprice;
)
4.編寫一個(gè)Java應(yīng)用程序,設(shè)計(jì)一個(gè)汽車類Vehicle,包含的屬性有車輪
個(gè)數(shù)wheels和車重weight。小車類Car是Vehicle的子類,其中包含的屬性
有載人數(shù)loader??ㄜ囶怲ruck是Car類的子類,其中包含的屬性有載重量
payloado每個(gè)類都有構(gòu)造方法和輸出相關(guān)數(shù)據(jù)的方法。
classVehicle
{
intwheels;
floatweight;
Vehicle(inta,floatb)
(
wheels=a;
weight=b;
voidoutDataO
System,out.print(Z/Thevehicle,s
data:wheels:zz+wheels+,/,weight:z/+weight);
)
)
classCarextendsVehicle
(
intloader;
Car(inta,floatb,intc)
(
super(a,b);
loader=c;
)
voidoutData()
(
super.outDataO;
System,out.print(zz,loader:z,+loader);
)
)
classTruckextendsCar
(
floatpayload;
Truck(inta,floatb,intc,floatd)
super(a,b,c);
payload=d;
)
voidoutData()
(
super.outDataO;
System,out.println(z,,payload:z,+payload);
)
)
classTest
(
publicstaticvoidmain(Stringargs[])
(
Vehiclev=newVehicle(4,7);
v.outDataO;
System,out.printlnO;
Carc=newCar(4,6,4);
c.outDataO;
System,out.printin();
Truckt=newTruck(4,2,10,8);
t.outDataO;
5.定義一個(gè)接口CanFly,描述會(huì)飛的方法publicvoidfly();分別定義
類飛機(jī)和鳥,實(shí)現(xiàn)CanFly接口。定義一個(gè)測(cè)試類,測(cè)試飛機(jī)和鳥,在main方
法中創(chuàng)建飛機(jī)對(duì)象和鳥對(duì)象,讓飛機(jī)和鳥起飛。
interfaceCanFly
(
publicvoidfly();
)
classPlaneimplementsCanFly
{
publicvoidfly()
(
System.out.println("飛機(jī)需借助螺旋槳飛上了天空。;
)
)
classBirdimplementsCanFly
(
publicvoidfly()
System.out.println("鳥需借助翅膀飛上了天空?!?;
classTest
publicstaticvoidmain(Stringargs[])
{
Planep=newPlane();
Birdb=newBird();
p.fly();
b.flyO;
項(xiàng)目4
一、選擇題
1.關(guān)于異常的定義,下列描述中最正確的一個(gè)是(D)。
A)程序編譯錯(cuò)誤B)程序語法錯(cuò)誤
C)程序自定義的異常事件D)程序編譯或運(yùn)行時(shí)發(fā)生的異常事件
2.拋出異常時(shí),應(yīng)該使用的子句是(A)。
A)throwB)catchC)finallyD)throws
3.自定義異常類時(shí),可以繼承的類是(C)。
A)ErrorB)AppletC)Exception及其子類D)
AssertionError
4.當(dāng)方法產(chǎn)生異常但卻無法確定該如何處理時(shí),應(yīng)采用的方法是(C)。
A)聲明異常B)捕獲異常C)拋出異常D)自定義異常
5.對(duì)于try{…}catch子句的排列方式,正確的一項(xiàng)是(A)。
A)子類異常在前,父類異常在后B)父類異常在前,子類異常在后
C)只能有子類異常D)父類異常與子類異常不能同時(shí)出
現(xiàn)
6.下列關(guān)于try、catch和finally的表述,錯(cuò)誤的是(C)。
A)try語句塊后必須緊跟catch語句塊B)catch語句塊必須緊跟在try
語句塊后
C)可以有try但無catchD)可以有try但無finally
7.下列描述中,錯(cuò)誤的一項(xiàng)是(A)。
A)一個(gè)程序拋出異常,其他任何運(yùn)行中的程序都可以捕獲
B)算術(shù)溢出需要進(jìn)行異常處理
C)在方法中檢測(cè)到錯(cuò)誤但不知如何處理時(shí),方法就聲明異常
D)任何沒有被程序捕獲的異常最終被默認(rèn)處理程序處理
8.下面程序運(yùn)行時(shí),會(huì)產(chǎn)生的異常是(C)o
classTest{
publicstaticvoidmain(Stringar[])
{intx=0,y=20,z;
z=(x+y)/(x*y);
System,out.println("z="+z);
)
)
A)ArraylndexOutOfBoundsExceptionB)NumberFormatException
C)ArithMeticExceptionD)NullPointerException
二、填空題
1.一個(gè)trv代碼段后必須跟calch代碼段,finally代碼
段可以沒有。
2.自定2異常類必須繼承Exception類或其子類。
3.異常處理機(jī)制可以允許根據(jù)具體的情況選擇在何處處理異常,可以在當(dāng)
前方法中捕獲并處理,也可以用throws子句把它交給調(diào)用方法
去處理。
4.數(shù)組下標(biāo)越界對(duì)應(yīng)的類是__ArraylndexOutOfBoundsException______
5.為達(dá)到高效運(yùn)行的要求,一~運(yùn)行時(shí)產(chǎn)生—的異常,可以直接交由嬴
虛擬機(jī)系統(tǒng)來處理,而Exception類派生出的非運(yùn)行異常,要求編寫程序捕
獲或者聲明。
三、編程題
1.從鍵盤輸入5個(gè)數(shù),求出5個(gè)數(shù)的階乘之和。若輸入負(fù)數(shù)時(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,zzinput:〃));
try
{
if(x<0)thrownewException();
for(intk=l;k<=x;k++)
j=j*k;
sum=sum+j;
}catch(Exceptione)
System.out.printin("輸入了一個(gè)負(fù)數(shù),請(qǐng)重新輸入!”);
i—;
)
)
System,out.printin(”階乘和為:"+sum);
2.設(shè)計(jì)自己的異常類,從鍵盤輸入一個(gè)數(shù),若輸入的數(shù)不小于0,則輸出它
的平方根。若小于0,則輸出提示信息“輸入錯(cuò)誤”。(求平方根的方法
為:Math.sqrt(intx))
importjavax.swing.*;
classMyExceptionextendsException
staticinti=3;
MyException()
(
super(〃產(chǎn)生異常!〃);
i
)
classExceptionTest
(
publicstaticvoidmain(Stringargs[])
(
int
x=Integer.parselnt(JOptionPane.showInputDialog(null,“input:"));
try
(
if(x<0)thrownewMyExceptionO;
System,out.printin(〃輸入數(shù)的平方根為:〃+Math.sqrt(x));
}catch(MyExceptione)
System,out.printin(e.getMessage());
System,out.printin("異常編號(hào)為:"+e.i);
項(xiàng)目5
、選擇題
1.下面屬于容器類的是(A)
A.JFrameB.JTextFieldC.ColorD.JMenu
2.FlowLayout的布局策略是(A)
A.按添加的順序由左至右將組件排列在容器中。
B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。
C.將窗口劃分成五部分,在這五個(gè)區(qū)域中添加組件。
D.組件相互疊加排列在容器中。
3.BorderLayout的布局策略是(C)
A.按添加的順序由左至右將組件排列在容器中。
B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。
C.將窗口劃分成五部分,在這五個(gè)區(qū)域中添加組件。
D.組件相互疊加排列在容器中。
4.GridLayout的布局策略是(B)
A.按添加的順序由左至右將組件排列在容器中。
B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。
C.將窗口劃分成五部分,在這五個(gè)區(qū)域中添加組件。
D.組件相互疊加排列在容器中。
5.JFrame中內(nèi)容窗格缺省的布局管理器是(B)
A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout
6.監(jiān)聽事件和處理事件(B)
A.都由Listener完成B.都由相應(yīng)事件Listener處注冊(cè)的構(gòu)
件完成
C.由Listener和構(gòu)件分別完成D.由Listener和窗口分別完成
7.在下列事件處理機(jī)制中不是機(jī)制中的角色的是(A)
A.事件B.事件源C.事件接口D.事件處
理者
8.addActionListener(this)方法中的this參數(shù)表示的意思是(B)
A.當(dāng)有事件發(fā)生時(shí),應(yīng)該使用this監(jiān)聽器B.this對(duì)象類會(huì)處理
此事件
C.this事件優(yōu)先于其他事件D.只是一種形式
9.下列關(guān)于Component的方法中,錯(cuò)誤的是(A)
A.getName()用于獲得組件的名字B.getSize()用于獲得組件
的大小
C.setColor()用于設(shè)置前景顏色D.setVisible()設(shè)置組
件是否可見
10.當(dāng)窗口關(guān)閉時(shí),會(huì)觸發(fā)的事件是(C)
A.ContainerEventB.ItemEventC.WindowEvent
D.MouseEvent
二、填空題
1.AWT的用戶界面組件庫被更穩(wěn)定、通用、靈活的庫取代,該庫稱為—
swing
2.布局管理器用于安排容器上的GUI組件。
3.設(shè)置容器布局管理器的方法是setLayoutO。
4.當(dāng)釋放鼠標(biāo)按鍵時(shí),將產(chǎn)生_mouseRelease事件。
5.Java為那些聲明了多個(gè)方法的Listener接口提供了一?個(gè)對(duì)應(yīng)的適配
盎_,在該類中實(shí)現(xiàn)了對(duì)應(yīng)接口的所有方法。
6.ActionEvent事件的監(jiān)聽接口是AclionListener,注冊(cè)方法名是_
addActionListener(),事件處理方法名是publicvoid
actionperformed。。
7.圖形用戶界面通過事件響應(yīng)用戶和程序的交互,產(chǎn)生事件的組
件稱為事件源。
8.Java的Swing包中定義菜單的類是JMenu。
三、編程題
1.設(shè)計(jì)如圖所示樣式的圖形用戶界面(不要求實(shí)現(xiàn)功能)。
當(dāng)前時(shí)間:陵時(shí)忸-分恃"秒
鬧鐘時(shí)間:|一時(shí)|一分|一秒
鬧鐘設(shè)置
importjavax.swing.*;
classDemo
publicDemo()
JLabelblnewJLabel(〃當(dāng)前時(shí)間:〃);
JLabelb2newJLabel(〃時(shí)〃);
JLabelb3newJLabel("分”);
JLabelb4newJLabel(〃秒〃);
JLabelb5newJLabel(〃鬧鐘時(shí)間:〃);
JLabelb6newJLabel(〃時(shí)〃);
JLabelb7=newJLabel(“分”);
JLabelb8newJLabel("秒");
JLabelb9=newJLabel(〃鬧鐘設(shè)置“);
JTextFieldtl=newJTextField(/z8z,,3);
JTextFieldt2=newJTextField(〃57〃,3);
JTextFieldt3=newJTextField(〃59〃,3);
JTextFieldt4=newJTextField(3);
JTextFieldt5=newJTextField(3);
JTextFieldt6=newJTextField(3);
JButtonbtl=newJButton(〃開”);
JButtonbt2=newJButton(“關(guān)〃);
JFramewin=newJFrame();
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(true);
}
publicstaticvoidmain(Stringarg[])
newDemo();
)
2.編寫一個(gè)將華氏溫度轉(zhuǎn)換為攝氏溫度的程序。其中一個(gè)文本框輸入華氏
溫度,另一個(gè)文本框顯示轉(zhuǎn)換后的攝氏溫度,一個(gè)按鈕完成溫度的轉(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=newJButton("轉(zhuǎn)換”);
JFramewin=newJFrame();
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(true);
)
publicvoidactionPerformed(ActionEvente)
(
t2.setText(〃"+5?0/9*(Float.parseFloat(tl.getText())-32));
)
publicstaticvoidmain(Stringarg[])
(
newDemo();
}
)
3.設(shè)計(jì)一個(gè)界面如圖。當(dāng)點(diǎn)擊“確認(rèn)”按鈕后,使“開始考試”按鈕可用,
并使“學(xué)號(hào)”、“姓名”后的文本框及“確認(rèn)”按鈕不可用。點(diǎn)擊“開始考試”
按鈕后,使“下一題”按鈕可用,同時(shí)設(shè)置“開始考試”按鈕不可用。
三C/S考試系統(tǒng)□0?
importjava.awt.event.*;
importjavax.swing.*;
classTestPanelextendsJPanelimplementsActionListener
|
JButtonstartButton;
JLabeltimeLabel;
JTextAreaquestionArea;
JRadioButtonradioButton[]=newJRadioButton[5];〃五個(gè)單選按鈕,
目的是設(shè)置前四個(gè)答案選項(xiàng)都不選中,而第五個(gè)選項(xiàng)選中,但第五個(gè)按鈕設(shè)置為不可見
ButtonGroupbuttonGroup=newButtonGroupO;
JButtonanswerButton;
JButtonquestionButton;
JButtonscoreButton;
publicTestPanel()
(
setLayout(newBorderLayout());
JPanelnorthPanel=newJPanel();
northPane1.setLayout(newGridLayout(2,1));
startButton=newJButton(〃開始考試“);
startButton.addActionListener(this);
timeLabel=newJLabel(〃考試剩余時(shí)間〃);
northPanel.add(startButton);
northPanel.add(timeLabel);
add(northPanel,BorderLayout.NORTH);
questionArea=newJTextArea(30,10);
questionArea.setLineWrap(true);
questionArea.setWrapStyleWord(true);
questionArea.setFont(newFont(〃幼圓〃,F(xiàn)ont.PLAIN,16));
intvScroll=ScrolIPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
inthScroll=ScrolIPaneConstants.HORIZONTAL_SCROLLBAR_NEVER;
add(new
JScrollPane(questionArea,vScroll,hScroll),BorderLayout.CENTER);
JPanelsouthPanel=newJPanel();
JPanelradioPanel二newJPanel();〃放5個(gè)單選按鈕的面板
Strings□={〃A〃,〃B〃,〃C〃,〃D〃,〃〃};
for(inti=0;i<radioButton.length;i++)
radioButton[i]二newJRadioButton(s[i],false);
buttonGroup.add(radioButton[i]);
radioPanel,add(radioButton[i]);
)
radioBu11on[radioButton.1ength-1].setVisible(false);〃第五個(gè)
單選按鈕不可見
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);
)
}
)
classMyFrameextendsJFrameimplementsActionListener
(
JButtonstartButton;
JLabelxh,xm;
JTextFieldxhl,xml;
JButtonok;
TestPaneltp=newTestPanel();
MyFrame()
(
JPanelp=newJPanel();
xh=newJLabel(“學(xué)號(hào):〃);
xm二newJLabel(〃姓名:〃);
xhl=newJTextField(10);
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();}
項(xiàng)目6
一、選擇題
1.以下類中,具有繪圖能力的類是(B)。
A)ImageB)GraphicsC)FontD)Color
2.Graphics類中提供的繪圖方法分為兩類:一類是繪制圖形,另一類是繪
制(B)。
A)屏幕B)文本C)顏色D)圖像
3.下列方法中不屬于Graphics類的顯示文本的方法是(D)。
A)drawBytesB)drawCharsC)drawStringD)drawLine
4.下面的程序?qū)崿F(xiàn)了在窗口中繪制一個(gè)以(70,70)為圓心,50為半徑,
邊框是綠色的圓,圓心是紅色的。應(yīng)填入的語句行是(B)。
classexamextendsFrame
publicvoidpaint(Graphicsg)
{
g.setColor(Color,green);
g.drawOval(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.drawOval(70,70,70,70);
5.在窗體的坐標(biāo)(50,50)處以紅色顯示“紅色文字”,填入的正確語句
是(C)O
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類的實(shí)例。
2.drawRect(intxl,intyl,intx2,inty2)中,x2和y2分別代表矩形的
寬度、高度。
3.如果在(60,80)處畫一個(gè)點(diǎn),通過drawOval方法實(shí)現(xiàn),則該方法中的參
數(shù)應(yīng)為(60,80,1,1)。
4.如果畫圓角矩形,drawRect方法中的參數(shù)應(yīng)為3個(gè),其中后兩個(gè)參
數(shù)的作用是表示圓角的寬度和高度。
5.如果設(shè)定輸出在某個(gè)組件上的文本的字體,用的方法是
setFont(),該方法中的參數(shù)應(yīng)是Font類的對(duì)象。
6.以下程序輸出的是繪制一條(20,20)到(20,50)之間的綠色直
classexamextendsFrame
{publicvoidpaint(Graphicsg)
{g.setColor(Color,green);
g.drawRect(20,20,1,30);
)
三、編程題
1.編寫程序,藍(lán)色輸出26個(gè)大寫字母,隨機(jī)彩色輸出26個(gè)小寫字母。
importjava.awt.*;
publicclassExercise61extendsFrame
publicExercise4_3_l()
{
setSize(600,200);
setVisible(true);
publicvoidpaint(Graphicsg)
(
chars[]=newchar[26];
inti;
g.setColor(Color,blue);
for(i=0;i<26;i++)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 19183.2-2024電氣和電子設(shè)備機(jī)械結(jié)構(gòu)戶外機(jī)殼第2部分:協(xié)調(diào)尺寸
- PB-22-N-4-Hydroxypentyl-3-carboxyindole-metabolite-生命科學(xué)試劑-MCE-7583
- EMPO-生命科學(xué)試劑-MCE-2695
- 二零二五年度自動(dòng)駕駛車輛測(cè)試與示范運(yùn)營合同
- 二零二五年度健康產(chǎn)品銷售折扣與會(huì)員管理系統(tǒng)合同
- 2025年度體育設(shè)施建設(shè)與運(yùn)營簽合同授權(quán)委托書
- 2025年度董事薪酬體系設(shè)計(jì)與聘任合同
- 2025年度荒山開發(fā)使用權(quán)出讓合同
- 2025年度林業(yè)保護(hù)駕駛員聘用與巡護(hù)服務(wù)合同
- 二零二五年度船舶船員勞動(dòng)合同及船舶事故應(yīng)急處理合同
- GB/T 19228.1-2024不銹鋼卡壓式管件組件第1部分:卡壓式管件
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫380題(含答案)
- (高清版)DZT 0399-2022 礦山資源儲(chǔ)量管理規(guī)范
- 初一英語英語閱讀理解專項(xiàng)訓(xùn)練15篇
- 部編人教版五年級(jí)道德與法治下冊(cè)全冊(cè)課件(完整版)
- 廣西貴港市2023年中考物理試題(原卷版)
- 仁愛英語八年級(jí)閱讀理解測(cè)試題和答案
- DB11∕T 1875-2021 市政工程施工安全操作規(guī)程
- 傳統(tǒng)節(jié)日春節(jié)英文介紹課件
- 水資源論證報(bào)告
- 實(shí)現(xiàn)結(jié)構(gòu)化:初中語文大單元教學(xué)設(shè)計(jì)的核心
評(píng)論
0/150
提交評(píng)論