1、 题 目: 用 VC+实现俄罗斯方块游戏 姓 名: 张继松 学 号: 201005050018 系 别: 物理与机电工程学院 专 业: 电子信息工程 年级班级: 2010 级 2 班 指导教师: 姚遥讲师 2014 年 5 月 18 日毕业论文(设计)作者声明本人郑重声明:所呈交的毕业论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全了解有关保障、使用毕业论文的规定,同意学校保留并向有关毕业论文管理机构送交论文的复印件和电子版。同意省级优秀毕业论文评选机构将本毕业论文通过影印、缩印、扫描等方式
2、进行保存、摘编或汇编;同意本论文被编入有关数据库进行检索和查阅。本毕业论文内容不涉及国家机密。论文题目:用 VC+实现俄罗斯方块游戏作者单位:周口师范学院作者签名: (学号 201005050018)年 月 日 目 录摘要 1引言 11.绪论 21.1论文研究的背景及意义 21.2电子游戏在国外的发展现状 21.3电子游戏在国内的发展现状 32.开发工具介绍 32.1VC+的优点 .32.2面向对象软件开发过程及思想 32.3 MFC简介 43.项目介绍 .43.1问题描述 43.2游戏操作方法 43.3软硬件需求 53.4项目的目的与目标 54.项目分析 .64.1总体分析 64.2下坠物分
3、析 64.3中断和正常工作分析 64.4主界面分析 75.系统分析与设计 .75.1程序流程图 75.2定义方块的数据结构 85.3运行图示 96.结束语 21参考文献 21致谢 230用 VC+实现俄罗斯方块游戏摘 要:本文主要针对如何用 VC+实现俄罗斯方块游戏进行研究。循序渐进地介绍如何画一些基本的图形,如何加载和处理图像,如何创建图形和动画,如何检测程序不同图形元素(称为 sprite)之间的碰撞。在本设计中,系统开发平台为 Window7,程序运行平台为 Windows7/XP。通过这次设计,本人熟悉了Visual C+6.0下可视化编程的特点,以及各种操作和技巧。最后使用软件编程语
4、言 C/C+和软件编程工具 VC+ 6.0对其进行编程实现。关键词:俄罗斯方块游戏;Sprite;VC+ 6.0With VC+ realize russian box gameAbstract: This paper mainly researches how to realize the Russian Box Game by VC+. We introduce how to draw some of the basic graphics, how to load and process images, how to create graphics and animation, how t
5、o test procedure different graphic elements (called the Sprite) between the collision step by step.In this design, system development platform is Window7, application platform for Windows7/ XP. The author can understand the characteristics of Visual programming under Visual c + + 6.0, familiar with
6、the various operations and skill through this design. Finally using software programming language C/C + + and VC + + 6.0 programming to realize the software programming tools.Key Words: Russian Box Game;Sprite;VC+ 6.0引言我们国家正处于全球文化产业日新月异大格局中,电子游戏,网络游戏的发展速度之快,更是令人眼花缭乱,目不暇接。未来的电子和游戏发展趋势必将是更智能化,更艺术化,更人性
7、味。在高性能的硬件设备支持下,游戏的驱动引擎更具威力,控制功能更加完备,在一个错综复杂的极度扩张的游戏大世界中,带着超乎常人智慧的人工智能的应对力,使得所有要素包括艺术的风格,情感的互动,故事的铺展,视觉的表现,用户的界面,融合为有机的一体,给人们带来更丰富的娱乐和体验。好的游戏给人们的生活带来了健康愉快的补充,唯美的艺术享受,潜默的教育功效 1。1本系统采用VC+为主要开发工具设计实现了一个单机版的俄罗斯方块游戏。与其他程序相比,笔者的作品有三个特色:一是精心设计的人机界面,不仅友好而且易于操作。二是笔者的游戏采用的是单机版。三是采用MFC应用程序开发模型进行编制,使开发人员减轻创建Wind
8、ows应用程序的负担。笔者设计的俄罗斯方块游戏虽然是单机版的,但是速度快,反应灵敏,提高了效率。1. 绪论1.1 论文研究的背景及意义在个人电脑日益普及的今天,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一,它以其趣味性强,易上手等诸多特点得到了大众的认可,因此开发此游戏软件可满足人们的一些娱乐的需求。此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏 2。游戏软件是一种与文化背景密切相关联系的产品,具有很强的民族性和丰富的文化内涵。伴随着游戏软件在市场上的销售,与其相关的文化也
9、随之传播。因此发展我国自主的益智,健康的游戏软件已是当务之急。游戏是一种基于计算机的应用软件,是新型的休闲娱乐方式。当前开发的游戏软件应该做到知识性,娱乐性,趣味性,教育性相统一。伴随着社会工作压力的增加,人们的精神世界需要得到极大丰富,压力需要得到放松 4。最近几年,游戏成为人们的必需品,开发一个小游戏已是迫在眉睫,人们可以通过玩一些小游戏使人们的巨大压力得到释放 3。1.2 电子游戏在国外的发展现状电子游戏是最初产生于美国,1971 年,一个还在 MIT 就读的学生设计了世界上第一个业务用游戏机,这个街机游戏的名字叫电脑空间 。可以说时至今日,电子游戏仍然是外国的天下 7。美国至今仍然是世
10、界上第一大游戏市场,它遵循的是以发行商为主的产业开发连模式,日本这 30 年来疯狂从电子游戏方面赚钱。从上世纪 50 年代的街机,到七十年代的游戏机,再到九十年代的掌上游戏机,日本经过近 40 年的努力,最终把电子游戏这棵巨大摇钱树培育成第一时尚娱乐支柱产业,垄断全球2游戏界长达 15 年,对于日本来说,电玩业已经是国家经济的重要支柱,在GDP 中占有举足轻重的地位 5。日本游戏业在最辉煌的 1998 年,曾经占领全球电子游戏市场硬件 90%以上,软件 50%以上。韩国号称世界上网络游戏产业最发达国家之一。迄今为止,国内的网络游戏有 65%来自韩国游戏软件开发商,韩国网络游戏使国内很多公司在游
11、戏营销市场获得了巨大的成功 6。韩国政府把正确的引导和定位给了游戏市场,做了很多市场培育工作。在韩国,从制作到运营,一个网络游戏公司起步门槛较低,主要得益于政府实行的援助计划。在有利的政策形势下,韩国出现了众多的游戏院校,大力培养游戏开发人才,从而为游戏生产提供了基础保障。1.3 电子游戏在国内的发展现状与电子游戏发达的国家相比,我国在这个方面还有很大的差距。目前,我国游戏市场正处于发展阶段,游戏软件主要来自日本,美国,韩国等地。但是国内游戏制作正在告诉增加,国产原创的游戏即将成为游戏的主流。2006 年 2月 11 日,中央电视台报道:我国网络游戏产业当年增加了 45%,今后几年都将以 56
12、%以上的速度增长;第二届中国网络游戏年会报道:中国国内的网络游戏2010 年规模达 72.6 亿元,2013 年规模将达到 109.4 亿元。2. 开发工具介绍2.1 VC+的优点VC+是由 Microsoft 公司制作,基于 Windows 环境的一款编程软件。由于Windows 操作系统比起 MS-DOS 操作系统优越了许多。其最大的特点就是可视化。不过在提供可视化的编程方式的同时,它采用了面向对象的程序设计方法,与以前的结构化程序设计方法相比,减少了软件的开发周期,提高了软件的开发效率,使程序员可以更好的理解和管理庞大的程序 9。VC 还集成了大量的最新技术,如 COM,ACTIVEX
13、等技术适合开发大型工程,这是相对于 VB 的一个明显优势。它的兼容性较好,还为用户丰富的文档和案例。2.2 面向对象软件开发过程及思想 面向对象方法是建立在对象概念基础上,是一种把面向对象的理念应用与软件开发过程中,指导开发活动的系统方法学。对象是由容许的操作和数据组3装的封装体,和客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象 10。但继承性是对具有层次关系的类的操作与属性进行共享的一种方式。所谓面向对象简单来说就是基于对象的概念,以对象为中心,以类和继承为构造机制,来理解,认识,刻画客观世界和设计,构建相应的软件系统。2.3 MFC 简介MFC 是对 WindowsAPI
14、的封装,它可以大大简化我们的工作。使用 MFC和 C+的优点是 MFC 已经包含和压缩了所有标准的“样板文件”代码,这些代码是所有用 C 编写的 Windows 程序所必需的。当使用 MFC 时,你编写的代码是用来建立必要的用户界面控制并定制其外观。同时你还要编写用来响应用户操作这些控制的代码。例如,如果用户单击一个按钮时,系统本身有代码来响应。这就是事件驱动代码,它构成了所有应用程序。一旦应用程序正确的响应了所有允许的控制,它的任务也就完成了。此外,MFC 是在整个 Windows家族中都是兼容的。每当新的 Windows 版本出现时,MFC 也会得到修改以便使旧的编译器和代码能在新的系统中
15、工作。MFC 包括大约 100 多个类,但是经常使用的也就二三十个。前面介绍的 App 类,文档类,视图类,框架类等等,都是编程的时候经常用到的。3. 项目介绍3.1 问题描述游戏必须支持 7 种不同的类型方块的旋转变换和移动键盘操作,而且游戏界面必须显示下一个方块的形状和当前的玩家的积分,随着游戏的进行,积分越多,等级越高,游戏难度越大,即方块的下落速度越快,消去一行所得的分数越高,为玩家提供了不同的选择。3.2 游戏操作方法游戏区域会从顶部不断落下 7种下坠物的一种,游戏区域的右侧有一方框可以提示用户下一个下坠物的形状,玩家可以移动、旋转和加速下落自己窗口内落下的下坠物,通过用户的操作,下
16、坠物在游戏区域以“摆积木”的形式出现。下坠物在一行或多行堆满后就可以自动消掉,消行后会得到相应的分数,如果当前下坠物堆积至窗口顶端,即游戏结束 12。4(1)按游戏界面的“文件”菜单来开始游戏;“文件”菜单暂停游戏; “文件”菜单退出游戏;(2)键盘操作: “”左移一格;“”右移一格;“”旋转操作;“”下坠物丢下(加速下落);(3)“计分牌”显示的内容:“分数”为本局的分数,一次消一行加 1分。一次消两行加 4分、一次消三行加 9分、一次消四行加 16分。“级别“为游戏当前等级,当分数达到当前等级的最高值,等级会提升、速度会加快。当分数到达晋级分数(当前等级与下一级的分数差)后自动晋级,分数继
17、续累加。重点:(1)游戏面包的数据结构:二维数组。(2)7 种形状方块的数据结构:结构体保存每种形状方块的坐标,颜色。3.3 软硬件需求3.4 项目的目的与目标项目实现了俄罗斯下坠物的所有基本功能,同时,为了满足人们的个人需求我们加入了很多游戏个性化效果 15。我们可以加入各种背景图片以供选择,从而实现画面的美观、简洁、有吸引力;还可以加入音乐、音效和 Flash动画效果等,从而使游戏从感官上更加吸引玩家;还可以加入自主设置键盘的操作,从而使操作更加简单,更容易上手,且不易失误。并且当游戏窗口最小化时,游戏能够自动暂停,我们会力争使游戏具有可靠性,安全性,完整性,灵活性,开发出一款更加适合人们
18、需求的俄罗斯方块游戏。5综合运用所学理论知识和技能,设计开发俄罗斯方块游戏,使自己熟悉应用系统的开发过程,检验学习效果和动手能力,培养独立思考能力,提高工程实践能力,为将来实际工作打下坚定地基础。4. 项目分析4.1 总体分析剖析游戏的实质,可以发现:首先,该游戏需要一个良好且可控的界面,能够接受鼠标和键盘的响应,可以供玩家选择自己想要的游戏级别,实现个性化设置;其次,由于游戏涉及到许多不同种类的下坠物,所以需要来构造这些下坠物并且设置一种旋转规则实现下坠物的各种旋转;再者,在游戏过程中,必须要处理好下坠物的一些事件,例如自动下落,消除满行,下一个下坠物的显示以及游戏的自主升级。4.2 下坠物
19、分析本游戏需要有 7 种下坠物,而每种下坠物还可以进行旋转。每种下坠物每行每列最多只有 4 个小下坠物。图形有以下 7 种:长条形;Z 字形;反 Z 字形;田字形;7 字形;反 7 字形;T 字形。可以将它们放在一个 n*m 的区域内,该区域可以看作是有许多个等面积小下坠物构成的区域,而这些区域的状态只有两种,被下坠物占据或空闲,因此,对于整个游戏区域的空间是占据或空闲,可以用一位数来标识,占据为“1”,空闲为“0”。对于 7 种下坠物和它们旋转后的形态我们可以用不同的标识进行标记。对于旋转,游戏中所有下坠物都是按照逆时针旋转的规则进行的,而且在旋转过程中它们不会因为旋转而下降,总会保持在同一
20、高度。任何下坠物经过一个旋转周期还会变回原型。4.3 中断和正常工作分析当用户进行一定的操作交互的时候,运行程序可以根据用户的操作指示进行当前下坠物的控制。而这些操作都是响应相关的功能键而执行的,所以这里可以把它看成一种“中断”的操作。在中断过程中,可以通过键盘包括按某些键进行操作。为了便于用户操作,用户可以选择操作键,但他们的作用不变。但还是应该设置默认键来方便操作。例如:光标向上键,光标向下键,光标向左键,光标向右键。(1)按光标向上键 6此事件产生下坠物旋转操作,下坠物并非任何情况都能旋转,如果旋转后与小方格矩阵显示的下坠物有冲突或超出边界时,均不能发生旋转。因此首先要判断是否有足够的空
21、间进行旋转,然后选择是否旋转。(2)按光标向下键此事件产生下坠物加速下落操作,如果下坠物已经到达游戏区域底部或者已经有其他方块遮挡,则下坠物停止下降。(3)按光标向左键此事件产生下落下坠物左移操作。首先要判断此下坠物是否能够发生左移,当越界或被其他显示下坠物阻挡时,则不能左移。(4)按光标向右键此事件产生下落下坠物右移操作。首先要判断此下坠物是否能够发生右移,当越界或被其他显示下坠物阻挡时,则不能右移。在无人操作时,游戏开始后会随机产生一个下坠物,先显示在界面右上角的显示区域,然后转到游戏区域,右上角又随机产生一个新的下坠物,当该下坠物下落到底后,新的下坠物再次进入游戏区域,如此循环,直到游戏
22、结束暂停,这就是游戏的正常工作。4.4 主界面分析主界面分析主要包括界面的显示,快捷键的使用。首先,根据游戏本身的需要,应该在游戏界面里设置三个选项,分别为文件、查看和帮助。文件里面包括开始、暂停和退出。查看里面包括工具栏和状态栏。快捷键分别如下:文件(F) ,查看( V) ,帮助(H) ,开始(S) ,暂停(F3 ) ,退出(X ) ,查看(V ) ,帮助(H) 。5. 系统分析与设计5.1 程序流程图流程图突出了游戏设计的中心,为游戏设计提供了良好思路。其流程图如图 1所示。 7图 1 程序流程图 5.2 定义方块的数据结构对于方块在某一瞬间的位置标识,我们采用 4*4 的数组标识出来,即
23、用四个存储单位空间存储当前下坠物的每一个方块的位置,也就是说用 4 个存储单位空间存储当前下坠物的每一子块的位置对整个下坠物的位置进行标识,而每一个存储空间的大小就是一个点的坐标(x,y) ,每一个方块按照从左到右的方式进行编号,并且在编号过程中对于同一列的方块实行从上到下进行编号。ActiveStatus00和 ActiveStatus01则是第 0 号方块的横坐标 x 和纵坐标 y, ActiveStatus20和 ActiveStatus21则是第 2 号方块懂得横左边 x 和纵坐标y。5.3 运行图示(1)开始游戏界面8图 2 开始游戏界面本游戏开始的时候首先要运用几个函数使其进行中断
24、调用,首先关于处理键盘事件。关于按键命令消息的响应,可以通过对 WM_KEYDOWN 消息的处理函数进行截获并重写实现下面是对该处理函数 OnKeyDown()的重写。void CSkyblue_RectView:OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)switch(nChar)case VK_LEFT:RectArrow(LEFT);break;case VK_UP:RectChange();break;case VK_DOWN:RectArrow(DOWN);break;9CView:OnKeyDown(nChar, nRepCnt,
25、 nFlags);键盘运用后,要先对其进行构造, 构造函数如下:CMy4_1View:CMy4_1View()/ TODO: add construction code herefenmian.LoadBitmap(IDB_BITMAP1);start=false;m_bPause=false;CRussia:CRussia()jiemian.LoadBitmap(IDB_BITMAP2);fangkuai.LoadBitmap(IDB_BITMAP4);对游戏构造后,要进行位图的加入,涉及画图函数,主要进行背景以及画面的构造:void CMy4_1View:OnDraw(CDC* pDC)C
26、My4_1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCDC Dc;if(Dc.CreateCompatibleDC(pDC)=FALSE)AfxMessageBox(“Cant create DC“);/没有开始,显示封面if( !start)10Dc.SelectObject(fenmian);pDC-BitBlt(0,0,500,550,/显示背景elserussia.DrawJiemian(pDC);开始时我们是设 start 为假,它就会在 OnDraw(
27、)函数中画封面,而当我们开始游戏,start 为真,那么,它干什么呢?画背景!其函数如下:界面函数:void CRussia:DrawJiemian(CDC*pDC) CDC Dc;if(Dc.CreateCompatibleDC(pDC)=FALSE)AfxMessageBox(“Cant create DC“);/画背景Dc.SelectObject(jiemian);pDC-BitBlt(0,0,500,550,/画分数,速度,难度DrawScore(pDC);/如果有方块,显示方块/游戏区for(int i=0;iBitBlt(j*30,i*30,30,30,11/预先图形方块for(
28、int n=0;nBitBlt(365+m*30,240+n*30,30,30,图 3 开始游戏界面 (2)进行游戏界面下图为游戏正在进行的画面,玩家在开始游戏后,会产生新的方块下坠物,玩家可在游戏规则下随意移动。根据玩家得分的不同,游戏级别会不同,速度不同,难度增加。12图 4 进行游戏界面游戏正在进行的时候,玩家要进行 7 种图形的变形,当按下向上键时,会执行方块变化事件 change()。常见的方块有 7种,每个方块有 4种不同的变化形状。例计算变形后的小方块的坐标和显示的状态值。/变形后位置在数组中的存放顺序仍需遵循先左后右,在同一列中先上后下xx1=x1; xx2=x2; xx3=x
29、3; xx4=x4; yy1=y1; yy2=y2; yy3=y3; yy4=y4;switch(m_currentRect) case 1:xx1=x1+1; yy1=y1-1; xx3=x3-1; yy3=y3+1; xx4=x4-2; yy4=y4+2;m_lscurrentRect = 11;break;case 11:13xx1=x1-1; yy1=y1+1; xx3=x3+1; yy3=y3-1; xx4=x4+2; yy4=y4-2;m_lscurrentRect = 1;break;./省略部分为同类实现的变形后小方块坐标的计算代码case 73:xx2=x2+1; yy2=y
30、2-1; xx3=x3+2; yy3=y3-2; xx4=x4-1; yy4=y4-1;m_lscurrentRect = 7;break;在游戏进行的同时,必须有新的方块生成,对其进行显示通过视图层的GamePanel 类的 paint(Graphics g)方法调用 Shape 类的 drawMe(Graphics g)方法,从而实现方块的绘制,代码如下:public void drawMe(Graphics g) g.setColor(Color.BLUE);for(int x=0; x0;k-)/上行给下行for(int l=0;lm_ColCount;l+)Russiakl=Russ
31、iak-1l;/第一行为零for(int l=0;lm_ColCount;l+)Russia0l=0;15/消行,表示运动方块已经停止/必须生成新的运动方块DrawWill();/加分switch(m)case 1:m_Score+;break;case 2:m_Score+=3;break;case 3:m_Score+=6;break;case 4:m_Score+=10;break;default:break;/速度赋值m_Speed=m_Score/100;for(i=0;i4;i+)for(int j=0;j4;j+)if(Nowij=1)/到了顶点if(Russiai+NowPos
32、ition.xj+NowPosition.y=1)16end=true;AfxMessageBox(“游戏结束!“);return;至此,游戏进行界面结束。结束游戏界面:图 5 结束游戏界面(3)游戏设计分析从前面的功能描述可知,先虚拟出俄罗斯方块游戏的类对象,并抽象出核心的数据属性和操作方法等,然后再做细化,最后将整个虚拟类外壳脱掉,再移植到视图类中去,实现方法如下:17表 2 涉及函数序号 函数名 作用1 Main() 定义窗口2 Rectview() 创建变量3 Gamestart() 游戏开始 4 DrawGame() 游戏界面初始化5 RectDown() 当前方块下降6 Inval
33、idatecurrent() 刷新指定区域7 GamePaush() 游戏暂停8 OnDraw() 绘制屏幕9 OnTimer() 承担所有驱动10 KeyDown() 承担所有驱动11 Rectchange() 控制图形变化12 GameEnd() 游戏结束通过上面的方法可以看出,在虚拟类中抽象出了核心的内部数据和一些基本操作函数。对于操作函数,可以把它们分为内部实现和基本核心操作(如判断操作)以及明显提供给外部使用的整体模块外部操作(如状态控制操作) 。而内部基本操作又可分为执行操作与判断操作。将新产生的下坠物放置到游戏区域中去,这是可能出现的马上到达底部的情况,因此需要对它来进行判断,如
34、果是到达了底部,则进行消行处理,并且修改相应的数据状态。但判断是否已经到了底部,可以通过当前的下坠物所对应的接触面的方块位置为被占用状态(MAP_STATE_NOT_EMPTY=1)来确定的,利用数组 InterFace744记录 17 种下坠物的 14 种形态的接触面的信息。统计分数:在消行处理的里面有一个用来专门统计消行数量的变量,然后根据变量的值决定分数的多少。程序统计分数是:消一行得 1 分,同时消两行得 4 分。如果总分数达到过关条件就可以过关,改变游戏速度,游戏初始化,开启新的一关。没有达到过关分数或者没有满行,则继续加载下一个方块。18图 5 升关图示6. 结束语在这次设计过程中
35、我学到了很多东西,不仅巩固了自己课堂上所学的理论知识,更进一步的理解和掌握 C+这门语言。本次设计让我初步懂得了电子游戏所涉及到的有关技术、方法,包括电子游戏分类、选题、构思等。并实现几个可演示的游戏软件,其中有很多应用了学习的相关技术,并且做到了图、文、声并茂,能实际演示。此次设计过程中印象最深的收获有:(1)学到了很多新知识,并且对老知识进行了回顾。经过长时间的学习,更进一步熟悉了 C+语言。 (2)通过不断上机实验,调试程序,总结经验,从对课题的不理解到能够开始动手去做,提出问题并自己想办法解决问题,自己多实践,所以增强了动手能力。 (3)提高了中、英文资料的检索能力。这次毕业设计过程中
36、我查阅了很多资料,不但有图书馆的期刊、杂志、馆藏图书,还有网络中的电子文档、电子书籍、网页及下载的视频教学课程;不但有中文资料还有英文资料。这些资料,使我的眼界更开阔,对课题的认识更加深刻,编写程序的时候思路更加清楚,少走了很多弯路。但由于我对这样的软件开发还只是一个开始,了解的不多,这其中或许还有很多的不足,有些模块做得不是很好,有些功能还不能够完全的实现,如不能把要装载的方块提前显示出来。因此做得不是很好,界面的设计及整体的布统计分数判断是否过关 关数增加,游戏速度将变快,调用游戏初始化,开始新的一关继续游戏视图重绘19局还比较简单,没有突出特色出来,这也可能是我这个系统的不足之处。更为可
37、贵的是,在这次课程设计过程中让我深刻体会到团体力量的强大,受益匪浅,对我在今后的学习和生活中将起到极大的鼓舞作用。参考文献1 谭浩强.C 程序设计( 第三版)M.清华大学出版社出版,2005,71(5): 6-11.2 郑振杰.C+程序设计M. 人民邮电出版社,2005,75(3): 5-8.3 H.M.Deitel,P.J.Deitel.C+大学教程M. 电子工业出版社,2007,56(6): 96-99.4 邹吉滔,姚雷,易巧玲. C+游戏编程M. 清华大学出版社,2011,46(7): 33-37.5 加迪斯.C+图形与游戏编程基础M. 清华大学出版社,2010,63(3): 48-50
38、.6 黄维通,鲁明羽.Visual C+程序设计M.清华大学出版社,2005,56(4): 25-30.7 戴光明,李向.Visual C+面向对象程序设计M.高等教育出版社,2005,89(8): 22-23.8 武莹,彭文明.Visual C+开发实用编程 200 例M.中国铁道出版社,2006,56(7): 79-80.9 朱玉龙,任文岚.C 语言中的数据类型J.小型微型计算机系统,2007,22(9): 1146-117910 郝蕊洁.谈谈 C 语言中的变量J.中国科技信息,2008,31(5): 94-9511 王学超.浅谈职高 C 语言函数的教学J.电脑知识与技术,2008,86(
39、7): 332-33412 施炜.灵活应用 C 语言中的+, 运算符J.科技资讯,2007,35(8): 199-20013 袁蒲佳,唐谦,韩丽娟.C 语言程序设计M.华中科技大学出版社,2007,56(5): 79-80.14 加迪斯.C+图形与游戏编程基础M. 清华大学出版社,2010,23(4): 68-70.15 兰芸.Visual C+6.0 编程实例精解M.北京:北京希望电子出版社,2007,13(6): 11-15.20致 谢在本文即将完成之际,首先要感谢我的辅导老师姚遥老师。从最初的选题到实验以及论文的撰写都得到了姚老师的悉心指导,并且提出了宝贵的意见。姚老师待人和蔼、治学严谨
40、、对学生严格要求,他的这种负责任的态度给我留下了深刻的印象。我很感谢他对我的严格要求以及在我迷茫时给我的鼓励和指导。此外,我要感谢我的室友和我身边的同学。在这段时间里,我们共同进步、互相关心、互相鼓励。她们积极进取、乐观向上的精神给了我很大影响,让我在遇到困难时,可以迎刃而解。在这次毕业设计的过程中使我受益匪浅,深深的体会到了如何把自己所学过的专业知识与实际应用结合起来,懂得如何灵活运用自己所掌握的理论知识,通过本次毕业设计使自己的知识得以巩固和扩展。在老师的大力支持和精心指导下,经过与同学的共同努力,经过将近两个月的时间顺利完成了本次毕业设计。在此,我对四年来辅导过我的各位任课老师深表感谢。