《java程序设计简明教程--上机练习题参考答案.pdf》由会员分享,可在线阅读,更多相关《java程序设计简明教程--上机练习题参考答案.pdf(83页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 java程序设计简明教程上机练习题参考答案目 录上机练习题1.31.用循环语句分别打印九九乘法表.32.定义两个数组.53.编写一个简单的考试程序.6上机练习题2.81.编写程序,包括一个文本域和三个命令按钮.82.编写程序,包括一个文本框、一个密码框和两个按钮.103.编写程序,建立一个带有菜单的窗体.114.编写程序,将窗口尺寸设置为不可更改,并处理窗口事件.135.编写程序,用列表框列出一些选项,设置一个按钮.156.编写程序,用标签显示一道简单测试题,答案使用单选按钮列出17上机练习题3.191.编 写 Application在窗口内画54个不同颜色的小圆.192.编制Applet程
2、序,使用Graphics类中的各种图形绘制方法.213.编制Applet程序,以百叶窗效果显示图像.214.编 制 Applet程序,实 现 12个钢琴键及其声音的模拟.25上机练习题4.28Java程序设计简明教程1.假设在addressbook数据库表中,存在多个姓氏相同的人,根据这一情况,建立相应的查询功能.282.编写一个应用程序,使其可以从一个数据库的某个表中查询一个列的所有信息.303.设计一个数据库应用程序,功能是在学生数据库的成绩表中加入某门课程的所有学生的成绩.35上机练习题5.401.编写GUI程序,制作一个文本文件阅读器.402.编制程序,计算表达式“2*4*6+8*10
3、*12+.+26*28*30的值,并把结果输出到文件中.423.编制程序.434.编写程序,实现压缩、解压缩Zip文件.455.编写程序,从试题文件中抽取Java单选题进行测试练习.48上机练习题6.521.编制程序,求如下表达式的值.522.用继承Thread类的方法实现一个多线程程序.543.编制程序,同时显示两个时区的时钟,并将时钟的结果显示在Fram窗体中.564.使用异常处理机制和输入/输出处理机制编写一个程序.62上机练习题7.631.编 制 Applet程序,使用Graphics类的常用方法,绘制一面五星红2旗.632.编 制 Applet程序,实现一行文字的动画显示,即文字跑马
4、灯.643.编 制 Applet程序,实现图片的水中倒影.664.结合图形用户界面与事件处理,创建一个日历GUI程序.69上机练习题8.731.设计Java Applet程序,实现在图片上飘雪花的特效.732.设计一个通讯录,保存读者信息.763.构造一个程序,它在一个窗口描绘出一个小鸟的图标.82上机练习题11.用循环语句分别打印如图1-24所示的九九乘法表。【参考程序】文件XiTil.javapackage XiTi;import java.io.*;Java程序设计简明教程import java.lang.*;public class XiTil_l_l public static vo
5、id main(String args)String str=intij;for(i=l;i=9;i+)for(j=l;j=9;j+)str=i+*+j+=+i*j;if(ij)System.out.print();elseSystem.out.print(str.length()=5?str+:str+);)System.out.println();)一)文件 XiTil_l_2.javapackage XiTi;import java.io.*;import java.lang.*;public class XiTil_l_2public static void main(String a
6、rgs)String str=inti,j;for(i=l;i=9;i+)for(j=l;jj)System.out.print();elseSystem.out.print(str.length()=5?str+:str+);)System.out.println();一)4文件 XiTil_l_3.javapackage XiTi;import java.io.*;import j ava.lang.*;public class XiTil_l_3public static void main(String args)String str=int i,j;for(i=l;i=9;i+)fo
7、r(j=l;j=9;j+)str=i+*+j+=+i*j;System.out.print(str.length()=5?str+:str+);System.out.println();)2.定义两个数组,首先将第一个数组中的元素复制到第二个数组中,然后将第二个数数组进行从大到小的排序,最后将两个数组中的对应元素进行比较,试统计两个数组中对应位置上相同元素的个数。【参考程序】/文件 XiTil_2.javapackage XiTi;import java.io.*;import java.lang.*;public class XiTil_2public static void main(St
8、ring args)int a=278,l09,063,930,589,184,505,269,8,83;int b=new int10;int t,cnt=0;for(int i=0;i10;i+)bi=ai;for(int i=l;i10;i+)for(int j=0;j10-i;j+)if(bjbj+l)Java程序设计简明教程t=bj;bj=bj+l;bj+l=t;for(int i=0;i 1 1 i./9System.out.println();for(int i=0;i10;i+)System.out.print(ai+);System.out.println();System.
9、out.println();System out pnntlnC*I f 1*bSystem.out.println();for(int i=0;i10;i+)System.out.print(bi+);System.out.println();System.out.println();System.out.println(对应元素相同的个数为:System.out.println();)3.编写一个简单的考试程序。【参考程序】文件 XiTil_3.javapackage XiTi;import java.io.*;import java.util.Date;public class XiTi
10、l_3public static void main(String args)String yes=Y,ok=;、int x,x 1 ,y,opr=2,s,h,m,tl,t2;String op,str=,re=,a=A;do+cnt);6x=new Long(Math.round(Math.random()*99+l).intValue();y=new Long(Math.round(Math.random()*99+l).intValue();opr=new Long(Math.round(Math.random()*3+l).intValue();s=new Date().getSeco
11、nds();h=new Date().getHours();m=new Date().getMinutes();tl=h*3600+m*60+s;switch(opr)case 1:str=x+y+=?;re=Integer.toString(x+y);break;case 2:str=x+-+y+=?;re=Integer.toString(x-y);break;case 3:str=x+*+y+=?;re=Integer.toString(x*y);break;case 4:xl=Math.max(x,y);y=Math.min(x,y);x=xl;x=x-x%y;str=x+7+y+=?
12、;re=Integer.toString(x/y);break;System,out.print(str);try(BufferedReader in=new B ufferedReader(newInputStreamReader(System.in);ok=in.readLine();catch(IOException e);s=new Date().getSeconds();Java程序设计简明教程h=new Date().getHours();m=new Date().getMinutes();t2=h*3600+m*60+s;if(ok.equals(re.trim()System.
13、out.println(正确!用时:+(t2-tl)+秒);else if(a.equals(ok.toUpperCase()System.out.println(答案:+re+,请多努力!);elseSystem.out.printing错误!答案:+re);System.out.print(继续吗(Y/N)?);try(BufferedReader in=new BufferedReader(newInputStreamReader(System.in);ok=in.readLine();catch(IOException e);while(yes.equals(ok.toUpperCas
14、e();System.out.println();)上机练习题21.编写 程 序,包括一个文本域和三个命令按钮,按钮标题分别为红色、黄色和蓝色,单击相应的按钮,将文本域的前景色设置为红色、黄色和蓝色。【参考程序】import javax.swing.*;import javax.swing,event.*;import java.awt.event.*;import java.awt.*;public class xiti2_l extends JFrame implements ActionListenerJButton red,yellow,blue;J Text Area ta=new
15、JTextArea(5,20);xiti2_l()8red=new JButton(红色);yellow=new JButton(黄色);blue=new JButton(蓝 色)red.addActionListener(this);yellow.addActionListener(this);blue.addActionListener(this);JPanel jp=new JPanel();jp.setLayout(newFlowLayout(FlowLayout.CENTER);jp.add(red);jp.add(yellow);jp.add(blue);Container con
16、=getContentPane();con.add(ta,BorderLayout.CENTER);con.add(j p,Border Layout.SOUTH);setSize(300,200);setTitle(上机练习题2 );setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);validate();public void actionPerformed(ActionEvent e)JButton btn=(JButton)e.getSource();if(btn=red)ta.setForeground(Co
17、lor.red);)if(btn=yellow)ta.setForeground(Col or.yellow);if(btn=blue)ta.setForeground(Color.blue);)public static void main(String args)new xiti2_l();)Java程序设计简明教程2.编写程序,包括一个文本框、一个密码框和两个按钮。按钮标题分别为确定和取消,用户在密码框中输入密码,单击确定按钮,将在密码框中输入的字符显示在文本框中。【参考程序】import java.awt.*;import java.awt.event.*;import j avax.
18、swing.*;import javax.swing.event.public class xiti2_2 extends JFrame implements ActionListenerJPanel pl=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();JPanel p4=new JPanel();JPanel p5=new JPanel();JTextField text=new JTextField(15);JPasswordField password=new JPasswordField(15);JButton o
19、k=new JButton(确定);JButton cancel=new JButton(取消);xiti2_2()Container con=getContentPane();con.setLayout(new GridLayout(5,l);p2.add(new JLabel(密码:);p2.add(password);p3.add(new JLabel(文本:);p3.add(text);p4.add(ok);p4.add(cancel);ok.addActionListener(this);cancel.add ActionListener(this);con.add(pl);con.
20、add(p2);con.add(p3);con.add(p4);con.add(p5);setSize(300,200);setVisible(true);iosetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setTitle(上机练习题 2_2);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=ok)text.setText(password.getText();)if(e.getSource()=cancel)dispose();System.exit(O
21、);)public static void main(String args)new xiti2_2();)3.编 写 程 序,建立一个带有菜单的窗体。当用户选择“Color”或“Style”菜单的相关选项时,标签中文字的字体和颜色会发生相应的变化。【参考程序】import java.awt.*;import j ava.awt.event.*;import javax.swing.*;import javax.swing.event.*;class xiti2_3 extends J Frame implements ActionListenerJMenuBar menubar=new JM
22、enuBar();JText Area ta=new JTextArea(Hello Java!);xiti2_3()setJMenuBar(menubar);JMenu menu,submenu;JMenuItem menuitem;menu=new JMenu(Color);menu.setMne monic(KeyE vent.VK_C);menubar.add(menu);menultem=new JMenuItem(Yellow);Java程序设计简明教程menuItem.setMnemonic(KeyEvent.VK_Y);menuItem.addActionListener(th
23、is);menu.add(menuitem);menultem=new JMenuItem(Orange);menuItem.setMnemonic(KeyEvent.VK_O);menuItem.addActionListener(this);menu.add(menuitem);menultem=new JMenuItem(Pink,KeyEvent.VK_P);menuItem.addActionListener(this);menu.add(menuitem);menultem=new JMenuItem(Blue);menuItem.setMnemonic(KeyEvent.VK_B
24、);menuItem.addActionListener(this);menu.add(menuitem);menu=new JMenu(Style);menu.setMnemonic(KeyEvent.VK_S);menubar.add(menu);menultem=new JMenuItem(Plain);menuItem.setMnemonic(KeyEvent.VK_P);menuItem.addActionListener(this);menu.add(menuitem);menultem=new JMenuItem(Bold);menuItem.setMnemonic(KeyEve
25、nt.VK_B);menuItem.addActionListener(this);menu.add(menuitem);menultem=new JMenuItem(Italic);menuItem.setMnemonic(KeyEvent.VK_I);menuItem.addActionListener(this);menu.add(menuitem);menu=new JMenu(Exit);menu.setMnemonic(KeyEvent.VK_E);menubar.add(menu);menultem=new JMenuItem(Close Window);menuItem.set
26、Mnemonic(KeyEvent.VK_W);menuItem.addActionListener(this);menu.add(menuitem);Container cp=getContentPane();cp.add(ta,BorderLay out.SOUTH);12setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setTitle(菜单演示)setSize(300,200);setVisible(true);public void actionPerformed(ActionEvent e)if(e.getActionCommand()=
27、Yellow)ta.setForeground(Color.yellow);if(e.getActionCommand()=Orange)ta.setForeground(Color.orange);if(e.getActionCommand()=Pink)ta.setForeground(Color.pink);if(e.getActionCommand()=Blue)ta.setForeground(Color.blue);if(e.getActionCommand()=Plain)ta.setFont(newFont(Dialog,Font.PLAIN,24);if(e.getActio
28、nCommand()=Bold)ta.setFont(newFont(Dialog,Font.BOLD,24);if(e.getActionCommand()=Italic)ta.setFont(newFont(Dialog,Font.ITALIC,24);if(e.getActionCommand()=Close Window)System.exit(O);public static void main(String args)xiti2_3 menuexmple=new xiti2_3();)4.编写 程 序,将窗口尺寸设置为不可更改,并处理窗口事件,使得点击窗口关闭按钮时,会弹出对话框,
29、提示用户是否确定要关闭窗 o【参考程序】import java.awt.event.*;Java程序设计简明教程import javax.swing.*;class MyFrame extends JFrame private JLabel label;public MyFrame()setTitle(我的窗口)label=new JLabel(”请点击关闭按钮!JLabeLCENTER);getContentPane().add(label);为窗口添加关闭事件addWindowListener(new WindowCloseListener(this);将点击窗口关闭按钮默认的关闭窗口功能
30、去掉setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);设置窗口大小不可更改setResizable(false);setSize(300,200);set Visible(true);class WindowCloseListener extends Window Adapter JFrame f;public WindowCloseListener(JFrame frame)f=frame;f是对话框的父窗口)public void windowClosing(WindowEvent e)int i=JOptionPane.showCo
31、nfirmDialog(f,确定要关闭窗口 吗?,JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);if(i=JOptionPane.OK_OPTION)System.exit(O);点击确定退出程序public static void main(String args)JFrame frame=new MyFrame();)5.编 写 程 序,用 列 表 框 列 出 一 些 选 项,设 置 一 个 按 钮,点击按钮就 会 将 所 选 的 选 项 添 加 到 另 一 个 列 表 框 中,其 中 第 二 个 列 表 框 中 显
32、示的 已 选 项 目 可 以 删 除。程 序 运 行 界 面 如 图2-16所 示。【参 考 程 序】import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;class MyList extends JFrame JPanel panel;JButton add,re move;DefaultListModel listModel 1 ,listMode12;JList listl,list2;String s=”计 算 机 科 学 与 技 术”,”计 算 机 通 信 应 用 电 子”,
33、“电子商 务“,”会 计 电 算 化“,法律7工 商 管 理 ,“生 物 技 术”J建 筑 工 程技术 工 业 设 计“,“商 务 英 语“,“统 计”;ArrayList arrayl,array2;public MyList()setTitle(列 表 轴)add=new JButton();add.addActionListener(new AddActionListener();为按钮 注 册 监 听 器remove=new JButton();remove.addActionListener(new RemoveActionListener();为按钮 注 册 监 听 器listMo
34、del l=new DefaultListModel();表1创 建 一 个 列 表 框 模 型为列listModel2=new DefaultListModel();表2创 建 一 个 列 表 框 模 型for(int i=O;i=0)listModel2.addElement(listModel 1 .get(id);向列表框 2 中添加所选项listModel 1 .remove(id);将列表框 1 中所选项删除)class RemoveActionListener implements ActionListenerpublic void actionPerformed(ActionE
35、vent e)int id=-l;id=list2.getSelectedIndex();得到列表框 2 中被选中的项if(id=0)listModel 1 .addElement(listModel2.get(id);向列表框 1 中添加所选项16listModel2.remove(id);将列表框2中所选项删除)public static void main(String args)new MyList();一6.编写程序,用标签显示一道简单测试题,答案使用单选按钮列出,用户选择答案后,会弹出对话框显示结果或说明。【参考程序】import javax.swing.*;import java
36、.awt.*;import java.awt.event.*;class Question(public JFrame frame;public JPanel panel;static JLabel label;public J RadioButton bl,b2,b3;static String question,如果你意外地拿到一千元奖金,想去买一件很需要的大衣,但是钱不够;如果去买一双不急需要的运动鞋,则又多了数百元,你会怎么做?”;static String xxl=自己添些钱把大衣买回来。;static String xx2=买运动鞋再去买些其它的小东西。;static String
37、 xx3=什么都不买先存起来。;static String ddl=你的决断力不错,虽然有时也会三心二意、犹豫徘徊,可总是在重要关头作出决定,你最大的特色是作了决定不再反悔。static String dd2=你是拿不定主意的人,做事没主见,处处要求别人给你意见,很少自己做判断,因为个性上你有些自卑,不肯定自己。;static String dd3=你是判断力超级强的人,不客气地说,你甚至有点莽撞,就是因为你冲动率直的个性,反而考虑不够周Java程序设计简明教程详,你常常后悔自己匆匆作决定,忽略了其它事情。”;public JOptionPane optionPane;public Quest
38、ion()构造方法,完成布局frame=ne w J Fra me(心理测试);panel=new JPanel();panel.setLayout(new GridLayout(3,1);label=new JLabel(question,JLabel.CENTER);bl=new JRadioButton(xxl);b2=new JRadioButton(xx2);b3=new JRadioButton(xx3);ButtonGroup group=new ButtonGroupO;group.add(bl);group.add(b2);group.add(b3);RadioListene
39、r myListener=new RadioListener();b LaddActionListener(myListener);b2.addActionListener(myListener);b3.addActionListener(myListener);Container c=frame.getContentPane();c.add(label,BorderLayout.NORTH);c.add(panel,BorderLayout.CENTER);panel.add(bl);panel.add(b2);panel.add(b3);frame.pack();frame.set Vis
40、ible(true);class RadioListener implements ActionListenerpublic void actionPerformed(ActionEvent e)事件处理,点击选项弹出相应的对话框J RadioButton rb=(JRadioButton)e.getSource();if(rb=bl)optionPane.showMessageDialog(frame,ddl,JOptionPane.DEFAULT_OPTION);)if(rb=b2)18optionPane.showMessageDialog(frame,dd2,JOptionPane.D
41、EFAULT_OPTION);if(rb=b3)optionPane.showMessageDialog(frame,dd3,JOptionPane.DEFAULT_OPTION);)public static void main(String args)new Question();)上机练习题31.编 写 Application在窗口内画5 4 个不同颜色的小圆,每当窗口显7F在显ZF器上、从隐臧变成显ZF、从缩小图标还原、改变窗口的大小时,小圆所呈现的颜色也可以发生变化。(提示:使用随机数产生随 机 颜 色)。程序以不同颜色的小圆铺满窗口。如果在窗口内只显示某个特定的部分,其他部分则不显
42、示时。【参考程序】文件 RandomColorDemo.javaimport java.awt.*;import javax.swing.*;class RandomColorDemo extends JFrame static RandomColorDemo frm=new RandomColorDemo();public static void main(String args)frm.setTitle(Random Color);frm.setSize(200,150);frm.setVisible(true);public void paint(Graphics g)for(int x
43、=10;x=180;x=x+20)for(int y=30;y=140;y=y+20)int red=(int)(Math.random()*255);/红色的随机数Java程序设计简明教程int green=(int)(Math.random()*255);/绿色的随机数int blue=(int)(Math.random()*255);/蓝色的随机数g.setColor(new Coloured,green,blue);设置颜色g.fiHOval(x,y,15,15);/用指定的颜色填满小圆)文件 RandomColor.javaimport java.awt.*;import javax
44、.swing.*;class RandomColor extends JFrame static RandomColor frm=new RandomColor();public static void main(String args)frm.setTitle(Random Color);frm.setSize(200,150);frm.setVisible(true);)public void paint(Graphics g)g.setClip(35,37,125,100);/g.clipRect(35,37,125,100);for(int x=10;x=180;x=x+20)for(
45、int y=30;y=140;y=y+20)int red=(int)(Math.random()*255);/红色的随机数int green=(int)(Math.random()*255);/绿色的随机数int blue=(int)(Math.random()*255);/蓝色的随机数g.setColor(new Coloured,green,blue);设置颜色g.fillOval(x,y,15,15);用指定的颜色填满小圆)/g.clearRect(35,37,125,100);)202.编 制 Applet程序,使 用 Graphics类中的各种图形绘制方法,绘制一个可爱的熊宝宝(或
46、其他自己爱好的小动物,例如,小猪,小兔 等)。在小应用程序浏览器中查看程序的执行结果。【参考程序】import java.applet.*;import java.awt.*;import java.awt.Graphics;public class Bear extends Appletpublic void paint(Graphics g)g.drawOval(l 00,40,180,180);/faceg.fillOval(l20,90,40,35);/left eyeg.fillOval(220,90,40,35);/right eyeg.fillOval(l 80,140,25,2
47、5);/noseg.s etColor(Color.red);g.fillArc(l 66,170,50,30,180,180);/mouseg.fiUArc(85,25,80,80,25,223);/left earg.fillArc(215,25,80,80,-57,213);/right earg.drawLine(156,210,96,320);/bodyg.drawLine(96,320,126,410);g.drawLine(236,210,296,320);g.drawLine(296,320,256,410);g.drawLine(l 26,410,256,410);g.fil
48、l0val(80,240,50,50);/armg.fill0val(260,240,50,50);g.fill0val(100,390,50,50);/legg.fill0val(230,390,50,50);)3.编 制 Applet程序,以百叶窗效果显示图像。【参考程序】文件 Efficient.javaimport java.awt.*;import java.applet.*;import java.io.*;import java.awt.image.*;public class Efficient extends Applet implements RunnableJava程序设
49、计简明教程private Image img,showimage;private MediaTracker imageTracker;private int ImageW,ImageH,totalImage=5,currentimage,nextimage;private Thread thread;private int delay;private int totalPix,pixI,pix2,pix3,pix4,pix5,pixA,pixB;public void init()this.setBackground(Color.black);img=new Imagetotallmage;i
50、mageTracker=new MediaTracker(this);String s=new String();for(int i=0;itotallmage;i+)s=getParameter(image+(i+1);imgi=getImage(getCodeBase(),s);imageTracker.addImage(imgi,O);try(i mageTracker.waitForlD(O);catch(InterruptedException e)if(getParameter(delay)=null)delay=3000;)elsedelay=Integer.parseInt(g