《网络编程技术实验指导书2011之实验一.doc》由会员分享,可在线阅读,更多相关《网络编程技术实验指导书2011之实验一.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、网络编程技术实验指导书网络编程技术实验指导书2011版(网络工程专业)9实验一 使用多线程技术输入输出数据资源(1)一、 实验目的熟悉java运行环境,编程掌握Java输入输出流和Swing组件的用法。二、 实验环境一般微机即可,软件MyEclipse,JDK1.5以上版本即可。三、 实验内容1)搭建java运行环境2)Java IO流的用法3)Swing组件及事件处理四、 实验步骤 1完成以下程序。第一题:从键盘输入一首诗,把它写入到文本文件poem.txt中。要求:(1)一次输入一行诗,输完后将其会现在屏幕上。然后再输入下一句。(2)最后将整首诗的内容从poem.txt中读取出来,显示在屏
2、幕上。(3)诗的内容:静夜思床前明月光,疑是地上霜。举头望明月,低头思故乡。 提示:u 程序运行截图u 键盘输入可使用System.in是一个原始的未经包装的InputStream。u 本题中要求一次读入一行诗句,所以System.in流的输入需要经适配器InputStreamReader必须对其进行包装,将其转换为字符流,然后使用缓冲式字符流BufferedReader对其进行包装,这样方可以使用BufferedReader 类的readLine()方法进行整行读取。第二题:编写一个计算三角形面积的小程序,要求用户输入三角形的三边长,然后将计算出的三角形面积显示在JFrame窗口中。提示:u
3、 程序运行效果图正常运行的情况如果用户输入非数值型数据如果用户输入的数据无法构成三角形u 提示之关于界面设计可以使用两个JPanel,一个JPanel放置上图第一行的swing组件,一个JPanel放置上图第二行的组件。如其中一个JPanle可以这样设计: f=new JFrame(计算三角形面积); /设置Frame的属性 p=new JPanel(); l=new JLabel(请输入三角形的三条边长:); t1=new JTextField(0,5); t2=new JTextField(0,5); t3=new JTextField(0,5); /将三个文本框都注册给焦点事件监听者 p
4、.add(l); p.add(t1); p.add(t2); p.add(t3); f.add(p);u 三角形的面积计算Math.sqrt(q*(q-a)*(q-b)*(q-c),q=a+b+c/2在计算面积之前需要先判定用户的输入能否构成三角形u 判定用户的输入数据格式是否合法可以使用焦点事件FocusEvent的监听接口FocusListenerclass HandleFocus implements FocusListener / 内部类,焦点处理public void focusGained(FocusEvent e) public void focusLost(FocusEvent
5、 e) 实验一使用多线程技术输入输出数据资源(2)一、 实验目的熟悉java运行环境,编程掌握Java输入输出流和Swing组件的用法。二、 实验环境一般微机即可,软件MyEclipse,JDK1.5以上版本即可。三、 实验内容1)搭建java运行环境2)Java IO流的用法3)Swing组件及事件处理四、 实验步骤 1完成以下程序。第三题:编程实现一个人机交互版的猜数游戏u 第一个线程givenNumberThread负责随机给出1-100之间的一个整数,u 第二个线程guessNumberThread负责提取用户从键盘输入的所猜得的数字,u 每当第二个线程给出自己的猜测后,u 第一个线程
6、会提示“猜大了”,“猜小了”,“猜对了”。提示:(1) 程序运行截图(2)相关提示仿照上课所讲的例题GuessNumberGame.java和GuessNumberGame1.java,在程序中合理使用wait(),notify()或notifyAll()等方法,使各个线程能够合理的交替运行,直到用户猜对了为止。第四题:编程实现一个带滚动字幕和时钟显示的小字典,1) 用户在左侧文本框中输入英文单词并按下enter键时,另一个文本框显示其汉语介绍;字典中能够翻译的单词如下boy,girl,man,woman,对应的中文翻译为男孩,女孩,男人,女人;2) 当用户在左侧文本框中输入“fast”后,能
7、够加速滚动字幕的显示;输入“stop”后,滚动字幕停止;输入“restart”后,滚动字幕重新开始滚动;3) 当用户在左侧文本框中输入“start clock”后,开始显示系统时钟;当用户输入“stop clock”后,时钟终止显示。4) 用户在左侧文本框中输入其他英文单词时,另一个文本框提示说“没有对应的中文”。提示:(1)程序运行截图初始界面,“欢迎使用本系统”正在滚动中在文本框中输入start clock后,启动显示时钟线程。在文本框中输入boy后,右侧文本框中显示其对应中文。输入其他单词看,右侧文本框中显示“没有这个单词的英文翻译!”(2)编程提示可以参照例题ScrollWordsAn
8、dTimer.java,看看这两个程序的控制有什么不同的地方。实验报告一书写要求:实验名称:使用多线程技术输入输出数据资源一、 实验目的熟悉java运行环境,编程掌握Java输入输出流和Swing组件的用法。二、 实验环境一般微机即可,软件MyEclipse,JDK1.5以上版本即可。三、 实验内容1)搭建java运行环境2)Java IO流的用法3)Swing组件及事件处理四、 实验步骤 这里描述一下你所完成的几个程序,并绘制第二题和第四题的程序流程图(不需要抄代码)。五、回答问题字节流和字符流的区别是什么?如何进行转换?简述线程的两种创建方式。第一种创建线程的方法:继承Thread类Thr
9、ead类最重要的方法是run(),你如果想实现线程你就得覆盖这个方法,run里面的内容就是你要实现线程所具有的功能。而Thread里的run方法总会以某种形式进行循环,如果run方法里没有跳出循环的条件,线程将会一直运行下去。编写好一个线程对象后,对象要通过start()方法启动线程,构建的线程对象如果不调用start()方法,线程将永远都不会执行run方法里写好的业务逻辑。第二种 java里线程的方式接口Runnable java里没有多继承,一个类继承了某一个父类后就不能再继承别的类了,这就产生了一个问题,在实际的开发中,子类所要继承的父类往往都是包含业务信息的,而Thread类仅仅是为了实现线程功能而定义的,没有必要让定义好的类直接继承Thread类,为了解决java多继承给线程实现带来的问题,java里使用了一个变通的方案,实现了一个Runnable接口从而解决了上面的问题,让我们定义的类既能继承父类的业务信息,又能具有线程的特点。