华联学院《Java程序设计》期末机考卷B及参考答案_第1页
华联学院《Java程序设计》期末机考卷B及参考答案_第2页
华联学院《Java程序设计》期末机考卷B及参考答案_第3页
华联学院《Java程序设计》期末机考卷B及参考答案_第4页
华联学院《Java程序设计》期末机考卷B及参考答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

提交评论