【精品】VC五子棋游戏程序设计(源代码+论文+开题报告+英文文献+外文翻译)
收藏
资源目录
压缩包内文档预览:
编号:1639550
类型:共享资源
大小:3.11MB
格式:RAR
上传时间:2017-08-30
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
50
积分
- 关 键 词:
-
精品
vc
五子棋
游戏
程序设计
源代码
论文
开题
报告
讲演
呈文
英文
文献
外文
翻译
- 资源描述:
-
【精品】VC五子棋游戏程序设计(源代码+论文+开题报告+英文文献+外文翻译),精品,vc,五子棋,游戏,程序设计,源代码,论文,开题,报告,讲演,呈文,英文,文献,外文,翻译
- 内容简介:
-
= 人机对战五子棋=机对战五子棋 of is a a of in of up 机对战五子棋at to a or is It is is a of of It ES be +to or to to to is an is as s is by +. in , is DI is to in to , to of to , to a a is + to of to or FC in a is in a s to + or it to ( If t do of I of in of 文献综述 摘要: 当今的时代,游戏设计已经成为许多玩家的梦想,想在游戏设计的领域里闯出一片天空, 现今游戏设计已经成为社会一种热门的行业,在今后日子里,设计游戏的人将会越来越多。本文主要介绍了游戏设计有关的几个问题,主要涉及到软件工程,面向对象的程序设计以及开饭环境 + 应用。 关键词: 软件工程;面向对象程序设计; + 戏的设计其实就是一个软件的开发,必须要遵守软件工程的各项软件开发原则。 1软件开发必须要进行可行性研究、需求分析、概要设计、详细 设计、编码、测 试和维护。 2它的目标是是提高软件的质量与生产率,最终实现软件的工业化生产。质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价实。生产率是软件供应方最关心的问题,老板和员工都想用更少的时间挣更多的钱。质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。如果质量不合格,对供需双方都是坏事情。从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产率。从长期效益看,高质量将保证软件开发的全过程更加规范流畅,大大降低了软件的维护代价,实质上是提高了生产率,同 时可获得很好的信誉。质量与生产率之间不存在根本的对立,好的软件工程方法可以同时提高质量与生产率。 3面向对象的程序设计 面向对象的方法学是要求按人们通常的思维方式建立问题领域的模型,设计出尽可能自然表现求解方法的软件。所谓建立模型就是建立问题领域中事物间相互关系。而表现求解问题的方法就是人们思维方法的描述。在面向对象的设计方法中对象(传递信息 (别表现事物和事物间的关系。类 (继承性 (描述人们思维方式的描述方法。方法 (在可进行的操作,这种对象、类、消息、方法的程序设计范式的关键在于对象的封装和继承性。通过封装 (将对象的定义和实现分开。通过继承性,体现了类与类之间的关系,以及由此带来的基本特征。 为有效使用面向对象的程序方法,首先需要解决程序的结构设计问题。在程序设计过程中最重要的抽象,也就是说,从现实世界中抽象出合理的对象结构。在面向对象思想中,抽象决定了对象的对外形象、内部结构以及处理对象的外部接口,其关键是处理对象的可见外部特征。封装是与抽象紧密联系的概念,它需要两个基本前提:首先,对象必须能够表现一个完备的概念,例如可以将一条道路的纵断面设计作为一个对象,它与外部的联系限于纵断面地面线、纵断面设计参数。当这些外部条件给定之后,对象可以独立计算任意桩号的设计高程、地面高程、设计高差、填挖面积等,也可以根据给定的比例和初始坐标计算设计线和地面线的图形坐标。第二,对象的私有性,例如上述示例中,对象的内部数据结构在外部是不可见的,其他程序员并不需要了解这种数据结构就可以使用对象的功能。对于对象的接口设计是十分重要的,它必须给出必要的访问渠道,同时必须尽可能地将内部细节隐藏起来。 我们可以将接口看作是在屏蔽墙上打开的一些出入通道,通道过多了就失去了屏蔽墙存在的意义,通道过少又由于限制过强而行动不便。一般情况下,这种通道表现为一组接口函数,事实上我们也可以将一些变量作为对外开放的,但这并不是一种很好的方法。 面向对象设计方法的另一个重要贡献,是关于继承与多态性的处理。所谓继承是指从现存对象出发建立一个新的对象类型,使它具有原对象的特点和功能,这称为“派生”。同时,新的对象类型又具有某种新特点和新功能。这样,我们可以采用对象派生的方法建立一个有层次的对外部世界的描述。例如,在第三章中我 们可以看到一组有关三维曲面分块的类族,从四条三维空间直线定义的简单曲面,到四条复杂三维空间曲线定义的曲面,呈现复杂的分层次的多态性。但他们都有共同的接口函数形式:例如根据给定平面点计算高程等。 面向对象的方法学是要求按人们通常的思维方式建立问题领域的模型,设计出尽可能自然表现求解方法的软件。所谓建立模型就是建立问题领域中事物间相互关系。而表现求解问题的方法就是人们思维方法的描述。在面向对象的设计方法中对象 (传递信息 (别表现事物和事物间的关系。类(继承性 (描述人们思维方式的描述方法。方法 (在可进行的操作,这种对象、类、消息、方法的程序设计范式的关键在于对象的封装和继承性。通过封装 (将对象的定义和实现分开。通过继承性,体现了类与类之间的关系,以及由此带来的基本特征。下面将从面向对象的方法学方面对有关概念作简要介绍。 ( 1)对象 我们把面向现实世界中的实体就称为问题空间的对象从动态的观点看,对象的操作就是对象的行为,从存储的角度看,对象是计算机内存中的一块私有存储区,在这块存储 区中有数据、有方法。在面向对象的程序设计中,对象是该系统的基本运行实体,对于每个对象而言,都有与该对象对应的方法,而与每个对象相关的方法,就是定义了该对象的操作。 ( 2)消息和方法 在对象之间,消息是他们之间的唯一联系。在面向对象的程序环境中设计的程序,它的执行是依靠对象向消息传递来完成的。把所以的对象分为各种对象类,每个对象类都定义了一组方法 ,所谓方法就是允许在对象类上进行的各种操作。 ( 3)类 在面向对象的程序设计中,对象是程序设计的最基本的单位,相似的对象可以并到一类中去,程序员只需定义一个类,就 可根据这个类得到若干个实例,其中每个实例就是一个对象。 ( 4)继承性 继承性是自动地共享类、子类、对象中的方法和数据的一种机制,继承性个减少程序设计中编写代码的工作量,它不仅支持系统的可重用性,而且还促进了系统的可扩充性。 ( 5)封装性 所谓封装是一种信息隐蔽技术,用户只能看到对象封装界面上的信息,而对象内部对用户透明,封装的目的是把对象的使用着和对象的设计着分开,使用着只需设计访问对象的消息。 ( 6)多态性 当同样的消息可发送到父类的对象和它的子类的对象时,这就被称为多太性。由于多太性具有可表达对象 的多个类的能力。因此,它既与动态类型有关,又与静态类型有关。 ( 7)动态聚束 一个程序经过编译,连接生成的可执行文件代码,其过程就是将执行代码聚束在一起,若这一过程发生在程序设计时,就称为动态聚束。面向对象语言常使用这一类聚束方式,它具有程序简单性和可扩充性等优点。 游戏的设计用到了 + 个设计环境,在设计的过程中有很多不同的类构成,在 C+中类的定义方式为: 类名 私有数据及成员函数; 保 护段数据及成员函数; 公有数据及成员函数; ; 其中, 类定义符,类名是一种标识符,类名称的命名规则与命名规则相同。一队花括号是类的说明部分,说明该类的成员。类的成员包括数据成员和成员函数两部分。从访问权限来分,类的成员又分为:公有的( 私有的( 保护的( 4+ 成开发环境 供了大量可视化编程特性的实用工具,他们包括: 程工作区) 、 向导)、用向导)、 导栏)等组成。 + 主窗口界面各个组成部分有标题栏、工具栏、状态栏、 口、 程序的开发过程中,可使用 立程序所需要的类,包括消息处理和消息映射函数。 以完成下列事情: 1)支持从许多应用程序框架基类中派生新类。 2)为类添加消息映射函数。 3)查看和编辑消息处理函数。 4)创建新类时,自动加入方法和属性等。 5构建游戏设计的舞台,使用 在建立一个 架的基本程序项目,程序运行时会产生一个简单的程序窗口,五子棋的棋局中,计算机必须知道有哪些获胜的组合,事实上这些组合就是用来判断双方是否已经有获胜的条件,每在玩家下一步棋时,通过修改数组中的内容来判断玩家是否已经完成某一获胜组合而赢得棋局。 1翎,彭德中,软件工程 理论与实践,北京:高等教育出版社,2: 摘自 林锐 . 人民邮电出版社 3晓芳,面向对象的程序设计 C+,北京: 科学出版社, 4伟聪, +程序设计实训教程,北京:科学出版社, 5+游戏编程基础,北京:电子工业出版社, 2005.5 摘 要 游戏设计已经成为现在社会的一种热门行业。五子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,非常富有趣味性和消遣性。这里设计和实现了一个双人对下的五子棋单机游戏。主要应用了 +编程来完成这个游戏的设计的。本文主要介绍了本游戏开发环境 + 用当前优秀的开发工具 编程。包含了五子棋程序的棋盘初始化、游戏规则、胜负判断方法。 关键词 : 初始化;规则;判断; 2 he is is is to + to + C+ 3 目 录 第一章 引言 . 4 . 4 . 4 府大力扶持国产游戏 . 6 . 7 第二章 系统开发工具和技术 . 9 . 9 +简介 . 12 . 12 . 14 的介绍 . 17 第三章 五子棋游戏设计 . 18 块分析 . 18 . 19 . 21 . 25 . 27 第四章 总结 . 29 参考文献 . 30 鸣 谢 . 31 4 第一章 引言 内外游戏的发展 近年来,随着网络的发 展,游戏成为许多人关注的焦点。与传统的影音产业一样,游戏产业也是娱乐行业的一个重要组成部分,基于数字化的网络游戏更让人们找到了前所未有的感受,并已经成为全球互联产业的热点。 2002年网络游戏全球销售额约为 60亿美元,未来 50年,这一产业将保持年均 50%以上的增长速度。 中国电子信息产业发展研究院的统计表明, 2001年,我国网络游戏市场销售额超过 3亿元,增长率超过 52。 2003年中国网络游戏市场增长 达到 年上半年,这一市场规模已达 8 85亿元,预计全年有望达 到 17亿元 ,预计到 2007 年将达到 67亿人民币。未来年,我国网络游戏产业将以年均115左右的速度增长 . 在中国,巨大网络游戏消费已经成为业界共识。中国网民已经达到 3000万人,其中 30岁以下的占 即 1800万人;以“休闲娱乐”为主要目的的占 即 911万;用户最常用的网络服务中,选择“网上游戏娱乐”的占 即 418万。新华社最近公布了一项参考数据:今年以来,中国网络游戏用户正以每月 10万 此,不难看出中国网络游戏产业的发展潜力巨大。 网络游戏出版产业 对批发和零售渠道、 家税收的提高等都有较大的促进作用。仅 2003年一年,就对通信业直接贡献 5亿人民币,对媒体及传统出版直接贡献 国游戏发展的误区 谁是中国网络游戏市场最大的收益者? 一言以蔽之,中国网络游戏市场最大的收益者是韩国游戏开发商。 5 网易的丁磊说过这样的一句名言:网络游戏行业,是一个睡觉时也能有成千上万收入的行业。言指网络游戏赚钱之易,但当我们看看中国运营商的现状时却有别样的感受: 试问哪家运营商不是整 天担忧着外挂、复制与刷钱,不是整天都提心吊胆,生怕出些什么乱子?试问哪家运营商不是没日没夜的思考着如何去推广产品,在竞争激烈的市场中找到一席之地?又试问谁不是在拼命向前走,尝试着宣传、活动与销售的创新,生怕有一时的落后?简单的问一声,哪个游戏的项目经理能够每晚都安然入睡而不是从噩梦中惊醒? 一句话,现在赚钱比以前难多了,推广费用的急速增高,利润空间的日益缩小,还得与电信商、销售商、合作伙伴分享利润,还得时不时的“让利于民”,运营商的日子是越来越难过了。 而真正如丁磊所说的,睡着大觉也赚大钱的幸福时光,只 可能属于韩国游戏开发商。他们坐拥着中国 70%以上的市场,他们收取着从 20%到 40%不等的高额代理费用,他们得意扬扬的将自己的产品标上高价,待价而沽。让我们来看看韩国人自己的说法:韩国产业振兴院代表介绍:韩国游戏的出口额达到 1亿 4080万美元。而其中,来自中国市场的约为 50%强,那也就是,韩国游戏开发商每年要从中国获取至少 4亿人民币以上的收入。 对比中国网络游戏年度 4亿收入让韩国开发商当之无愧的成为了中国网络游戏市场的最大收益者。那在获取高额收入的同时,他们的所作所为又是否真的能对得起 这份收益呢? 他们,无视中国市场现状,全行业联合将产品代理费用提高,还一次次的要求提高分成费。一款相对来说优秀的网络游戏,其代理费用早已从 30万美金变成了数百万美金,而分成费的比例也“芝麻开花节节高”,最高的已超过 40%。 他们,对于游戏 挂、复制等问题,视而不见,熟视无睹;他们,对于游戏内容更新动作缓慢,后续支持若有若无;他们,总是将中国大陆市场视为落后市场,在技术支持上执行其所谓的区别歧视策略。 他们,在产品开发上缺乏创新,互相抄袭成风,雷同的故事情节,单一的游戏方式,粗枝滥造的游戏品质, 商业化的粗鄙的文化观与价值观 6 正如我们的家电、电脑、服装等行业一样,中国网络游戏业同样有着赶超列强甚至进军海外的可能。最可怕的是什么,是我们不思进取的自满心态,是我们满足于小恩小惠的奴才心理,是我们所一直被束缚的陈旧观念,是我们内战内行、外战外行的可耻思想! 原子弹算是最尖端的高科技了,中国人同样能够攻克;载人飞船算是高科技了吧,中国人同样可以拥有。醒醒吧,中国的网络游戏人,自主研发并不困难,韩国甚至是欧美列强并非不可超越。当我们已经拥有了足够的资金、优秀的程序设计员、优秀的美工实力以及中国人民从来 就不缺乏的智慧与想象力时,我们为什么要甘于身处产业链的下游,我们为什么要去忍受韩国大爷的盛气凌人、颐指气使,我们为什么不能制造出属于中国自己的游戏,我们为什么不能让世界上最优秀的游戏in 2003年,同样有着若干优秀的国产网络游戏出现,它们的表现同样优异,甚至出现了这样耐人思考的局面:凡是国产的网络游戏,就没有私服,就能良好的解决外挂问题,就能够在市场上取得一席之位,这,难道还不足够让所有人去反思么? 中国网游中国造,这绝不仅仅是一句口号。自主研发的大旗已经迎风招展,新的时代呼之 欲出,就让一直被封闭在小黑屋中的我们去捅破那层窗户纸吧,迎面而来的将是整个世界。 府大力扶持国产游戏 据新华社电信息产业部副部长奚国华,日前就信息产业领域贯彻中共中央国务院关于进一步加强和改进未成年人思想道德建设的若干意见接受采访时指出:“未成年人是祖国未来的建设者,既要从法律、行政、经济、行业自律等各方面规范网络服务行为,又要积极配合相关部门做好网络的内容建设,为广大未成年人提供内容健康、形式生动、具有吸引力的网络内容。 7 奚国华强调,信息产业部正加强软件产品研发投入,鼓励开发和推广有 自主知识产权的相关软件产品和网络游戏机,保障未成年人思想道德建设的良好的网络信息环境。 原文化部副部长,网络文明工程组委会副主任徐文伯等一批权威专家认为,网络游戏用户群巨大、发展前景广阔,其产生的文化影响更是不可轻心。 2003年我国已将网络游戏纳入 863计划,目前中国网络游戏的开发人才奇缺。完成此课题的设计使我们学以致用掉以轻,总结学习成果,拓展就业渠道的一个理想过程。 根据文化部日前公布的网络游戏产品内容审查制度的规定,将禁止进口非独家授权使用的网络游戏。 据了解,这一规定主要是考虑到,游戏产品版权 贸易和运营代理协议必须符合我国合同法、著作权法等法律法规的有关规定,并不得有显失公正的条款。 按照文化部的审查规定,经文化部批准的进口网络游戏产品不得擅自变更节目名称和增删节目内容。自批准之日起一年内未在国内运营、传播、流通的,进口单位应报文化部备案并说明原因;决定终止进口的,文化部撤销其进口批准文号。 按照规定,网络游戏产品进口、运营单位应当加强运营管理,避免在产品运营过程中产生违法违规的内容。由于非进口、运营单位的原因产生禁止内容的,进口、运营单位要立即对禁止内容进行删除处理。 按照规定,进口香港 、澳门特别行政区和台湾地区的网络游戏产品,将参照外国网络游戏产品办理相关手续。 民族特色的游戏 五子棋,亦称“连五子”、“串珠”、“五目”、“五格”等等,日文称之为 “连珠”,英文则称之为“ “ “ n a ,是起源于中国古代的传统黑白棋种之一。早在“尧造围棋”之前,可能民间就已有五子棋游戏。中国人称五子棋为“连五子”或“连珠”,也许是源于史书中“日月如合璧, 8 五星如连珠”。古代的五子棋盘与围棋盘通用,汉魏时期通行的是十七路棋盘;到了南北朝时期 已流行十九路棋盘,这与现代通用的五子棋十五路棋盘是不相同的。此外,古代的五子棋的下法是“白先黑后”,大约是白为阳,为气,气者清扬向上,气者先行;而黑为阴,为形,形者凝聚向下,形重迟缓,故持黑方后行。我国台湾现在仍有以“白先黑后”的规则下五子棋,这与现代五子棋的“黑先白后”的下法是不同的。 五子棋有何年何月传到国外,尚不明了。大约随围棋一起在我国南北朝时期先后传入朝鲜、日本等地。据日本史料文献记载,中国古代的五子棋先由中国传到高丽,然后于公元 1688年至公元 1704年日本的元禄时代再从高丽传到日本。当时主要 在皇宫和贵族大家庭中流行。到元禄末期,在日本京都,这一当时被称为“五目碰”、“五格”的棋游戏在民间开始盛行起来,无论武士、僧侣、农夫等都能参与这一活动。到日本明治 32年公元 1899 年,经过公开征名,“连珠”这一名称才被正式确定下来。从这以后,连珠这一活动经过了不断的改良,主要是规则的变化。例如 1899年规定禁止黑白双方走“双三”; 1903年规定只禁止先行的黑方走“双三”; 1912 年规定,黑方被迫走“双三”亦算输; 1916年规定,黑方不许走“长连”; 1918 年规定,黑方也不许走“四、三、三”; 1931 年规 定,黑方不许走“双四”,并规定将 195过这一系列的规则变化,使五子连珠这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。目前,连珠五子棋这一棋类运动已迅速在国际上发展起来。现在,已有 40多个国家和地区开展了五子棋活动。许多国家的人对五子棋都有不同的爱称,例如韩国人吧五子棋称为“情侣棋”,言下之意是说情人之间下五子棋有利于增加感情的交流;欧洲人称之为“绅士棋”,喻棋手下五子棋的君子风度胜似绅士;美洲人称之为“商业棋”, 意思可能是边下五子棋边谈生意,是商业贸易之桥;日本人则称之为“中老年棋”,表示五子棋适合成熟的中老年人的生理特点和思维方式。不同语言、地区的人们都可以借助五子棋这一简单而又深奥的棋艺进行交流、比赛,增进友谊。 9 第二章 系统开发工具和技术 戏设计环境简介 自 C+诞生以来,随着 第四代语言为主的应用开发产品发生了较大的变化,它们不仅已成为人们开发应用的开发工具,而且很多产品已发展成为一种强有力的应用开发环境。这些 新型的开发工具通常以一种集成软件包的形式提供给开发人员,被称为 作室)或 序组)。例如,微软 现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有: + 在目前市场上这些众多的程序开发工具中,有些强调程序语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。 而 一个非常理想选择, 操作系统中快速应用开发环境的最新版本。它也是当前 论是企业级用户,还是个人开发者,都能够利用 松、快捷地开发优秀的基于通信的程序 ,开发高效灵活的文件操作程序,开发灵活高效的数据 10 库操作程序,等等。 括展标记语言) /扩展样式语言), 单对象存取协议)和。 可视化的快速应用程序开发语言,它提供了可视化的集成开发环境,这一环境为应用程序设计人员提供了一系列灵活而先进的工具,可以广泛地用于种类应用程序设计。在 集成开发环境中,用户可以设计程序代码、运行程序、进行程序错误的调试等,可视化的开发方法降低了应用程序开发的难度。 + 语言。 C+具有代码稳定、可读性好、编译速度快,效率高等优点,并将面向对象的概念得到充分的发挥,使这种语言有了全新的发展空间。 合开发那些时间要求紧,面向具体用户的应用。也 就是项目开发。而不是产品开发 ,代码质量高。适合开发使用 我们几乎可以作任何事情,还可以撰写种各种类型的应用程序,动态链接库( 序, 序的规模小到简单的个人数据库应用,大到复杂的企业的多层次分布式系统,都可以使用友好的集成开发界面,可视化的双向开发模式,良好的数据库应用支持高效的程序开发和程序运行,备受广大程序开发人员的好评。尤其是大提高了数据库应用软件开发的效率,缩短了开发周期,深受广大数据库应用程序设计人员的喜爱。 数据库应用开发人员提供了丰富的数据库开发组件,使数据库应用开发功能更强大,控制更灵活,编译后的程序运行速度更快。 视化程度高。适具体的产品。它对低层的操纵能力强。可以说其他编程工具不能实现的,用 就运行速度而言, B 要快 ,尽管 称能够基本达到 是还是要慢一些。 综上所述,本 毕业设计采用 为开发平台 + 程语言是由 司推出的目前极为广泛的可视化开发工具,利用 + 2位应用程序,依 11 靠强大的编译器以及网络与数据库的开发能力,用 + 以开发出功能强大的应用程序。 + 前为止 出的最新和最好的 +编译程序版本,该产品已不仅仅是一个编译程序,已增加了很多新的内容,它包含了综合基本类( ,可简化和加速 序的开发;还包括了完善的资源编辑程序,可以用来设计复杂的对话框、菜单、工具条、图象、现代 用程序所需的很多其他组件等。还有一个名为“开发工作室( 的优秀的集成开发环境,当你开发应用程序时就可以用图形化的视图来查看该应用程序的结构。一种完全集成化的调试工具使你立即就可以查看程序运行时各方面的细节。这些仅仅是 + 拥有大量功能中的几个例子。利用 + 可以帮助你采用最新的 发成果去开发快速而功能齐全的、先进的应用软件。 在 + 包含了大量新功能:一些新的控件(例如,你可能在子邮件应用程序中日期选择器控件)目前已能应用到你自己的应用程序中。各种图象现在已能与组合框中的项相关联,而且可以利用扩充的组合框控件将图象显示在组合选择框中和下列列表中。在 7 和 中已使用的一般的工具条和尺寸可调节的工具条都已集成 在其类库中,以供你用于你自己的应用程序中。你可以在你自己的应用程序中使用看 和 内容。 功能强大的 以用来生成各种初始类型的应用程序框架,因而,即使你没有添加一行程序新的应用程序就可具有像 源管理器那样的多视图应用程序的所有功能。 基于组件的编程和分布式组件对象模型( 都是现代软件开发新的主流领域。 本系统是在 行开发并获得通过的,同时方便系统开发,减少开发过程的难度,我们是基于以下的软件环境。以 + 开发工具 。 12 在 80年代,由微软公司所推出的操作系统可以说是个人计算机,简称 个 初在推出时有很多的专家并不看好它,但是在行销策赂和广告的带动下,却脱颖而出打败了当时的竞争者成为全球数千万台 既是一个提供文字模式、只支持单任务操作、功能并不是很强大、其用户界面也不怎么友善的操作系统,它陪伴大家走过厂80年代。从日前的迹象 看来,广大的用户在短期之内应该还不会抛弃这个十几年的老朋友。 继 1983年又对外发表即将推出新 代的操作环境 说的太早,结果拖了两年后才正式发行 ),企图再创另一个高峰。但是最初的 发技术和规划上的不成熟刚开始并末得到太多的掌声。一直等到 1990年全球开始掀起一股 多硬件厂商积极推出与之相容的机种,而软件公司也汗始注意这块尚未开垦的土地相继推出是把以往的产品移植到 于今天软件 可以说是一应俱全,文字、排版、图象、绘图、通信电子表格等等,不论是专业领域或者是一般用途,使用将会发现有越来越多且功能更加强人的应用软件可供选择。 000/目前主流图形化操作系统,运行各种各样的 越来越多的个人计算机具有 能和多媒体功能又推动了对各种各样功能强,速度快的应用软件的进一步需求。目前有一种对 取得的成功进行诽谤的气氛,然而,使得有承诺的 程人员利用他们掌握的技术在全球范围内得到越来越大的回报,由于西方社会的承认和计算机已越来越深入到每个人的生活中,因而对他们的技术需求与日俱增,从而使得他们的回报、经济收入和其他各方面相应地取得了满意的结果。 +简介 向对象的基本概念 13 思维方式决定解决问题的方式,传统软件开发采用自顶向下的思想指导程序设计,即将目标划分为若干子目标,子目标再进一步划分下去,直到目标能被编程实现为止。面向对象技术给软件设计领域带来极大的变化,它利用软件 对象来进行程序开发,所谓对象是包含数据和对数据操作的代码实体,或者说是在传统的数据结构中加入一些被称为成员函数的过程,因而赋予对象以动作。而在程序设计中,对象具有与现实世界的某种对应关系,我们正是利用这种关系对问题进行分解。 从程序语言角度来看,在一个对象中代码和(或)数据可以是这个对象私有的,不能被对象外的部分直接访问。因而对象提供了一种高级保护以防止程序被无关部分错误修改或错误地使用了对象的私有部分。当从对象外部试图直接对受保护的内部数据进行修改时,将被程序拒绝,只有通过对象所提供的对外服务函数才能够对其内部数据进行必要的加工,从而保证了数据加工的合法性。从这一意义上讲,把这种代码和数据的联系称为“封装”。换句话说,封装是将对象封闭保护起来,是将内部细节隐蔽起来的能力。 在强调软件组件的重用方面,面向对象的技术与标准的工 业设计规律有更多相似之处。在面向对象语言中,类是创建对象的关键,事实上类描述了一族对象的公共特征和操作,而对象则是具体实现的类。例如小汽车是一个基本概念,它具有颜色、几何尺寸、动力特性的特征。那我们可以定义一个称为“ 类,具有颜色、几何尺寸、动力特征等参数,以及描述汽车在外界条件下运动状态的成员函数。一辆具体的小汽车则是一个对象,在这个对象中有关参数均有具体数值,并可以通过输入说明变量(外界条件参数)获取该车具体运动状态。 面向对象技术给软件发展带来如下益处: 可重用性。从一开始对象的产生就是为 了重复利用,完成的对象将在今后的程序开发中被部分或全部地重复利用。 可靠性。由于面向对象的应用程序包含了通过测试的标准部分,因此更加可靠。由于大量代码来源于成熟可靠的类库,因而新开发程序的新增代码明显减少,这是程序可靠性提高的一个重要原因。 连续性。具有面向对象特点的 C与 语言开发工作。 14 面向对象语言具有如下基本特征: 访问控制。对象必须能够对其内部的某些元素进行保护,是它们只能被内部使用,而不受外部干扰。反过来,对象又必须同其它外部元素进行 联系,以便对对象进行操作。在 C中,类有私有的( 保护的( 公有的( 种访问机制。 继承性。通过对已有对象进行增加或部分修改的方法建立新的对象,对已有对象可以增加数据和过程,也可以对其中某些过程进行从新定义。最初的类被称为基类,从基类扩展出来的类称为派生类。从已有类派生出新类是为了获得更强的针对性。 多态性。正象生态系统一样,继承构成了类族。通常这些类族中的类具有同名的成员函数,例如 有一个通用基类,两个派生类:增长系数 几个类都有同名的 态性意味着存在多种形式,能使人们在程序中激活任何属于 至在编译可以不必具体知道对象是属于增长系数 面向对象体系结构技术有助于创建行业性软件开发机构。例如交通规划尽管具有差别,但各城市所需要的软件基本上是相同的,这就为软件开发机构提供了一种制作面向交通规划的软件框架(注意这里讲的是软件框架而不是通用性软件)的机会。这种框架一旦开发成功,就可以多次反复利用。 面向对象技术特别适合于将某一领域 内的软件资源整理成体系化,因为它有很好的表现能力,能够容易抓住特定功能领域的本质。 向对象的程序设计 为有效使用面向对象的程序方法,首先需要解决程序的结构设计问题。在程序设计过程中最重要的抽象,也就是说,从现实世界中抽象出合理的对象结构。在面向对象思想中,抽象决定了对象的对外形象、内部结构以及处理对象的外部接口,其关键是处理对象的可见外部特征。封装是与抽象紧密联系的概念,它需要两个基本前提:首先,对象必须能够表现一个完备的概念,例如可以将一条道路的纵断面设计作为一个对象,它与外部的联系限于 纵断面地面线、纵断面设计参数。当 15 这些外部条件给定之后,对象可以独立计算任意桩号的设计高程、地面高程、设计高差、填挖面积等,也可以根据给定的比例和初始坐标计算设计线和地面线的图形坐标。第二,对象的私有性,例如上述示例中,对象的内部数据结构在外部是不可见的,其他程序员并不需要了解这种数据结构就可以使用对象的功能。对于对象的接口设计是十分重要的,它必须给出必要的访问渠道,同时必须尽可能地将内部细节隐藏起来。我们可以将接口看作是在屏蔽墙上打开的一些出入通道,通道过多了就失去了屏蔽墙存在的意义,通道过少又由于限制过强 而行动不便。一般情况下,这种通道表现为一组接口函数,事实上我们也可以将一些变量作为对外开放的,但这并不是一种很好的方法。 面向对象设计方法的另一个重要贡献,是关于继承与多态性的处理。所谓继承是指从现存对象出发建立一个新的对象类型,使它具有原对象的特点和功能,这称为“派生”。同时,新的对象类型又具有某种新特点和新功能。这样,我们可以采用对象派生的方法建立一个有层次的对外部世界的描述。例如,在第三章中我们可以看到一组有关三维曲面分块的类族,从四条三维空间直线定义的简单曲面,到四条复杂三维空间曲线定义的曲面,呈 现复杂的分层次的多态性。但他们都有共同的接口函数形式:例如根据给定平面点计算高程等。 面向对象的方法学是要求按人们通常的思维方式建立问题领域的模型,设计出尽可能自然表现求解方法的软件。所谓建立模型就是建立问题领域中事物间相互关系。而表现求解问题的方法就是人们思维方法的描述。在面向对象的设计方法中对象 (传递信息 (别表现事物和事物间的关系。类(继承性 (描述人们思维方式的描述方法。方法 (在可进行的操作,这种 对象、类、消息、方法的程序设计范式的关键在于对象的封装和继承性。通过封装 (将对象的定义和实现分开。通过继承性,体现了类与类之间的关系,以及由此带来的基本特征。下面将从面向对象的方法学方面对有关概念作简要介绍。 ( 1)对象 我们把面向现实世界中的实体就称为问题空间的对象从动态的观点看,对象的操作就是对象的行为,从存储的角度看,对象是计算机内存中的一块私有存储区, 16 在这块存储区中有数据、有方法。在面向对象的程序设计中,对象是该系统的基本运行实体,对于每个对象而言,都有与该对象对应的 方法,而与每个对象相关的方法,就是定义了该对象的操作。 ( 2)消息和方法 在对象之间,消息是他们之间的唯一联系。在面向对象的程序环境中设计的程序,它的执行是依靠对象向消息传递来完成的。把所有的对象分为各种对象类,每个对象类都定义了一组方法 ,所谓方法就是允许在对象类上进行的各种操作。 ( 3)类 在面向对象的程序设计中,对象是程序设计的最基本的单位,相似的对象可以并到一类中去,程序员只需定义一个类,就可根据这个类得到若干个实例,其中每个实例就是一个对象。 ( 4)继承性 继承性是自动地共享类、子类、对象中的 方法和数据的一种机制,继承性个减少程序设计中编写代码的工作量,它不仅支持系统的可重用性,而且还促进了系统的可扩充性。 ( 5)封装性 所谓封装是一种信息隐蔽技术,用户只能看到对象封装界面上的信息,而对象内部对用户透明,封装的目的是把对象的使用者和对象的设计者分开,使用者只需设计访问对象的消息。 ( 6)多态性 当同样的消息可发送到父类的对象和它的子类的对象时,这就被称为多太性。由于多太性具有可表达对象的多个类的能力。因此,它既与动态类型有关,又与静态类型有关。 ( 7)动态聚束 一个程序经过编译,连接生成的 可执行文件代码,其过程就是将执行代码聚束在一起,若这一过程发生在程序设计时,就称为动态聚束。面向对象语言常使用这一类聚束方式,它具有程序简单性和可扩充性等优点。 17 的 介绍 游戏的设计用到了 + 个设计环境,在设计的过程中有很多不同的类构成,在 C+中类的定义方式为: 类名 私有数据及成员函数; 保护段数据及成员函数; 公有数据及成员函 数; ; 其中, 类定义符,类名是一种标识符,类名称的命名规则与变量名的命名规则相同。一队花括号是类的说明部分,说明该类的成员。类的成员包括数据成员和成员函数两部分。从访问权限来分,类的成员又分为:公有的( 私有的( 保护的( 18 第三章 五子棋游戏设计 块分析 计及编码 五子棋游戏的总体流程图( 下 : 有 是 无 是 否 否 有 否 无 是 图 戏总体流程图 黑方下子 开始 找另一位置 白方下子 找另一位置 判断该位置是否有棋 选择是否重新开局 判断该位置是否有棋 跳出白方获胜框 白方下子 跳出黑方获胜框 判断黑方是否胜出 黑方下子 判断白方是否胜出 游戏结束 19 盘初始化模块 开始游戏时游戏界面是没有棋子的,也就是棋盘的初始 化状态,如下图( 始化界面 所以当游开始时必须要进行棋盘初始化,实现程序如下: ! /20 / / / ; !) ( 21 局判断模块 如何判断输赢:当某方下一子后,计算与当前棋子相邻的四个方向( / | 同色棋子个数,大于四则分出胜负,否则继续,判断是否在同一直线上的算法流程图如下图( 是 否 是 否 是 否 是 否 图 进入选择是否重新开局框 白(黑)子在水平方向是否大于 4 白(黑)方获胜 白(黑)方下子 白(黑)子在垂直方向是否大于 4 白(黑)子在正对角线方向是否大于 4 白(黑)方获胜
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。