IT项目之旅(二)篮球计分器(分析、设计、实现)

 

一.     总体设计

   篮球计分器的实现主要包括客户端和服务器两部分,按照客户/服务器的模式进行工作,提供交互式的访问,在INTERNET使用广泛。通信协议主要采用TCP协议。主要实现了篮球计分器的几个关键功能:服务器段与客户端的通信、七段码、断电保存、广告、动画、声音。这是07年5月份课余时间完成的微机实践项目,其主要技术还是在于Socket编程。

 

二、开发环境及主要技术说明

VS2005,主要利用Socket编程,其中还涉及到线程方面的内容

   Socket套接字的工作原理:通过局域网互联网进行通信,至少采用一对套接字,其中一个运行于客户端,另一个运行于服务器端。根据连接启动的方式以及本地套接字要连接的对象连接过程分为三个步骤:服务端接听、客户端接听和连接请求

 三、具体实现过程 

实现的具体过程:

 

(1)声音的实现:

主要设计思想:根据服务器端传过来的控制信息,调用API的接口来实现声音的播放

实现过程:  

声音的实现

   

参数Path为声音存放的路径。

具体应用: playSound("sound""欢呼.WAV");存在缺陷只支持WAV的音乐格式。

(二)广告的实现

   主要设计思想:首先在客户端设置广告的内容,然后把把它传回给客户端,客户端在经过处理,使其能过“飘”起来。主要用一个Timer控件让广告的内容一定时间内向左移动。

   实现过程    

 

广告动态显示

 

      (3) 动画的实现

主要设计思想:将每个动作(2分,3分,1分,犯规等)动画分割成100张图片,根据服务器传过来的信息,100毫秒显示一张,整个看起来就形成了动画。

实现过程:

       

动画实现

(4)LED七段码设计:

1、   主要设计思想:

使用GDI+ 绘图,显示数字时填充特定区域。

2、   详细设计:

1)、采用双缓冲,以减少或避免显示时的闪烁

this.DoubleBuffered = true;

       2)、属性:

         Color 显示颜色

         Length 显示数字位数

         Num 显示值

        3)、主要方法:

         DrawHBar() 画横向显示码

         DrawVBar() 画竖向显示码

         showNum() 按照输入num值七段码显示

         OnPaint() 重写onpaint事件

3、   显示实例:

显示一位数字(length=1

显示两位数字(length=2

显示三位数字(length=3

4、   部分代码:

        

四、程序运行结果

客户端:

  

     

 

服务器端:

 

(五)总结

《篮球计分器》主要涉及Socket编程、GDI+自定义控件、XML序列化以及二进制序列化与反序列化、还有一些多媒体的简单的声音与图片的播放。

 

posted @ 2009-07-02 08:10  wakerobin  阅读(1200)  评论(0编辑  收藏  举报