




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录第一章绪论31.1 开发本游戏的背景及意义31.2 现状31.3 为什么选择Visual C+6.0(VC)开发环境31.4 设计目的与内容3第二章技术背景32.1 win32 API32.2 SOCKET通讯3第三章可行性分析与需求分析33.1可行性分析33.2 需求分析33.2.1基本需求33.2.2游戏需求33.2.3软硬件需求3第四章 详细设计34.1基础功能设计34.2局域网联机设计3第五章 游戏的实现35.1 游戏界面3第六章 总结与展望36.1 总结36.2 展望3参考文献3谢 辞3附 录3毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日南华大学计算机科学与技术学院毕业设计(论文)教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日火拼俄罗斯游戏的设计与实现摘要:本游戏是基于Visual C+6.0平台的局域网版火拼俄罗斯游戏。该游戏设计包括了游戏界面、游戏规则、积分规则三个主要方面。游戏界面主要是为了满足广大游戏爱好者的需求,通过不同的选择,进入或者退出游戏等等操作。在玩的过程中,有良好的用户界面,多人玩的时候,能够随时并方便的查看其它玩家的战况。游戏规则使得所有玩家遵守同一个规则,从而清楚的体现出游戏的公平性。所谓无根据不成方圆,游戏规则是每个玩家必须遵守的原则。积分规则,意思是玩家每次游戏所得的分数,是通过同一个算法来进行计算的,这也是为了充分体现游戏的公平性原则。该游戏的开发语言采用的是C+开发语言,资源处理复用2D游戏的资源处理库,通讯采用开发环境提供的socket通讯技术,消息触发采用MFC提供的消息触发机制,同时用线程做到异步并行。关键词:多线程;局域网;VC+;Win32编程;socketFights Between Tetris GameAbstract:This game is based on Visual c + + 6.0 platform LAN edition Saturday, Russia games. This game design includes game interface, the rules of the game, integral rules three main areas Key words: 引 言对软件需求完全理解对于软件开发工作的成功是至关重要的,需求说明的任务是发现、规范的过程,有益于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,便于采用工程方法开发软件,提高软件的质量,便于开发人员、维护人员、管理人员之间的交流、协作,并作为工作成果的原始依据,并且在向潜在用户传递软件功能、性能需求,使其能够判断该软件是否与自己的需求相关。软件的质量在需求阶段就有很好的第 28 页,共 39 页第一章 绪论1.1 开发本游戏的背景及意义游戏开发至今已经有30多年,在这个短暂的时期里,随着硬件水平的提高,游戏开发新技术层出不穷,经典游戏比比皆是。真正的电子游戏机产生于20世纪70年代。1971年,麻省理工学院的学生Nolan Bushnell设计了世界上的第一个业务用游戏机(俗名街机),叫做电脑空间。这台游戏机用一台黑白电视机作为显示屏,用一个控制柄作为操纵器,不过由于市场因素这款游戏以失败告终。但是最后他在电子游戏的发展上取得了非凡的成就。上面介绍的是专用机游戏的历史,而最早的电脑游戏可以追溯到1972年,一个叫Crowther的工程师用当时最流行的主机DEC公司的PDP10编写一段简单的FORTRAN程序。在这个程序里,Crowther设计了一张地图,地图上不规则的分布着陷阱,游戏者必须寻找路径避开陷阱。这个程序被公认为是最早的电脑游戏程序。1989年,BroderBund公司的设计师乔丹.麦克纳根据阿拉伯民族的古老传说一千零一夜在Apple平台上制作了一部动作冒险相结合的电脑游戏波斯王子。这个游戏获得了第一作,它代表了当时电脑技术的最高水平。1986年,任天堂公司发售了一款真正的游戏巨作超级马里奥。20世纪80年代IBM PC兼容机的出现打破了Apple公司的垄断地位。到了20世纪90年代,游戏业才真正成熟起来,成为了一种产业。由于PC机价格非常低而且硬件速度越来越快,游戏逐渐成为人们生活中不可缺少的一部分。游戏产业也逐渐发展成熟。游戏这个名称一直就存在于每个人的日常生活中,如猜拳游戏、猜谜游戏、大地游戏、球类游戏等,林林总总,不胜枚举,甚至于有些流行歌曲把人生也比喻为游戏,好比“一场游戏一场梦” 。因此,游戏对于现代人的成长历程,绝对是一个不可或缺的重要角色。开发本游戏的意义在于娱乐身心。一种游戏所带来的娱乐性,关键就在于为玩家所带来的刺激感,这也是游戏的精华所在。简单来说,不管是很多人玩的游戏,还是一个人玩的单机游戏,游戏本身就会存在它的娱乐和刺激性,使得玩家们想要去玩它。同时也是检验自己在大学期间的学习效果,通过本游戏的设计能够整理以前学习的知识,并且运用它,为以后进入社会工作打好基础。1.2 现状 目前火拼俄罗斯在QQ游戏平台比较流行,很多人可以通过这款小游戏放松自己紧张的心情,但是对于没有连接互联网的网络环境,想要借游戏来放松一下就没有条件了,这时局域网版的火拼俄罗斯可以满足他们的娱乐要求。在没有互联网的情况下,一个宿舍或者一个单位的人,能够通过局域网,大家一起娱乐下也是一种享受。 1.3 为什么选择Visual C+6.0(VC)开发环境本游戏的设计不需要太复杂的开发环境,可以复用已经有的2D游戏图像处理库,同时游戏的的消息机制跟MFC提供的消息处理机制是一样的,游戏的实时性要求游戏处理事件的能力要快,Visual C+6.0提供的开发条件能够满足需要,同时游戏对界面的要求不会太大,这也是不必用到其它对界面调整功能强大的开发环境的原因。Visual C+以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。Visual C+是开发Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译、调试工具和建立于Win32 API基础上的MFC类库,从而有效地缩短Windows应用程序的开发周期。Windows操作系统本身大部分是使用C/C+语言写成的,而Visual C+正是使用C/C+语言的Win32应用程序集成开发环境。因此,使用Visual C+进行Windows应用程序的开发有着得天独厚的优势。同时由于本开发人员一直用的是Visual C+6.0,对Visual C+6.0操作也比较熟悉。1. 4 设计目的与内容综合运用在校期间所学理论知识和技能,设计开发俄罗斯方块,使自己熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,提高工程实践能力,为将来实际工作打下坚实的基础。设计一款能够在局域网络中运行的火拼俄罗斯方块游戏,用以放松心情,娱乐心身。第二章 技术背景2.1 win32 APIWin32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。 使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。 在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在Windows NT操作系统下使用。另外一些主要差别就是系统限制,比如值的范围约束,或函数可管理的项目个数等等。2.2 SOCKET通讯SOCKET通讯套接字编程,一种网络联网编程的技术。可以实现tcp、udp等网络连接,网络编程中很常用的方法。window环境和linux环境下都有相应的接口。Socket原理,大致分为以下几个步骤。 服务器端的步骤如下。(1)首先,在实用Socket之前,要首先初始化Socket,就是实用AfxSocketInit()函数。(2)在初始化完成以后,就可以建立服务端的Socket,然后实用该Sokcet开始侦听整个网络中的连接请求。(3)当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端之间的连接。连接的过程中,在MFC的框架中会触发一个前面创建的服务端Socket的消息响应函数OnAccept(),我们将建立的连接的代码放到该响应函数里面,在建立连接的过程中,会产生一个新的 Socket,我们使用找个Socket来进行数据的通信。(4)在通信的过程中,服务器端的产生的新的Socket会通过一个消息响应函数OnReceive()来接受到达的数据。数据的发送可以使用Send()来完成(5)当完成通信后,服务器关闭与客户端的Socket连接。客户端的步骤如下。(1)同样的,初始化Socket,并建立客户端的Socket,确定要连接的服务器的主机名和端口。(2)发送连接请求到服务器(MFC中使用Connect(),并等待服务器的回馈信息。(3)连接成功后,与服务器进行数据的交互。(4)数据的读取同服务端一样,也是通过OnReceive()来完成的,数据的发送通过Send()即可。(5)数据处理完毕后,关闭自身的Socket连接。这就是网络Socket的原理的简单介绍,大家有什么疑问可以提出来,另外,在服务器端建立Socket连接的过程中,如何支持并发的最大数量,以及服务器端的负载问题,大家可以多加研究一下。第三章 可行性分析与需求分析3.1可行性分析3.1.1 管理可行性该游戏软件为首次开发,目的只为提高工作自身素质和检查自学C+ 的效果,用 Visual C+6.0软件编写后在Applet管理器中运行简单明了,所有功能均根据基本需求所做。便于管理,所以在这方面是可以实现的。3.1.2 经济可行性由于本游戏的主要背景是毕业课程设计,不注重直接的经济效益和其后的发展方向,只在于注重自身水平和学习能力的提高,对自身的经济要求也不高,只要有一台能运行JAVA3.0软件的电脑便可,所以不用考虑到经济问题。3.1.3 技术可行性 Visual C+6.0提供的基础开发库能够满足开发的需求,2D游戏图形处理库对资源以及图形的处理 。需要对变量定义、变量初始化、界面初始化、游戏初始化、然后进入游戏、处理游戏过程中的各种操作。3.1.4 社会可行性本游戏的开发作为毕业课程设计以巩固先前所学的知识,以个人为单位,仅供个人平常娱乐所用,无须考虑有可能造成的社会影响,不用考虑到法律、版权等的社会因素,所以在这方面是完全可行的。3.2 需求分析3.2.1基本需求游戏者可以通过上下左右键来对游戏进行操作。可支持单人练习及多人游戏。同时支持道具的使用,玩家可以互相释放道具来3.2.2游戏需求3.2.2.1基础功能需求游戏方块随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)下落填充给定的区域,若填满一条便消掉,记分,当达到一定的分数时,过关,设置三关,每关方块下落的速度不同,若在游戏中各形状填满了给定区域,为输者。游戏功能要求如下:游戏形状(方块)需求:良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型),各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。键盘处理事件:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速)、向左、向右移动。显示需求:当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定的分数时过关。设置三关,每关方块下落的速度不同。3.2.2.2局域网联机需求该游戏需要支持本机练习;局域网内多玩家对战;挑战机器人。局域网对战时要实时显示当前所有在线玩家的游戏进度,同时还能得到道具互相释放,增加游戏的娱乐性。3.2.3软硬件需求操作系统Windows98/me/2000/XP/2003内存容量64MB显卡要求8M声卡要求支持DirectX 8.0 音效卡交互工具键盘/鼠标CPU奔腾133以上光驱8倍速以上硬盘空间400MB显示器VGA以上显示器开发软件Java可视化编程3.0以上版本第四章 详细设计4.1基础功能设计在完成逻辑方块的控制操作类中定义成员变量2维指针(char *m_psGameMaps;),标志方块状态,大小由地图的行与列数据决定,为1表示该方块显示,或者不显示,坐标为向下为x轴,向右为y轴,画形状只需要修改数组中相应元素的状态值即可,二维数组(int m_interFace744),接触面二维数组,记录17种下坠物的14种形态的接触面信息,我们把该下坠物的某种形态的4个方块,有向下接触面则记录该方块在方块数组中的位置,无则为-1标识。游戏开始时开辟游戏地图数组和颜色标记数组的内存空间,并赋初值,出事化相关参数,初始化各种形状方块的向下的接触面数据。方块的装载:是否7654321随机抽取一个数随机数一字形Z字形反Z形7字形反7形倒T形田字型游戏是否结束保存当前方块坐标显示方块于屏幕上游戏结束调用destroy()关数初始化返回开始界面定义一个随机变量,然后调用随机函数(rand=(int)(Math.random()*7)+1),所取得的随机数在1到7之间,用这7个数字表示7中常见的方块,并从7种方块中随机抽取图形。每一种方块都是由两个一维数组(x,y)表示的,其中一个用来保存方块所在行,另一个数组用来保存方块所在列,这样有利于方块在屏幕上准确而有活动的定位。所有7种图形都是在三行三列的地图中研究后给出的坐标,给出的坐标也是方块在游戏地图中靠最顶行的坐标。这就好象方块存在于一个三行三列大小的图形中而够成的一张图片。图片的运动也就是方块的运动,这样,要实现方块的变形,就要在三行三列的图形中定义一个最左上角的基点,方块运动,基点也跟着运动。基点坐标在加载方块是加载,基点的存储空间在加载每个方块数组的最后定义。这样使得方块在游戏地图中的每一个地方都可以变形。也不会因为变形而方块在游戏地图中的变动很厉害,出现瞬移的现象。图形坐标装载完后,先判断在方块的下一行是否已有方块,如果有则说明方块以到达游戏地图的顶端,游戏将结束。没有则先把方块坐标保存,这是为了在方块向下移动的时候在它的后面不会有虚假的方块,因为方块向下运动,记录的是新一行的方块坐标,但旧一行的没有消掉,所以要先旧方块的坐标保存起来,搽掉旧方块再显示方块。这样也会减少屏幕的闪烁问题.处理键盘事件:上左右下判断按键图形变化调用RectChange ()方法1. 判断可移动性2. 可以则移动1.判断可移动性2.可以则移动1.判断是否能再向下移2.可以则向下移调用GameMapsDataSetFull()将发生变化后的方块显示在屏幕上当方块要进行上(变形)、下、左、右变化时,先对方块将要移动到的位置进行判断,判断是否有障碍,有则保持原来的位置不变,没有则根据所按的键执行相关的操作。再把方块的位置显示在屏幕上。方块的移动其实也只是对行或列坐标的增减而己。 4.2局域网联机设计服务器开启到开始游戏所做的动作:是否是服务器开启点击创建按钮接受客户机的连接服务器未开始游戏提示玩家,该机器的IP,端口为统一端口,等待玩家连接该机器,创建监听线程将所有玩家地址信息保存,开启服务器接收信息的线程,关闭服务器等待线程,开始游戏,通过服务器接收发送线程同步所有玩家信息只有当服务器点击了创建按钮后,客户端才能连接到服务器,不然就是抛出异常,当服务器点击了创建按钮之后,等待客户端的连接,同时为接收到的用户配对一个编号,当编号小于6的时候(即当前进入游戏的人数还在限度之内),将将该客户端的SOCKET地址保存到一个一维数组中,位置为该玩家的编号。但游戏开始的时候,将直接关闭连接线程,同时已经开启游戏数据线程,接收跟发送玩家游戏数据。玩家连接服务器开始游戏:是根据服务器提供的IP,连接服务器开启数据线程,接收服务器发送数据,发送自己的游戏数据连接成功 设计的时候客户端跟游戏端是同一个程序,客户端也可以做服务器端用,只要更改配置文件即可实现。同时连接的服务器地址也是由配置文件实现。 第五章 游戏的实现5.1 游戏界面单人游戏效果:点击创建按钮,创建游戏提示玩家该主机的IP:没有客户端加入的时候单人游戏现在实现的效果:5.2 关键代码下面代码是实现方块下落时怎么确认是否已经到底(到底的意思是:方块中的某一块已经遇到其它方块了或者底部了)。实现原理:游戏下落的方块总共有7种,其中每一种都是由四个小方块组成,我们知道将我们游戏的方块活动区域定义一个坐标,就能用数组记录没一种大的方块中小方块在坐标中的位置,/各种形状方块的向下的接触面数据for (i=0; i74; i+)for (j=0; j4; j+)m_interFaceij = -1;/*1 - - - -*/m_interFace10 = 3;m_interFace110 = 0;m_interFace111 = 1;m_interFace112 = 2;m_interFace113 = 3;/*2-*/ m_interFace20 = 1;m_interFace21 = 3;/*3 - -*/m_interFace30 = 0;m_interFace31 = 2;m_interFace32 = 3;m_interFace310 = 2;m_interFace311 = 3;m_interFace320 = 0;m_interFace321 = 2;m_interFace322 = 3;m_interFace330 = 0;m_interFace331 = 3;/*4 - - -*/m_interFace40 = 1;m_interFace41 = 3;m_interFace410 = 0;m_interFace411 = 2;m_interFace412 = 3;/*5 - - -*/m_interFace50 = 1;m_interFace51 = 3;m_interFace510 = 0;m_interFace511 = 2;m_interFace512 = 3;/*6 - -*/m_interFace60 = 0;m_interFace61 = 3;m_interFace610 = 1;m_interFace611 = 2;m_interFace612 = 3;m_interFace620 = 2;m_interFace621 = 3;m_interFace630 = 0;m_interFace631 = 1;m_interFace632 = 3;/*7 - - -*/m_interFace70 = 2;m_interFace71 = 3;m_interFace710 = 1;m_interFace711 = 2;m_interFace712 = 3;m_interFace720 = 0;m_interFace721 = 3;m_interFace730 = 0;m_interFace731 = 1;m_interFace732 = 3;第六章 总结与展望6.1 总结 这次毕业设计让我了解到一个项目的完整实现过程,在整个开发过程中遇到了很多问题,如方块的装载和变形、屏幕太闪烁的问题、满行判断及消行的处理以及多人游戏的通讯问题。虽然说最后还是没有完成原本的设计,但是我也从中学到不了很多东西。 刚开始的时候不知道7种方块的样式在程序中怎么实现,到后面是找资料才明白是要用一个二维数组做记录,将所有的情况全部包括进来。总的来说,我自认为还是比较成功的,这也是我在大学四年来完成的一个比较全面的实际例子。在这次项目中,我查阅了大量的资料,对C+有了一点初步的认识,对于软件工程这些辅助性的教材也巩固了不少,为我这次的毕业设计提供了很大的帮助,锻炼了我的能力,也为我的大学生活划上了一个圆满的句号。6.2 展望 火拼俄罗斯是一款简单却充满趣味的游戏,它具有的多人游戏是它最大的特点,道具的加入大大加深了游戏趣味性。如果能完全实现这款游戏的局域网化,将会得到很多人的喜欢。由于开发周期短,开发经验不足,自身能力也有待提高,所以此系统在实现上还存在一些问题,还有待解决和提高:1. 局域网联机出现BUG不能完成局域网联机。2. 道具的使用在通讯上有很大的问题,所以没有加入道具部分。3. 方块的颜色没有实现好,颜色有些不和谐。4. 没有考虑游戏难度逐渐递增问题,降低了游戏的娱乐性。参考文献1 钱能 .C+程序设计教程,-2版.-北京:清华大学出版社,2005.92 郑慧 .范忠诚.零基础学Visual C+.-北京:机械工业出版社,2008.13 裘宗燕(译).C+程序设计语言,-1版.机械工业出版社,2002. 4 朱站立编著 .面向对象程序设计与C+语言,-2版.-西安:西安电子科技大学出版社,2006.45 Bruce Eckel . C+编程思想,-2版 。-北京:机械工业出版社,2000 谢 辞在毕业设计论文即将完成之际,我想向曾经给我帮助和支持的人们表示衷心的感谢。本文的编写工作是在导师余颖老师的悉心指导下完成的。余老师常识渊博,对我严格要求使我受益非浅。尤其是系统设计期间她多次从繁忙的工作中抽出时间来检查我的工作进展情况。在此表示深深感谢!此时此刻无法用言语来形容我对她的敬意,她蓬勃的进取精神是我终身学习的榜样!感谢余老师在此期间对我技术上无私的指导,余老师的谆谆教导把我带入了技术的殿堂,让我对技术产生了浓厚的兴趣,为以后我的技术生涯奠定了坚实的基础。我以后一定以钱老师为榜样,做一名优秀的软件工程师,为中国的IT事务奉献我毕生的精力!感谢学校的领导能在毕业之前给我这样一个实践的机会,让我从中学到很多知识并且提高了我的动手能力。感谢教过我的所有老师,是你们传授了我知识,让我能成为一名合格的毕业生。我要由衷地感谢我的指导老师,在课题设计方面给了我大量的指导和帮助,让我学到了知识,也获得了实践锻炼的机会。他们严谨的治学态度、对我的严格要求以及为人处事的坦荡将使我终身受益。我还要向大学四年来对我的生活、学习给予了关心、支持和帮助的老师和同学表示感谢。在本文的写作过程中,参考了大量的文献资料,在此对各位学者、专家表示深深谢意!最后我要向所有帮助过我支持过我的人致谢,如果没有这些帮助和支持我就克服不了学习和生活中的种种困难,就不会取得现在的成绩。真心谢谢你们最后我要感谢我的家人,感谢他们上大学以来对我默默的支持!感谢我的母校,今生今世不管我身处何方,我将永远以南华为荣附 录/各种形状方块的向下的接触面数据for (i=0; i74; i+)for (j=0; jhdr.type = type;pTemp-hdr.length = 1;pTemp-data = data;pTemp-tail = ;dest = (BYTE *)pTemp;destLength = 4;return 1;break;return 0;/ 编码字符串通讯信息,编码后信息由dest返回,长度为destLength。/注:dest内存由调用者释放int CInformation:EnCodeString(BYTE* &dest, int& destLength, int type, const char* str, int strLength)/为聊天信息留着,暂未编写dest = NULL;destLength = 0;return 0;/ 编码字符串二维数组,str为二维数组名,strILength为该二维数组的第一维长度,strJLength为该二维数组的第二维长度,编码后信息由dest返回,长度为destLength。/注:dest内存由调用者释放int CInformation:EnCodeDString(BYTE* &dest, int& destLength, int type, char * str1, char * str2, int strILength, int strJLength)switch (type)case USER_REAL :LPIO_RealDateBag pTemp = new IO_RealDateBag;pTemp-hdr.type = USER_REAL;pTemp-hdr.length = 252;for (int i = 0; i strILength; i+)for (int j = 0; j data1i * strILength + j = str1ij;pTemp-data2i * strILength + j = str2ij;pTemp-tail = ;dest = (BYTE *)pTemp;destLength = 507;return 0;break;return 0;/ 解码,解码src后由type返回信息类型,根据类型,用GetInt获取整型信息,用GetString获取字符串,用GetDString获取字符串数组/ 解码后请立即获取数据,不然可能会出现错误数据int CInformation:DeCode(int& type, const BYTE* src, int srcLength)switch (src0)case
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电力安全常识知识测试题及答案
- 2025年幕墙员工考试题库及答案
- 高铁纵向便道施工合同(3篇)
- 高炮广告牌施工协议合同(3篇)
- 高空作业工程合同模板(3篇)
- 高空门头施工要求合同(3篇)
- 安徽省辅警笔试题型及答案
- 安徽成人高考试题及答案
- 安防知识考试试题及答案
- 出差期间医疗及保险保障协议
- 闪送员考试25题目及答案
- 卒中后抑郁的中西医治疗
- 轨道列车司机四级题库及答案
- 胫腓骨骨折教学查房课件
- 腹股沟疝的护理教学查房
- 甜蜜陷阱:健康吃糖的危害与科学控糖指南
- 青少年心理健康课件
- 腹部超声报告解读
- 中医护理学基础理论测试题(附答案)
- 课件:大别山精神从大别山精神中汲取奋进力量
- 施工现场专职安全生产管理人员安全日志
评论
0/150
提交评论