湖南商学院
《
面向对象程序设计
》
课程设计报告
题 目 网络小蜜蜂
姓 名: 曾艳梅
学 号: 070920107
专 业: 计算机科学与技术
班 级: 计科 0703 班
指导教师: 杭志
职 称:
讲师
计算机与电子工程学院
2009 年 6 月
课程设计评审表
姓 名 曾艳梅 学 院
计算机与电子工
程学院
学 号
070920107
专业班级 计科 0703
题 目
网络小蜜蜂
评
审
意
见
评审成绩
指导教师签名 职称 评审时间 年 月 日
目 录
《面向对象程序设计》课程设计报告....................................1
1 实践过程概述.................................................................4
2 设计任务与要求.............................................................4
3 系统功能描述.................................................................4
4 系统总体设计.................................................................4
4.1 图像显示..............................................................................................................................................4
4.2 网络通信..............................................................................................................................................5
4.3 多线程..................................................................................................................................................5
4.4 GUI 界面处理......................................................................................................................................5
5 系统详细设计.................................................................7
5.1 设计思想..............................................................................................................................................7
5.1.1 区域模型...................................................................................................................................8
5.1.2 小蜜蜂模型..............................................................................................................................8
5.1.3 网络通信模型..........................................................................................................................9
5.2 程序框架............................................................................................................................................10
5.3 代码设计............................................................................................................................................11
5.4 系统运行效果....................................................................................................................................12
5.4.1 运行前的设置........................................................................................................................12
5.4.2 运行效果.................................................................................................................................13
6 课程设计总结...............................................................17
6.1 遇到的问题和解决方法...................................................................................................................17
6.2 缺陷....................................................................................................................................................18
6.3 心得体会............................................................................................................................................18
参考文献........................................................................18
附录..............................................................................19
多媒体展示系统——网络小蜜蜂
本项目融合多线程技术、网络通信技术、图像处理技术、 GUI 图形界面技术等,
来实现一个趣味的基于 C/S 模式的网络小蜜蜂的动画。效果体现为小蜜蜂自由的在多
台计算机间穿梭飞行,并能在发生特定事件时与服务器进行网络通信,同时在客户端
发出蜜蜂采蜜请求时,服务器得到响应,并派遣小蜜蜂到达该用客户端界面。
1 实践过程概述
此次计算机科学与技术专业面向对象课程设计于 2009 年 6 月在实验楼二楼网络机
房进行,持续时间为两个星期。本次课程设计主要是利用所学的面向对象程序设计语
言——JAVA 来编写程序,实现特定功能,以加深对面向对象程序设计这个概念的理解。
2 设计任务与要求
我们设计的多媒体展示系统——小蜜蜂是要在多台计算机之间实现一只小蜜蜂从
一个屏幕飞动到另一个屏幕的动态画面,当在某个客户端界面发出采蜜请求,小蜜蜂
将飞到发送请求的界面。
3 系统功能描述
本实例可以形象化的描述如下:小蜜蜂负责各区域的安全巡逻,他飞经每一个经
过编号的区域,当他到达区域边缘时,向指挥中心汇报当前情况后,经过指挥中心通
知协调。可进入另一个相邻区域继续巡查。当到达区域的最边缘时,小蜜蜂及时汇报
指挥中心,然后返回。为了全面巡查,他的飞行轨迹是不固定的,是随机变化的。指
挥中心负责协调各个区域,协调控制小蜜蜂的进入和离开。另外需要注意的是,在任
何时刻,只有一个小蜜蜂存在。
本实例的最终效果体现为在组成网络的一组计算机上,小蜜蜂连贯而平滑的循环
飞行于各个屏幕之间。它飞行的轨迹、速度等都是随机产生的,没有规律性。在这多
台计算机中,有一台计算机担任服务器,对其余的多台客户机进行通信控制。这台担
任服务器的计算机就是指挥中心,而每个客户机就是一个区域,服务器和多台计算机
通过网络通信来共同完成这组动画。
另外,由于小蜜蜂的飞行轨迹是随机的,所以要尽可能保证飞行间的平滑,避免
过于生硬的动画细节。关键的一点在于,当小蜜蜂飞行到边界区域的时候,不管是转
向飞行还是跨越区域飞行,都不能产生错误,也就是说小蜜蜂被限制在一个范围之内
飞行,不能让他飞到视野以外的区域。在小蜜蜂跨越区域或到达边界的事件发生时,
服务器端和客户端程序都能对小蜜蜂的参数进行实时控制。这些都可以通过合理的程
序设计来实现。
在实现上,本实例要求综合运用到前面学到的知识,主要包括多线程、网络通信、
图像显示等,实现在服务端程序协调下的多个客户端程序的协同工作。
4 系统总体设计
对网络小蜜蜂程序的设计,可以先建立一个简单的模型,然后逐步细化实现。
4.1 图像显示
图像的显示是在客户端完成的,实现动态的小蜜蜂。由于人眼的“视觉暂留”现象,
把多幅静态图片像幻灯片一样连贯的放映,就形成了动画。动画由一帧一帧的静态图
片组成。基于这个原理,将一幅图片在一定的时间内,以适当的距离交错显示,则会
让人感觉图片在运动。小蜜蜂的飞行效果就是在不同时刻,一个图片在不同位置显示
来实现的。由于飞行的方向可能向左,可能向右,所以至少要准备两张图片,即一张
向左飞行,另一张向右飞行。为了达到更加细腻的动画效果,可以增加分解的小蜜蜂
动作的多组图片。图片的显示主要使用 Java 的 Graphics 类提供的 drawImage()方法,图
像相关处理需要使用到的类包括:
java.awt.Graphics:图形上下文的抽象基类,允许应用程序在组件(已经在各
种设备上实现)以及闭屏图像上进行绘制。
java.awt.Toolkit:所有 Abstract Window Toolkit 实际实现的抽象超类。Toolkit
的子类被用于将各种组件绑定到特定本机工具包实现。
javax.swing.JFrame:支持 JFC/Swing 组件架构。
javax.swing.JPanel:一般轻量级容器。
4.2 网络通信
网络间通信是在各客户端与服务端之间进行的,客户端之间通过服务器来传递参
数。能够进行网络通信是服务端控制客户端的协同工作的基本要求。客户端在正常状
态下独立控制小蜜蜂飞行,不与服务端通信。一旦处于活动状态的小蜜蜂发生特殊行
为,如到达区域边缘、欲飞到视野以外等,将触发一次通信,客户端程序将当前小蜜
蜂的状态参数通过网络通信传递给服务器端程序。服务器端程序将接收到的小蜜蜂的
状态消息后组播给所有客户端,客户端收到消息后会对消息进行处理,来决定启动自
身程序或忽略此消息。网络通信用到的是 java.net 包,使用到的类包括:
java.net.InetAddress:通过主机名或 IP 地址查询 DNS 来确定网络中的主机的位
置。
java.net.ServerSocket:实现服务器套接字。
java.net.Socket:实现客户端套接字。
java.net.DatagramSocket:发送和接收数据报包的套接字。
java.net.DatagramPacket:数据报包用来实现无连接的包投递服务。
4.3 多线程
在网络应用中,多线程的应用非常普遍。多线程的应用对界面假死和过多的任务
有很大用处。在本实例中,服务器要同时监听和接收多台计算机的连接,这个连接数
目是可以根据你的需要来设置的。而在客户端要达到控制和动画的同步,这时多线程
就很有必要了。另外在小蜜蜂跨域区域飞行的时候,服务端的响应速度要及时,不然
会造成人能观察到的图像延迟,甚至可能短暂的丢失小蜜蜂。而利用多线程,可以提
高响应速度,提高服务质量,充分利用资源。多线程可以由以下的类提供:
java.lang.Thread:生成 Thread 类的子类,自定义该子类的 run 方法。
java.lang.Runnable:接口类。
4.4 GUI 界面处理
服务器端为了更友好的显示界面,显示当前蜜蜂的运动状态,同时客户端监听的
事件响应,本项目运用了 GUI 技术。
服务器端用于 GUI 涉及到的系统类有 JFrame、JScrollPanel 及 JTextAreal 类。这三
评论0