java程序设计简明教程--上机练习题参考答案

时间:2019-05-12 21:09:36下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《java程序设计简明教程--上机练习题参考答案》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《java程序设计简明教程--上机练习题参考答案》。

第一篇:java程序设计简明教程--上机练习题参考答案

《java程序设计简明教程》上机练习题参考答案

目 录

上机练习题1..................................................3 1.用循环语句分别打印九九乘法表......................................................................................................................3 2.定义两个数组......................................................................................................................................................4 3.编写一个简单的考试程序..................................................................................................................................4 上机练习题2..................................................6 1.编写程序,包括一个文本域和三个命令按钮...................................................................................................6 2.编写程序,包括一个文本框、一个密码框和两个按钮...................................................................................7 3.编写程序,建立一个带有菜单的窗体..............................................................................................................8 4.编写程序,将窗口尺寸设置为不可更改,并处理窗口事件...........................................................................9 5.编写程序,用列表框列出一些选项,设置一个按钮.....................................................................................10 6.编写程序,用标签显示一道简单测试题,答案使用单选按钮列出.............................................................11 上机练习题3.................................................13 1.编写Application在窗口内画54个不同颜色的小圆......................................................................................13 2.编制Applet程序,使用Graphics类中的各种图形绘制方法........................................................................14 3.编制Applet程序,以百叶窗效果显示图像....................................................................................................14 4.编制Applet程序,实现12个钢琴键及其声音的模拟..................................................................................17 上机练习题4.................................................18 1.假设在addressbook数据库表中,存在多个姓氏相同的人,根据这一情况,建立相应的查询功能.......18 2.编写一个应用程序,使其可以从一个数据库的某个表中查询一个列的所有信息.....................................20 3.设计一个数据库应用程序,功能是在学生数据库的成绩表中加入某门课程的所有学生的成绩.............23 上机练习题5.................................................26 1.编写GUI程序,制作一个文本文件阅读器....................................................................................................26

Java程序设计简明教程

2.编制程序,计算表达式“2*4*6+8*10*12+……+26*28*30”的值,并把结果输出到文件中....................27 3.编制程序............................................................................................................................................................28 4.编写程序,实现压缩、解压缩Zip文件.........................................................................................................29 5.编写程序,从试题文件中抽取Java单选题进行测试练习............................................................................32 上机练习题6.................................................34 1.编制程序,求如下表达式的值........................................................................................................................34 2.用继承Thread类的方法实现一个多线程程序...............................................................................................35 3.编制程序,同时显示两个时区的时钟,并将时钟的结果显示在Fram窗体中...........................................37 4.使用异常处理机制和输入/输出处理机制编写一个程序................................................................................41 上机练习题7.................................................42 1.编制Applet程序,使用Graphics类的常用方法,绘制一面五星红旗........................................................42 2.编制Applet程序,实现一行文字的动画显示,即文字跑马灯....................................................................42 3.编制Applet程序,实现图片的水中倒影........................................................................................................44 4.结合图形用户界面与事件处理,创建一个日历GUI程序............................................................................46 上机练习题8.................................................48 1.设计Java Applet程序,实现在图片上飘雪花的特效....................................................................................48 2.设计一个通讯录,保存读者信息....................................................................................................................50 3.构造一个程序,它在一个窗口描绘出一个小鸟的图标.................................................................................54

上机练习题参考答案

上机练习题1 1.用循环语句分别打印如图1-24所示的九九乘法表。【参考程序】

//文件XiTi1_1_1_1.java package XiTi;import java.io.*;import java.lang.*;public class XiTi1_1_1{ public static void main(String args[]){ String str=“ ”;int i,j;for(i=1;i<=9;i++){ for(j=1;j<=9;j++){ str=i+“*”+j+“=”+i*j;if(ij)System.out.print(” “);else System.out.print(str.length()==5?str+” “:str+” “);} System.out.println(”“);} } }

//文件XiTi1_1_3.java package XiTi;import java.io.*;import java.lang.*;public class XiTi1_1_3{ public static void main(String args[]){ String str=” “;3

Java程序设计简明教程

int i,j;for(i=1;i<=9;i++){ for(j=1;j<=9;j++){ str=i+”*“+j+”=“+i*j;System.out.print(str.length()==5?str+” “:str+” “);} System.out.println(”“);} } } 2.定义两个数组,首先将第一个数组中的元素复制到第二个数组中,然后将第二个数数组进行从大到小的排序,最后将两个数组中的对应元素进行比较,试统计两个数组中对应位置上相同元素的个数。

【参考程序】

//文件XiTi1_2.java package XiTi;import java.io.*;import java.lang.*;public class XiTi1_2{ public static void main(String[] args){ int a[]={278,109,063,930,589,184,505,269,8,83};int b[]=new int[10];int t,cnt=0;for(int i=0;i<10;i++)b[i]=a[i];for(int i=1;i<10;i++)for(int j=0;j<10-i;j++)if(b[j]

System.out.println(”“);System.out.println(”********************* b **********************“);System.out.println(”“);for(int i=0;i<10;i++)System.out.print(b[i]+” “);System.out.println(”“);System.out.println(”“);System.out.println(”对应元素相同的个数为:“+cnt);System.out.println(”“);} } 3.编写一个简单的考试程序。【参考程序】

上机练习题参考答案

//文件XiTi1_3.java package XiTi;import java.io.*;import java.util.Date;public class XiTi1_3{ public static void main(String[] args){ String yes=”Y“,ok=”“;int x,x1,y,opr=2,s,h,m,t1,t2;String op,str=”“,re=”“,a=”A“;do{ x=new Long(Math.round(Math.random()*99+1)).intValue();y=new Long(Math.round(Math.random()*99+1)).intValue();opr=new Long(Math.round(Math.random()*3+1)).intValue();s=new Date().getSeconds();h=new Date().getHours();m=new Date().getMinutes();t1=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: x1=Math.max(x,y);y=Math.min(x,y);x=x1;x=x-x%y;str=x+”/“+y+”=?“;re=Integer.toString(x/y);break;} System.out.print(str);try{ BufferedReader in =new BufferedReader(new InputStreamReader(System.in));ok=in.readLine();

}catch(IOException e){};s=new Date().getSeconds();h=new Date().getHours();m=new Date().getMinutes();t2=h*3600+m*60+s;if(ok.equals(re.trim()))System.out.println(”正确!用时:“+(t2-t1)+”秒“);else if(a.equals(ok.toUpperCase()))5

Java程序设计简明教程

System.out.println(”答案:“+re+”,请多努力!“);else System.out.println(”错误!答案:“+re);System.out.print(”继续吗(Y/N)?“);try{ BufferedReader in =new BufferedReader(new InputStreamReader(System.in));ok=in.readLine();

}catch(IOException e){};}while(yes.equals(ok.toUpperCase()));System.out.println(”“);} }

上机练习题2 1.编写程序,包括一个文本域和三个命令按钮,按钮标题分别为红色、黄色和蓝色,单击相应的按钮,将文本域的前景色设置为红色、黄色和蓝色。

【参考程序】

import javax.swing.*;import javax.swing.event.*;import java.awt.event.*;import java.awt.*;public class xiti2_1 extends JFrame implements ActionListener{ JButton red,yellow,blue;JTextArea ta=new JTextArea(5,20);xiti2_1(){ red=new JButton(”红色“);yellow=new JButton(”黄色“);blue=new JButton(”蓝色“);red.addActionListener(this);yellow.addActionListener(this);blue.addActionListener(this);JPanel jp=new JPanel();jp.setLayout(new FlowLayout(FlowLayout.CENTER));jp.add(red);jp.add(yellow);jp.add(blue);Container con=getContentPane();con.add(ta,BorderLayout.CENTER);con.add(jp,BorderLayout.SOUTH);setSize(300,200);setTitle(”上机练习题2_1“);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);validate();} public void actionPerformed(ActionEvent e){ JButton btn=(JButton)e.getSource();if(btn==red){ ta.setForeground(Color.red);

上机练习题参考答案

} if(btn==yellow){ ta.setForeground(Color.yellow);} if(btn==blue){ ta.setForeground(Color.blue);} } public static void main(String args[]){ new xiti2_1();} } 2.编写程序,包括一个文本框、一个密码框和两个按钮。按钮标题分别为确定和取消,用户在密码框中输入密码,单击确定按钮,将在密码框中输入的字符显示在文本框中。

【参考程序】

import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class xiti2_2 extends JFrame implements ActionListener{ JPanel p1=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 ok=new JButton(”确定“);JButton cancel=new JButton(”取消“);xiti2_2(){ Container con=getContentPane();con.setLayout(new GridLayout(5,1));p2.add(new JLabel(”密码:“));p2.add(password);p3.add(new JLabel(”文本:“));p3.add(text);p4.add(ok);p4.add(cancel);ok.addActionListener(this);cancel.addActionListener(this);con.add(p1);con.add(p2);con.add(p3);con.add(p4);con.add(p5);setSize(300,200);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setTitle(”上机练习题2_2“);validate();} public void actionPerformed(ActionEvent e){ if(e.getSource()==ok){ text.setText(password.getText());7

Java程序设计简明教程

} if(e.getSource()==cancel){ dispose();System.exit(0);} } public static void main(String args[]){ new xiti2_2();} } 3.编写程序,建立一个带有菜单的窗体。当用户选择“Color”或“Style”菜单的相关选项时,标签中文字的字体和颜色会发生相应的变化。

【参考程序】

import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;class xiti2_3 extends JFrame implements ActionListener{ JMenuBar menubar=new JMenuBar();JTextArea ta=new JTextArea(”Hello Java!“);xiti2_3(){ setJMenuBar(menubar);JMenu menu,submenu;JMenuItem menuItem;menu=new JMenu(”Color“);menu.setMnemonic(KeyEvent.VK_C);menubar.add(menu);menuItem=new JMenuItem(”Yellow“);menuItem.setMnemonic(KeyEvent.VK_Y);menuItem.addActionListener(this);menu.add(menuItem);menuItem=new JMenuItem(”Orange“);menuItem.setMnemonic(KeyEvent.VK_O);menuItem.addActionListener(this);menu.add(menuItem);menuItem=new JMenuItem(”Pink“,KeyEvent.VK_P);menuItem.addActionListener(this);menu.add(menuItem);menuItem=new JMenuItem(”Blue“);menuItem.setMnemonic(KeyEvent.VK_B);menuItem.addActionListener(this);menu.add(menuItem);menu=new JMenu(”Style“);menu.setMnemonic(KeyEvent.VK_S);menubar.add(menu);menuItem=new JMenuItem(”Plain“);menuItem.setMnemonic(KeyEvent.VK_P);menuItem.addActionListener(this);menu.add(menuItem);menuItem=new JMenuItem(”Bold“);menuItem.setMnemonic(KeyEvent.VK_B);menuItem.addActionListener(this);8

上机练习题参考答案

menu.add(menuItem);menuItem=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);menuItem=new JMenuItem(”Close Window“);menuItem.setMnemonic(KeyEvent.VK_W);menuItem.addActionListener(this);menu.add(menuItem);Container cp=getContentPane();cp.add(ta,BorderLayout.SOUTH);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setTitle(”菜单演示“);setSize(300,200);setVisible(true);} public void actionPerformed(ActionEvent e){ if(e.getActionCommand()==”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(new Font(”Dialog“,Font.PLAIN,24));if(e.getActionCommand()==”Bold“)ta.setFont(new Font(”Dialog“,Font.BOLD,24));if(e.getActionCommand()==”Italic“)ta.setFont(new Font(”Dialog“,Font.ITALIC,24));if(e.getActionCommand()==”Close Window“)System.exit(0);} public static void main(String args[]){ xiti2_3 menuexmple=new xiti2_3();} } 4.编写程序,将窗口尺寸设置为不可更改,并处理窗口事件,使得点击窗口关闭按钮时,会弹出对话框,提示用户是否确定要关闭窗口。

【参考程序】

import java.awt.event.*;import javax.swing.*;class MyFrame extends JFrame{ private JLabel label;public MyFrame(){ setTitle(”我的窗口“);label=new JLabel(”请点击关闭按钮!“,JLabel.CENTER);getContentPane().add(label);9

Java程序设计简明教程

//为窗口添加关闭事件

addWindowListener(new WindowCloseListener(this));//将点击窗口关闭按钮默认的关闭窗口功能去掉

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//设置窗口大小不可更改 setResizable(false);setSize(300,200);setVisible(true);} class WindowCloseListener extends WindowAdapter{ JFrame f;public WindowCloseListener(JFrame frame){ f=frame;//f是对话框的父窗口 } public void windowClosing(WindowEvent e){ int i=JOptionPane.showConfirmDialog(f,”确定要关“,”“,JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);if(i==JOptionPane.OK_OPTION){ System.exit(0);//点击确定退出程序 } } } public static void main(String[] args){ JFrame frame=new MyFrame();} }

闭窗口吗?5.编写程序,用列表框列出一些选项,设置一个按钮,点击按钮就会将所选的选项添加到另一个列表框中,其中第二个列表框中显示的已选项目可以删除。程序运行界面如图2-16所示。

【参考程序】

import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;class MyList extends JFrame { JPanel panel;JButton add,remove;DefaultListModel listModel1,listModel2;JList list1,list2;String[] s={”计算机科学与技术“,”计算机通信“,”应用电子“,”电子商务“,”会计电算化“,”法律“,”工商管理“,”生物技术“,”建筑工程技术“,”工业设计“,”商务英语“,”统计“};ArrayList array1,array2;public MyList(){ setTitle(”列表框“);add=new JButton(”>>“);add.addActionListener(new AddActionListener());//为按钮注册监听器 remove=new JButton(”<<“);remove.addActionListener(new RemoveActionListener());//为按钮注册监听器

listModel1=new DefaultListModel();//为列表1创建一个列表框模型 listModel2=new DefaultListModel();//为列表2创建一个列表框模型 for(int i=0;i

上机练习题参考答案

list1=new JList(listModel1);//通过列表框模型1创建列表框1 list2=new JList(listModel2);//通过列表框模型2创建列表框2 panel=new JPanel();panel.setLayout(new GridLayout(2,1));//面板用来放置按钮 panel.add(add);panel.add(remove);Container c=getContentPane();c.setLayout(new FlowLayout(FlowLayout.LEFT));c.add(list1);c.add(panel);c.add(list2);setSize(280,280);setVisible(true);} class AddActionListener implements ActionListener{ public void actionPerformed(ActionEvent e){ int id=-1;id=list1.getSelectedIndex();//得到列表框1中被选中的项 if(id>=0){ listModel2.addElement(listModel1.get(id));//向列表框2中添加所选项 listModel1.remove(id);//将列表框1中所选项删除 } } } class RemoveActionListener implements ActionListener{ public void actionPerformed(ActionEvent e){ int id=-1;id=list2.getSelectedIndex();//得到列表框2中被选中的项 if(id>=0){ listModel1.addElement(listModel2.get(id));//向列表框1中添加所选项 listModel2.remove(id);//将列表框2中所选项删除 } } } public static void main(String args[]){ new MyList();} } 6.编写程序,用标签显示一道简单测试题,答案使用单选按钮列出,用户选择答案后,会弹出对话框显示结果或说明。

【参考程序】

import javax.swing.*;import java.awt.*;import java.awt.event.*;class Question{ public JFrame frame;public JPanel panel;static JLabel label;public JRadioButton b1,b2,b3;static String question=”如果你意外地拿到一千元奖金,想去买一件很需要的大衣,但是钱不够;如果去买一双不急需要的运动鞋,则又多了数百元,你会怎么做?“;static String xx1=”自已添些钱把大衣买回来。“;11

Java程序设计简明教程

static String xx2=”买运动鞋再去买些其它的小东西。“;static String xx3=”什么都不买先存起来。“;static String dd1=”你的决断力不错,虽然有时也会三心二意、犹豫徘徊,可总是在重要关头作出决定,你最大的特色是作了决定不再反悔。“;static String dd2=”你是拿不定主意的人,做事没主见,处处要求别人给你意见,很少自已做判断,因为个性上你有些自卑,不肯定自己。“;static String dd3=”你是判断力超级强的人,不客气地说,你甚至有点莽撞,就是因为你冲动率直的个性,反而考虑不够周详,你常常后悔自己匆匆作决定,忽略了其它事情。“;public JOptionPane optionPane;public Question(){ //构造方法,完成布局 frame=new JFrame(”心理测试“);panel=new JPanel();panel.setLayout(new GridLayout(3,1));label=new JLabel(question,JLabel.CENTER);b1=new JRadioButton(xx1);b2=new JRadioButton(xx2);b3=new JRadioButton(xx3);ButtonGroup group=new ButtonGroup();group.add(b1);group.add(b2);group.add(b3);RadioListener myListener=new RadioListener();b1.addActionListener(myListener);b2.addActionListener(myListener);b3.addActionListener(myListener);Container c=frame.getContentPane();c.add(label,BorderLayout.NORTH);c.add(panel,BorderLayout.CENTER);panel.add(b1);panel.add(b2);panel.add(b3);frame.pack();frame.setVisible(true);} class RadioListener implements ActionListener{ public void actionPerformed(ActionEvent e){ //事件处理,点击选项弹出相应的对话框 JRadioButton rb=(JRadioButton)e.getSource();if(rb==b1){ JOptionPane.showMessageDialog(frame,dd1,”“,JOptionPane.DEFAULT_OPTION);} if(rb==b2){ JOptionPane.showMessageDialog(frame,dd2,”“,JOptionPane.DEFAULT_OPTION);} if(rb==b3){ JOptionPane.showMessageDialog(frame,dd3,”“,JOptionPane.DEFAULT_OPTION);} } } public static void main(String[] args){ new Question();} } 12

上机练习题参考答案

上机练习题3 1.编写Application在窗口内画54个不同颜色的小圆,每当窗口显示在显示器上、从隐藏变成显示、从缩小图标还原、改变窗口的大小时,小圆所呈现的颜色也可以发生变化。(提示:使用随机数产生随机颜色)。程序以不同颜色的小圆铺满窗口。如果在窗口内只显示某个特定的部分,其他部分则不显示时。

【参考程序】

//文件RandomColorDemo.java import 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=10;x<=180;x=x+20)for(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 Color(red,green,blue));// 设置颜色

g.fillOval(x,y,15,15);// 用指定的颜色填满小圆 } } }

//文件RandomColor.java import java.awt.*;import javax.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(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 Color(red,green,blue));// 设置颜色

g.fillOval(x,y,15,15);// 用指定的颜色填满小圆 } //g.clearRect(35,37,125,100);

Java程序设计简明教程

} } 2.编制Applet程序,使用Graphics类中的各种图形绘制方法,绘制一个可爱的熊宝宝(或其他自己爱好的小动物,例如,小猪,小兔等)。在小应用程序浏览器中查看程序的执行结果。

【参考程序】

import java.applet.*;import java.awt.*;import java.awt.Graphics;public class Bear extends Applet{ public void paint(Graphics g){ g.drawOval(100,40,180,180);//face g.fillOval(120,90,40,35);//left eye g.fillOval(220,90,40,35);//right eye g.fillOval(180,140,25,25);//nose g.setColor(Color.red);g.fillArc(166,170,50,30,180,180);//mouse g.fillArc(85,25,80,80,25,223);//left ear g.fillArc(215,25,80,80,-57,213);//right ear g.drawLine(156,210,96,320);//body g.drawLine(96,320,126,410);g.drawLine(236,210,296,320);g.drawLine(296,320,256,410);g.drawLine(126,410,256,410);g.fillOval(80,240,50,50);//arm g.fillOval(260,240,50,50);g.fillOval(100,390,50,50);//leg g.fillOval(230,390,50,50);} } 3.编制Applet程序,以百叶窗效果显示图像。【参考程序】

//文件Efficient.java import java.awt.*;import java.applet.*;import java.io.*;import java.awt.image.*;public class Efficient extends Applet implements Runnable{ private Image img[],showImage;private MediaTracker imageTracker;private int ImageW,ImageH,totalImage=5,currentImage,nextImage;private Thread thread;private int delay;private int totalPix,pix1[],pix2[],pix3[],pix4[],pix5[],pixA[],pixB[];public void init(){ this.setBackground(Color.black);img=new Image[totalImage];imageTracker=new MediaTracker(this);String s=new String(”“);for(int i=0;i

上机练习题参考答案

imageTracker.addImage(img[i],0);} try{ imageTracker.waitForID(0);}catch(InterruptedException e){} if(getParameter(”delay“)==null){ delay=3000;} else{ delay=Integer.parseInt(getParameter(”delay“));} ImageW=img[0].getWidth(this);ImageH=img[0].getHeight(this);totalPix=ImageW*ImageH;pix1=new int[totalPix];PixelGrabber PG1=new PixelGrabber(img[0],0,0,ImageW,ImageH,pix1,0,ImageW);try{ PG1.grabPixels();}catch(InterruptedException ex){} pix2=new int[totalPix];PixelGrabber PG2=new PixelGrabber(img[1],0,0,ImageW,ImageH,pix2,0,ImageW);try{ PG2.grabPixels();}catch(InterruptedException ex){} pix3=new int[totalPix];PixelGrabber PG3=new PixelGrabber(img[2],0,0,ImageW,ImageH,pix3,0,ImageW);try{ PG3.grabPixels();}catch(InterruptedException ex){} pix4=new int[totalPix];PixelGrabber PG4=new PixelGrabber(img[3],0,0,ImageW,ImageH,pix4,0,ImageW);try{ PG4.grabPixels();}catch(InterruptedException ex){} pix5=new int[totalPix];PixelGrabber PG5=new PixelGrabber(img[4],0,0,ImageW,ImageH,pix5,0,ImageW);try{ PG5.grabPixels();}catch(InterruptedException ex){} currentImage=0;pixA=new int[totalPix];pixB=new int[totalPix];showImage=img[0];thread=new Thread(this);thread.start();} public void paint(Graphics g){ g.drawImage(showImage,0,0,this);} public void update(Graphics g){ paint(g);} public void run(){ 15

Java程序设计简明教程

if(thread==null){ thread=new Thread(this);thread.start();} while(true){ try{ thread.sleep(delay);nextImage=((currentImage+1)%totalImage);if(currentImage==0){ System.arraycopy(pix1,0,pixA,0,totalPix);System.arraycopy(pix2,0,pixB,0,totalPix);showImage=createImage(new MemoryImageSource(ImageW,ImageH,pixA,0,ImageW));repaint();} if(currentImage==1){ System.arraycopy(pix2,0,pixA,0,totalPix);System.arraycopy(pix3,0,pixB,0,totalPix);showImage=createImage(new MemoryImageSource(ImageW,ImageH,pixA,0,ImageW));repaint();} if(currentImage==2){ System.arraycopy(pix3,0,pixA,0,totalPix);System.arraycopy(pix4,0,pixB,0,totalPix);showImage=createImage(new MemoryImageSource(ImageW,ImageH,pixA,0,ImageW));repaint();} if(currentImage==3){ System.arraycopy(pix4,0,pixA,0,totalPix);System.arraycopy(pix5,0,pixB,0,totalPix);showImage=createImage(new MemoryImageSource(ImageW,ImageH,pixA,0,ImageW));repaint();} if(currentImage==4){ System.arraycopy(pix5,0,pixA,0,totalPix);System.arraycopy(pix1,0,pixB,0,totalPix);showImage=createImage(new MemoryImageSource(ImageW,ImageH,pixA,0,ImageW));repaint();} while(true){ for(int i=0;i<(int)(ImageH/10);i++){ try{ thread.sleep(100);for(int j=0;j

上机练习题参考答案

currentImage=nextImage;repaint();}catch(InterruptedException e){} } } } 4.编制Applet程序,实现12个钢琴键及其声音的模拟。【参考程序】

//文件Piano.java import java.awt.*;import java.applet.*;class Keyboard extends Canvas {//钢琴键类

Color keyColor=Color.white;AudioClip key;int width,height;Keyboard(Color c, AudioClip k){//初始化钢琴键的颜色及声音 keyColor=c;setBackground(keyColor);key=k;width=this.getSize().width;height=this.getSize().height;} public boolean mouseDown(Event event, int x, int y){//鼠标按下事件 key.play();return true;} public void paint(Graphics g){//画钢琴键 width=this.getSize().width;height=this.getSize().height;g.setColor(Color.black);g.drawRect(0,0,width-1,height-1);} } public class Piano extends Applet{ private int height,width;private Keyboard key[];private AudioClip sound[];public void init(){ this.setLayout(null);width=this.size().width;height=this.size().height;key=new Keyboard[12];sound=new AudioClip[12];String s=new String(”“);for(int i=0;i<12;i++){ s=i + ”.au“;sound[i]=getAudioClip(getCodeBase(),s);} key[0]=new Keyboard(Color.white,sound[0]);key[1]=new Keyboard(Color.black,sound[1]);key[2]=new Keyboard(Color.white,sound[2]);key[3]=new Keyboard(Color.black,sound[3]);17

Java程序设计简明教程

key[4]=new Keyboard(Color.white,sound[4]);key[5]=new Keyboard(Color.white,sound[5]);key[6]=new Keyboard(Color.black,sound[6]);key[7]=new Keyboard(Color.white,sound[7]);key[8]=new Keyboard(Color.black,sound[8]);key[9]=new Keyboard(Color.white,sound[9]);key[10]=new Keyboard(Color.black,sound[10]);key[11]=new Keyboard(Color.white,sound[11]);key[1].setBounds(30,0,20,60);add(key[1]);key[3].setBounds(70,0,20,60);add(key[3]);key[6].setBounds(150,0,20,60);add(key[6]);key[8].setBounds(190,0,20,60);add(key[8]);key[10].setBounds(230,0,20,60);add(key[10]);key[0].setBounds(0,0,40,110);key[2].setBounds(40,0,40,110);key[4].setBounds(80,0,40,110);key[5].setBounds(120,0,40,110);key[7].setBounds(160,0,40,110);key[9].setBounds(200,0,40,110);key[11].setBounds(240,0,40,110);add(key[0]);add(key[2]);add(key[4]);add(key[5]);add(key[7]);add(key[9]);add(key[11]);} }

上机练习题4 1.假设在addressbook数据库表中,存在多个姓氏相同的人,根据这一情况,建立相应的查询功能,使用户可以在ResultSet中滚动记录。要求设计一个合适的图形界面。

程序源代码如下: 【参考程序】

//数据库连接使用ConnectServer类 import java.awt.*;import java.sql.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.util.*;import javax.swing.table.*;public class ex4_1 extends JFrame implements ActionListener{ JTable table;TableModel model;

上机练习题参考答案

DefaultTableModel dtm;Vector title=new Vector();JScrollPane p1;JPanel p3=new JPanel();JLabel bq1=new JLabel(”按姓氏或姓名查询“);JTextField combSs=new JTextField(6);JButton btn1=new JButton(”确定“);String strs=null,xxno,xscore;Statement stmt;ResultSet rs;ResultSetMetaData dbmd;public ex4_1(){ String sql=”select * from address “;try{ stmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(sql);dbmd=rs.getMetaData();for(int i=1;i<=dbmd.getColumnCount();i++)title.addElement(dbmd.getColumnName(i));dtm=new DefaultTableModel(null,title);table=new JTable(dtm);initTable();table.setRowHeight(20);p1=new JScrollPane(table);btn1.addActionListener(this);p3.add(bq1);p3.add(combSs);p3.add(btn1);this.getContentPane().add(p3,”North“);this.getContentPane().add(p1,”Center“);}catch(Exception e){System.out.println(e);dispose();} this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);}});setTitle(”学生信息查询“);setSize(600,400);setVisible(true);} void initTable(){ dtm.setRowCount(0);try{ rs.beforeFirst();while(rs.next()){ Vector v1=new Vector();for(int i=1;i<=dbmd.getColumnCount();i++)v1.addElement(rs.getString(i));dtm.addRow(v1);} }catch(SQLException e){e.printStackTrace();} dtm.fireTableStructureChanged();} public void actionPerformed(ActionEvent e){ Vector title1=new Vector();if(e.getSource()==btn1){ strs=(String)combSs.getText();String sql=”select * from address where 姓名 LIKE '“+strs+”%'“;19

Java程序设计简明教程

try{ stmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(sql);dbmd=rs.getMetaData();for(int i=1;i<=dbmd.getColumnCount();i++)title1.addElement(dbmd.getColumnName(i));dtm=new DefaultTableModel(null,title1);table=new JTable(dtm);}catch(Exception ee){System.out.println(ee);dispose();} initTable();p1=new JScrollPane(table);this.getContentPane().add(p1,”Center“);setTitle(”学生信息“);table.setRowHeight(20);setSize(600,400);setVisible(true);} } public static void main(String args[]){ if(!ConnectServer.conn(”jdbc:odbc:xsgl“,”sa“,”“)){ JOptionPane.showMessageDialog(null,”数据库连接不成功“);System.exit(0);} new ex4_1();} } 2.编写一个应用程序,使其可以从一个数据库的某个表中查询一个列的所有信息。【参考程序】

import java.awt.*;import java.sql.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import javax.swing.table.*;public class ex4_2 extends JFrame implements ActionListener{ JTable table;DefaultTableModel dtm;Vector title=new Vector();JScrollPane p1;JPanel p2=new JPanel();JPanel p3=new JPanel();JButton b1=new JButton(”首页“);JButton b2=new JButton(”上页“);JButton b3=new JButton(”下页“);JButton b4=new JButton(”尾页“);JLabel bb=new JLabel(” “);JButton btn1=new JButton(”查询“);JComboBox combSs=new JComboBox();int count=0;int pagesize=6;int pagecount=0;20

上机练习题参考答案

int page=1;Statement stmt;ResultSet rs;ResultSetMetaData dbmd;public ex4_2(){ String sql=”select * from baseinf“;try{ stmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(sql);count=getcount();pagecount=(int)count/pagesize+(count%pagesize==0?0:1);dbmd=rs.getMetaData();for(int i=1;i<=dbmd.getColumnCount();i++){ title.addElement(dbmd.getColumnName(i));combSs.addItem(dbmd.getColumnName(i));} dtm=new DefaultTableModel(null,title);table=new JTable(dtm);initTable();table.setRowHeight(20);p1=new JScrollPane(table);if(pagecount!=0)bb.setText(”第“+page+”页“);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);btn1.addActionListener(this);p2.add(b1);p2.add(b2);p2.add(b3);p2.add(b4);p2.add(bb);p3.add(btn1);p3.add(combSs);this.getContentPane().add(p3,”North“);this.getContentPane().add(p1,”Center“);this.getContentPane().add(p2,”South“);}catch(Exception e){System.out.println(e);dispose();} this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ try{ rs.close();stmt.close();ConnectServer.con.close();System.exit(0);}catch(SQLException ee){ee.printStackTrace();} }});setTitle(”书目信息分页浏览“);setSize(500,300);setVisible(true);} void initTable(){ dtm.setRowCount(0);try{ rs.beforeFirst();for(int i=1;i<1+pagesize*(page-1);i++)rs.next();int j=0;while(j

Java程序设计简明教程

j++;Vector v1=new Vector();for(int i=1;i<=dbmd.getColumnCount();i++)v1.addElement(rs.getString(i));dtm.addRow(v1);} }catch(SQLException e){e.printStackTrace();} dtm.fireTableStructureChanged();this.getContentPane();} public int getcount(){ int n=0;try{ if(rs.last()){ n=rs.getRow();rs.beforeFirst();return n;}else return 0;}catch(SQLException e){System.out.println(”有异常抛出“);return 0;} } public void actionPerformed(ActionEvent e){ Vector title1=new Vector();if(e.getSource()==btn1){ String strs=(String)combSs.getSelectedItem();String sql=”select no ,“+strs.trim()+” from baseinf“;try{ stmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(sql);count=getcount();dbmd=rs.getMetaData();for(int i=1;i<=dbmd.getColumnCount();i++)title1.addElement(dbmd.getColumnName(i));dtm=new DefaultTableModel(null,title1);table=new JTable(dtm);}catch(Exception ee){System.out.println(ee);dispose();} initTable();p1=new JScrollPane(table);this.getContentPane().add(p1,”Center“);setTitle(”书目信息按某一列查询浏览“);this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);}});setSize(500,300);setVisible(true);} else if(e.getSource()==b1)page=1;else if(e.getSource()==b2){if(page>1)page=page-1;} else if(e.getSource()==b3){if(page

”+page+“页”);} 22

上机练习题参考答案

public static void main(String args[]){ Font font=new Font(“JFrame”,Font.PLAIN,14);Enumeration keys=UIManager.getLookAndFeelDefaults().keys();while(keys.hasMoreElements()){ Object key=keys.nextElement();if(UIManager.get(key)instanceof Font)UIManager.put(key,font);} if(!ConnectServer.conn(“jdbc:odbc:libbook”,“sa”,“")){ JOptionPane.showMessageDialog(null,”数据库连接不成功“);System.exit(0);} new ex4_2();} } 3.设计一个数据库应用程序,功能是在学生数据库的成绩表中加入某门课程的所有学生的成绩。【参考程序】

//数据库为xsgl,表grade的结构为xno,xname,shx,yy,wl import java.awt.*;import java.sql.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.util.*;import javax.swing.JTable.*;import javax.swing.table.*;public class ex4_3 extends JFrame implements ActionListener{ JTable table;TableModel model;DefaultTableModel dtm;Vector title=new Vector();JScrollPane p1;JPanel p2=new JPanel();JPanel p3=new JPanel();JButton b1=new JButton(”刷新“);JLabel bq1=new JLabel(”插入一列或某列成绩“);JTextField combSs=new JTextField(6);JButton btn1=new JButton(”插入列“);String strs=null,xxno,xscore;Statement stmt;ResultSet rs;ResultSetMetaData dbmd;public ex4_3(){ String sql=”select * from grade“;try{ stmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(sql);dbmd=rs.getMetaData();for(int i=1;i<=dbmd.getColumnCount();i++)title.addElement(dbmd.getColumnName(i));dtm=new DefaultTableModel(null,title);23

Java程序设计简明教程

table=new JTable(dtm);initTable();model=table.getModel();model.addTableModelListener(new TableModelListener(){ public void tableChanged(TableModelEvent e){ int row=e.getFirstRow();int column=e.getColumn();Object data=model.getValueAt(row,column);try{ System.out.println(data);strs=combSs.getText();xscore=(String)data;xxno=(String)model.getValueAt(row,0);String sql=”update grade set “+strs+”=“+xscore+” where xno=“+xxno;stmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);stmt.executeUpdate(sql);System.out.println(”xno=“+xxno);table.requestDefaultFocus();}catch(Exception ee){System.out.println(”有异常“+ee.getMessage());} }});table.setRowHeight(20);p1=new JScrollPane(table);b1.addActionListener(this);btn1.addActionListener(this);p2.add(b1);p3.add(bq1);p3.add(combSs);p3.add(btn1);this.getContentPane().add(p3,”North“);this.getContentPane().add(p1,”Center“);this.getContentPane().add(p2,”South“);}catch(Exception e){System.out.println(e);dispose();} this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ try{ rs.close();stmt.close();ConnectServer.con.close();System.exit(0);}catch(SQLException ee){ee.printStackTrace();} } });setTitle(”学生成绩浏览“);setSize(600,400);setVisible(true);} void initTable(){ dtm.setRowCount(0);try{ rs.beforeFirst();while(rs.next()){ Vector v1=new Vector();for(int i=1;i<=dbmd.getColumnCount();i++)v1.addElement(rs.getString(i));dtm.addRow(v1);} 24

上机练习题参考答案

}catch(SQLException e){e.printStackTrace();} dtm.fireTableStructureChanged();} public void actionPerformed(ActionEvent e){ Vector title1=new Vector();if(e.getSource()==btn1){ strs=(String)combSs.getText();String sql=”ALTER TABLE grade ADD “+strs.trim()+” int“;try{ stmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);stmt.executeUpdate(sql);stmt.close();sql=”select * from grade“;stmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(sql);dbmd=rs.getMetaData();for(int i=1;i<=dbmd.getColumnCount();i++)title1.addElement(dbmd.getColumnName(i));dtm=new DefaultTableModel(null,title1);table=new JTable(dtm);}catch(Exception ee){System.out.println(ee);dispose();} initTable();p1=new JScrollPane(table);this.getContentPane().add(p1,”Center“);setTitle(”学生成绩信息“);this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });setSize(600,400);} else if(e.getSource()==b1){ String sql=”select * from grade“;try{ stmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(sql);dbmd=rs.getMetaData();for(int i=1;i<=dbmd.getColumnCount();i++)title.addElement(dbmd.getColumnName(i));dtm=new DefaultTableModel(null,title);table=new JTable(dtm);}catch(Exception ee){System.out.println(ee);dispose();} initTable();setTitle(”学生成绩浏览“);setSize(600,400);} } public static void main(String args[]){ Font font=new Font(”JFrame“,Font.PLAIN,14);Enumeration keys=UIManager.getLookAndFeelDefaults().keys();25

Java程序设计简明教程

while(keys.hasMoreElements()){ Object key=keys.nextElement();if(UIManager.get(key)instanceof Font)UIManager.put(key,font);} if(!ConnectServer.conn(”jdbc:odbc:xsgl“,”sa“,”“)){ JOptionPane.showMessageDialog(null,”数据库连接不成功“);System.exit(0);} new ex4_3();} }

上机练习题5 1.编写GUI程序,制作一个文本文件阅读器,文件菜单设置打开和退出命令,可以打开本地硬盘上文本文件,并将文件内容显示到文本框中,文本框不能编辑,退出命令能够退出程序。

【解题思路】

(1)界面设计:一个窗口,窗口中设置一个菜单条,菜单条上设置一个“文件”菜单,菜单中设置“打开”和“退出”菜单项,窗口中放置一个不可编辑的文本框并使其充满窗口;

(2)界面实现:创建一个类继承JFrame类,在构造方法中设置菜单条,添加文本框;

(3)功能设计:使两个菜单项响应事件,点击“打开”可将选中的文件内容显示在文本框中,点击“退出”可以退出程序;

(4)功能实现:在构造方法中为两个菜单项注册ActionListener监听器,用本类实现监听器接口,在实现的actionPerformed()方法中进行判断,如果事件源是“打开”菜单项,则调出打开文件对话框,获取选中的文件名,调用另一个显示文件内容的方法,该方法负责将文件内容用输入流读取后显示在文本框中,如果事件源是“退出”,则退出程序。

【参考程序】

//文件Reader.java import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Reader implements ActionListener{ private JFrame frame;private TextArea textArea;FileDialog fileDialog;public Reader(){//构造方法,完成布局 frame=new JFrame(”文本文件阅读器“);MenuBar mb=new MenuBar();Menu m1=new Menu(”文件“);MenuItem mi1=new MenuItem(”打开“);mi1.setActionCommand(”打开“);mi1.addActionListener(this);MenuItem mi2=new MenuItem(”退出“);mi2.setActionCommand(”退出“);mi2.addActionListener(this);m1.add(mi1);m1.add(mi2);mb.add(m1);frame.setMenuBar(mb);26

上机练习题参考答案

textArea=new TextArea();Container c=frame.getContentPane();c.add(textArea);frame.setSize(500,600);frame.setVisible(true);} public void actionPerformed(ActionEvent e){ if(e.getActionCommand()==”打开“){ //若点击“打开”,调出文件打开对话框,打开文件 fileDialog=new FileDialog(frame,”打开“,FileDialog.LOAD);fileDialog.setVisible(true);String path=fileDialog.getDirectory();String name=fileDialog.getFile();String file=path+name;openFile(file);} else{ //若点击“退出”,退出程序 System.exit(1);} } public void openFile(String file){ //打开文件方法,读取指定文件的内容,并显示在文本域中 try{ FileReader fr=new FileReader(file);BufferedReader br=new BufferedReader(fr);String s=br.readLine();while(s!=null){ textArea.append(s+”n“);s=br.readLine();} frame.setTitle(file);}catch(FileNotFoundException e1){ System.out.println(”文件没有找到!“);}catch(IOException e2){ System.out.println(e2.getMessage());} } public static void main(String[] args){ new Reader();} } 2.编制程序,计算表达式“2*4*6+8*10*12+„„+26*28*30”的值,并把结果输出到文件中。【参考程序】

//文件名xiti5_2.java import java.io.*;import java.awt.*;import java.applet.Applet;import java.awt.event.*;import javax.swing.*;public class xiti5_2 extends Applet implements ActionListener{ String Savepath;//用来指定文件的路径。JButton Button1,Button2;JLabel Label1,Label2;int s,i;27

Java程序设计简明教程

public void init(){ this.setSize(400,400);//设置了窗体显示的大小

Label1=new JLabel(”计算表达式2*4*6+8*10*12+......+26*28*30的值“,JLabel.CENTER);add(Label1);Label2=new JLabel(” “,JLabel.CENTER);add(Label2);Button1=new JButton(” 计算 “);add(Button1);Button2=new JButton(” 保存 “);add(Button2);Button1.addActionListener(this);Button2.addActionListener(this);this.setSize(400,180);} public void actionPerformed(ActionEvent e){ if(e.getSource()==Button1){ s=0;for(i=2;i<30;){ s=s+i*(i+2)*(i+4);i=i+6;} Label2.setText(” 计算结果为:“+s+” “);} //下面的一段代码是打开一个文本文件,并显示在文本框中 if(e.getSource()==Button2){ try{ Label2.setText(” 将结果输出到c:save.txt文件中“);Savepath=”c:save.txt“;//指定保存文件的路径

PrintWriter out=new PrintWriter(new FileWriter(Savepath));out.print(”“+s);//将文本框中的内容写入指定的文件中 out.close();//关闭文件流,释放资源 }catch(Exception eee){} } } } 3.编制程序,其功能是:读入一个顺序文件,该文件每条记录的三个数据项分别是职工姓名、基本工资和奖金,在读入每条记录后,将每个职工的基本工资增加百分之十后得到新的数据记录。

【参考程序】

//文件名为:xiti5_3.java import java.io.*;import java.awt.*;import java.applet.Applet;import java.awt.event.*;public class xiti5_3 extends Applet implements ActionListener{ Button Button1,Button2;Label Label1,Label2;TextArea ta;String Openpath;double chenji[]=new double[5];public static int i=0;public static String str[]=new String[5];public void init(){ 28

上机练习题参考答案

Button1=new Button(”打开文件“);add(Button1);Button2=new Button(”增加工资“);add(Button2);ta=new TextArea();add(ta);Button1.addActionListener(this);Button2.addActionListener(this);this.setSize(400,200);} public void actionPerformed(ActionEvent e){ if(e.getSource()==Button2){ Openpath=”d:save.txt“;int j;ta.setText(”“);try{ BufferedReader in=new BufferedReader(new FileReader(Openpath));//建立一个BufferedReader流对象 while((Openpath=in.readLine())!=null){//把文件中的内容一行一行地读出 str[i]=Openpath;i=i+1;} in.close();//关闭文件流,释放资源 for(j=0;j<5;j++){ str[j].trim();} for(j=0;j<5;j++){ chenji[j]=Integer.valueOf(str[j].toString().substring(15)).intValue();} for(j=0;j<5;j++){ chenji[j]=chenji[j]*(1+0.1);ta.setText(ta.getText()+str[j]+” “+chenji[j]+”n“);} }catch(Exception ee){} } if(e.getSource()==Button1){ ta.setText(”“);Openpath=”d:save.txt“;try{ BufferedReader in=new BufferedReader(new FileReader(Openpath));//建立一个BufferedReader流对象。

while((Openpath=in.readLine())!=null){ //把文件中的内容一行一行地读出 ta.setText(ta.getText()+Openpath+”n“);//将读出的内容显示在文本框中 } in.close();//关闭文件流,释放资源

}catch(Exception ee){ java.lang.System.exit(-1);} } } } 4.编写程序,实现压缩、解压缩Zip文件。【参考程序】

import java.awt.*;import java.awt.event.*;29

Java程序设计简明教程

import java.io.*;import java.util.*;import java.util.zip.*;import javax.swing.*;public class xiti5_4 extends JFrame implements ActionListener{ JTextArea textarea;JTextField infotip;String doc;long doczipsize=0;public xiti5_4(){ JMenuBar menubar=new JMenuBar();setJMenuBar(menubar);JMenu file=new JMenu(”File“,true);menubar.add(file);JMenuItem neww=new JMenuItem(”New“);neww.addActionListener(this);file.add(neww);JMenuItem open=new JMenuItem(”Open“);open.addActionListener(this);file.add(open);JMenuItem save=new JMenuItem(”Save“);save.addActionListener(this);file.add(save);JMenuItem exit=new JMenuItem(”Exit“);file.add(exit);add(”Center“,textarea=new JTextArea());add(”South“,infotip=new JTextField());this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} private void openFile(){ FileDialog dlg=new FileDialog(this,”Open“,FileDialog.LOAD);dlg.setVisible(true);textarea.setText(”“);String filename=dlg.getDirectory()+dlg.getFile();try{ File f=new File(filename);if(!f.exists())return;ZipInputStream zipis=new ZipInputStream(new FileInputStream(f));zipis.getNextEntry();DataInputStream dis=new DataInputStream(zipis);doc=dis.readUTF();dis.close();doczipsize=f.length();showTextandInfo();}catch(IOException ioe){ System.out.println(ioe);} } private void saveFile(){ 30

上机练习题参考答案

FileDialog dlg=new FileDialog(this,”Save“,FileDialog.SAVE);dlg.setVisible(true);String filename=dlg.getDirectory()+dlg.getFile();try{ if(!filename.endsWith(”.zip“)){ filename+=”.zip“;} File f=new File(filename);if(!f.exists())f.createNewFile();ZipOutputStream zipos=new ZipOutputStream(new FileOutputStream(f));zipos.setMethod(ZipOutputStream.DEFLATED);zipos.putNextEntry(new ZipEntry(”zip“));DataOutputStream os=new DataOutputStream(zipos);doc=textarea.getText();os.writeUTF(doc);os.close();doczipsize=f.length();showTextandInfo();}catch(IOException ioe){ System.out.println(ioe);} } private void showTextandInfo(){ textarea.replaceRange(doc,0,textarea.getText().length());infotip.setText(”uncompressed size:“+doc.length()+”compressed size:“+doczipsize);} public void actionPerformed(ActionEvent e){ String arg=e.getActionCommand();if(”New“.equals(arg)){ doc=”“;textarea.setText(”“);doczipsize=0;showTextandInfo();} else if(”Open“.equals(arg))openFile();else if(”Save“.equals(arg))saveFile();else if(”exit“.equals(arg)){ dispose();System.out.println(”无此命令“);} } public static void main(String args[]){ xiti5_4 ok=new xiti5_4();ok.setTitle(”zip sample“);ok.setSize(600,300);ok.setVisible(true);} } 31

Java程序设计简明教程

5.编写程序,从试题文件中抽取Java单选题进行测试练习。【参考程序】

import java.io.*;import javax.swing.*;import javax.swing.event.*;import java.awt.event.*;import java.awt.*;import java.util.*;public class xiti5_5 extends JFrame implements ActionListener,ItemListener{ String str[]=new String[7],s;FileReader file;BufferedReader in;JButton restart=new JButton(”重新练习“);JButton next=new JButton(”下一题目“);JButton finish=new JButton(”交卷“);JCheckBox option[]=new JCheckBox[4];JTextField score=new JTextField(10);JTextField question=new JTextField(40);int account=0;xiti5_5(){ for(int i=0;i<4;i++){ option[i]=new JCheckBox();option[i].addItemListener(this);} restart.addActionListener(this);next.addActionListener(this);finish.addActionListener(this);try{ file=new FileReader(”D:java.txt“);in=new BufferedReader(file);}catch(IOException e){} Box boxV=Box.createVerticalBox();JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();JPanel p4=new JPanel();p1.setLayout(new FlowLayout(FlowLayout.LEFT));p1.add(new JLabel(”题目“));p1.add(question);p2.setLayout(new FlowLayout(FlowLayout.LEFT));p2.add(new JLabel(”选择答案“));for(int i=0;i<4;i++){ p2.add(option[i]);} p3.setLayout(new FlowLayout(FlowLayout.CENTER));p3.add(new JLabel(”您的得分:“));p3.add(score);p4.setLayout(new FlowLayout(FlowLayout.CENTER));p4.add(restart);p4.add(next);p4.add(finish);boxV.add(p1);boxV.add(p2);boxV.add(p3);boxV.add(p4);Container con=getContentPane();con.add(boxV);this.setSize(800,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);32

上机练习题参考答案

this.validate();reading();} public void reading(){ int i=0;try{ s=in.readLine().trim();if(!(s.startsWith(”end“))){ StringTokenizer tokenizer=new StringTokenizer(s,”#“);while(tokenizer.hasMoreTokens()){ str[i]=tokenizer.nextToken();i++;} question.setText(str[0]);for(int j=1;j<=4;j++){ option[j-1].setLabel(str[j]);} } else if(s.startsWith(”end“)){ question.setText(”考试结束,点击交卷按钮查看得分。“);next.setEnabled(false);in.close();file.close();} }catch(Exception exp){question.setText(”无试题文件“);} } public void actionPerformed(ActionEvent e){ if(e.getSource()==restart){ account=0;next.setEnabled(true);score.setText(account+”分“);try{ file=new FileReader(”D:java.txt“);in=new BufferedReader(file);}catch(IOException ee){} reading();} if(e.getSource()==next){ reading();for(int j=0;j<4;j++){ option[j].setEnabled(true);option[j].setSelected(false);} } if(e.getSource()==finish){ int n=JOptionPane.showConfirmDialog(null,”交卷以后将不能再修改,确实要交卷吗?“, ”确认对话框“,JOptionPane.YES_NO_OPTION);if(n==JOptionPane.YES_OPTION){ for(int i=0;i<4;i++){ option[i].setEnabled(false);} score.setText(account*10+”分“);restart.setEnabled(false);next.setEnabled(false);33

Java程序设计简明教程

finish.setEnabled(false);} } } public void itemStateChanged(ItemEvent e){ for(int j=0;j<4;j++){ if(option[j].getLabel().equals(str[5])&&option[j].isSelected()){ account++;} } } public static void main(String args[]){ xiti5_5 ET=new xiti5_5();} }

上机练习题6 1.编制程序,求如下表达式的值。

M = sin(x)sin(xy)sin(xz)+

sin(y)sin(yx)(yz)+

sin(z)sin(zx)(zy)*E

式中,x,y,z从键盘输入,要求用自定义异常来捕获异常。E=5,PI=3.14159。【参考程序】

import java.awt.event.*;import java.applet.*;import java.awt.*;import java.math.*;public class xiti6_1 extends Applet implements ActionListener{ Label Label1,Label2,Label3,Label4,Label5;TextField Text1,Text2,Text3;int E=5;double PI=3.14159;double shu[]=new double[3];String answerStra;double jishu[]=new double[3];public void init(){ Label1=new Label(”输入x的值:“);add(Label1);Text1=new TextField(6);add(Text1);Label2=new Label(”输入y的值:“);add(Label2);Text2=new TextField(6);add(Text2);Label3=new Label(”输入z的值:“);add(Label3);Text3=new TextField(6);add(Text3);Label4=new Label(” “);add(Label4);34

上机练习题参考答案

Label5=new Label(” “);add(Label5);Text1.addActionListener(this);Text2.addActionListener(this);Text3.addActionListener(this);} public void actionPerformed(ActionEvent evt){ try{ shu[0]=Double.valueOf(Text1.getText()).doubleValue();shu[1]=Double.valueOf(Text2.getText()).doubleValue();shu[2]=Double.valueOf(Text3.getText()).doubleValue();Label5.setText(”“+ Result1());}catch(NumberFormatException e){ answerStra=”输入的必需是数字“;Label4.setText(answerStra);} catch(NumberRangeExcetion ee){ answerStra=ee.getMessage();Label4.setText(answerStra);} repaint();} public double Result1()throws NumberRangeExcetion{ int i;double answer=0;try{ jishu[0]=Math.sin(shu[0])/(Math.sin(shu[0]-shu[1])*Math.sin(shu[0]-shu[2]));jishu[1]=Math.sin(shu[1])/(Math.sin(shu[1]-shu[0])*Math.sin(shu[1]-shu[2]));jishu[2]=Math.sin(shu[2])/(Math.sin(shu[2]-shu[1])*Math.sin(shu[2]-shu[0]))*E;for(i=0;i<3;i++){ answer=jishu[i]+answer;} }catch(ArithmeticException eee){ answerStra=eee.toString();} return answer;} } class NumberRangeExcetion extends Exception{ NumberRangeExcetion(String msg){ super(msg);} }

2.用继承Thread类的方法实现一个多线程程序。程序先后启动三个线程,每个线程首先打印出一条线程创建信息,然后休眠一个随机时间,最后打印出线程结束信息退出。

【参考程序】

//文件xiti6_2.java import java.applet.*;import java.awt.*;import java.awt.event.*;import java.math.*;import javax.swing.*;public class xiti6_2 extends Applet implements ActionListener{ 35

Java程序设计简明教程

JTextArea TextA;JButton Button1;public void init(){ Button1=new JButton(”启动线程“);add(Button1);TextA=new JTextArea();add(TextA);Button1.addActionListener(this);this.setSize(400,220);} public void actionPerformed(ActionEvent e){ TextA.setText(”创建线程1“+”n“);xiancheng1 aa=new xiancheng1();aa.start();xiancheng2 bb=new xiancheng2();TextA.setText(TextA.getText()+”创建线程2“+”n“);bb.start();xiancheng3 cc=new xiancheng3();TextA.setText(TextA.getText()+”创建线程3“+”n“);cc.start();} class xiancheng1 extends Thread{ public void run(){ while(true){ try{ sleep((int)(Math.random()*1000));TextA.setText(TextA.getText()+”线程1运行结束“+”n“);} catch(InterruptedException e){} catch(Exception v){} } } } class xiancheng2 extends Thread{ public void run(){ while(true){ try{ sleep((int)(Math.random()*1000));TextA.setText(TextA.getText()+”线程2运行结束“+”n“);} catch(InterruptedException ee){} catch(Exception vv){} } } } class xiancheng3 extends Thread{ public void run(){ while(true){ try{ sleep((int)(Math.random()*1000));TextA.setText(TextA.getText()+”线程3运行结束“+”n“);} catch(InterruptedException eee){} 36

上机练习题参考答案

catch(Exception vvv){} } } } } 3.编制程序,同时显示两个时区的时钟,并将时钟的结果显示在Fram窗体中。【参考程序】

//文件xiti6_3.java import java.applet.*;import java.awt.*;import java.awt.event.*;import java.lang.NullPointerException;import java.util.*;import javax.swing.*;public class xiti6_3{ public static void main(String[] args){ JFrameDemo frame=new JFrameDemo();frame.init();frame.show();} } class JFrameDemo extends JFrame implements ActionListener{ JTextArea TextA;Date time;thead thead1;JMenuBar myMenu=new JMenuBar();//建立了一个菜单条。

JMenuItem[] fileMenuItems={new JMenuItem(”显示时间“),new JMenuItem(”隐藏时间“),new JMenuItem(”退出“)};JMenu[] menus={new JMenu(”文件“),new JMenu(”编辑“),new JMenu(”帮助“)};String str1,str2;int datB,datA;long yearB,monthB,dataB;long yearA,monthA,dataA;long hoursB,minutesB,secondsB;long hoursA,minutesA,secondsA;public void init(){ for(int i=0;i

if(e.getSource()==fileMenuItems[0]){ datB=time.getDay();37

Java程序设计简明教程

datA=time.getDay();switch(datB){ case 1:str1=”星期一“;break;case 2:str1=”星期二“;break;case 3:str1=”星期三“;break;case 4:str1=”星期四“;break;case 5:str1=”星期五“;break;case 6:str1=”星期六“;break;default :str1=”星期日“;break;} switch(datA){ case 1:str2=”星期一“;break;case 2:str2=”星期二“;break;case 3:str2=”星期三“;break;case 4:str2=”星期四“;break;case 5:str2=”星期五“;break;case 6:str2=”星期六“;break;default :str2=”星期日“;break;} yearB=time.getYear()+1900;monthB=time.getMonth()+1;dataB=time.getDate();hoursB=time.getHours();minutesB=time.getMinutes();secondsB=time.getSeconds();yearA=time.getYear()+1900;monthA=time.getMonth()+1;dataA=time.getDate();hoursA=time.getHours()+12;if(hoursA>=24){ hoursA=hoursA-24;} if(hoursB>=0 & hoursB<=12){ dataA=time.getDate()-1;} minutesA=time.getMinutes();secondsA=time.getSeconds();thead1=new thead();thead1.start();} //隐藏时间

if(e.getSource()==fileMenuItems[1]){ TextA.setText(”“);} //退出程序

if(e.getSource()==fileMenuItems[2]){ java.lang.System.exit(0);} } class thead extends Thread{ public void run(){ while(true){ TextA.setText(”n“+” 北京时间“+” 纽约时间“+”n“+”n“+yearB+”年“+monthB+”月“+dataB+”日

上机练习题参考答案

“+str1+” “+yearA+”年“+monthA+”月“+dataA+”日“+str2+”n“);TextA.setText(TextA.getText()+” “+hoursB+”时“+minutesB+”分“+secondsB+”秒“+” “+hoursA+”时“+minutesA+”分“+secondsA+”秒“);try{ sleep(1000);secondsB=secondsB+1;secondsA=secondsA+1;if(secondsB==60){ secondsB=0;minutesB=minutesB+1;} if(secondsA==60){ secondsA=0;minutesA=minutesA+1;} if(minutesB==60){ minutesB=0;hoursB=hoursB+1;} if(minutesA==60){ minutesA=0;hoursA=hoursA+1;} if(hoursB==24){ hoursB=0;dataB=dataB+1;datB=datB+1;} if(hoursA==24){ hoursA=0;dataA=dataA+1;datA=datA+1;} if(datB>7){ datB=1;} if(datA>7){ datA=1;} switch(datB){ case 1:str1=”星期一“;break;case 2:str1=”星期二“;break;case 3:str1=”星期三“;break;case 4:str1=”星期四“;break;case 5:str1=”星期五“;break;case 6:str1=”星期六“;break;default :str1=”星期日“;break;} switch(datA){ case 1:str2=”星期一“;break;case 2:str2=”星期二“;break;case 3:str2=”星期三“;break;case 4:str2=”星期四“;break;

Java程序设计简明教程

case 5:str2=”星期五“;break;case 6:str2=”星期六“;break;default :str2=”星期日“;break;} if(monthB==1||monthB==3||monthB==5||monthB==7||monthB==8||monthB==10||monthB==12){ if(dataB>31){ dataB=0;monthB=monthB+1;} } if(monthB==4||monthB==6||monthB==9||monthB==11){ if(dataB>30){ dataB=0;monthB=monthB+1;} } if(monthB==2){ if(yearB%4!=0||(yearB%100==0 & yearB%400!=0)){ if(dataB>28){ dataB=0;monthB=monthB+1;} } else{ if(dataB>29){ dataB=0;monthB=monthB+1;} } } if(monthA==1||monthA==3||monthA==5||monthA==7||monthA==8||monthA==10||monthA==12){ if(dataA>31){ dataA=0;monthA=monthA+1;} } if(monthA==4||monthA==6||monthA==9||monthA==11){ if(dataA>30){ dataA=0;monthA=monthA+1;} } if(monthA==2){ if(yearA%4!=0||(yearA%100==0 & yearA%400!=0)){ if(dataA>28){ dataA=0;monthA=monthA+1;} } else{ if(dataA>29){ dataA=0;monthA=monthA+1;40

上机练习题参考答案

} } } if(monthB>12){ monthB=0;yearB=yearB+1;} if(monthA>12){ monthA=0;yearA=yearA+1;} } catch(InterruptedException e){} } } } } 4.使用异常处理机制和输入/输出处理机制编写一个程序,实现当用户输入一个文件名时,判断这个文件名是否存在,若不存在,允许用户重新输入,直到输入了一个正确的文件名后,则打开这个文件并将文件中的内容输出到屏幕上。

【解题思路】

(1)定义从键盘接收数据的标准输入流对象和文件对象;

(2)在此文件对象的基础上建立缓冲文件输入流,如果文件不存在,通过异常处理机制显示错误的处理结果,并要求重新输入文件路径;

(3)如果输入的文件路径正确,使用缓冲文件输入流对象的方法将文件中的内容读取出来,并在屏幕上显示,然后退出整个程序。

【参考程序】

//文件xiti6_4.java import java.io.*;public class xiti6_4{ public static void main(String args[]){ File f;BufferedReader br;String str;while(true){ try{ InputStreamReader isr=new InputStreamReader(System.in);BufferedReader br1=new BufferedReader(isr);System.out.print(”请输入文件的全部路径:“);str=br1.readLine();f=new File(str);br=new BufferedReader(new FileReader(f));while((str=br.readLine())!=null)System.out.println(str);isr.close();br1.close();break;}catch(IOException e){ System.out.println(”输入错误!请重新输入:“);} } } 41

Java程序设计简明教程

}

上机练习题7 1.编制Applet程序,使用Graphics类的常用方法,绘制一面五星红旗。【参考程序】

import java.applet.*;import java.awt.*;import java.awt.Graphics;public class Flag extends Applet{ public void paint(Graphics g){ int x1[]={100,105,118,107,112,100,88,93,83,95,100};int y1[]={60,74,74,82,96,87,96,82,74,74,60};int x2[]={135,137,140,137,138,135,132,133,130,133,135};int y2[]={54,58,58,60,64,62,64,60,58,58,54};g.setColor(Color.red);g.fillRect(60,40,250,160);g.setColor(Color.yellow);g.fillPolygon(x1,y1,11);g.fillPolygon(x2,y2,11);g.copyArea(130,54,10,10,10,15);g.copyArea(130,54,10,10,10,30);g.copyArea(130,54,10,10,0,42);} } 2.编制Applet程序,实现一行文字的动画显示,即文字跑马灯。【参考程序】

import java.awt.*;import java.applet.*;public class ShadowText extends Applet implements Runnable{ private Image img;private Image offI;private Graphics offG;private Thread thread = null;private MediaTracker imageTracker;private int height,width;private String text;private int FontSize;private Font font;private int textcolor, backcolor, shadowcolor;public void init(){ width = this.size().width;height = this.size().height;

上机练习题参考答案

String s = new String(getParameter(”Text“));text = new String(”Hello“);if(s!= null)text = s;FontSize = 30;s = new String(getParameter(”FontSize“));if(s!= null)FontSize = Integer.parseInt(s);s = getParameter(”Fore“);textcolor =(s==null)? 0x000000 : Integer.parseInt(s, 16);s = getParameter(”Back“);backcolor =(s==null)? 0x000000 : Integer.parseInt(s, 16);s = getParameter(”shadow“);shadowcolor =(s==null)? 0x000000 : Integer.parseInt(s, 16);this.setBackground(new Color(backcolor));img = createImage(width,height);Graphics temp = img.getGraphics();temp.setColor(new Color(backcolor));temp.fillRect(0,0,width,height);temp.setColor(new Color(shadowcolor));font = new Font(”TimesRoman“,Font.BOLD,FontSize);temp.setFont(font);temp.drawString(text,10,height*3/4);temp.setColor(new Color(textcolor));temp.drawString(text,10-3,height*3/4-3);imageTracker = new MediaTracker(this);imageTracker.addImage(img,0);try{ imageTracker.waitForID(0);} catch(InterruptedException e){} offI = createImage(width,height);offG = offI.getGraphics();} public void start(){ if(thread == null){ thread = new Thread(this);thread.start();} } public void run(){ int x=width;while(thread!= null){ try{ offG.drawImage(img,x,0,this);repaint();thread.sleep(50);}catch(InterruptedException e){} x-=3;if(x <-width){ x = width;} } } 43

Java程序设计简明教程

public void update(Graphics g){ paint(g);} public void paint(Graphics g){ g.drawImage(offI,0,0,this);} } 3.编制Applet程序,实现图片的水中倒影。【参考程序】

//文件Ripple.java import java.awt.*;import java.applet.*;public class Ripple extends Applet implements Runnable{ Thread thread=null;private Graphics g,refraction;private Image image,refimage;private int currentImg;private int imageW=0,imageH=0;private boolean finishLoad=false;private final int frames=12;private String name=”“;public void init(){ String param;param=getParameter(”image“);if(param!=null)name=param;} public void start(){ if(thread==null){ thread=new Thread(this);thread.start();} } public void stop(){ if(thread!=null){ thread.stop();thread=null;} } public void run(){ currentImg=0;g=getGraphics();MediaTracker imageTracker=new MediaTracker(this);image=getImage(getDocumentBase(),name);imageTracker.addImage(image,0);try{ imageTracker.waitForID(0);finishLoad=!imageTracker.isErrorAny();}catch(InterruptedException e){} imageW=image.getWidth(this);imageH=image.getHeight(this);createRipple();repaint();44

上机练习题参考答案

while(true){ try{ if(!finishLoad)return;if(refimage!=null){ g.drawImage(refimage,(-currentImg*imageW),imageH,this);g.drawImage(refimage,((frames-currentImg)*imageW),imageH,this);} g.drawImage(image,0,-1,this);if(++currentImg==frames)currentImg=0;thread.sleep(50);}catch(InterruptedException e){} } } public void createRipple(){ Image offI=createImage(imageW,imageH+1);//创建一个缓冲区图像 Graphics offG=offI.getGraphics();int phase=0;int x,y;double p;offG.drawImage(image,0,1,this);for(int i=0;i<(imageH>>1);i++){ offG.copyArea(0,i,imageW,1,0,imageH-i);offG.copyArea(0,imageH-1-i,imageW,1,0,-imageH+1+(i<<1));offG.copyArea(0,imageH,imageW,1,0,-1-i);} refimage=createImage((frames+1)*imageW,imageH);refraction=refimage.getGraphics();refraction.drawImage(offI,frames*imageW,0,this);for(phase=0;phase

Java程序设计简明教程

g.drawImage(image,0,-1,this);} } 4.结合图形用户界面与事件处理,创建一个日历GUI程序,要求能够选择并更新显示2007年12个月份中的任意一个月份的具体信息。

【参考程序】

//文件Calendar.java import java.applet.Applet;import java.awt.*;import java.util.Date;public class Calendar extends Applet{ static final int TOP=90;static final int HEADER=30;static final int NCELLX=7;static final int CELLSIZE=60;static final int MARGIN=8;static final int FEBRUARY=1;Label yearLabel=new Label(”年份:“);TextField yearTextField=new TextField(”1996“,5);Label monthLabel=new Label(”月份:“);Choice monthChoice=new Choice();Button updateButton=new Button(”更新“);Date now=new Date();Font smallArialFont=new Font(”Arial“,Font.PLAIN,15);Font bigArialFont=new Font(”Arial“,Font.BOLD,30);String days[]={”星期日“,”星期一“,”星期二“,”星期三“,”星期四“,”星期五“,”星期六“};String months[]={”一月“,”二月“,”三月“,”四月“,”五月“,”六月“,”七月“,”八月“,”九月“,”十月“,”十一月“,”十二月“};int DaysInMonth[]={31,28,31,30,31,30,31,31,30,31,30,31};int userMonth;int userYear;public void init(){ setBackground(Color.white);userMonth=now.getMonth();userYear=now.getYear()+1900;yearLabel.setFont(smallArialFont);add(yearLabel);yearTextField.setFont(smallArialFont);yearTextField.setText(String.valueOf(userYear));add(yearTextField);monthLabel.setFont(smallArialFont);add(monthLabel);monthChoice.setFont(smallArialFont);for(int i=0;i<12;i++)monthChoice.addItem(months[i]);monthChoice.select(userMonth);add(monthChoice);updateButton.setFont(smallArialFont);add(updateButton);} public void paint(Graphics g){ FontMetrics fm;int fontAscent;int dayPos;46

上机练习题参考答案

int xSize,ySize;int numRows;int xNum,yNum;int numDays;String dayStr;int margin;String caption;fm=g.getFontMetrics();fontAscent=fm.getAscent();dayPos=TOP+(HEADER+fontAscent)/2;xSize=NCELLX * CELLSIZE;g.drawRect(0,TOP,xSize,HEADER);for(int i=0;ixSize){ xNum=CELLSIZE-MARGIN;yNum += CELLSIZE/2;} } g.setFont(bigArialFont);fm=g.getFontMetrics();margin=2 * fm.getDescent();caption=String.valueOf(userYear)+”年“ +months[userMonth];g.drawString(caption,(xSize-fm.stringWidth(caption))/2,TOP-margin);} public boolean action(Event e,Object o){//事件处理 int userYearInt;if(e.target instanceof Button){ if(”更新“.equals((String)o)){ userMonth=monthChoice.getSelectedIndex();userYearInt=Integer.parseInt(yearTextField.getText(),10);if(userYearInt>1581)userYear=userYearInt;repaint();return true;} } return false;} int NumberRowsNeeded(int year,int month){ //返回某年某月需要的行数 int firstDay;int numCells;if(year<1582)return(-1);47

Java程序设计简明教程

if((month<0)||(month>11))return(-1);firstDay=CalcFirstOfMonth(year,month);if((month==FEBRUARY)&&(firstDay==0)&&!IsLeapYear(year))return(4);numCells=firstDay+DaysInMonth[month];if((month==FEBRUARY)&&(IsLeapYear(year)))numCells++;return((numCells <= 35)? 5 : 6);} int CalcFirstOfMonth(int year,int month){//计算某年某月的第一天 int firstDay;int i;if(year<1582)return(-1);if((month<0)||(month>11))return(-1);firstDay=CalcJanuaryFirst(year);for(i=0;iFEBRUARY)&& IsLeapYear(year))firstDay++;return(firstDay%7);} boolean IsLeapYear(int year){ //判某年是否是闰年 if((year%100)==0)return((year%400)==0);return((year%4)==0);} int CalcJanuaryFirst(int year){//计算某年一月份的第一天 if(year<1582)return(-1);return((5+(year-1582)+CalcLeapYears(year))%7);} int CalcLeapYears(int year){ //计算闰年一月份的第一天 int leapYears;int hundreds;int fourHundreds;if(year<1582)return(-1);leapYears=(year-1581)/4;hundreds=(year-1501)/100;leapYears-= hundreds;fourHundreds=(year-1201)/400;leapYears += fourHundreds;return(leapYears);} }

上机练习题8 1.设计Java Applet程序,实现在图片上飘雪花的特效。【参考程序】

上机练习题参考答案

import java.applet.Applet;import java.awt.*;import java.util.Random;public class SnowPic extends Applet implements Runnable{ Thread mainThread;Image offScreen,gAlc[];Random rand;int stopFlag,snows,wind,threadSleep,snowSize;int[] snowX,snowY;long stopTime=0;Dimension dim;MediaTracker mt;public SnowPic(){} int getParameter(String s1,int s2){ String s=getParameter(s1);return(s!=null)?Integer.parseInt(s):s2;} int getParameter(String s1,int s2,int max,int min){ String s=getParameter(s1);if(s!=null){ if((s2=Integer.parseInt(s))>max)return max;else if(s2

Java程序设计简明教程

mainThread=new Thread(this);mainThread.start();} } public void stop(){ mainThread=null;} public void run(){ while(mainThread!=null){ try{ Thread.sleep(threadSleep);}catch(InterruptedException _ex){return;} repaint();} } public void drawBackSnow(Graphics g){ g.setColor(Color.white);for(int i=0;i=dim.width)snowX[i]=0;if(snowX[i]<0)snowX[i]=dim.width-1;if(snowY[i]>=dim.height||snowY[i]<0){ snowX[i]=Math.abs(rand.nextInt()%dim.width);snowY[i]=0;} } wind=rand.nextInt()%5-2;} public void paint(Graphics g){ offScreen.getGraphics().setColor(Color.black);offScreen.getGraphics().fillRect(0,0,dim.width,dim.height);offScreen.getGraphics().drawImage(gAlc[0],0,0,this);drawBackSnow(offScreen.getGraphics());g.drawImage(offScreen,0,0,null);} public void update(Graphics g){ paint(g);} } 2.设计一个通讯录,保存读者信息。要求:通讯录中包括一般通讯录中的基本信息,也需要实现普通的检索功能。通讯录写入文件中。程序执行时,需要从文件中导入数据,程序退出后,再将数据保存到文件中。

【参考程序】

import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.event.*;import java.math.*;import java.io.*;import java.util.*;import javax.swing.text.*;50

第二篇:中国特色社会主义理论体系简明教程作业题答案

绪论 坚定不移地坚持中国特色社会主义理论体系

第一节 中国特色社会主义理论体系 是马克思主义中国化的最新成就

一、马克思主义中国化及其两大理论成果

马克思主义中国化是中国共产党人的伟大创造。一部中国共 产党的历史,就是一部马克思主义中国化的光辉历史。(一)马克思主义中国化的涵义

马克思主义中国化,就是把马克思主义基本原理同中国具体 实际和时代特征结合起来,运用马克思主义的立场、观点、方法研 究和解决中国革命、建设、改革中的实际问题,坚持和发展马克思 主义;就是运用中国人民甚闻乐见的民族语言来阐述马克思主义 理论,揭示中国革命、建设、改革的规律,使之成为具有中国风格、中国气派的马克思主义。“(二)马克思主义中国化的必要性-实现马克思主义中国化,不仅成为夺取中国革命伟大胜利的 根本法宝,而且成为在新的历史条件下不断推进中国改革和建设 事业的根本选择。首先,实现马克思主义中国化是马克思主义的 理论品质决定的。其次,这是马克思主义理论发展的实践证明的。再次,这是我们党的历史经验所揭示的。(三)马克思主义中国化的两次历史性飞跃

第一次飞跃发生在新民主主义革命时期并发展完善于真社会 主义建设初期,中国共产党人经过反复探索,在总结成功和失败经

验的基础上,我到了农村包围城市、最后夺取全国胜利的有中国特 色的革命道路,并在革命胜利后积极探索适合我国国情的社会主 义建设道路,形成被实践证明了的关于中国革命和建设的正确的理论原则和经验总结一毛泽东思想。第二次飞跃发生在党的十一届三中全会以后,申国共产党人在总结我国经验和研究国际形势的基础上,开辟了中国特色社会主义道路,形成了被实践证明了的关于在中国建设、巩固和发展社会主义的正确的理论原则和经验总结,这就是中国特色社会主义理论体系。

二、中国特色社会主义理论体系是马克思主义中国化的最渐成果(一)中国特色社会主义理论体系同马克思列宁主义、毛泽东

思想既一脉相承又与时俱迸

中国特色社会主义理论体系,是科学社会主义基本原则同中

国实际和时代特征相结合的产物,是同马克思列宁主义、毛泽东思

想是一脉相承的,这个”脉“,就包括科学社会主义基本原则。'同 中国特色社会主义理论体系又是与时俱进的;(二)中国特色社会主义理论体系是具有实践基础的科学理论

体系

中国特色社会主义理论体系的创立和发展,是以社会主义初

级阶段国情为实践基础的。中国特色社会主义理论体系,是在建

设中国特色社会主义的思想路线、发展道路、发展阶段、发展战略、根本任务、发展动力、依靠力量、国际战略、领导力量和根本目的等重大问题的探索中取得的丰硕成果,是贯通哲学、政治经济学、科学社会主义等领域和覆盖经济、政治、科技、教育、文化、民族、军事、外交、统一战线、祖国统一、党的建设等方面的系统的科学理论体系。既坚持了科学社会主义基本原则,又具有鲜明的时代特征和中国特色;既继承了前人,又创新了内容,开拓了马克思主义新境界,是深深扎根于中国大地、符合中国实际的当代中国马克思主义。

(三)中国特色社会主义理论体系是不断发展的开放的理论体

中国特色社会主义理论体系具有时代开放性。首先,这个理论体系是在以往的实践过程中不断发展的。其次,随着今后改革开放和现代化建设实践的发展,中国特色社会主义理论体系还将得到进一步完善和发展。再次,申国特色社会主义理论体系并不拒绝而且还要吸收借鉴人类社会所创造的一切文明成果。

第二节中国特色社会主义理论体系的形成、发展和科学内涵

一、中国特色社会主义理论体系形成的历史条件

(一)和平与发展或为时代主题和当代世界发展新变化,是中 国特色社会主义理论体系形成的时代背景

中国特色社会主义理论体系不仅以和平发展的时代主题作为 重要的立论基础之不,而且很多重要的政策、思想都是依据这个主 题而提出来的。中国特色社会主义理论体系的内容通篇体现着和平与发展时代主题的要求。

(二)当代中国的基本国情即正处于并将长期处于社会主义初 级阶段,是申国特色社会主义理论体系形成发展的现实依据

中国特色社会主义理论体系就是马列主义基本原理与当代中 国国情相结合的产物。社会主义初级阶段理论的确立,对于中国 特色社会主义理论与实践都具有非常重要的意义。社会主义初级 阶段理论,是中国特色社会主义的逻辑起点,是中国特色社会主义 理论体系的重要内容,中国特色社会主义理论体系的基百,是我们 制窄和执行正确的路线和政策的根本依据。

(三)我国的改革开放和社会主义现代化建设实践,是中国特 色社会主义理论体系形成的实践基础

改革开放作为一项全新的革命性变革事业,它内在地呼唤和 要求科学理论的产生,并促动了马克思主义申国化崭新阶段的开 启。在改革开放和现代化建设的过程中,形成了一系列理论原则、战略思想和根本指导方针,正确回答了中国社会主义现代化建设 的基本问题,构成了申国特色社会主义理论体系。

(四)我国社会主义建设和改革的历史经验以及其他国家社会 主义兴衰成败的历史经验,是中国特色社会主义理论形成的历史 依据

我国的社会主义事业有过胜利发展的时期,也有过严重的曲 折。其他社会主义国家也存在类似的问题。中国特色社会主义理 论体系,正是我们党站在时代的高度,以马克思恩格斯列宁的科学 社会主义理论作为思想基础,在总结我国及其他社会主义国家兴 衰成败的经验教训并吸收借鉴人类社会文明成果的基础上形成和 发展起来的。

(五)毛泽东思想是中国特色社会主义理论体系形成的最直接 的理论前提和思想基础

从理论起点和认识源头上来说,申国共产党人对中国特色社 会主义的探索,对中国特色社会主义理论体系的孕育和创建,是从 以毛泽东为核心的党的第一代领导集体开始的。以毛泽东为代表 的党的第一代领导集体就走自己的道路问题进行了长期的探索和 努力,积累了正反两个方面的重要经验,提出许多正确的重要思想 和观点。这些思想和观点,对于人们加深对社会主义的理解、把握 建设和发展社会主义规律发挥了重要作用,也为中国特色社会主 义理论体系的形成提供了重要的前提和基础。

二、中国特色社会主义理论体系的形成私发展过程(一)命题提出和开创阶段

1982年党的十二大,邓小平第一次明确提出建设有中国特色 社会主义的理论命题。经过探索,实践上取得了举世瞩目的伟大 成就。理论上,党的十三大报告、党的十三届七中全会和党的十四 大报告都作出一次比一次更丰富的概括。党的十五大报告将建设 有中国特色社会主义理论命名为邓小平理论,奠定了中国特色社 会主义的理论基础,也奠定了中国特色社会主义理论体系的基本 框架,是中国特色社会主义理论体系的开创性成果,标志着中国特 色社会主义理论体系已初步形成。(二)进一步展开和发展阶段

以江泽民为核心的党的第三代中央领导集体,高举邓小平理

论伟大旗臶,在深刻认识和准确把握世情、国情、党情发展变化的 基础上,创立”三个代表“重要思想,把中国特色社会主义伟大事业 成功推进新世纪。党的十六大把”三个代表“重要思想写进党章,同马列主义、毛泽东思想、邓小平理论一道确立为我们党必须长期 坚持的指导思想。进一步发展了中国特色社会主义,丰富了中国 特色社会主义理论体系的基本内容。(三)最新发展和完善阶段

以胡锦涛为总书记的党中央,坚持以邓小平理论和”三个代 表“重要思想为指导,继续推进理论创新和实践创新,提出了科学 发展观等重大战略思想。便中国特色社会主义理论体系得以进一 步完善。党的十七大创造性地提出了”中国特色社会主义理论体 系“这个科学概念和科学命题,并对它的内涵做了明确规定和深刻 阐述。

三、中国特色社会主义理论体系的科学内涵(一)中国特色社会主义理论体系的重要组成部分

党的十七大明确指出,中国特色社会主义理论体系,就是包括 邓小平理论、”三个代表“重要思想以及科学发展观等重大战略思 想在内的科学理论体系。其中:邓小平理论是申国特色社会主义 理论体系的开创之作,是最基础的重要组成部分。”三个代表“重 要思想是中国特色社会主义理论体系承上启下的极为重要的组成 部分。科学发展观等重大战略思想是中国特色社会主义理论体系 的重要创新成果。

(二)中国特色社会主义理论体系的基本内容

中国特色社会主义理论体系的基本内容包括:社会主义初级 阶段理论,社会主义本质理论,社会主义发展动力理论,社会主义 改革开放理论,社会主义现代化建设理论,社会主义市场经济理 论,社会主义民主法治理论,社会主义思想文化建设理论,社会主 义和谐社会理论,社会主义科学发展理论,军队现代化和国防建设 理论,”一国两制“和祖国和平统一理论,社会主义领导力量和依靠 力量理论,马克思主义执政党建设理论等。这些基本理论,涵盖了 经济、政治、文化、社会、对外关系和党的建设等多领域内的有关理 论原理和原则,构成了中国特色社会主义理论体系最基本、最核心 的内容,也集中表现了中国特色社会主义在理论上对科学社会主 义的创新和发展。

第三节 坚持中国特色社会主义理论体系不动摇

一、高举中国特色社会主义伟大旗臶,必须坚持和发展中国特 色社会主义理论体系

(一)坚持和发展中国特色社会主义理论体系,是在新世纪新 阶段推动我国发展的迫切需要

当今世界正处在大变革大调整之中,我国发展既面临着前所 未有的机遇,也面对前所未有的挑战。从国内看,经过30年的改 革开放和社会主义现代化建设,我国的经济实力、综合国力、人民 生活水平都有了显著提高。在新的历史起点上,面对全面建设小 康社会的艰巨任务,面对中国特色社会主义发展的崭新实践,我们

要奋力开拓中国特色社会主义更为广阔的发展前景,就必须用中 国特色社会主义理论体系统一思想、凝聚力量,毫不动摇地坚持和 发展中国特色社会主义。

(二)坚持和发展中国特色社会主义理论体系,是坚持和发展 马克思主义的必然要求

申国特色社会主义理论体系在马克思主义和社会主义发展史 上具有极其重要的历史地位。中国特色社会主义理论体系的重大 意义就在于,它首次比较系统地回答了像中国这样经济文化比较 落后的国家在建立社会主义制度以后,怎样建设、巩固和发展社会 主义的一系列重大问题,从而在这个难题上取得了历史性的突破。这是我们党对世界社会主义运动的一大贡献。

(三)坚持和发展中国特色社会主义理论体系,是中华民族实 现伟大复兴的根本要求

中国特色社会主义理论体系是我们党继往开来、与时俱进,团 结带领全国各族人民沿着中国特色社会主义道路实现中华民族伟 大复兴唯一正确的理论。这个理论体系既体现了中国建设和发展 社会主义的特殊性,又必然会对世界社会主义和人类进步事业产 生广泛而深远的影响。

二、把深入学习贯彻申国特色社会主义理论体系放在头等重 要地位

(一)坚持用中国特色社会主义理论体系武装头脑

全面把握中国特色社会主义理论体系,深刻领会中国特色社

会主义理论体系的根本立场、基本观点、科学方法,着力从世界观 和方法论上提高马克思主义理论水平和认识世界、改造世界的能 力,努力做到认识上有新提高、思想上有新收获。增强坚持和发展 中国特色社会主义理论体系的自觉性和坚定性,进一步在武装头 脑、指导实践、推动工作上下功夫,不断提高全党的思想理论水平,不断夯实全国各族人民团结奋斗的共同思想基础,充分发挥科学 理论的指导作用,在真学、真懂、真信、真用这”四真“上下功夫。(二)弘扬理论联系实际的马克思主义学风

理论的活力植根于实践,学习的目的全在于运用。学习申国 特色社会主义理论体系,必须同党带领人民进行的发展申国特色 社会主义的生动实践紧密结合起来,同推进改革发展稳定各项工 作的实际紧密结合起来,同党员、干部改造客观世界和主观世界的 实际紧密结合起来,坚持用中国特色社会主义理论体系研究新情 况、解决新问题,努力做到学以致用、用以促学、学用相长。(三)坚持求实与创新、坚持和发展相结合 〃

要始终坚持解放思想、实事求是、与时俱进,紧密结合新的时 代条件,在丰富实践的基础上大胆探索,在科学认识的前提下勇于 创新,不断有所发现、有所创造、有所前进,不断深化对共产党执政 规律、社会主义建设规律、人类社会发展规律的认识,吸收借鉴人 类社会所创造的一切文明成果,大力推进中国特色社会主义理论 体系大众化。

三、学习重点

工确理解中国特色社会主义理论体系是马克思主义中国化 的最渐成果。

2正确把握中国特色社会主义理论体系的科学内涵。3坚持中国特色社会主义理论体系不动摇。

第一章 邓小平理论基本问题

一、目的要求

通过本章的学习,首要的是要搞清楚”什么是社会主义、怎样 建设社会主义“,这是中国特色社会主义理论贯穿始终的根本间 题。邓小平在深刻总结历史经验的基础上,紧紧抓住这个首要的 根本问题,深刻揭示了社会主义的本质,系统回答了在中国这样一 个经济文化落后的国家如何建设、巩固和发展社会主义的一系列 基本问题,从而把对社会主义的认识和实践提高到了新的科学水平。

二、学习重点

1、邓小平社会主义本质论的特点。

2、走自己的路,建设中国特色社会主义

三、内容提要

第一节 搞社会主义,必须首先搞清楚 ”什么是社会主义、怎样建设社会主义“

一、我们最重要的经验教训

1、过去在什么是社会主义这个问题上有”不同理解“,正是这 种不同理解导致了长期忽视生产力的发展。

2、在什么是社会主义这样的问题上也要解放思想。

3、过去我们对什么是社会主义的认识上”不是完全清醒的“或 ”没有完全搞清楚“。

4、什么是社会主义,怎样建设社会主义,”还在摸索之中“。

5、我们虽然搞了社会主义但不够格。

在勇于承认过去我们长期没有摘清楚”什么是社会主义、怎样 建设社会主义“的前提下,我们党和邓小平进一步认识到,搞清楚 什么是社会主义、怎样建设社会主义是最重要的经验教训。

二、传统社会主义关于”什么是社会主义、怎样建设社会主义“ 的理论与实践及其主要教训

社会主义从空想发展到科学,是马克思恩格斯的伟大功绩。(1)将来代替资本主义的共产主义社会必须建立在生产力高度发 达的基础之上。(2共产主义社会划分为两个发展阶段,即低级阶 段(或第一阶段)和高级阶段。(3)共产主义社会两个阶段实行生 产资料的公有制。(4)共产主义社会的低级阶段实行按劳分配的 原则。(5)社会对生产和再生产过程进行有计划的调节,彻底消除 了资本主义生产的无政府状态,在自觉运用客观经济规律的基础 上,保证国民经济比资本主义经济以更快的速度向前发展。

列宁曾经设想不立即消灭资本主义和小生产,而是建立由国 家控制的生产和分配制度,通过国家资本主义走向社会主义。

列宁的新经济政策对后来的社会主义实践特别是对我国的改 革开放产生了重大影响,这是不争的事实。

斯大林在领导苏联社会主义建设的过程中,对什么是社会主 义、怎样建设社会主义有独特见解,社会主义建设也取得了重大成 就。但他对社会主义的认识也有严重的错误,在实践中也暴露出 严重的弊端。

第二节 什么是社会主义

一、改革开放以前党和毛泽东对什么是社会主义的认识

在领导社会主义建设的过程申,毛泽东和我们党逐步形成了 对社会主义的相对固定的认识。其主要内容是: 第一,生产资料的全民所有制;第二,计划经济;第三,按劳分 配;第四,社会主义社会是阶级斗争激烈进行着的社会。

二、邓小平的社会主义本质论

”社会主义的本质,是解放生产力,发展生产力,消灭剥削,消 除两极分化,最终达到共同富裕。“ 纵观邓小平对社会主义认识的过程,不难发现,邓小平的社会 主义本质论从目的和目标层次上揭示了什么是社会主义。首先,邓小平把生产力的解放和发展放在了社会主义本质的首要符合马克思主义基本原理和社会主义建设的实际。其次,”消灭剥

削,消除两极分化,最终达到共同富裕“,是邓小平社会主义本质论 的另一层含义,明确了社会主义的根本目标,三、邓小平社会主义本质论的突出特点

邓小平的社会主义本质论与以往人们对社会主义的认识相 比,具有十分鲜明的特点:

第一,在目的和目标的层次上认识社会主义;第二,在动态中 把握社会主义;第三,在人民群众的生活中体现社会主义本质。

邓小平的社会主义本质论把我们党对社会主义的认识提高到 了新的科学水平;正如党的十五大报告所指出的:”邓小平理论坚 持科学社会主义理论和实践的基本成果,抓住什么是社会主义、怎 样建设社会主义这个根本问题,深刻揭示社会主义的本质,把对社 会主义的认识提高到新的科学水平。新时期的思想解放,关键就 是在这个问题上的思想解放。“ 第三节 走自己的路,建设中国特色社会主义

一、建设中国特色社会主义,必须坚持走自己的路

一切从中国的实际出发,走自己的路,是中国革命之所以取得 胜利的重要原因。

走自己的路,建设中国特色社会主义,首先要求我们坚持解放 思想、实事求是的思想路线,以科学的态度对待马克思主义,不照 抄照搬经典作家的个别结论,反对教条主义。

走自己的路,建设中国特色社会主义,还要求我们一切从我 国的客观实际出发,不照抄照搬别国的经验或模式。

二、建设中国特色社会主义,必须认清国情,从我国社会主义 初级阶段的现实出发

建设中国特色社会主义,制定正确的路线、纲领和方针政策,必须对现实国情和所处的历史阶段做出切合实际的科学判断。实 践证明,正确认识国情和社会主义的发展阶段,是建设中国特色社

会主义〃的根本问题。过去我们在这个问题上屡屡失误,甚至整个 世界社会主义运动在这个问题上同样屡屡失误,总是超越阶段,过 高估计生产力发展水平和国家的现实力量,总是制定不切实际的 目标,其思想根源同样在于长期形成的”革命、斗争“思维。

三、建设中国特色社会主义,必须坚持以经济建设为申心,坚 持改革开放和四项基本原则

第一,坚持以经济建设为中心;第二,坚持改革开放;第三,坚 持四项基本原则。”一个中心、两个基本点“是一个整体,相互依 存,相辅相成。如果不坚持以经济建设为中心,大力发展生产力,社会主义制度就有丧失物质基础的危险,四项基本原则也难以坚 持下去;如果不坚持改革开放,就不可能解放和发展生产力,建立 起充满生机和活力的社会主义市场经济体制,社会主义就没有出 路;四项基本原则是经济建设和改革开放的根本政治保证,我们的 经济建设和改革开放如果脱离了四项基本原则,就会走到邪路上 去,或者出现**,使经济建设和改革开放失去稳定的政治环境。将”一个中心、两个基本点“统一于中国特色社会主义建设的实践,毫不动摇地坚持下去,是现代化建设成功的根本保证。

四、初步解决中国特色社会主义建设中的一系列重大问题

在社会主义的根本任务问题上,指出社会主义的本质是解放 生产力,发展生产力,消灭剥削,消除两极分化,最终达到共同富 裕。

在社会主义的发展动力问题上,强调改革也是一场革命,也是

解放生产力,是中国现代化的必由之路。

在社会主义建设的外部条件问题上,指出和平与发展是当代 世界两大主题,必须坚持独立自主的和平外交政策,为我国现代化 建设争取有利的国际环境。

在社会主义建设的政治保证问题上,强调坚持社会主义道路、坚持人民民主专政、坚持中国共产党的领导、坚持马克思列宁主义 毛泽东思想。

在社会主义建设的战略步骤问题上,提出基本实现现代化分 三步走的战略目标。

在社会主义的领导力量和依靠力量问题上,强调作为工人阶 级先锋队的中国共产党是社会主义事业的领导核心,党必须适应 改革开放和现代化建设的需要,不断改善和加强对各方面工作的 领导,改善和加强自身建设。必须依靠广大工人、农民、知识分子,必须依靠各民族人民的团结,必须依靠全体社会主义劳动者、拥护 社会主义的爱国者和拥护祖国统一的爱国者的最广泛的统一战 线。党领导的人民军队是社会主义祖国的保卫者和建设社会主义的重要力量。

在祖国统一的问题上,提出”一个国家、两种制度“的创造性构 想。

第二章〃 三个代表”重要思想基本问题

一、目的要求

通过对本章的学习,使学员深刻认识到“三个代表。重要思想 是中国特色社会主义理论体系的重要组成部分。在实际工作中,正确把握先进生产力的发展要求,中国先进文化的前进方向和最 广大人民的根本利益;深刻理解”三个代表“的要求,是我们党保持 先进性、始终成为中国特色社会主义坚强领导核心的基本要求,与 坚持马克思列宁主义、毛泽东思想、邓小平理论,坚持党的工人阶 级先锋队性质和全心全意为人民服务的宗旨是一致的。

二、学习重点

1、”三个代表“重要思想产生的时代背景。

2、如何看待”三个代表“重要思想的历史地位。

三、内容提要

作为理论创新重大成果的”三个代表“重要思想是是我们党的 立党之本、执政之基、力量之源,是建设中国特色社会主义伟大事 业的指导思想。认真学习”三个代表“重要思想,深刻领会其丰富 内涵,具有重大的理论意义和实践意义。

第一节 ”三个代表“重要思想形成的时代背景 一、三个代表重要思想的形成的国际背景

(一)世纪之交,世界社会主义运动遭受重大挫折。从20世纪 80年代开始,先是东欧六个社会主义国家的共产党失去执政地位,放弃社会主义制度,后来苏联共产党被自己的总书记宣布解散,导 致苏联解体,社会主义阵地丢失。社会主义运动道受了十月革命 以来甚至可以说是(共产党宣言)发表以来最严重的挫折。

(二)20世纪90年代以来,世界上许多曾经功勋卓著的大党、老党失去执政地位或者遇到严重困难,给我们以深刻的启迪。这 些政党的教训极其深刻,必须引起我们党的高度重视。

(三)20世纪末国际形势发生重大转折,给党的思想理论提出 新的要求。首先,经济全球化方兴未艾。其次,政治多极化趋势更 加明显。第三,文化的多样化日二,三个代表”重要思想提出的国内背景

(一)我们党面对着新的更加复杂的国内形势。在全面建设小 康社会,向基本实现现代化目标迈进过程中,我们将遇到一系列重 大难题。安全问题、公平间题、职工下岗问题、农民增收问题,都会 给社会带来不安定因素;文化的多样化日益发展,随着社会经济成 分、组织形式、就业方式、利益关系和分配方式日益多样化,人们的 思想意识也会发生相应的变化,信仰的多样化,社会道德的多样 化;甚至形形色色的伪科学、反文化都会有所发展,意识形态矛盾 和文化冲突将不可避免。如何在改革开放和社会发展的新阶段 中,正确处理和解决各种矛盾和问题,合理地协调好人民内部的利 益关系,度过这个社会发展的“高风险期。,是对党的执政水平和治 国能力的新考验。

(二)我们党面临更加艰巨的任务。在新世纪,我国的现代化 建设面临着新的奋斗目标。到建国l仍周年时,基本实现现代化,建成富强、民主、文明的社会主义国家。实现祖国的完全统「,是 全国各族人民的共同心愿,使申华民族梦寐以求的理想。解决台

湾问题,实现祖国完全统一,更加突出地摆在新世纪的中国共产党 人面前。

(三)新世纪党的建设任重道远。进大新时期,党员队伍的状 况发生了许多新变化;党的阶级基础和群众基础发生了新的变化;党的千部队伍中出现了许多不容忽视的错误倾向。

第二节 ”三个代表“重要思想的主要内容

一、代表中国先进生产力的发展要求

(一)生产力与先进生产力。生产力是一个不断发展、不断创 新的过程,生产力的发展就是新的先进的社会生产力不断代替旧 的、落后的社会生产力,使生产力在质的方面和量的方面在新的基 础上达到有机的和谐统一,并在现实的社会生产中发挥其最佳整 体性功能,为人类更加有效地改造客观世界服务。先进的社会生 产力,一般是指劳动者具有较高科学技术素质和文化素质,劳动资 料和劳动对象中凝结着当代先进的科学技术并与当代先进科学技 术密切结合,劳动资料和劳动对象的发展与科学技术的发展相互 协调一致。

(二)先进生产力的发展要求。先进生产力的发展要求,是指 对影响和制约先进生产力发展的各种社会条件和社会环境的要 求。先进生产力的发展首先要求其外部条件要尊重生产力发展的 内在规律;先进生产力的发展要求社会生产关系要与其相适应;先 进生产力的发展要求先进的政治制度、政治体制和先进的文化与 其相适应;先进生产力的发展要求稳定的国内国际环境。

(三)代表先进生产力的发展要求,大力发展社会生产力。第 一,代表先进生产力的发展要求,必须便会党牢固树立改革和发展 的观点;第二,不断提高劳动者的素质是我们党代表先进生产力发 展要求必须履行的第一要务;第三,全面贯彻”科学技术是第一生 产力“的思想,大力发展科学技术,是我们党代表中国先进生产力 发展要求必须履行的重要职责;第四,不断完善我国的生产方式,使其更加适应先进生产力的发展要求。二,代表中国先进文化的前进方向

(一)文化的概念和社会历史作用。广义的文化,就是人类所 创造出来的物质财富和精神财富的总和,更简单地说就是与自然 相对应的人的所有创造物。狭义的文化,就是人在精神领域的创 造物,即精神文化,它包括科育、教学、哲学、宗教、文学艺术、道德

伦理、价值观念等等。先进文化通过这种对人的再设计和再塑造,调节着和干预着人的思想和行为,培育着和激发着人内在的力量,从而不断实现人的自我超越,极大地提高了人创造物质财富和精 神财富的能力。也就从这个意义上说,文化是一个国家最重要的 资源之一,是综合国力的重要标志。

(二)当代中国的先进文化就是有中国特色社会主义的文化。先进文化应该具有以下基本特征:一是科学性;二是时代性;三是 民族性;四是开放性;五是群众性;六是创新性。

当代中国的先进文化是一个庞大的、复杂的体系而且处于砷

态的发展之中。认知识与价值结合的层面看,当代中国的先进女 化,是马克思主义、列宁主义、毛译东思想和邓小平理论、”三个代 表“重要思想的科学体系,特别是马克思主义与当代中国实际相结 合所产生的邓小平理论和”三个代表“重要思想的科学体系;从价 值的层面看,当代中国的先进文化,是与社会主义和社会主义现代 化相适应的先进的观念、伦理、道德,是与社会主义市场经济相适 应的先进的道德和意识等;从何识的层面看,当代中国的先进文 化,是先进的科学思想、理论,包括自然科学的成果和社会科学的 成果。综合起来看,当代中国的先进文化,实际上就是有中国特色 社会主义的文化。

(三)代表中国先进文化的前进方向,努力发展有中国特色社 会主义文化,建设社会主义精神文明。发展社会主义文化的根本 任务,是培养二代又一代有理想、有道德、有文化、有纪律的公民。要坚持以科学的理论武装人,以正确的舆论引导人,以高尚的精神 塑造人,以优秀的作品鼓舞人;坚持和巩固马克思主义的指导地 位。发展社会主义文化,建设社会主义精神文明,必须坚持马克思

主义的指导地位,〃立足现实,基础中华民族优秀文化传统,博采各

国文化之长进行综合创新。

三、代表中国最广大人民的根本利益

(一)代表中国最广大人民的根本利益是”三个代表“乃至党的 全部工作的出发点和脚点。马克思主义特别强调人民群众对推动 历史前进的重要作用,认为,人民,只有人民,才是创造世界历史的

根本动力。八十年来我们党所创立的一切理论,所采取的一切路 线、方针、政策,都是为了不断实现好、维护好和发展好最广大人民 的利益,始终保持党同人民群众的血肉联系。如果不是这样,党就 无法得到人民的信任、拥护和支持。

(二)代表人民的根本利益,始终保持党同人民群众的血肉联 系,是我们党的最大政治优势。我们党的最大政治优势是善于组 织群众、宣传群众、联系群众,党执政后的最大危险是脱离群众。在任何时候任何情况下,都必须坚持党的群众工作路线,把实现人 民群众的利益作为我们一切工作的出发点和归宿。保持和加强党 与人民群众的血肉联系,使党得到人民群众的拥护和支持,仍是保 持党的生命力和获得力量源泉的关键所在。

(三)把代表人民的根本利益体现在党和全体党员的全部工作 中。代表人民的根本利益要求我们所有的政策措施和工作,都应 该正确反映并有利于妥善处理各种利益关系,都应认真考虑和兼 顾不同阶层、不同方面群众的利益。我们党始终坚持人民的利益 高于一切。党除了最广大人民的利益,没有自己特殊的利益。党 的一切工作,必须以最广大人民的根本利益为最高标准。

第三节 ”三个代表“重要思想的

历史地位和指导意义

一、是马克思主义在中国发展的最新成果

〃第一,”三个代表“重要思想坚持马克思主义的世界观和方法 论,创造性地运用它们分析当今世界和申国的实际,为我们在新的

时代条件下运用辩证唯物主义和历史唯物主义认识和把握社会发 展规律、更好地推进我国社会主义事业作出了新的理论概括。

第二,”三个代表“重要思想坚持党的最高纲领和最低纲领的 统一,为我们坚持马克思主义的最终奋斗目标、根据实际制定和实 施推动我国社会主义发展的科学战略提供了新的理论基础。

第三,”三个代表“重要思想坚持马克思主义关于无产阶级政 党必须植根于人民的政治立场,注重从人民群众的实践中吸取养 分,为我们坚持马克思主义的群众观点、不断实现最广大人民的根 本利益提出了新的理论要求。

第四,”三个代表“重要思想坚持马克思主义与时俱迸的理论 品质,体现了马克思主义理论创新的巨大勇气,为我们坚持马克思 主义基本原理、不断在实践中推进理论创新打开了新的理论视野。

二、是党必须长期坚持的指导思想

(一)实现全面建设小康社会宏伟目标的根本指针。(二)推进社会主义自我完善和发展的重要思想指南。(三)加强和改善党的建设的强大理论武器。

第三章 科学发展观基本问题

一、目的要求

通过本章的学习,了解发展观是关于发展的本质、目的、内涵 的根本观点和总体看法,发展是人类社会永恒的法则。正确把握 科学发展观的历史地位、时代背景、科学内涵以及深入贯彻落实科 学发展观的基本要求四个方面的内容。

三、学习重点

1、正确认识科学发展观的历史地位。〃

2、科学发展观提出的时代背景和依据。

3、全面把握科学发展观的科学内涵。

4、正确把握深入贯彻落实科学发展观的基本要求。

三、内容提要

第一节 深刻认识科学发展观的历史地位

一、科学发展观是对党的三代申央领导集体关干发展的重要 思想的继承和发展

毛泽东是申国社会主义发展道路的开拓者,也是新中国社会 发展理论的奠基人。

邓小平的发展观与马克思主义、毛泽东思想是一脉相承的,这 突出的表现在它同样坚持社会主义的价值取向,坚持以”四项基本 原则“为中国社会发展和现代化建设的政治前提。

以江泽民为核心的我党第三代领导集体创造性地发展了社会 主义发展理论,形成了江泽民社会协调发展与人的全面发展思想。

二、科学发展观是马克思主义关千发展的世界观和方法论的 集中体现

马克思主义发展观是全面的辩证的发展观。

(一)人类社会是处在不断变化和发展中的有机整体和复杂系 统

(二)马克思恩格斯把人类社会的发展看作是自然史的过程,从而创立了真正科学的发展观

(三)马克,思〃恩格斯在对资本主义社会片面发展的批判中得出 结论,认为未来的共产主义社会应该是全面发展的社会(四)把人的自由而全面的发展放在突出的位臵

(五)恩格斯关于人类社会与生态环境协调发展的思想是马克 思主义发展理论的一个重要组成部分

三、科学发展观是我国经济社会发展的宜要指导方针,是发展 中国特色社会主义必须坚持和贯彻的重大战略思想

(一)树立和落实科学发展观是全面建设小康社会的必然要求(二)树立和落实科学发展观是妥善应对我国经济社会发展关 键时期可能遇到的各种风险和挑战的正确选择

(三)树立和落实科学发展观是提高党的执政能力和执政水平的迫切需要

第二节

深刻认识科学发展观提出的 时代背景和实践依据

一、立足我国社会主义初级阶段的基本国情

要制定正确的革命和建设的路线、纲领和方针政策,就必须对 现实国情和历史进程做出切合实际的科学判断。而对于领导我国 社会主义建设的执政的申国共产党来说,最大的国情就是我国社 会主义的发展阶段。

二、〃总结我国发展的实践

1、必须始终坚持经济建设这个中心不动摇。

2、必须始终坚持经济发展是为了满足人民群众的需要。

3、必须大力推进经济体制和经济增长方式的根本性转变。

4、必须努力实现国民经济持续快速协调健康发展。

三、吸取了世界各国在发展进程中的经验教训

第三节 深刻认识科学发展观的科学内涵

一、发展是科学发展观的第一要义

二、坚持以人为本是科学发展观的本质和核心

三、”全面、协谓、可持续“是科学发展观的基本要求

四、统筹兼顾是科学发展观的根本方法

第四节 深入贯彻落实科学发展观

一、要求我们始终坚持”一个中心、两个基本点"的基本路线

二、要求我们积极构建社会主义和谐社会

三、要求我们继续深化改革开放

四、要求我们切实加强和改进党的建设

第三篇:Java上机实验报告

Homework3实验报告

一、实验目的与要求

1、掌握Java中类和接口的基本知识;

2、继承的基本知识;

3、集合的基本操作

二、实验内容 1.PIMCollection 类

创建一个可以管理PIMEntities实体的集合,该类实现了Collection接口,且必须实现了以下方法:(1).getNotes();返回PIMCollection中所有的PIMNote项,如果不包含PIMNote项,则返回一个空集合

(2).getTodos();返回集合PIMCollection中所有的PIMTodo项,如果不包含PIMTodo项,则返回一个空集合

(3).getAppointment();返回集合PIMCollection中所有的PIMAppointment项,如果不包含PIMAppointment项。则返回一个空集合(4).getContacts();返回结合PIMCollection中所有的PIMContact项,如果不包含PIMContact项,则返回一个空集合

(5).getItemsForDate(Date d);返回集合PIMCollection中所有与d匹配的PIMEntities,如果没有匹配d的项,则返回一个空集合

(只有PIMTodo和PIMAppointment项,因为PIMNote和PIMContact跟日期没有关系)。

2.TestPIMCollection类(自己的测试类)

向PIMCollection集合类中加入了一些PIMEntity实体类,并用PIMCollection类中实现的方法分别筛选出了其中的PIMNote、PIMTodo、PIMAppointment、PIMContact、符合指定日期d的集合并打印输出。

三、实验器材

计算机+windows操作系统+eclipse

四、实验步骤

1.程序源代码(压缩在文件夹里)2.编译执行程序 3.记录执行结果

五、实验结果

1.TestPIMCollection的测试代码:

2.程序的执行结果:

如图所示:程序分别输出了Todo、Note、Appointment、Contact、以及匹配指定日期的结合的结果。

六、实验小结

1、熟悉了Java集合的基本内容和操作,也包括了泛型的一些知识。

2、通过这个实验巩固了java的基础知识:类和接口的有关知识,继承的应用。

3、掌握了在eclipse下编译执行Java程序的知识。

4、通过几次的编程,熟悉了java的编程规则。

5、综合应用所学知识完成java程序的分析、设计、调试和总结,为以后编写更复杂的java程序打下了很好的基础。

第四篇:java上机实验

1、实验一:多线程程序设计:炮打飞机

实验目的:学会使用多线程进行并发程序设计

实验内容:编写一个应用程序模拟大炮打飞机。在GUI界面上,飞机水平飞行,用界面上的按钮控制大炮的运行方向(如向左,向右,向上,向下)。当炮弹碰着飞机后,飞机坠落。

2、实验二:数据库编程:书目信息管理

实验目的:掌握数据库编程技术。能正确连接数据库,能对数据库中信息进行查询、插

入、删除、修改。

实验内容:在数据库中创建一张书目信息表,包括书名、作者、出版社、出版日期、书

号、价格字段。设计一个GUI界面进行书目管理。在该界面上有四个选项卡,分别是查询、插入、删除、修改。点击查询选项卡,出现的界面上有书名、作者、出版社、书号四个文本框,一个按钮和一个只读文本区。文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的“查询”按钮,可以在界面下方的文本区中显示出符合条件的书目详细信息。点击插入选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。在文本框中输入信息后,点击“插入”按钮,该书目信息插入数据库表中。点击删除选项卡,出现的界面上有书名文本框和一个按钮,输入书名后点击“删除”按钮,该书目信息从数据库表中删除。点击修改选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。输入的书名必须是已存在的,否则会弹出消息框显示出错信息。输入信息后,点击“修改”按钮,数据库表中的相应书目信息被修改为新值。

3、实验三:Applet编程:鸭子的移动

实验目的:掌握Applet程序设计的方法,学会在Applet中绘制图片,能采用双缓冲技术进行图片绘制,会在Applet中采用多线程进行动画显示。能在Applet中实现动画的平滑显示,避免闪烁现象。

实验内容:在Applet窗口中显示一只鸭子图片,要求这只鸭子以每秒100帧的速率水平移动,移到窗口边界再返回移动。在窗口中点击鼠标,鸭子停止移动;再次点击鼠标,鸭子恢复移动。

4、实验四:网络编程:聊天室的实现

实验目的:会编写客户端和服务器程序实现C/S模式下的通信,会使用多线程进行网络编程。

实验内容:编写一个聊天室程序:客户端界面请自行设计,可使其具有个性化特征; 可在实现基本的聊天室功能的基础上添加个性化的功能。

第五篇:Java程序设计课程实验代码及答案

Java程序设计课程实验

上机实践1 初识JAVA.................................................................................................................3 实验

1一个简单的应用程序....................................................................................................3 实验

2一个简单的JAVA APPLET程序......................................................................................3 实验

3联合编译........................................................................................................................4 上机实践2 基本数据类型与控制语句........................................................................................5 实验1

输出希腊字母表............................................................................................................5 实验2

回文数............................................................................................................................6 实验3

猜数字游戏....................................................................................................................8 上机实践3 类与对象....................................................................................................................9 实验1

三角形、梯形和圆形的类封装.....................................................................................9 实验

2实例成员与类成员......................................................................................................12 实验

3使用PACKAGE语句与IMPORT语句............................................................................14 上机实践4 继承与接口..............................................................................................................16 实验

1继承..............................................................................................................................16 实验2

上转型对象..................................................................................................................19 实验3 接口回调.....................................................................................................................21 上机实践5 字符串、时间与数字..............................................................................................23 实验

1STRING类的常用方法..................................................................................................23 实验

2比较日期的大小..........................................................................................................24 实验

3处理大整数..................................................................................................................25 上机实践6 组件及事件处理......................................................................................................26 实验1

算术测试......................................................................................................................26 实验2

信号灯..........................................................................................................................29 实验3

布局与日历..................................................................................................................31 上机实践7 组件及事件处理2...................................................................................................35 实验1

方程求根......................................................................................................................35 实验2

字体对话框..................................................................................................................38 实验3

英语单词拼写训练......................................................................................................41 上机实践8 多线程.....................................................................................................................45 实验1

汉字打字练习..............................................................................................................45 实验2

旋转的行星..................................................................................................................47 实验3

双线程接力..................................................................................................................51 上机实践9 输入输出流..............................................................................................................54 实验1

学读汉字......................................................................................................................54 实验2

统计英文单词字..........................................................................................................57 实验2

读取ZIP文件...............................................................................................................61 上机实践10 JAVA 中的网络编程............................................................................................62 实验1

读取服务器端文件......................................................................................................62 实验2

使用套接字读取服务器端对象...................................................................................64 实验3

基于UDP的图像传输................................................................................................67 上机实践11 数据结构................................................................................................................71 实验1

扫雷小游戏..................................................................................................................71 实验2

排序与查找..................................................................................................................76 实验3

使用TREESET排序......................................................................................................77 上机实践12 JAVA SWING.......................................................................................................79 实验1

JLAYEREDPANE分层窗格............................................................................................79 实验2

使用表格显示日历......................................................................................................80 实验3

多文档界面(MDI)...................................................................................................83 2

上机实践1 初识Java 实验1 一个简单的应用程序

1.答案:

【代码1】:

System.out.println(“你好,很高兴学习Java”);【代码2】:

System.out.println(“We are students”);2.模板代码

Hello.java public class Hello {

public static void main(String args[ ])

{

【代码1】

//命令行窗口输出“你好,很高兴学习Java”

A a=new A();

a.fA();

} } class A {

void fA()

{

【代码2】

//命令行窗口输出“We are students”

} } 实验2 一个简单的Java Applet程序

1.答案:

【代码1】:

g.drawString(“这是一个Java Applet 程序”,10,30);【代码2】:

g.drawString(“我改变了字体”,20,50);2.模板代码

FirstApplet.java import java.applet.*;3 import java.awt.*;public class FirstApplet extends Applet { public void paint(Graphics g){ g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red);g.setFont(new Font(“宋体”,Font.BOLD,36));【代码2】//在Java Applet中绘制一行文字:“我改变了字体” } } 实验3 联合编译

1.答案:

【代码1】:

System.out.println(“你好,只需编译我”);【代码2】:

System.out.println(“I am A”);【代码3】:

System.out.println(“I am B”);【代码4】:

System.out.println(“I am C”);2.模板代码

模板1:Hello.java public class MainClass { public static void main(String args[ ]){ 【代码1】 //命令行窗口输出“你好,只需编译我” A a=new A();a.fA();B b=new B();b.fB();} }

模板2 :A.java

public class A { void fA(){ 【代码2】 //命令行窗口输出“I am A” } } 模板3 :B.java

public class B { void fB(){ 【代码3】 //命令行窗口输出“I am B” } } 模板4 :C.java

public class C { void fC(){ 【代码4】 //命令行窗口输出“I am C” } }

上机实践2 基本数据类型与控制语句实验1 输出希腊字母表

1.答案:

【代码1】: startPosition=(int)cStart;

【代码2】: endPosition=(int)cEnd;

【代码3】: c=(char)i;

2.模板代码

GreekAlphabet.java

public class GreekAlphabet {

public static void main(String args[ ])

{

int startPosition=0,endPosition=0;

char cStart='α',cEnd='ω';

【代码1】

//cStart做int型转换据运算,并将结果赋值给startPosition

【代码2】

//cEnd做int型转换运算,并将结果赋值给endPosition

System.out.println(“希腊字母'α'在unicode表中的顺序位置:”+(int)c);

System.out.println(“希腊字母表:”);

for(int i=startPosition;i<=endPosition;i++)

{

char c='';

【代码3】

//i做char型转换运算,并将结果赋值给c

System.out.print(“ ”+c);if((i-startPosition+1)%10==0)

System.out.println(“");

}

} } 实验2 回文数

1.答案:

【代码1】: number<=99999&&number>=1 【代码2】: d5=number/10000;【代码3】: d4=number%10000/1000;【代码4】: d3=number%1000/100;【代码5】: d5!=0 【代码6】: d1==d5&&d2==d4 【代码7】: d4!=0

【代码8】: d1==d4&&d2==d3 【代码9】: d3!=0 【代码10】:d1==d3 2.模板代码

Number.java import javax.swing.JOptionPane;public class Number {

public static void main(String args[])

{

int number=0,d5,d4,d3,d2,d1;

String str=JOptionPane.showInputDialog(”输入一个1至99999之间的数“);

number=Integer.parseInt(str);

if(【代码1】)//判断number在1至99999之间的条件

{

【代码2】

//计算number的最高位(万位)d5

【代码3】

//计算number的千位d4

【代码4】

//计算number的百位d3

d2=number%100/10;

d1=number%10;

if(【代码5】)//判断number是5位数的条件

{

System.out.println(number+”是5位数“);

if(【代码6】)//判断number是回文数的条件

{

System.out.println(number+”是回文数“);

}

else

{

System.out.println(number+”不是回文数“);

}

}

else if(【代码7】)//判断number是4位数的条件

{

System.out.println(number+”是4位数“);

if(【代码8】)//判断number是回文数的条件码

{

System.out.println(number+”是回文数“);

}

else

{

System.out.println(number+”不是回文数“);

}

}

else if(【代码9】)//判断number是3位数的条件

{

System.out.println(number+”是3位数“);

if(【代码10】)//判断number是回文数的条件

{

System.out.println(number+”是回文数“);

}

else

{

System.out.println(number+”不是回文数“);

}

}

else if(d2!=0)

{

System.out.println(number+”是2位数“);

if(d1==d2)

{

System.out.println(number+”是回文数“);

}

else

{

System.out.println(number+”不是回文数“);

}

}

else if(d1!=0)

{

System.out.println(number+”是1位数“);

System.out.println(number+”是回文数“);

}

}

else

{

System.out.printf(”n%d不在1至99999之间“,number);

}

} } 实验3 猜数字游戏

1.答案:

【代码1】: yourGuess!=realNumber 【代码2】: yourGuess>realNumber

【代码3】: yourGuess

2.模板代码

GuessNumber.java import javax.swing.JOptionPane;public class GuessNumber {

public static void main(String args[ ])

{

System.out.println(”给你一个1至100之间的整数,请猜测这个数“);

int realNumber=(int)(Math.random()*100)+1;

int yourGuess=0;

String str=JOptionPane.showInputDialog(”输入您的猜测:“);

yourGuess=Integer.parseInt(str);

while(【代码1】)//循环条件

{

if(【代码2】)//条件代码

{

str=JOptionPane.showInputDialog(”猜大了,再输入你的猜测:“);

yourGuess=Integer.parseInt(str);

}

else if(【代码3】)//条件代码

{

str=JOptionPane.showInputDialog(”猜小了,再输入你的猜测:“);

yourGuess=Integer.parseInt(str);

}

}

System.out.println(”猜对了!“);

} }

上机实践3 类与对象

实验1 三角形、梯形和圆形的类封装

1.答案:

【代码1】:

sideA=a;sideB=b;sideC=c;

【代码2】:

a+b>c&&a+c>b&&c+b>a

【代码3】:

boo=true;

【代码4】:

boo=false;

【代码5】:

if(boo)

{

length=sideA+sideB+sideC;

return length;

}

else

{

System.out.println(”不是一个三角形,不能计算周长“);

return 0;

}

【代码6】:

sideA=a;sideB=b;sideC=c;【代码7】: a+b>c&&a+c>b&&c+b>a 【代码8】: boo=true;【代码9】: boo=false;【代码10】:

above=a;

bottom=b;

height=h;

【代码11】:

area=(above+bottom)/2*height;

return area;【代码12】: radius=r;9 【代码13】: return 3.14*radius*radius;【代码14】: return 3.14*2*radius;【代码15】: circle=new Circle(10);【代码16】: trangle=new Trangle(3,4,5);【代码17】: lader=new Lader(3,4,10);【代码18】: length=circle.getLength();【代码19】: area=circle.getArea();【代码20】: length=trangle.getLength();【代码21】: area=trangle.getArea();【代码22】: area=lader.getArea();【代码23】: trangle.setABC(12,34,1);【代码24】: area=trangle.getArea();【代码25】: length=trangle.getLength();

2.模板代码

AreaAndLength.java

class Trangle

{

double sideA,sideB,sideC,area,length;

boolean boo;

public Trangle(double a,double b,double c)

{

【代码1】 //参数a,b,c分别赋值给sideA,sideB,sideC

if(【代码2】)//a,b,c构成三角形的条件表达式

{

【代码3】 //给boo赋值。

}

else

{

【代码4】 //给boo赋值。

}

}

double getLength()

{

【代码5】 //方法体,要求计算出length的值并返回

}

public double getArea()

{

if(boo)

{

double p=(sideA+sideB+sideC)/2.0;

area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));

return area;

}

else

{

System.out.println(”不是一个三角形,不能计算面积“);

return 0;

}

}

public void setABC(double a,double b,double c)

{

【代码6】 //参数a,b,c分别赋值给sideA,sideB,sideC

if(【代码7】)//a,b,c构成三角形的条件表达式

{

【代码8】 //给boo赋值。

}

else

{

【代码9】 //给boo赋值。

}

} } class Lader {

double above,bottom,height,area;

Lader(double a,double b,double h)

{

【代码10】 //方法体,将参数a,b,c分别赋值给above,bottom,height

}

double getArea()

{

【代码11】 //方法体,,要求计算出area返回

} }

class Circle {

double radius,area;

Circle(double r)

{

【代码12】 //方法体

}

double getArea()

{

【代码13】 //方法体,要求计算出area返回

}

double getLength()

{

【代码14】 //getArea方法体的代码,要求计算出length返回

}

void setRadius(double newRadius)

{

radius=newRadius;

}

double getRadius()

{

return radius;

} } public class AreaAndLength {

public static void main(String args[])

{

double length,area;

Circle circle=null;

Trangle trangle;

Lader lader;

【代码15】 //创建对象circle

【代码16】 //创建对象trangle。

【代码17】 //创建对象lader

【代码18】 // circle调用方法返回周长并赋值给length

System.out.println(”圆的周长:“+length);

【代码19】 // circle调用方法返回面积并赋值给area

System.out.println(”圆的面积:“+area);

【代码20】 // trangle调用方法返回周长并赋值给length

System.out.println(”三角形的周长:“+length);

【代码21】 // trangle调用方法返回面积并赋值给area

System.out.println(”三角形的面积:“+area);

【代码22】 // lader调用方法返回面积并赋值给area

System.out.println(”梯形的面积:“+area);

【代码23】 // trangle调用方法设置三个边,要求将三个边修改为12,34,1。

【代码24】 // trangle调用方法返回面积并赋值给area

System.out.println(”三角形的面积:“+area);

【代码25】 // trangle调用方法返回周长并赋值给length

System.out.println(”三角形的周长:“+length);

} } 实验2 实例成员与类成员

1.答案:

【代码1】: float a;

【代码2】: static float b;

【代码3】: this.a=a;

【代码4】: this.b=b;【代码5】: A.b=100;

【代码6】: A.inputB();

【代码7】: cat.setA(200);【代码8】: cat.setB(400);【代码9】: dog.setA(150);【代码10】:dog.setB(300);【代码11】:cat.inputA();【代码12】:cat.inputB();【代码13】:dog.inputA();【代码14】:dog.inputB();2.模板代码

Example.java class A {

【代码1】

//声明一个float型实例变量a

【代码2】

//声明一个float型类变量b,即static变量b

void setA(float a)

{

【代码3】

//将参数a的值赋值给成员变量a

}

void setB(float b)

{

【代码4】

//将参数b的值赋值给成员变量b

}

float getA()

{

return a;

}

float getB()

{

return b;

}

void inputA()

{

System.out.println(a);

}

static void inputB()

{

System.out.println(b);

} } public class Example {

public static void main(String args[])

{

【代码5】

//通过类名操作类变量b,并赋值100

【代码6】

//通过类名调用方法inputB()

A cat=new A();

A dog=new A();

【代码7】

//cat象调用方法setA(int a)将cat的成员a的值设置为200

【代码8】

//cat调用方法setB(int b)将cat的成员b的值设置为400

【代码9】

//dog象调用方法setA(int a)将dog的成员a的值设置为150

【代码10】

//dog调用方法setB(int b)将dog的成员b的值设置为300

【代码11】

//cat调用inputA()。

【代码12】

//cat调用inputB()。

【代码13】

//dog调用inputA()。

【代码14】

//dog调用inputB()。

} } 实验3 使用package语句与import语句

1.答案:无 2.模板代码

SquareEquation.java package tom.jiafei;public class SquareEquation {

double a,b,c;

double root1,root2;

boolean boo;

public SquareEquation(double a,double b,double c)

{

this.a=a;

this.b=b;

this.c=c;

if(a!=0)

{

boo=true;

}

else

{

boo=false;

}

}

public void getRoots()

{

if(boo)

{

System.out.println(”是一元2次方程“);

double disk=b*b-4*a*c;

if(disk>=0)

{

root1=(-b+Math.sqrt(disk))/(2*a);

root2=(-b-Math.sqrt(disk))/(2*a);

System.out.printf(”方程的根:%f,%fn“,root1,root2);

}

else

{

System.out.printf(”方程没有实根n“);

}

}

else

{

System.out.println(”不是一元2次方程“);

}

}

public void setCoefficient(double a,double b,double c)

{

this.a=a;

this.b=b;

this.c=c;

if(a!=0)

{

boo=true;

}

else

{

boo=false;

}

} } SunRise.java import tom.jiafei.*;class SunRise {

public static void main(String args[ ])

{

SquareEquation equation=new SquareEquation(4,5,1);

equation.getRoots();

equation.setCoefficient(-3,4,5);

equation.getRoots();

} }

上机实践4 继承与接口

实验1 继承

1.答案:

【代码1】:

public void speakHello()

{

System.out.println(”你好,吃饭了吗?“);

}

【代码2】:

public void averageHeight()

{

height=173;

System.out.println(”中国人的平均身高:“+height+”厘米“);

}

【代码3】:

public void averageWeight()

{

weight=67.34;

System.out.println(”中国人的平均体重:“+weight+”公斤“);

}

【代码4】: System.out.println(”坐如钟,站如松,睡如弓“);

【代码5】:

public void speakHello()

{

System.out.println(”How do You do“);

}

【代码6】:

public void averageHeight()

{

height=188;

System.out.println(”Amerian Average height:“+height+” cm“);

}

【代码7】:

public void averageWeight()

{

weight=80.23;

System.out.println(”Amerian Average weight:“+weight+” kg“);

}

【代码8】: System.out.println(”直拳、钩拳“);

【代码9】:

public void speakHello()

{

System.out.println(”您好“);

}

【代码10】:

public void averageHeight()

{

height=16;

System.out.println(”北京人的平均身高:“+height+”厘米“);

}

【代码11】:

public void averageWeight()

{

weight=6;

System.out.println(”北京人的平均体重:“+weight+”公斤“);

}

【代码12】: System.out.println(”京剧术语“);2.模板代码

Example.java class People { protected double weight,height;public void speakHello(){ System.out.println(”yayawawa“);} public void averageHeight(){ height=173;System.out.println(”average height:“+height);} public void averageWeight(){ weight=70;System.out.println(”average weight:“+weight);} } class ChinaPeople extends People { 【代码1】 //重写public void speakHello()方法,要求输出类似“你好,吃了吗”这样的 //汉语信息

【代码2】 //重写public void averageHeight()方法,要求输出类似 //“中国人的平均身高:168.78厘米”这样的汉语信息 【代码3】 //重写public void averageWeight()方法,//要求输出类似“中国人的平均体重:65公斤”这样的汉语信息 public void chinaGongfu(){ 【代码4】//输出中国武术的信息,例如:”坐如钟,站如松,睡如弓“等 } } class AmericanPeople extends People { 【代码5】 //重写public void speakHello()方法,要求输出类似 //“How do you do”这样的英语信息。【代码6】 //重写public void averageHeight()方法 【代码7】 //重写public void averageWeight()方法 public void americanBoxing(){ 【代码8】//输出拳击的信息,例如,“直拳”、“钩拳”等 } } class BeijingPeople extends ChinaPeople { 【代码9】 //重写public void speakHello()方法,要求输出类似“您好”这样的汉语信息

【代码10】 //重写public void averageHeight()方法

【代码11】 //重写public void averageWeight()方法 public void beijingOpera(){ 【代码12】//输出京剧的信息 } } public class Example { public static void main(String args[]){ ChinaPeople chinaPeople=new ChinaPeople();18 AmericanPeople americanPeople=new AmericanPeople();BeijingPeople beijingPeople=new BeijingPeople();chinaPeople.speakHello();americanPeople.speakHello();beijingPeople.speakHello();chinaPeople.averageHeight();americanPeople.averageHeight();beijingPeople.averageHeight();chinaPeople.averageWeight();americanPeople.averageWeight();beijingPeople.averageWeight();chinaPeople.chinaGongfu();americanPeople.americanBoxing();beijingPeople.beijingOpera();beijingPeople.chinaGongfu();} } 实验2 上转型对象

1.答案:

【代码1】:

public double earnings()

{

return 50000.456;

} 【代码2】:

public double earnings()

{

return 12*2300;

}

【代码3】:

public double earnings()

{

return 52*500;

} 【代码4】:

for(int i=0;i

{

salaries=salaries+employee[i].earnings();

} 2.模板代码

HardWork.java abstract class Employee {

public abstract double earnings();} class YearWorker extends Employee {

【代码1】 //重写earnings()方法 } class MonthWorker extends Employee {

【代码2】 //重写earnings()方法。} class WeekWorker extends Employee {

【代码3】 //重写earnings()方法。} class Company {

Employee[] employee;

double salaries=0;

Company(Employee[] employee)

{

this.employee=employee;

}

public double salariesPay()

{

salaries=0;

【代码4】 //计算salaries。

return salaries;

}

} public class HardWork {

public static void main(String args[])

{

Employee[] employee=new Employee[20];

for(int i=0;i

{

if(i%3==0)

employee[i]=new WeekWorker();

else if(i%3==1)

employee[i]=new MonthWorker();

else if(i%3==2)

employee[i]=new YearWorker();

}

Company company=new Company(employee);

System.out.println(”公司年工资总额:“+company.salariesPay());

} }

实验3 接口回调

1.答案:

【代码1】:

public double computeWeight()

{ return 45.5;

} 【代码2】:

public double computeWeight()

{ return 65.5;

}

【代码3】:

public double computeWeight()

{

return 145;

}

【代码4】:

for(int k=0;k

{

totalWeights=totalWeights+goods[k].computeWeight();

}

2.模板代码

Road.java

interface ComputerWeight {

public double computeWeight();} class Television implements ComputerWeight {

【代码1】 //实现computeWeight()方法。} class Computer implements ComputerWeight {

【代码2】 //实现computeWeight()方法。}

class WashMachine implements ComputerWeight { 【代码3】 //实现computeWeight()方法。} class Car { ComputerWeight[] goods;

double totalWeights=0;

Car(ComputerWeight[] goods)

{

this.goods=goods;

}

public double getTotalWeights()

{

totalWeights=0;

【代码4】 //计算totalWeights

return totalWeights;

}

} public class Road {

public static void main(String args[])

{ ComputerWeight[] goodsOne=new ComputerWeight[50],goodsTwo=new ComputerWeight[22];

for(int i=0;i

{

if(i%3==0)

goodsOne[i]=new Television();

else if(i%3==1)

goodsOne[i]=new Computer();

else if(i%3==2)

goodsOne[i]=new WashMachine();

}

for(int i=0;i

{

if(i%3==0)

goodsTwo[i]=new Television();

else if(i%3==1)

goodsTwo[i]=new Computer();

else if(i%3==2)

goodsTwo[i]=new WashMachine();

}

Car 大货车=new Car(goodsOne);

System.out.println(”大货车装载的货物重量:“+大货车.getTotalWeights());

Car 小货车=new Car(goodsTwo);

System.out.println(”小货车装载的货物重量:“+小货车.getTotalWeights());

} } 上机实践5 字符串、时间与数字

实验1 String类的常用方法

模板代码

StringExample.java class StringExample {

public static void main(String args[])

{

String s1=new String(”you are a student“),s2=new String(”how are you“);

if(【代码1】)// 使用equals方法判断s1与s2是否相同

{

System.out.println(”s1与s2相同“);

}

else

{

System.out.println(”s1与s2不相同“);

}

String s3=new String(”***24“);

if(【代码2】)

//判断s3的前缀是否是“220302”。

{

System.out.println(”吉林省的身份证“);

}

String s4=new String(”你“),s5=new String(”我“);

if(【代码3】)//按着字典序s4大于s5的表达式。

{

System.out.println(”按字典序s4大于s5“);

}

else

{

System.out.println(”按字典序s4小于s5“);

}

int position=0;

String path=”c:javajspA.java“;

position=【代码5】 //获取path中最后出现目录分隔符号的位置

System.out.println(”c:javajspA.java中最后出现的位置:“+position);

String fileName=【代码6】//获取path中“A.java”子字符串。

System.out.println(”c:javajspA.java中含有的文件名:“+fileName);

String s6=new String(”100“),s7=new String(”123.678“);

int n1=【代码7】

//将s6转化成int型数据。

double n2=【代码8】

//将s7转化成double型数据。

double m=n1+n2;

System.out.println(m);

String s8=【代码9】 //String调用valuOf(int n)方法将m转化为字符串对象

position=s8.indexOf(”.“);

String temp=s8.substring(position+1);

System.out.println(”数字“+m+”有“+temp.length()+”位小数“);

String s9=new String(”ABCDEF“);

char a[]=【代码10】

//将s8存放到数组a中。

for(int i=a.length-1;i>=0;i--)

{

System.out.print(” “+a[i]);

}

} } 实验2 比较日期的大小

模板代码 DateExample import java.util.*;import javax.swing.JOptionPane;public class DateExample {

public static void main(String args[ ])

{

String str=JOptionPane.showInputDialog(”输入第一个日期的年份:“);

int yearOne=Integer.parseInt(str);

str=JOptionPane.showInputDialog(”输入该年的月份:“);

int monthOne=Integer.parseInt(str);

str=JOptionPane.showInputDialog(”输入该月份的日期:“);

int dayOne=Integer.parseInt(str);

str=JOptionPane.showInputDialog(”输入第二个日期的年份:“);

int yearTwo=Integer.parseInt(str);

str=JOptionPane.showInputDialog(”输入该年的月份:“);

int monthTwo=Integer.parseInt(str);

str=JOptionPane.showInputDialog(”输入该月份的日期:“);

int dayTwo=Integer.parseInt(str);

Calendar calendar=【代码1】

//初始化日历对象

【代码2】

//将calendar的时间设置为yearOne年monthOne月dayOne日

long timeOne=【代码3】

//calendar表示的时间转换成毫秒

【代码4】

//将calendar的时间设置为yearTwo年monthTwo月dayTwo日

long timeTwo=【代码5】

//calendar表示的时间转换成毫秒。

Date date1=【代码6】

// 用timeOne做参数构造date1

Date date2=【代码7】

// 用timeTwo做参数构造date2

if(date2.equals(date1))

{

System.out.println(”两个日期的年、月、日完全相同“);

}

else if(date2.after(date1))

{

System.out.println(”您输入的第二个日期大于第一个日期“);

}

else if(date2.before(date1))

{

System.out.println(”您输入的第二个日期小于第一个日期“);

}

long days=【代码8】//计算两个日期相隔天数

System.out.println(yearOne+”年“+monthOne+”月“+dayOne+”日和“

+yearTwo+”年“+monthTwo+”月“+dayTwo+”相隔“+days+”天“);

}

} 实验3 处理大整数

模板代码

BigintegerExample import java.math.*;class BigIntegerExample { public static void main(String args[]){ BigInteger n1=new BigInteger(”***321987654321“), n2=new BigInteger(”***789123456789“), result=null;result=【代码1】//n1和n2做加法运算 System.out.println(”和:“+result.toString());result=【代码2】//n1和n2做减法运算 System.out.println(”差:“+result.toString());result=【代码3】//n1和n2做乘法运算 System.out.println(”积:“+result.toString());result=【代码4】//n1和n2做除法运算 System.out.println(”商:“+result.toString());BigInteger m=new BigInteger(”1968957“), COUNT=new BigInteger(”0“), ONE=new BigInteger(”1“), TWO=new BigInteger(”2“);System.out.println(m.toString()+”的因子有:“);for(BigInteger i=TWO;i.compareTo(m)<0;i=i.add(ONE)){ if((n1.remainder(i).compareTo(BigInteger.ZERO))==0){ COUNT=COUNT.add(ONE);System.out.print(” “+i.toString());} } System.out.println(”“);System.out.println(m.toString()+”一共有“+COUNT.toString()+”个因子“);} } 上机实践6 组件及事件处理

实验1 算术测试

模板代码 Teacher.java public class Teacher { int numberOne,numberTwo;String operator=”“;boolean right;public int giveNumberOne(int n){ numberOne=(int)(Math.random()*n)+1;return numberOne;} public int giveNumberTwo(int n){ numberTwo=(int)(Math.random()*n)+1;return numberTwo;} public String giveOperator(){ double d=Math.random();if(d>=0.5)operator=”+“;else operator=”-“;return operator;} public boolean getRight(int answer){ if(operator.equals(”+“))26 { if(answer==numberOne+numberTwo)right=true;else right=false;} else if(operator.equals(”-“)){ if(answer==numberOne-numberTwo)right=true;else right=false;} return right;} } ComputerFrame.java import java.awt.*;import java.awt.event.*;public class ComputerFrame extends Frame implements ActionListener { TextField textOne,textTwo,textResult;Button getProblem,giveAnwser;Label operatorLabel,message;Teacher teacher;ComputerFrame(String s){ super(s);teacher=new Teacher();setLayout(new FlowLayout());textOne=【代码1】 //创建textOne,其可见字符长是10 textTwo=【代码2】 //创建textTwo,其可见字符长是10 textResult=【代码3】 //创建textResult,其可见字符长是10 operatorLabel=new Label(”+“);message=new Label(”你还没有回答呢“);getProblem=new Button(”获取题目“);giveAnwser=new Button(”确认答案“);add(getProblem);add(textOne);add(operatorLabel);add(textTwo);add(new Label(”=“));add(textResult);add(giveAnwser);add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);【代码4】//将当前窗口注册为getProblem的ActionEvent事件监视器 【代码5】//将当前窗口注册为giveAnwser的ActionEvent事件监视器

【代码6】//将当前窗口注册为textResult的ActionEvent事件监视器 setBounds(100,100,450,100);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} public void actionPerformed(ActionEvent e){ if(【代码7】)//判断事件源是否是getProblem { int number1=teacher.giveNumberOne(100);int number2=teacher.giveNumberTwo(100);String operator=teacher.givetOperator();textOne.setText(”“+number1);textTwo.setText(”“+number2);operatorLabel.setText(operator);message.setText(”请回答“);textResult.setText(null);} if(【代码8】)//判断事件源是否是giveAnwser { String answer=textResult.getText();try{ int result=Integer.parseInt(answer);if(teacher.getRight(result)==true){ message.setText(”你回答正确“);} else { message.setText(”你回答错误“);} } catch(NumberFormatException ex){ message.setText(”请输入数字字符“);} } textResult.requestFocus();validate();} }

MainClass.java public class MainClass { public static void main(String args[]){ ComputerFrame frame;frame=【代码9】//创建窗口,其标题为:算术测试 } } 实验2 信号灯

2.模板代码

SignalCanvas.java import java.awt.*;public class SignalCanvas extends Canvas { int red,green,yellow,x,y,r;SignalCanvas(){ setBackground(Color.white);} public void setRed(int r){ red=r;} public void setGreen(int g){ green=g;} public void setYellow(int y){ yellow=y;} public void setPosition(int x,int y){ this.x=x;this.y=y;} public void setRadius(int r){ this.r=r;} public void paint(Graphics g){ if(red==1){ g.setColor(Color.red);} else if(green==1){ g.setColor(Color.green);} else if(yellow==1){ g.setColor(Color.yellow);} g.fillOval(x,y,2*r,2*r);} } SignalFrame.java import java.awt.*;import java.applet.*;import java.awt.event.*;public class SignalFrame extends Frame implements ItemListener { Choice choice;SignalCanvas signal=null;String itemRed=”红灯“,itemYellow=”黄灯“,itemGreen=”绿灯“;public SignalFrame(){ choice=【代码1】 //创建choice 【代码2】 //创建choice添加itemRed 【代码3】 //创建choice添加itemYellow 【代码4】 //创建choice添加itemGreen 【代码5】

//将当前窗口注册为choice的ItemEvent事件监视器 add(choice,BorderLayout.NORTH);try{ Class cs=Class.forName(”SignalCanvas“);signal=(SignalCanvas)cs.newInstance();add(signal,BorderLayout.CENTER);} catch(Exception e){ add(new Label(”您还没有编写SignalCanvas类“),BorderLayout.CENTER);} setBounds(100,100,360,300);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} public void itemStateChanged(ItemEvent e){ String item= 【代码6】

// choice返回被选中的条目 int w=signal.getBounds().width;int h=signal.getBounds().height;int m=Math.min(w,h);signal.setRadius(m/6);if(item.equals(itemRed)){ if(signal!=null){ signal.setRed(1);signal.setYellow(0);signal.setGreen(0);signal.setPosition(w/3,0);signal.repaint();} } else if(item.equals(itemYellow)){ if(signal!=null){ signal.setRed(0);signal.setYellow(1);signal.setGreen(0);signal.setPosition(w/3,h/3);signal.repaint();} } else if(item.equals(itemGreen)){ if(signal!=null){ signal.setRed(0);signal.setYellow(0);signal.setGreen(1);signal.setPosition(w/3,2*h/3);signal.repaint();} } } } SignalMainClass.java public class SignalMainClass { public static void main(String args[]){ SignalFrame frame;frame=new SignalFrame();frame.setTitle(”信号灯“);} } 实验3 布局与日历

1.答案:

【代码1】:

pCenter.setLayout(new GridLayout(7,7));【代码2】:

pCenter.add(titleName[i]);

【代码3】:

pCenter.add(labelDay[i]);

【代码4】:

add(scrollPane,BorderLayout.CENTER);31

【代码5】:

add(pNorth,BorderLayout.NORTH);

【代码6】:

add(pSouth,BorderLayout.SOUTH);

2.模板代码

CalendarBean.java import java.util.Calendar;public class CalendarBean

{

String day[];

int year=2005,month=0;

public void setYear(int year)

{

this.year=year;

}

public int getYear()

{

return year;

}

public void setMonth(int month)

{

this.month=month;

}

public int getMonth()

{

return month;

}

public String[] getCalendar()

{

String a[]=new String[42];

Calendar 日历=Calendar.getInstance();

日历.set(year,month-1,1);

int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1;

int day=0;

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)

{ day=31;

}

if(month==4||month==6||month==9||month==11)

{ day=30;

}

if(month==2)

{ if(((year%4==0)&&(year%100!=0))||(year%400==0))

{

day=29;

}

else

{

day=28;

}

}

for(int i=星期几,n=1;i<星期几+day;i++)

{

a[i]=String.valueOf(n);

n++;

}

return a;

} } CalendarFrame.java import java.util.*;import java.awt.*;import java.awt.event.*;import java.applet.*;public class CalendarFrame extends Frame implements ActionListener {

Label labelDay[]=new Label[42];

Button titleName[]=new Button[7];

String name[]={”日“,”一“,”二“,”三“, ”四“,”五“,”六“};

Button nextMonth,previousMonth;

int year=2006,month=10;

CalendarBean calendar;

Label showMessage=new Label(”“,Label.CENTER);

public CalendarFrame()

{ Panel pCenter=new Panel();

【代码1】 //将pCenter的布局设置为7行7列的GridLayout 布局。

for(int i=0;i<7;i++)

{ titleName[i]=new Button(name[i]);

【代码2】//pCenter添加组件titleName[i]。

}

for(int i=0;i<42;i++)

{

labelDay[i]=new Label(”“,Label.CENTER);

【代码3】//pCenter添加组件labelDay[i]。

}

calendar=new CalendarBean();

calendar.setYear(year);

calendar.setMonth(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{ labelDay[i].setText(day[i]);

}

nextMonth=new Button(”下月“);

previousMonth=new Button(”上月“);

nextMonth.addActionListener(this);

previousMonth.addActionListener(this);

Panel pNorth=new Panel(),pSouth=new Panel();33

pNorth.add(previousMonth);

pNorth.add(nextMonth);

pSouth.add(showMessage);

showMessage.setText(”日历:“+calendar.getYear()+”年“+ calendar.getMonth()+”月“);

ScrollPane scrollPane=new ScrollPane();

scrollPane.add(pCenter);

【代码4】// 窗口添加scrollPane在中心区域

【代码5】// 窗口添加pNorth 在北面区域

【代码6】// 窗口添加pSouth 在南区域。

}

public void actionPerformed(ActionEvent e)

{ if(e.getSource()==nextMonth)

{ month=month+1;

if(month>12)

month=1;

calendar.setMonth(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{ labelDay[i].setText(day[i]);

}

}

else if(e.getSource()==previousMonth)

{ month=month-1;

if(month<1)

month=12;

calendar.setMonth(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{ labelDay[i].setText(day[i]);

}

}

showMessage.setText(”日历:“+calendar.getYear()+”年“+calendar.getMonth()+”月“);

} }

CalendarMainClass.java public class CalendarMainClass { public static void main(String args[])

{

CalendarFrame frame=new CalendarFrame();

frame.setBounds(100,100,360,300);

frame.setVisible(true);

frame.validate();

frame.addWindowListener(new java.awt.event.WindowAdapter()34

{ public void windowClosing(java.awt.event.WindowEvent e)

{ System.exit(0);

}

});

} }

上机实践7 组件及事件处理2 实验1 方程求根

1.答案:

【代码1】:

controlButton.addActionListener(this);;【代码2】:

textA.getText()

【代码3】:

textB.getText()

【代码4】:

textC.getText()

2.模板代码

SquareEquation.java public class SquareEquation { double a,b,c;double root1,root2;public void setA(double a){ this.a=a;} public void setB(double b){ this.b=b;} public void setC(double c){ this.c=c;} public double getRootOne()throws NoRealRootException,NoSquareEquationException { if(a!=0){ double disk=b*b-4*a*c;if(disk>=0){ root1=(-b+Math.sqrt(disk))/(2*a);} else { throw new NoRealRootException(”没有实根“);35 } } else { throw new NoRealRootException(”不是二次方程“);} return root1;} public double getRootTwo()throws NoRealRootException,NoSquareEquationException { if(a!=0){ double disk=b*b-4*a*c;if(disk>=0){ root2=(-b-Math.sqrt(disk))/(2*a);} else { throw new NoRealRootException(”没有实根“);} } else { throw new NoRealRootException(”不是二次方程“);} return root2;} } class NoRealRootException extends Exception { String message;NoRealRootException(String s){ message=s;} public String getMessage(){ return message;} } class NoSquareEquationException extends Exception { String message;NoSquareEquationException(String s){ message=s;} public String getMessage(){ return message;} } EquationFrame.java

import java.awt.*;import java.awt.event.*;public class EquationFrame extends Frame implements ActionListener { SquareEquation equation;TextField textA,textB,textC;TextArea showRoots;Button controlButton;public EquationFrame(){ equation=new SquareEquation();textA=new TextField(8);textB=new TextField(8);textC=new TextField(8);showRoots=new TextArea();controlButton=new Button(”确定“);Panel pNorth=new Panel();pNorth.add(new Label(”二次项系数:“));pNorth.add(textA);pNorth.add(new Label(”一次项系数:“));pNorth.add(textB);pNorth.add(new Label(”常数项系数:“));pNorth.add(textC);pNorth.add(controlButton);【代码1】 //当前窗口作为controlButton的ActionEvent事件的监视器 add(pNorth,BorderLayout.NORTH);add(showRoots,BorderLayout.CENTER);setBounds(100,100,630,160);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} public void actionPerformed(ActionEvent e){ try{ double a=Double.parseDouble(【代码2】);//textA调用方法获取其中的文本

double b=Double.parseDouble(【代码3】);//textB调用方法获取其中的文本

double c=Double.parseDouble(【代码4】);// textC调用方法获取其中的文本

equation.setA(a);equation.setB(b);equation.setC(c);textA.setText(”“+a);37 textB.setText(”“+b);textC.setText(”“+c);showRoots.append(”n 根:“+equation.getRootOne());showRoots.append(” 根:“+equation.getRootTwo());} catch(Exception ex){ showRoots.append(”n“+ex+”n“);} } } EquationMainClass.java public class EquationMainClass { public static void main(String args[]){ EquationFrame frame=new EquationFrame();} } 实验2 字体对话框

1.答案:

【代码1】:

setModal(true);

【代码2】:

setVisible(false);

【代码3】:

setVisible(false);

【代码4】:

new FontDialog(this);【代码5】:

setVisible(true);【代码6】:

dialog.setTitle(”字体对话框“);

2.模板代码

FontFamilyNames.java import java.awt.GraphicsEnvironment;public class FontFamilyNames { String fontName[];public String [] getFontName(){ GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();fontName=ge.getAvailableFontFamilyNames();return fontName;} } FontDialog.java import java.awt.event.*;import java.awt.*;import javax.swing.JLabel;

public class FontDialog extends Dialog implements ItemListener,ActionListener { FontFamilyNames fontFamilyNames;int fontSize=38;String fontName;Choice fontNameList;JLabel label;Font font;Button yes,cancel;static int YES=1,NO=0;int state=-1;FontDialog(Frame f){ super(f);fontFamilyNames=new FontFamilyNames();【代码1】 //对话框设置为有模式 yes=new Button(”Yes“);cancel=new Button(”cancel“);yes.addActionListener(this);cancel.addActionListener(this);label=new JLabel(”hello,奥运“,JLabel.CENTER);fontNameList=new Choice();String name[]=fontFamilyNames.getFontName();for(int k=0;k

label.setFont(font);label.repaint();validate();} public void actionPerformed(ActionEvent e){ if(e.getSource()==yes){ state=YES;【代码2】 //对话框设置为不可见 } else if(e.getSource()==cancel){ state=NO;【代码3】 //对话框设置为不可见 } } public int getState(){ return state;} public Font getFont(){ return font;} }

FrameHaveDialog.java import java.awt.event.*;import java.awt.*;import javax.swing.JTextArea;public class FrameHaveDialog extends Frame implements ActionListener { JTextArea text;Button buttonFont;FrameHaveDialog(){ buttonFont=new Button(”设置字体“);text=new JTextArea(”Java 2实用教程(第三版)“);buttonFont.addActionListener(this);add(buttonFont,BorderLayout.NORTH);add(text);setBounds(60,60,300,300);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} 40 public void actionPerformed(ActionEvent e){ if(e.getSource()==buttonFont){ FontDialog dialog=【代码4】 //创建对话框

【代码5】 //对话框设置为可见

【代码6】 //对话框设置设置标题为“字体对话框” if(dialog.getState()==FontDialog.YES){ text.setFont(dialog.getFont());text.repaint();} if(dialog.getState()==FontDialog.NO){ text.repaint();} } } } FontDialogMainClass.java public class FontDialogMainClass { public static void main(String args[]){ new FrameHaveDialog();} } 实验3 英语单词拼写训练

1.答案:

【代码1】: addFocusListener(this);

【代码2】:

addMouseListener(this);

【代码3】:

label[k].addKeyListener(this);

【代码4】:

e.getKeyCode()==KeyEvent.VK_LEFT 【代码5】:

e.getKeyCode()==KeyEvent.VK_RIGHT 2.模板代码

RondomString.java public class RondomString { String str=”“;public String getRondomString(String s){ StringBuffer strBuffer=new StringBuffer(s);int m=strBuffer.length();for(int k=0;k

strBuffer=strBuffer.deleteCharAt(index);} return str;} } LetterLabel.java

import java.awt.*;import java.awt.event.*;public class LetterLabel extends Button implements FocusListener,MouseListener { LetterLabel(){ 【代码1】 //将当前对象注册为自身的焦点视器 【代码2】 //将当前对象注册为自身的标监视器 setBackground(Color.cyan);setFont(new Font(”“,Font.BOLD,30));} public static LetterLabel[] getLetterLabel(int n){ LetterLabel a[]=new LetterLabel[n];for(int k=0;k

import java.awt.*;import java.awt.event.*;import javax.swing.Box;

public class SpellingWordFrame extends Frame implements KeyListener,ActionListener { TextField inputWord;Button button;LetterLabel label[];Panel northP,centerP;Box wordBox;String hintMessage=”用鼠标单击字母,按左右箭头交换字母,将其排列成所输入的单词“;Label messaageLabel=new Label(hintMessage);String word=”“;SpellingWordFrame(){ inputWord=new TextField(12);button=new Button(”确定“);button.addActionListener(this);inputWord.addActionListener(this);northP=new Panel();northP.add(new Label(”输入一个英文单词:“));northP.add(inputWord);northP.add(button);centerP=new Panel();wordBox=Box.createHorizontalBox();centerP.add(wordBox);add(northP,BorderLayout.NORTH);add(centerP,BorderLayout.CENTER);add(messaageLabel,BorderLayout.SOUTH);setBounds(100,100,350,180);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} public void actionPerformed(ActionEvent e){ word=inputWord.getText();int n=word.length();RondomString rondom=new RondomString();String randomWord=rondom.getRondomString(word);wordBox.removeAll();messaageLabel.setText(hintMessage);if(n>0){ label=LetterLabel.getLetterLabel(n);for(int k=0;k

{ 【代码3】 //将当前窗口注册为label[k]的键盘监视器 label[k].setText(”“+randomWord.charAt(k));wordBox.add(label[k]);} validate();inputWord.setText(null);label[0].requestFocus();} } public void keyPressed(KeyEvent e){ LetterLabel sourceLabel=(LetterLabel)e.getSource();int index=-1;if(【代码4】)//判断按下的是否是←键){ for(int k=0;k

{ String success=”“;for(int k=0;k

WordMainClass.java public class WordMainClass { public static void main(String args[]){ new SpellingWordFrame();} } 上机实践8 多线程

实验1 汉字打字练习

1.答案:

【代码1】:

sleep(6000);

【代码2】:

WordThread giveWord;

【代码3】:

giveWord=new WordThread(wordLabel);

【代码4】:

giveWord.isAlive()

【代码5】:

giveWord.start();

2.模板代码

WordThread.java

import java.awt.*;public class WordThread extends Thread { char word;int k=19968;45

Label com;WordThread(Label com){ this.com=com;} public void run(){ k=19968;while(true){ word=(char)k;com.setText(”“+word);try{ 【代码1】//调用sleep方法使得线程中断6000豪秒 } catch(InterruptedException e){} k++;if(k>=29968)k=19968;} } } ThreadFrame.java

import java.awt.*;import java.awt.event.*;public class ThreadFrame extends Frame implements ActionListener { Label wordLabel;Button button;TextField inputText,scoreText;【代码2】//用WordThread声明一个giveWord对象 int score=0;ThreadFrame(){ wordLabel=new Label(” “,Label.CENTER);wordLabel.setFont(new Font(”“,Font.BOLD,72));button=new Button(”开始“);inputText=new TextField(3);scoreText=new TextField(5);scoreText.setEditable(false);【代码3】//创建giveWord,将wordLabel传递给WordThread构造方法的参数 button.addActionListener(this);inputText.addActionListener(this);add(button,BorderLayout.NORTH);add(wordLabel,BorderLayout.CENTER);Panel southP=new Panel();southP.add(new Label(”输入标签所显示的汉字后回车:“));southP.add(inputText);southP.add(scoreText);

add(southP,BorderLayout.SOUTH);setBounds(100,100,350,180);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} public void actionPerformed(ActionEvent e){ if(e.getSource()==button){ if(!(【代码4】))//giveWord调用方法isAlive(){ giveWord=new WordThread(wordLabel);} try { 【代码5】//giveWord调用方法start()} catch(Exception exe){} } else if(e.getSource()==inputText){ if(inputText.getText().equals(wordLabel.getText())){ score++;} scoreText.setText(”得分:"+score);inputText.setText(null);} } } WordThread.java

public class ThreadWordMainClass { public static void main(String args[]){ new ThreadFrame();}

实验2 旋转的行星

1.答案:

【代码1】:

Thread moon;

【代码2】:

thread=new Thread(this);

【代码3】:

Thread.sleep(10);

【代码4】:

Thread rotate;【代码5】:

rotate.start();

2.模板代码

Mycanvas.java

import java.awt.*;public class Mycanvas extends Canvas { int r;Color c;public void setColor(Color c){ this.c=c;} public void setR(int r){ this.r=r;} public void paint(Graphics g){ g.setColor(c);g.fillOval(0,0,2*r,2*r);} public int getR(){ return r;} } Planet.java

import java.awt.*;public class Planet extends Panel implements Runnable { 【代码1】 //用Thread类声明一个moon对象 Mycanvas yellowBall;double pointX[]=new double[360], pointY[]=new double[360];//用来表示画布左上角端点坐标的数组 int w=100,h=100;int radius=30;Planet(){ setSize(w,h);setLayout(null);yellowBall=new Mycanvas();yellowBall.setColor(Color.yellow);add(yellowBall);yellowBall.setSize(12,12);yellowBall.setR(12/2);pointX[0]=0;48 pointY[0]=-radius;double angle=1*Math.PI/180;//刻度为1度

for(int i=0;i<359;i++)//计算出数组中各个元素的值

{ pointX[i+1]=pointX[i]*Math.cos(angle)-Math.sin(angle)*pointY[i];pointY[i+1]=pointY[i]*Math.cos(angle)+pointX[i]*Math.sin(angle);

} for(int i=0;i<360;i++){ pointX[i]=pointX[i]+w/2;//坐标平移 pointY[i]=pointY[i]+h/2;} yellowBall.setLocation((int)pointX[0]-yellowBall.getR(),(int)pointY[0]-yellowBall.getR());【代码2】 //创建 moon线程,当前面板做为该线程的目标对象 } public void start(){ try{ moon.start();}

catch(Exception exe){} } public void paint(Graphics g){ g.setColor(Color.blue);g.fillOval(w/2-9,h/2-9,18,18);} public void run(){ int i=0;while(true){ i=(i+1)%360;yellowBall.setLocation((int)pointX[i]-yellowBall.getR(),(int)pointY[i]-yellowBall.getR());try{ 【代码3】 // Thread类调用类方法sleep使得线程中断10豪秒 } catch(InterruptedException e){} } } } HaveThreadFrame.java

import java.awt.*;import java.awt.event.*;public class HaveThreadFrame extends Frame implements Runnable { 【代码4】 //用Thread类声明一个rotate对象 Planet earth;double pointX[]=new double[360], pointY[]=new double[360];int width,height;

int radius=120;HaveThreadFrame(){ rotate=new Thread(this);earth=new Planet();setBounds(0,0,360,400);width=getBounds().width;height=getBounds().height;pointX[0]=0;pointY[0]=-radius;double angle=1*Math.PI/180;for(int i=0;i<359;i++){ pointX[i+1]=pointX[i]*Math.cos(angle)-Math.sin(angle)*pointY[i];pointY[i+1]=pointY[i]*Math.cos(angle)+pointX[i]*Math.sin(angle);} for(int i=0;i<360;i++){ pointX[i]=pointX[i]+width/2;pointY[i]=pointY[i]+height/2;} setLayout(null);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });add(earth);earth.setLocation((int)pointX[0]-earth.getSize().width/2,(int)pointY[0]-earth.getSize().height/2);earth.start();【代码5】 //用rotate调用start方法 } public void run(){ int i=0;while(true){ i=(i+1)%360;earth.setLocation((int)pointX[i]-earth.getSize().width/2,(int)pointY[i]-earth.getSize().height/2);try{ Thread.sleep(100);} catch(InterruptedException e){} } }

下载java程序设计简明教程--上机练习题参考答案word格式文档
下载java程序设计简明教程--上机练习题参考答案.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    java程序设计教案

    《Java程序设计》 授 课 人:授课班级:电子商务专业 授课教案 第一章Java语言简介 教学目的要求  了解Java的基本特点和用途  掌握如何下载Java SDK软件包  了解设置Java程序......

    Java程序设计教案

    Java程序设计 第一讲 绪论 一、安装netbean系统 二、hello world 典型程序结构中各部分的说明: /* * To change this template, choose Tools | Templates * and open the......

    java培训-Java程序设计

    Java程序设计:图形与多媒体处理(1) 本文主要介绍了Java的图形设计以及多媒体处理,源码作者也做了详细的注释,对于初学者应该不难。详细请看下文 同心圆效果图: 1. /** 2. *......

    java程序设计教案(★)

    课程教案 (理论教学) 课程名称: Java程序设计 课程类型:( 2 )1、必修;2、选修;3、其它 授课对象: 专业(本科) 级 班 授课时间: 至 学年第 学期 计划学时: 学时(其中:理论 ,实验: ) 任课教师......

    Java程序设计报告

    楚雄师范学院 2015年春季期末Java程序设计报告 项目名称:基于Java平台开发的五子棋程序设计 学 院: 物理与电子科学学院 专 业:电子信息科学与技术 班 级:2 0 1 3 级 电 信 一......

    VB程序设计练习题附加答案

    《VB程序设计》综合复习资料 第一章 Visual Basic程序设计概述 一、填空题 1、Visual Basic是一种面向__对象________的可视化程序设计语言,采取了事件驱动________的编程机......

    面向对象程序设计教程 答案5篇

    面向对象程序设计教程(C++语言描述)题解与课程设计指导 第1章 面向对象程序设计概论 一、 名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行......

    PPT程序设计教程

    PPT程序设计教程 文章列表 http://www.xiexiebang.com/Article/ShowClass.asp?ClassID=455                      ·用PowerPoint制作试卷(235) ·PowerPoint制作自动交互......