




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
XXXXXX大學XXX學院
第
PAGE
8
頁共
NUMPAGES
8
頁
(密封線內勿答題)姓名學號學院(系)專業年級班(密封線內勿答題)
《Java程序設計》課程期末機考卷
(200x—200x學年第x學期)本科□專科
A卷□B卷C卷□
(考試時間180分鐘)
題號
一
二
三
四
總分
分數
1、編寫下圖(a)所示的命令行界面的應用程序,程序運行后通過命令行輸入一個長整數,回車后程序中得到該數并求其二進制表示;若命令行輸入quit,回車后則退出程序運行。程序中求長整數i的二進制表示、并在命令行的一行輸出是通過自定義的方法:
staticvoidprintBinary(longi)
完成的。圖(b)是程序運行后輸入兩個數,回車后顯示的結果。(25分)
(a)
(b)
2、編寫命令行界面的應用程序,程序中創建FileReader類對象,并鏈接BufferedReader類對象,用來讀取源程序中的每一行;創建FileWriter類對象,并鏈接BufferedWrit類對象,將讀取的源程序的每一行添加行號后寫入當前目錄下的文件1.txt中。(25分)
3、編寫繼承自JPanel類的面板子類,其背景顏色為白色,該類實現MouseListener接口,使之能按照下面的描述響應鼠標的點擊:點擊鼠標右鍵,則得到點擊處的坐標,并在面板子類的paint方法中以點擊處為中心畫半徑為50像素的紅色填充圓,對于其他鼠標事件程序中不做處理。請在面板子類中編寫main方法,該方法中創建一個窗口(JFrame),窗口大小設置300×200像素,窗口標題為“第3題”,窗口內容面板的布局為邊框布局(BorderLayout):窗口中間放置本題自定義的面板子類對象,測試你的程序對鼠標事件的響應。(25分)
4、請編寫下圖(a)所示界面的窗口應用程序,該類繼承自JFrame類,窗口大小為600×400像素,窗口標題為“第4題”,窗口內容面板的布局為邊框布局(BorderLayout):窗口中間放置一個20行、20列的帶滾動條的文本區(JTextArea),并設置文本區的字體名稱為“楷體_gb2312”、字體風格為粗體、字號大小為20。應用程序窗口設置了菜單條,并在菜單條上添加一個菜單“File”,該菜單下有4個菜單項:“New”、“Get7Num”“Save”和“Exit”,下圖(a)所示,并按圖示設置他們的快捷鍵。各個菜單項的事件響應按下面的描述實現:選擇菜單項“New”,則把清除文本區的內容;選擇菜單項“Get7Num”,則隨機生成7個整數,他們的取值范圍在1到36之間(含1和36),要求這7個整數不能重復出現,并把這7個數字顯示在文本區的一行上,下圖(b)是點擊菜單項“Get7Num”共5次后的顯示結果;選擇菜單項“Save”,則彈出文件保存對話框(JFileChooser),把文本區中的內容按照其顯示格式保存為文本文件,如圖(c)所示;選擇菜單項“Exit”,則退出程序的運行。(25分)
(a)
(b)
(c)
《Java程序設計》課程期末機考
卷B參考答案
(200x—200x學年第x學期)
______專業______年級本□專科A卷□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.輸入一個長整數,回車后求該數的二進制表示。");
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進制數表示為:\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;//鼠標位置
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(){//設置面板顯示大小
returnnewDimension(width,height);
}
////////////////第50~75行的5個方法是MouseListener接口中的方法
publicvoidmousePressed(MouseEvente){
}
publicvoidmouseReleased(MouseEvente){
}
publicvoidmouseClicked(MouseEvente){
state=MOUSE_CLICK;//得到鼠標狀態釋放
xPos=e.getX();//得到鼠標釋放時的x坐標
yPos=e.getY();//得到鼠標釋放時的y坐標
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();//創建菜單條
setJMenuBar(menuBar);//設置窗口具有菜單條
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);//設置快捷鍵:ALT+'F'
//菜單項"New"
JMenuItemfileNew=newJMenuItem("New");//菜單項
fileNew.setMnemonic(KeyEvent.VK_N);
fileNew.addActionListener(newActionListener(){//菜單項事件處理
publicvoidactionPerformed(ActionEvente){//清空文本區
text.setText("");
}
});
fileMenu.add(fileNew);
//生成36選7的一組數
JMenuItemget7Num=newJMenuItem("Get7Num");//菜單項
get7Num.setMnemonic(KeyEvent.VK_G);
get7Num.addActionListener(newActionListener(){//菜單項事件處理
publicvoidactionPerformed(ActionEvente){//設置文本區字體大小
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){//設置文本區字體大小
saveText();
}
});
fileMenu.add(fileSave);
//菜單項"Exit"
JMenuItemfileExit=newJMenuItem("Exit");//菜單項
fileExit.setMnemonic(KeyEvent.VK_X);
fileExit.addActionListener(newActionListener(){//菜單項事件處理
publicvoidactionPerformed(ActionEvente){//設置文本區字體大小
System.exit(0);
}
});
fileMenu.add(fileExit);
returnfileMenu;
}
//保存文本文件
privatevoidsaveText(){
JFi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論