華聯(lián)學(xué)院《Java程序設(shè)計(jì)》期末機(jī)考卷B及參考答案_第1頁(yè)
華聯(lián)學(xué)院《Java程序設(shè)計(jì)》期末機(jī)考卷B及參考答案_第2頁(yè)
華聯(lián)學(xué)院《Java程序設(shè)計(jì)》期末機(jī)考卷B及參考答案_第3頁(yè)
華聯(lián)學(xué)院《Java程序設(shè)計(jì)》期末機(jī)考卷B及參考答案_第4頁(yè)
華聯(lián)學(xué)院《Java程序設(shè)計(jì)》期末機(jī)考卷B及參考答案_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

XXXXXX大學(xué)XXX學(xué)院

PAGE

8

頁(yè)共

NUMPAGES

8

頁(yè)

(密封線內(nèi)勿答題)姓名學(xué)號(hào)學(xué)院(系)專業(yè)年級(jí)班(密封線內(nèi)勿答題)

《Java程序設(shè)計(jì)》課程期末機(jī)考卷

(200x—200x學(xué)年第x學(xué)期)本科□???/p>

A卷□B卷C卷□

(考試時(shí)間180分鐘)

題號(hào)

總分

分?jǐn)?shù)

1、編寫下圖(a)所示的命令行界面的應(yīng)用程序,程序運(yùn)行后通過命令行輸入一個(gè)長(zhǎng)整數(shù),回車后程序中得到該數(shù)并求其二進(jìn)制表示;若命令行輸入quit,回車后則退出程序運(yùn)行。程序中求長(zhǎng)整數(shù)i的二進(jìn)制表示、并在命令行的一行輸出是通過自定義的方法:

staticvoidprintBinary(longi)

完成的。圖(b)是程序運(yùn)行后輸入兩個(gè)數(shù),回車后顯示的結(jié)果。(25分)

(a)

(b)

2、編寫命令行界面的應(yīng)用程序,程序中創(chuàng)建FileReader類對(duì)象,并鏈接BufferedReader類對(duì)象,用來讀取源程序中的每一行;創(chuàng)建FileWriter類對(duì)象,并鏈接BufferedWrit類對(duì)象,將讀取的源程序的每一行添加行號(hào)后寫入當(dāng)前目錄下的文件1.txt中。(25分)

3、編寫繼承自JPanel類的面板子類,其背景顏色為白色,該類實(shí)現(xiàn)MouseListener接口,使之能按照下面的描述響應(yīng)鼠標(biāo)的點(diǎn)擊:點(diǎn)擊鼠標(biāo)右鍵,則得到點(diǎn)擊處的坐標(biāo),并在面板子類的paint方法中以點(diǎn)擊處為中心畫半徑為50像素的紅色填充圓,對(duì)于其他鼠標(biāo)事件程序中不做處理。請(qǐng)?jiān)诿姘遄宇愔芯帉憁ain方法,該方法中創(chuàng)建一個(gè)窗口(JFrame),窗口大小設(shè)置300×200像素,窗口標(biāo)題為“第3題”,窗口內(nèi)容面板的布局為邊框布局(BorderLayout):窗口中間放置本題自定義的面板子類對(duì)象,測(cè)試你的程序?qū)κ髽?biāo)事件的響應(yīng)。(25分)

4、請(qǐng)編寫下圖(a)所示界面的窗口應(yīng)用程序,該類繼承自JFrame類,窗口大小為600×400像素,窗口標(biāo)題為“第4題”,窗口內(nèi)容面板的布局為邊框布局(BorderLayout):窗口中間放置一個(gè)20行、20列的帶滾動(dòng)條的文本區(qū)(JTextArea),并設(shè)置文本區(qū)的字體名稱為“楷體_gb2312”、字體風(fēng)格為粗體、字號(hào)大小為20。應(yīng)用程序窗口設(shè)置了菜單條,并在菜單條上添加一個(gè)菜單“File”,該菜單下有4個(gè)菜單項(xiàng):“New”、“Get7Num”“Save”和“Exit”,下圖(a)所示,并按圖示設(shè)置他們的快捷鍵。各個(gè)菜單項(xiàng)的事件響應(yīng)按下面的描述實(shí)現(xiàn):選擇菜單項(xiàng)“New”,則把清除文本區(qū)的內(nèi)容;選擇菜單項(xiàng)“Get7Num”,則隨機(jī)生成7個(gè)整數(shù),他們的取值范圍在1到36之間(含1和36),要求這7個(gè)整數(shù)不能重復(fù)出現(xiàn),并把這7個(gè)數(shù)字顯示在文本區(qū)的一行上,下圖(b)是點(diǎn)擊菜單項(xiàng)“Get7Num”共5次后的顯示結(jié)果;選擇菜單項(xiàng)“Save”,則彈出文件保存對(duì)話框(JFileChooser),把文本區(qū)中的內(nèi)容按照其顯示格式保存為文本文件,如圖(c)所示;選擇菜單項(xiàng)“Exit”,則退出程序的運(yùn)行。(25分)

(a)

(b)

(c)

《Java程序設(shè)計(jì)》課程期末機(jī)考

卷B參考答案

(200x—200x學(xué)年第x學(xué)期)

______專業(yè)______年級(jí)本□??艫卷□B卷C卷□

1.(25分)參考程序:

importjava.io.IOException;

importjava.io.BufferedReader;

importjava.io.InputStreamReader;

publicclassTest1{

publicstaticvoidmain(Stringargs[])throwsIOException{

BufferedReaderbuf;

buf=newBufferedReader(newInputStreamReader(System.in));

Stringstr;

longx;

System.out.println("1.輸入一個(gè)長(zhǎng)整數(shù),回車后求該數(shù)的二進(jìn)制表示。");

System.out.println("2.輸入quit,回車后退出程序運(yùn)行。");

while(true){

System.out.print("Input:");

str=buf.readLine();

if(str.equals("quit"))

break;

x=Long.parseLong(str);

printBinary(x);

}

}

staticvoidprintBinary(longi){

System.out.print("\t"+i+"的2進(jìn)制數(shù)表示為:\n");

System.out.print("\t");

for(intj=63;j>=0;j--)

if(((1<<j)&i)!=0)

System.out.print("1");

else

System.out.print("0");

System.out.println();//換行

}

}

2、(25分)參考程序:

importjava.io.*;

publicclassTest2{

publicstaticvoidmain(Stringargs[])throwsIOException{

/////////////

FileReaderfr=newFileReader("..//src//Test2.java");

BufferedReaderin=newBufferedReader(fr);

////////////

FileWriterfw=newFileWriter("1.txt");

BufferedWriterbw=newBufferedWriter(fw);

////////////

Stringstr;

inti=1;

while((str=in.readLine())!=null){

bw.write(i+":"+str);

bw.newLine();

i++;

}

bw.flush();

////////////

in.close();

fr.close();

bw.close();

fw.close();

}

}

3、(25分)參考程序:

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassTest3extendsJPanelimplementsMouseListener{

intwidth=300,height=200;//面板寬高

staticintxPos,yPos;//鼠標(biāo)位置

finalstaticintMOUSE_CLICK=1;

intstate;

publicTest3(){

setBackground(Color.white);

addMouseListener(this);

}

publicvoidpaint(Graphicsg){

super.paint(g);

if(state==MOUSE_CLICK){

g.setColor(Color.red);

g.fillOval(xPos-50,yPos-50,100,100);

}

}

publicDimensiongetPreferredSize(){//設(shè)置面板顯示大小

returnnewDimension(width,height);

}

////////////////第50~75行的5個(gè)方法是MouseListener接口中的方法

publicvoidmousePressed(MouseEvente){

}

publicvoidmouseReleased(MouseEvente){

}

publicvoidmouseClicked(MouseEvente){

state=MOUSE_CLICK;//得到鼠標(biāo)狀態(tài)釋放

xPos=e.getX();//得到鼠標(biāo)釋放時(shí)的x坐標(biāo)

yPos=e.getY();//得到鼠標(biāo)釋放時(shí)的y坐標(biāo)

repaint();//刷新面板顯示

}

publicvoidmouseEntered(MouseEvente){

}

publicvoidmouseExited(MouseEvente){

}

publicstaticvoidmain(String[]args){

JFrameframe=newJFrame("第3題");

ContainercontentPane=frame.getContentPane();

Test3panel=newTest3();

contentPane.add(panel,BorderLayout.CENTER);

frame.pack();

frame.setVisible(true);

}

}

4、(25分)參考程序:

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.util.*;

importjava.io.*;

publicclassTest4extendsJFrame{

JTextAreatext;

publicTest4(Stringstr){//(5分)

super(str);

Containercon=this.getContentPane();

con.setLayout(newBorderLayout());

text=newJTextArea(20,20);

text.setFont(newFont("楷體_gb2312",Font.BOLD,20));

con.add(newJScrollPane(text),BorderLayout.CENTER);

JMenumyMenu=buildMenu();

//菜單條

JMenuBarmenuBar=newJMenuBar();//創(chuàng)建菜單條

setJMenuBar(menuBar);//設(shè)置窗口具有菜單條

menuBar.add(myMenu);//菜單添加到菜單條

setSize(600,400);

setVisible(true);

}

publicInteger[]myArray(){//(5分)

Randomrd=newRandom();

VectorallNum=newVector();

Integerresult[]=newInteger[7];

intx;

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

allNum.add(newInteger(i+1));

}

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

x=rd.nextInt(36-i);

result[i]=(Integer)allNum.get(x);

allNum.remove(x);

}

returnresult;

}

privateJMenubuildMenu(){

//菜單

JMenufileMenu=newJMenu("File");//菜單

fileMenu.setMnemonic(KeyEvent.VK_F);//設(shè)置快捷鍵:ALT+'F'

//菜單項(xiàng)"New"

JMenuItemfileNew=newJMenuItem("New");//菜單項(xiàng)

fileNew.setMnemonic(KeyEvent.VK_N);

fileNew.addActionListener(newActionListener(){//菜單項(xiàng)事件處理

publicvoidactionPerformed(ActionEvente){//清空文本區(qū)

text.setText("");

}

});

fileMenu.add(fileNew);

//生成36選7的一組數(shù)

JMenuItemget7Num=newJMenuItem("Get7Num");//菜單項(xiàng)

get7Num.setMnemonic(KeyEvent.VK_G);

get7Num.addActionListener(newActionListener(){//菜單項(xiàng)事件處理

publicvoidactionPerformed(ActionEvente){//設(shè)置文本區(qū)字體大小

Integer[]myint=myArray();

Strings="";

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

s+=myint[i].toString()+"\t";

}

text.append(s+System.getProperty("line.separator"));

}

});

fileMenu.add(get7Num);

//菜單項(xiàng)"Save"

JMenuItemfileSave=newJMenuItem("Save");//菜單項(xiàng)

fileSave.setMnemonic(KeyEvent.VK_S);

fileSave.addActionListener(newActionListener(){//菜單項(xiàng)事件處理

publicvoidactionPerformed(ActionEvente){//設(shè)置文本區(qū)字體大小

saveText();

}

});

fileMenu.add(fileSave);

//菜單項(xiàng)"Exit"

JMenuItemfileExit=newJMenuItem("Exit");//菜單項(xiàng)

fileExit.setMnemonic(KeyEvent.VK_X);

fileExit.addActionListener(newActionListener(){//菜單項(xiàng)事件處理

publicvoidactionPerformed(ActionEvente){//設(shè)置文本區(qū)字體大小

System.exit(0);

}

});

fileMenu.add(fileExit);

returnfileMenu;

}

//保存文本文件

privatevoidsaveText(){

JFi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論