版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于夫妻雙方離婚協(xié)議書
- 土地租賃合同雙方協(xié)議書七篇
- 2025無財(cái)產(chǎn)離婚協(xié)議書
- 面神經(jīng)炎病因介紹
- 錯(cuò)構(gòu)瘤病因介紹
- 蕁麻疹病因介紹
- 11化學(xué)中考真題匯編《氧氣的性質(zhì)》及答案
- (2024)乳制品加工項(xiàng)目可行性研究報(bào)告寫作范本(一)
- 2024-2025學(xué)年人教版八年級(jí)英語上學(xué)期期末真題 專題01 單項(xiàng)選擇(安徽專用)
- 2023年耐磨劑項(xiàng)目融資計(jì)劃書
- 2019.05.02缺表法測(cè)電阻練習(xí)
- 人教版小學(xué)數(shù)學(xué)六年級(jí)上冊(cè)第一單元測(cè)驗(yàn)雙向細(xì)目表
- 讀《讓兒童在問題中學(xué)數(shù)學(xué)》有感范文三篇
- 陳述句改成雙重否定句(課堂PPT)
- 人教版六年級(jí)數(shù)學(xué)上冊(cè)總復(fù)習(xí)教案
- 勞動(dòng)合同法測(cè)試題含答案
- 自閉癥兒童行為檢核表學(xué)前版
- 五年級(jí)上冊(cè)數(shù)學(xué)專項(xiàng)練習(xí)高的畫法 全國(guó)通用
- 民警個(gè)人季度小結(jié)范文(3篇)
- 商場(chǎng)商戶裝修入駐工作流程
- 新產(chǎn)品試產(chǎn)導(dǎo)入流程
評(píng)論
0/150
提交評(píng)論