版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度船舶安全技術(shù)評估與認(rèn)證合同范本20253篇
- 2025年度現(xiàn)代農(nóng)業(yè)示范區(qū)土地租賃合作框架協(xié)議3篇
- 2025年度文化遺產(chǎn)保護(hù)與修復(fù)承包協(xié)議3篇
- 2024模特時裝秀參與合同范本3篇
- 2024年版大數(shù)據(jù)中心建設(shè)運營合同
- 2024拖車合同協(xié)議書
- 專業(yè)化危險品道路運輸協(xié)議模板2024年版
- 2024招投標(biāo)保密協(xié)議范本:跨境電商平臺招投標(biāo)保密范本3篇
- 專業(yè)塊石運輸車輛服務(wù)協(xié)議2024修訂版版B版
- 2024新能源發(fā)電項目特許經(jīng)營協(xié)議
- 2024云南保山電力股份限公司招聘(100人)(高頻重點提升專題訓(xùn)練)共500題附帶答案詳解
- 人教版(2024)七年級上冊英語 Unit 1 You and Me 語法知識點復(fù)習(xí)提綱與學(xué)情評估測試卷匯編(含答案)
- 六年級期末家長會課件下載
- DZ∕T 0388-2021 礦區(qū)地下水監(jiān)測規(guī)范
- 計算機網(wǎng)絡(luò)信息安全理論與實踐教程
- 2024委托理財合同范文集錦
- 2024年重慶市學(xué)業(yè)水平模擬考試地理試卷(二)
- 西師大版2023-2024學(xué)年五年級數(shù)學(xué)上冊期末測試卷含答案
- 2024年浙江省寧波寧海縣事業(yè)單位公開招聘85人歷年公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 校區(qū)熱水供水系統(tǒng)維護(hù)服務(wù)第冊維保服務(wù)方案
- 3D打印行業(yè)研究報告
評論
0/150
提交評論