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

下載本文檔

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

文檔簡介

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

PAGE

8

頁共

NUMPAGES

8

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

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

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

A卷□B卷C卷□

(考試時間180分鐘)

題號

總分

分?jǐn)?shù)

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

staticvoidprintBinary(longi)

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

(a)

(b)

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

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

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

(a)

(b)

(c)

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

卷B參考答案

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

______專業(yè)______年級本□??艫卷□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.輸入一個長整數(shù),回車后求該數(shù)的二進(jìn)制表示。");

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

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個方法是MouseListener接口中的方法

publicvoidmousePressed(MouseEvente){

}

publicvoidmouseReleased(MouseEvente){

}

publicvoidmouseClicked(MouseEvente){

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

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

yPos=e.getY();//得到鼠標(biāo)釋放時的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'

//菜單項"New"

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

fileNew.setMnemonic(KeyEvent.VK_N);

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

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

text.setText("");

}

});

fileMenu.add(fileNew);

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

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

get7Num.setMnemonic(KeyEvent.VK_G);

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

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);

//菜單項"Save"

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

fileSave.setMnemonic(KeyEvent.VK_S);

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

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

saveText();

}

});

fileMenu.add(fileSave);

//菜單項"Exit"

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

fileExit.setMnemonic(KeyEvent.VK_X);

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

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

System.exit(0);

}

});

fileMenu.add(fileExit);

returnfileMenu;

}

//保存文本文件

privatevoidsaveText(){

JFi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論