admin管理员组

文章数量:1531726

2024年6月28日发(作者:)

毕业设计说明书(论

文)

题 目:

基于C语言的贪吃蛇游戏开发与设

毕业设计说明书(论文)中文摘要

伴随着科学技术的发展,人们都渴望在不工作的时候有一些娱乐活

动,而贪吃蛇这一款游戏正好符合大众的心理。所以,为了迎合许多用

户的需求,才开发了这款叫做贪吃蛇的小游戏,并且这款小游戏适合各

阶层人士,此外它还具有很强的娱乐性和交互性。

这款游戏之所以叫贪吃蛇,其真正用意并不是告诉人们要贪心,它

所传递的精神是人们只有不断努力地向前才能得到自己想要的,食物就

像现在社会存在的机会,而人们只有找好自己的目标才能成功。

尽管现在市面上存在的游戏版本很多,可是贪吃蛇的市场还是很大

的。原因就在与它能引人入深,爱不释手。随着游戏速度的逐渐加快,

其刺激性也更强。可以说该游戏的优势不仅在于它的简单易行,而且在

于它很快顺利的运行。对于那些在外忙忙碌碌的人们,想让他们花费大

量的时间在大型游戏上显然是不可能的,但是小游戏却刚好能够迎合他

们的需求。

论文首先简单介绍了开发工具,然后从需求分析、概要设计、详细

设计与实现等方面介绍了贪吃蛇游戏的设计与实现过程,最后给出了贪

吃蛇的运行与测试情况。

关键词

贪吃蛇 ;C语言;函数;游戏

毕业设计说明书(论文)外文摘要

Title

Design

Abstract

With the development of science and technology ,many people are

eager to have some entertainment activities when they do not need

to work,and gluttonous snake game cater to the psychology of the

masses order to cater to the demands of many users,

we develop the little game called gluttonous snake .what’s more,

the game is not noly suitable for people from all works of life,

but it has also strong entertainment and interaction.

The reason why the game called gluttonous snake is not that it

asks us to be greedy but to do our best to work hard in order to

get what we want.

The food that the snake eats just like opportunity and We only

have to find their own goals to succeed.

Althrough there are many of version of the game on the market,but

the market of the game is still very reason is that it

does not make us to put it down. With the gradual speed up the

game speed, the irritation is also stronger. The advantage of this

game can be said is that it's not only easy, but also that it will

soon run smoothly. For those people outside the busy, want them

to spend a lot of time on the big game is obviously impossible,

but the small game is just to cater to their needs.

of gluttonous snake game based on C language

Keyword gluttonous snake,C language,function,game

目 录

言 ………………………………………………………………………………

1

第一章 概

述 ………………………………………………………………………

4

1.1中国手机游戏产业现

状…………………………………………………4

1.2中国手机游戏的产业局势及其种类的多元

化…………………………5

1.3中国手机游戏的未来展

望………………………………………………7

第二章 开发工具的简

介 …………………………………………………………9

2.1 Visual C++6.0简

介……………………………………………………9

2.2 Visual C++6.0安

装……………………………………………………10

2.3 Visual C++ 6.0开发过

程 ……………………………………………12

第三章 需求分

析 …………………………………………………………………13

3.1可行性分

析………………………………………………………………13

3.2 功能性

析………………………………………………………………13

第四章 概要

计 …………………………………………………………………16

4.1功能

绍…………………………………………………………………16

4.2概要设

图………………………………………………………………16

第五章 详细

计 …………………………………………………………………18

5.1程序设计

析……………………………………………………………18

5.2主要

数…………………………………………………………………19

5.3主要

码…………………………………………………………………19

5.4其他函数

码……………………………………………………………30

第六章 运行与

试 ………………………………………………………………35

6.1 运行

序…………………………………………………………………35

6.2程序的调试与

试 ………………………………………………………37

第七章 结

论 ………………………………………………………………………40

谢…………………………………………………………………………………

42

参考文

献……………………………………………………………………………43

附录

A ………………………………………………………………………………44

前言

C语言是目前世界上流行、使用最广泛的高级程序设计语言。

C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,

用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。

C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因

此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。

常用的编译软件有Microsoft Visual C++,Borland C++,Watcom

C++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom

C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft

C,High C,等等......

C语言的发展历史

C语言的发展颇为有趣。它的原型ALGOL 60语言。

1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined

Programming Language)语言。

1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是

产生了BCPL语言。

1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为

它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的

精华。并且他用B语言写了第一个UNIX操作系统

而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的

E在B语言的基础上最终设计出了一种新的语言,他取了BGPL

的第二个字母作为这种语言的名字,这就是C语言。

为了使UNIX操作系统推广,1977年Dennis e 发表了不依

赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

1978年Brian hian和Dennis e出版了名著《The C

Programming Language》,从而使C语言成为目前世界上流行最广泛的高

级程序设计语言。

1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于

没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改

变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,

成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成

为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软

件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上

一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR

等就是用这种方法编写的。

C语言的特点

1. 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用

小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合

起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三

者是计算机最基本的工作单元。

2. 运算符丰富

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、

赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富

表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以

实现的运算。

3. 数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构

体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入

了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多

种显示器和驱动器。且计算功能、逻辑判断功能强大。

4. C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除

了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于

使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便

的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构

化。

5. C语法限制不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。

而C语言允许程序编写者有较大的自由度。

6. C语言允许直接访问物理地址,可以直接对硬件进行操作,因此既

具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样

对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以

用来写系统软件。

7. C语言程序生成代码质量高,程序执行效率高一般只比汇编程序生

成的目标代码效率低10へ20%。

8. C语言适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也

适用于多种机型。

目前游戏的种类可谓是多种多样,从扫雷到魔兽世界数不胜数,因此,

游戏开发平台也是非常之多。目前小型游戏使用C语言、Flash,Java等

即可实现。而就大型游戏而言,一般使用几种语言混合开发,比如C++接

合脚本预言。主流语言是C/C++,脚本常用的有Lua和python。有的游戏

的脚本语言是开发者自己写的。不那么常用的语言有delphi、java(手机

上常用的)、C#。 至于游戏开发工具个人认为并不重要,VC主要是看重

C++的运行效率而已。在今后几年内,网络游戏开发仍将以C++语言为主,

不过服务器可能就会是运行LINUX/UNIX的平台。

第一章 概述

这些年中国的手机行业在硝烟与战火中度过,拍照手机、音乐手机等

各领风骚。然而,人们玩得最多的手机 游戏却在市场上显得平淡无奇,谁

又曾想到在这看似平常的手机游戏中却蕴藏着巨大的商机?近年来,中国

的手机游戏市场已具雏形,并朝着健康有序的方向发展。本文通过对中国

目前的手机游戏现存的一些问题和发展方向进行了分析,为如何促进我国

手机游戏发展提出了一些看法和建议。

如今,用手机看新闻、发邮件、拍照、聊天已不再新鲜,用手机玩游

戏已经成为时下比较流行的一种消遣方式。手机游戏的发展离不开手机终

端的普及和数据服务的推广。近几年来,随着手机游戏技术自身的日益成

熟,手机游戏的巨大商机开始展现在人们面前。现在传统游戏产业的商家

已经开始从家用机游戏、PC游戏等传统的游戏领域逐渐向手机游戏领域

扩张,并尝试与手机游戏开发商以及服务提供商进行更加紧密地合作,这

一切都证明手机游戏市场已成为目前移动领域最具有活力的市场。因此,

让我们来关注一下未来手机游戏的发展动态吧!

1.1中国手机游戏产业的现状

在中国,手机游戏产业的发展比较缓慢,随着手机自身性能的发展到

一个手机游戏的普及,经历了较长的时间,大概分为三个阶段。第一个阶

段是手机游戏的孕育期。以第一款手机游戏在诺基亚手机上诞生的时候,

最早的给手机用户提供消遣,带来快乐,从而也拓展了手机的功能。从那

时候开始手机不再只限于单一的通信。该阶段的以普通屏为基础,游戏简

单,易操作。第二阶段是手机游戏的快速发展期。随着彩屏手机的快速发

展,移动终端性能的不断提高与完善,使WAP游戏和单机版JAVA成

为该阶段的主流。 此阶段的特点是随着手机软硬件功能的加强和游戏内容

的多样化,手机游戏的可视性、娱乐性和交互性进一步得到提高。第三阶

段是手机游戏的成熟期。随着3G产业的快速开展,大型联网游戏将成为

手机游戏的主流。 经过一些市场调查,从用户在手机游戏的类型选择上来

看,一半以上的用户选择了益智类游戏。由于益智类游戏简单、易上手,

操作时间短,能够使手机用户在较短的时间内去消遣,让用户在繁忙的时

候得到放松。从各种手机游戏下载情况来看,选择动作类游戏和角色扮演

类游戏的玩家也是比较多的,大概有三分之一的用户选择了它们。其它如

冒险游戏、射击游戏、策略游戏、棋牌游戏等也较受到手机用户的欢迎。 近

2年来,在PC网络游戏快速发展的同时,大型手机网络游戏也随即而来,

更多的种类给玩家带来了更多的选择。与此同时,手机玩家群体也在不断

的发生变化,他们更加接受的是随时、随地、随身的移动休闲和娱乐方式。

对于今后手机游戏玩家的发展而言,由于电子游戏、PC单机游戏、网络

游戏等其他平台的游戏在近几年时间里培养了一批忠实的职业玩家,所以

这一批玩家将有可能成为手机游戏用户的支柱。

1.2中国手机游戏的产业局势及其种类的多元化

1.2.1中国手机游戏的产业链

手机游戏作为一个完整的产业链,覆盖多方合作的力量,主要包括手

机制造商、游戏开发商、服务提供商和移动运营商等。为了促进手机游戏

行业良性的发展,保持中国移动通信产业的持久稳定,这些商家必须进行

不断的合作。近年来,手机制造商开始与机芯、操作系统企业展开合作,

为手机游戏创造更好的软硬件平台。由于手机游戏有巨大商业潜力,包括

盛大、腾讯等公司也纷纷进军这块领域,他们依靠在网络游戏领域内积累

的人才、资金和技术优势来争夺该市场。而服务提供商主要是门户网站等

专业增值服务公司,通过代理来实现收益。移动运营商在该产业链条中处

于主导地位,他们通过控制手机制造商、游戏开发商、服务提供商三方的

力量来实现收益。虽然手机游戏行业目前在中国是个新兴业务,但随着手

机游戏服务供应商的推广,特别受到年轻人的追捧。根据有关调查显示中

国手机游戏用户的数量在2005年年底达到200万,这将是个庞大的

玩家群体,从而使手机游戏将成为移动运营商增值业务和SP收入的重要

来源。尽管国内手机游戏产业链中的各方都欲抢占先机。可是,产品、终

端、资费及服务等这些问题却已成为制约其发展的重要障碍。终端的普及

度不够高,游戏的同质化和低质量问题也正困扰着国内手机游戏市场,虽

然过高的资费一直被看作阻碍手机游戏市场发展的最大障碍,但最为关键

的问题是不规范的服务使众多玩家丧失信心。所以,在巨大的市场面前,

中国手机游戏的产业链还须进一步完善。

1.2.2手机游戏的种类及其可玩性

下面来介绍下目前国内手机游戏一些最常见的种类:

RPG(角色扮演类)这款游戏无论是PC机还是其他平 台,都是可

玩性非常高的,让玩家在游戏里选择自己喜欢的角色,根据丰富的剧情,

让角色不断成长,简直就像发生在自己身上一样。它拥有着大量的拥护者,

像《奇迹》、《传奇》、《大话西游》、《波斯王子》等都有过百万的销量。随

着手机网络游戏的兴起,服务提供商和移动运营商更加大对这块领域的投

入,市场前景非常乐观。

ACT(动作类)从目前占游戏市场的分量来看,有着较好的前景,

自从被开发以来就一直受到玩家的好评,不论是在哪个游戏平台,不论画

面是否华丽,你总能看到许多玩家为此着迷。然而,在手机平台上,由于

手机的屏幕,内存的容量等特定的因素从而限制它原有的可玩性,这样也

促使手机制造商更加的去完善手机的性能。

ARC(竞赛类)可操作性强,让玩家有超快感,体验赛车疯狂的速

度,尤其是通过移动网络多人竞赛。而且随着3D技术的发展,更使这一

类型游戏画面立体感强,让其在手机游戏的发展空间更为拓展。

AVG(冒险类)属于一款考验玩家冒险的精神,敢于挑战的游戏。

在PC平台上取得了巨大的成就。大部分游戏画面比较精致流畅,还有动

听的音乐,使玩家有身临其境的感觉。

SPG(体育类)它具有其独特的魅力。FAFI、实况、棒球、N

BA、 高尔夫等等此类游戏都有相当不错的成绩,只是由于各项体育运动

普及度的不同其所占的市场分量也有很大不同。

PUZ(益智类)最适合手机平台的游戏种类,不需精彩的画面、复

杂的操作、浪费较长的时间,而且操作起来更容易些,即休闲,同时又有

一定的难度。上手起来也很简单,大多数拥有手机的拥护都会去尝试这类

型的游戏。可玩性较高。目前在手机平台上的发展趋势很乐观。

STG(射击类)也是考验操作能力的一款游戏种类,有着很广泛的

玩家群体。游戏场面更加火爆逼真,战机的仿真效果也更进一步,给人强

烈的视觉刺激。目前在手机平台上也有很多,只是创新上还是很难,不过

画面方面提升的空间还是比较大。

SLG(战略类)策略类的游戏主要是指通过思考,进行策划。这类

游戏里还可以细分为战争类、经营类等。它的画面与操作模式还是满适合

手机这个平台的,相对来说玩家群还是较多的,毕竟操作起来比较简单。

还有一些特别的游戏种类,比如通过音乐,摄像头、麦克风等输入方

式进行一种全新的娱乐的游戏类型,在手机休闲平台上还是很有发展前

途。

1.3中国手机游戏的未来展望

根据相关行业的调查,2005年,手机游戏产业有了突破性的发展。

2004年中国手机游戏市场规模超过8亿元人民币,2005年我国手

机游戏市场规模达到了14.41亿元,2008将有可能上升到58.6

2亿元。由于受PC网络游戏的影响,中国的手机网络游戏市场也将更加

发展,更多游戏将被引进。据调查显示:单机游戏生命周期相对短,而用

户对手机网络游戏的热情度相对较高。一款好的“百宝箱”单机游戏前段

时间还比较兴起,过后即开始衰退。但手机网络游戏则不一样,一款优秀

的网络游戏,不但能吸引大量的玩家,而且其生命力和持久力也是难以估

量的。中国的手机游戏市场也会发展到更大的规模。勿须质疑,在巨大的

经济诱惑面前,PC互联网游戏流行期过后,很多投资商将更多的倾向于

由互联网、手机共同打造的SP市场。从 “百宝箱”中接近90%的游戏

基本上都是国产的来看,WAP站点开始成为投资商最关注的热点。随着

手机游戏市场的逐渐成熟,手机游戏产业必将出现大量的资源整合。

在未来,参与到手机游戏行业的游戏开发商将越来越多,国内手机游

戏厂商将面临前所未有的竞争,手机游戏的质量和可玩性也将进一步得到

提高。在游戏市场的运转之下,服务提供商和游戏运营商也将会探索出了

适合其发展的商业模式。虽然手机游戏在目前的技术环境下还无法达到 P

C游戏的魅力,但随着越来越多智能手机、高端手机的出 现,手机游戏将

成为人们生活娱乐中不可缺少的一部分。因此,手机游戏行业正朝着健康

有序的方向发展,相信不久的将来手机游戏将成为一种商业文化。

最近几年来,网络特别是无线通信网络在国内的普及速度很快,同时

也带动了网络游戏的快速发展。同样地,智能手机的普及,使得手机游戏

市场空前发展。国内外巨大的手机使用量,也让商家看到了新的商机,手

机游戏市场的利润将会十分的丰厚。面对潜力巨大的手机游戏市场,各大

游戏开发商、运营商、服务商以及手机终端厂商等都开始准备应对措施,

以便抢占更多的手机市场份额,许多手机厂商开始不断地提升手机的游戏

性能,同时采用开放式的手机操作系统,方便用户能够享受到不同的游戏

业务。而国内游戏开发商也都纷纷跻身手机游戏开发行列,许多著名的用

户网站,也纷纷涉及手机游戏领域,相继开辟了各自的手机游戏相关栏目,

其他一些游戏网站也都加快了手机游戏开发的脚步。现阶段国内的手机游

戏还局限于小型的单机游戏和简单的卡牌类游戏,而国外现在已经开始致

力于开发能够依靠GPRS定位,或者用户佩戴辅助器械的大型手机游戏。

毕业设计依托上述内容为技术和应用背景,在windows操作系统下采

用Visual C++ 6.0开发工具来开发,主要内容如下:

1)熟悉Visual C++ 6.0开发工具,

2)

熟练C语言的编程方法

3)

熟悉贪吃蛇游戏的应实现的功能

第二章 开发工具的简介

2.1 Visual C++6.0简介

在本设计中,系统开发平台为Windows2000,程序设计语言为C语言,

程序的运行环境为Visual C++ 6.0。Visual C++一般分为三个版本:学习

版、专业版和企业版,不同的版本适合于不同类型的应用开发。实验中可

以使用这三个版本的任意一种,在本设计中,以Visual C++ 6.0为编程

环境。

Microsoft Visual C++ 6.0是Microsoft公司的Microsoft Visual

Studio 6.0开发工具箱中的一个C++程序开发包。Visual C++包中除包括

C++编译器外,还包括所有的库、例子和为创建Windows应用程序所需要

的文档。自1993年Microsoft公司推出Visual C++1.0后,随着其新版

本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。

Visual C++从最早期的1.0版本,发展到最新的7.0版本,Visual C++已

经有了很大的变化,在界面、功能、库支持方面都有许多的增强。最新的

7.0版本在编译器、MFC类库、编辑器以及联机帮助系统等方面都比以前

的版本做了较大改进。

虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用

的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。

所以实际中,更多的是以Visual C++6.0为平台。

Visual C++ 6.0是Microsoft公司推出的目前使用最广泛的基于

Windows平台的可视化编程环境。Visual C++ 6.0是在以往版本不断更新

的基础上形成的,由于其功能强大,灵活性好,完全课扩展以及具有强大

的Internet支持,因而在各种VC++语言开发工具中脱颖而出,成为目前

最为流行的VC++语言集成开发环境。

Visual C++ 6.0秉承Visual C++以前版本的优异特性,为用户提供

了一套良好的可视化开发环境:主要包括文本编辑器、资源编辑器、工程

创建工具、Debugger调试器等等。用户可以在集成开发环境中创建工程、

打开工程、建立、打开和编辑文件、编译、链接、运行、调试应用程序。

2.2 Visual C++6.0安装

1.点击“vc6_cn_”文件,出现如图2-1界面;

图2-1 安装初始界面

2.每当遇到“下一步”,直接点击即可;

3.点击“安装”按钮,如图2-2界面;

图2-2 安装开始界面

4.点击“完成”按钮,即完成Visual C++6.0的安装,如图2-3界面。

图2-3 安装终了界面

2.3 Visual C++ 6.0开发过程

Visual C++ 6.0编译器负责将C++源代码编译成汇编文件,转换为中

间文件(obj文件),然后使用连接器将相关的中间文件连接在一起,生

成可执行的二进制文件。其过程如下:

1.源程序经过预处理后交给编译器。

2.如果代码无误,编译器将代码生成汇编程序,再生成若干个目标程

序(obj文件)。

3.链接器负责将目标程序进行连接,生成可执行的程序。

第三章 需求分析

3.1可行性分析

3.1.1 技术可行性

本系统的设计要求是一个能在Windows操作系统下运行且界面美观运

行稳定且将来可能用于嵌入式移植的系统。综合考虑选择C语言技术来实

现本系统。C语言是一门成熟的高级语言,可用于开发各种系统,也可用

于开发游戏系统。同时C语言也拥有相当多的技术人员,可以说在技术方

面开发此系统不会有什么问题。

3.1.2 经济可行性

随着手机和电脑的普及,这样的小游戏也将随着普及,因此其需求也

将不断地上升,而且由于技术的成熟与为数众多的开发人员使得此系统的

开发并不困难,再者此系统运行的平台Windows操作系统是免费的,所以

开发此系统的成本并不会很高。因此此系统具有相当的经济利益,到时候

我们也可以静观其成。

3.1.3 操作可行性

本系统是一个简单的游戏系统,对于这样一个系统,其操作只需要使

用简单的几个按键就可以实现了,因此本系统的操作简单易记,可以说一

看就会的,系统在操作上是不会存在问题的,本系统需要在Windows操作

系统下运行,而用户也可以在其受益匪浅。

3.2 功能性分析

游戏是人们生活中不可或缺的一部分,在人的成长过程中,游戏时常

陪伴在我们的身边,它在我们的生活中占据的地位是不可言喻的。不论是

一个玩具,还是一个能和伙伴一起开心的小游戏,都是能给我们留下美好

的回忆。因此,无论是什么样的游戏,只要它能迎合人们内心的某种需求,

它的市场就会很好。

3.2.1简单性

贪吃蛇是一个简单的小游戏,但是它的作用却是很大的。首先它能使

我们身心得到很好的放松,使我们从繁重的生活中解脱出来,而只有我们

的身心得到了娱乐,我们才能更好地投入到新的工作当中,现在许多人,

包括已经有工作的工作者和未进入社会的学生,都面临着很大的压力,应

运而生地,贪吃蛇提供了我们随时随地享受娱乐的机会。

这款游戏之所以叫贪吃蛇,其真正用意并不是告诉我们要贪心,它所

传递的精神是人们只有不断努力地向前才能得到自己想要的,食物就像现

在社会存在的机会,而我们只有找好自己的目标才能成功。

尽管现在市面上存在的游戏版本很多,可是贪吃蛇的市场还是很大

的。原因就在与它能引人入深,爱不释手。随着游戏速度的逐渐加快,其

刺激性也更强。可以说该游戏的优势不仅在于它的简单易行,而且在于它

很快顺利的运行。对于那些在外忙忙碌碌的人们,想让他们花费大量的时

间在大型游戏上显然是不可能的,但是小游戏却刚好能够迎合他们的需求。

但是它的缺点也主要在它的简单性,游戏本身太过于简单,无法满足大型

游戏主的需求,但是这样的小游戏主要对象是针对那些需要有些小东西来

调剂生活的人们,给他们的生活带来些精彩。

3.2.2 趣味性

人们可能持有这样的怀疑:这样一款小小的游戏,其可玩性应该高不

到哪里去吧!事实上对于大型游戏的玩家这样一款游戏自然是无法满足的。

可是我们却无法否认其趣味性。在经过一天繁忙的工作之后,我们难得有

一个间隙能喘口气,自然不能浪费,在不能玩大型游戏的情况下,人们自

然而然的就会想到贪吃蛇这样的小游戏,不仅不会占用大量的时间,而且

还能够让身心得到充分的休息。

言归正传,贪吃蛇的趣味究竟在哪里呢?人们开始游戏时从起先的容

易,到后来速度的不断加快,其可玩性也在不断地增加。

3.2.3国内外研究的现状

最近几年来,网络特别是无线通信网络在国内的普及速度很快,同时

也带动了网络游戏的快速发展。同样地,智能手机的普及,使得手机游戏

市场空前发展。国内外巨大的手机使用量,也让商家看到了新的商机,手

机游戏市场的利润将会十分的丰厚。面对潜力巨大的手机游戏市场,各大

游戏开发商、运营商、服务商以及手机终端厂商等都开始准备应对措施,

以便抢占更多的手机市场份额,许多手机厂商开始不断地提升手机的游戏

性能,同时采用开放式的手机操作系统,方便用户能够享受到不同的游戏

业务。而国内游戏开发商也都纷纷跻身手机游戏开发行列,许多著名的用

户网站,也纷纷涉及手机游戏领域,相继开辟了各自的手机游戏相关栏目,

其他一些游戏网站也都加快了手机游戏开发的脚步。现阶段国内的手机游

戏还局限于小型的单机游戏和简单的卡牌类游戏,而国外现在已经开始致

力于开发能够依靠GPRS定位,或者用户佩戴辅助器械的大型手机游戏。

第四章 概要设计

4.1功能介绍

贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出

现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇

头撞倒食物,则食物被吃掉,蛇身体长一节,同时记2分,接着又出现食

物,等待蛇来吃,如果蛇在移动中身体交叉蛇头撞倒自己身体游戏结束。

4.2概要设计图

通过对贪吃蛇的需求分析,我们用C语言实现该程序

概要如下:

图4-1 概要设计图

4.2.1画面设计

(1)主要是对边框、食物、蛇的设计,起用了一些链表和库函数;

(2)画面的启动的问题,紧接着就是是画面的绘制

(3)食物和蛇放在游戏的具体过程中,因为食物是随机的,而蛇是

移动的。

4.2.2游戏过程

主要是对食物和蛇的设置。在这个环节过程中有几个重要的算法,是

程序能否成功地运行的关键。其主要有蛇是如何移动身体的;蛇怎样才能

吃到食物;随着游戏得分增加,游戏的等级也增加,同时蛇的爬行速度也

加快了;怎样判断蛇的死亡等。

4.2.3游戏结束

蛇如何死亡

蛇死亡后即意味着游戏的结束

4.2.4添加功能

(1)在游戏的开头添加“WELCOM TO GAME”的语句,并添加“

按任意键继续”以提示用户;

(2)添加背景音乐“筷子兄弟——小苹果”,可以在玩游戏的

过程中,边玩游戏边听音乐。

第五章 详细设计

5.1程序设计分析

N

Y

图5-1 程序设计流程图

这是一个简单的游戏,所以循环和分支之类的函数在大的面上运用较

少,主要体现在计算上,尤其是坐标上的计算较为突出。简单易懂,一目

了然

5.2主要函数:

表5-1贪吃蛇主要函数

函数

HideCursor()

GotoRood(int x, int y)

Random(int n)

BuildSnk(SNAKE *head)

RemoveSnk(SNAKE

*head)

Move(int *d)

隐藏光标

功能

光标跳跃到(x,y)位置

随机生成食物

构造蛇身

清除函数

控制蛇懂得移动

IniScreen(SNAKE *head)

初始化屏幕

CreatFood(FOOD

SNAKE *snk)

CollisionTest(SNAKE

*head)

Eated(SNAKE

*fd,

做蛇的食物,增加一个的功能就是让

食物不与蛇体发生冲突

碰撞测试

*head,

蛇是否吃到食物

FOOD *fd)

GameOver(SNAKE

*head)

gameing()

PlaySound()

游戏过程

播放背景音乐

判断游戏结束了没

5.3主要代码

5.3.1 Main()主函数

主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原

型说明,然后初始化图形系统,调用函数gameing(),即玩游戏的具体过

程,游戏结束后执行return 0;语句关闭图形系统,结束程序。

代码如下:

int main()

{

GotoRood(START_X + SCREEN_WIDTH / 2, START_Y +

SCREEN_LENGTH / 2);

printf("WELCOM TO GAME");

GotoRood(START_X + SCREEN_WIDTH / 2-2, START_Y +

SCREEN_LENGTH / 2+10);

system("pause");

system("cls");//清除屏幕内容

PlaySound(TEXT("D:"), NULL,

SND_ASYNC | SND_NODEFAULT);

while (1)

{

gameing();

return 0;

}

}

程序分析:

一般而言,编写一个能运行在操作系统上的程序,都需要一个主函数。

主函数意味着建立一个独立进程,且该进程成为了程序的入口,对其它各

函数(在某些OOP语言里称作方法,比如Java)进行调用,当然其它被调

用函数也可以再去调用更多函数.......这样整个程序的运行轨迹就像一

种栈,有时我们称之为调用栈。主函数既是程序的入口,又是程序的出口,

通常我们还可以指定一个exit code再退出,以表明程序最后的结果是什

么样的。

自然而然的,这里的main函数就是贪吃蛇游戏程序的入口函数,通

过该入口函数,进而可以调用gameing()函数,使游戏运行起来

5.3.2 游戏界面设计

主界面就是一个密封的矩形框,在矩形框的左边是游戏的操作说明,

在框内主要是蛇和食物。游戏边框流程图如图5-2所示。

N

Y

N

Y

图5-2 游戏边框流程图

代码如下:

void IniScreen(SNAKE *head) /*初始化屏幕*/

{

int i,j;

SNAKE *p1, *p2;

HideCursor();

GotoRood(START_X,START_Y);

for (i = 0; i < SCREEN_WIDTH + 2; i++)

printf("-");

for (j = 1; j <= SCREEN_LENGTH; j++)

{

}

GotoRood(START_X, START_Y + SCREEN_LENGTH + 1);

for (i = 0; i < SCREEN_WIDTH + 2; i++)

printf("-");

GotoRood(START_X + SCREEN_WIDTH + 1, START_Y + j);

printf("|");

for (j = 1; j <= SCREEN_LENGTH; j++)

{

GotoRood(START_X,START_Y + j);

printf("|");

}

GotoRood(START_X + 20, START_Y - 1);

printf("贪吃蛇 作者:唐姜明");

GotoRood(0,START_Y + 2);

printf("游戏说明:nn↑设置等级nn按〖回车〗开始nn

↑↓←→n控制方向n");

head->x = START_X + SCREEN_WIDTH / 2;

head->y = START_Y + 8;

head->pre = NULL;

p1 = head;

i = 0;

while (++i < 3)

{

p2 = p1;

p1 = (SNAKE *)malloc(sizeof(SNAKE));

p1->x = START_X + SCREEN_WIDTH / 2;

p1->y = START_Y + 8 + i;

p1->end = NULL;

p2->next = p1;

}

p1->pre = p2;

p1->next = NULL;

head->end = p1;

}

程序分析:

这里的游戏边框设计的主要思想是利用for循环语句中的嵌套循环实

现的。如 for (i = 0; i < SCREEN_WIDTH + 2; i++) printf("-");这

句话的意思是画出游戏边框的上边框,画完之后,再通过

GotoRood(START_X + SCREEN_WIDTH + 1, START_Y + j);语句实现光标定

位,并且与for (j = 1; j <= SCREEN_LENGTH; j++)语句结合使用,进而

画出游戏边框的右边框。同样的道理,其他两个边框的实现也可以用这种

方法去实现。

5.3.3 构建食物函数

void CreatFood(FOOD *fd, SNAKE *snk) /*做吃的,记得增加一个功能

就是让食物不与蛇体冲突

*/

{

SNAKE *p = snk;

int clash = 0; /*标记食物位置是否和蛇发生冲突*/

while(1)

{

clash = 0;

fd->x = START_X + 1 + Random(SCREEN_WIDTH); /* x控制在边

宽内 */

fd->y = START_Y + 1 + Random(SCREEN_LENGTH); /* y控制在变

长内 */

for (;p != NULL ;p = p->next)

if (fd->x == p->x && fd->y == p->y)

{

clash = 1;

break;

}

if (clash == 0)

break;

}

}

GotoRood(fd->x, fd->y);

printf("*");

5.3.4 碰撞测试函数

void CollisionTest(SNAKE *head)

{

if (head->x == START_X) /*一头撞在左墙上.....*/

*/

head->x = START_X + SCREEN_WIDTH; /*嗯...那从右边出来吧

else if (head->x == START_X + SCREEN_WIDTH + 1) /*..换个方向

接着撞....*/

head->x = START_X + 1;

else if (head->y == START_Y) /*...再向上撞...*/

head->y = START_Y + SCREEN_LENGTH;

else if (head->y == START_Y + SCREEN_LENGTH + 1) /*下面也

不能放过...*/

head->y = START_Y + 1;

}

程序分析:

该函数为贪吃蛇的碰撞测试,也就是说蛇的头部如果撞在墙壁上,该

游戏是不会结束的,并且如果蛇的头部撞在左(右)边的墙上,那么蛇的

头部将会从右(左)边的墙上出来,并且保持原来的爬行方向继续前行;

如果蛇的头部撞在上(下)边的墙上,那么蛇的头部将会从下(上)边的

墙上出来,并且保持原来的爬行方向继续前行。

5.3.5吃食函数

int Eated(SNAKE *head, FOOD *fd) /*....有木有吃到食物

*/

{

if (head->x == fd->x && head->y == fd->y)

return 1;

return 0;

}

程序分析:

该函数为贪吃蛇去吃食物的函数,其实说起来该过程也十分的简单,

也就是当食物的坐标与贪吃蛇头部的坐标相等时,换句话说就是将食物的

坐标赋值给蛇头部的坐标,那么就完成了贪吃蛇吃食物的过程,否则贪吃

蛇是不会吃到食物的。

5.3.6 游戏的具体过程函数gameing()

这个函数是游戏的主要部分,难点是在表示蛇的新位置,采用的方法

是链表传递的方法。

另外,食物的出现要是随机的,蛇吃到食物的判断是蛇头的坐标和食

物的坐标相等。游戏过程流程图如图5-3所示。

N

N

N

Y

图5-3游戏过程流程图

代码如下:

void gameing() /*游戏过程*/

{

int i = 0, eat = 0, rank, scorelimit = 0, score = 0;

int direct = up; /* 初始方向为向上 */

time_t grade = 2; /* 初始等级为2 */

FOOD *fd;

SNAKE *head, *ptemp, *pnew; /*最少3个蛇身 + 1个蛇头

的时候才会挂。感觉用C++改成类来做会好一些。。*/

head = (SNAKE *)malloc(sizeof(SNAKE));

fd = (FOOD *)malloc(sizeof(FOOD));

GotoRood(START_X, START_Y - 1);

printf("Grade: %d", grade);

GotoRood(START_X + 10, START_Y - 1);

printf("Score: %-3d", score);

IniScreen(head);

CreatFood(fd, head);

while(rank = getch()) /*接受按键...↑设置等级【空格】

开始游戏*/

{

if (rank == 72)

{

grade = ++grade % 10;

if (grade == 0)

grade = 1;

GotoRood(START_X, START_Y - 1);

printf("Grade: %d", grade);

}

else if (rank == 13)

}

while (1)

{

RemoveSnk(head);

ptemp = (SNAKE *)malloc(sizeof(SNAKE)); /*临时的,用来

break;

增加在蛇的头部*/

Move(&direct); /*....接受用户选择蛇的运动方向*/

switch(direct)

{

case up: ptemp->x = head->x;

ptemp->y = head->y - 1;

break;

case down: ptemp->x = head->x;

ptemp->y = head->y + 1;

break;

case left: ptemp->x = head->x - 1;

ptemp->y = head->y;

}

break;

case right: ptemp->x = head->x + 1;

ptemp->y = head->y;

break;

if (!eat) /*如果没吃到,那自然增加蛇的长度*/

{

ptemp->end = head->end->pre; /*将蛇的尾端位置改变,

变为倒数第二个

*/

head->end->pre->next = NULL; /*再连接下...*/

free(head->end);

head->end = NULL;

}

else

{

ptemp->end = head -> end;/*吃到了。。在原有的基础上换

一个头,这样就多了一节

*/

}

head->pre = ptemp; /*。。队列连接*/

ptemp->next = head;

ptemp->pre = NULL;

head = ptemp;

if (eat = Eated(head, fd))

{

CreatFood(fd,head);

score += grade; /*吃到了,就加分*/

scorelimit += grade;

级。*/

{ /*

GotoRood(START_X, START_Y - 1);

printf("Grade: %d", ++grade);

scorelimit = score % 50;

}

printf("Score: %-3d", score);

}

if (GameOver(head)) /*

{

BuildSnk(head); /*

GotoRood(START_X

puts("

return;

这个用来增加等

每过一次50分,

等级增加一次,10级

是上限 */

游戏是否结束....*/

留下最后的英姿。。。吃货该死..*/

+ SCREEN_WIDTH / 2, START_Y +

SCREEN_LENGTH / 2);

小菜鸟,你输了n");

if (scorelimit / 50 && grade <= 10) /*

GotoRood(START_X + 10, START_Y - 1);

}

CollisionTest(head); /*碰撞测试*/

BuildSnk(head);

Sleep((10 - grade) * 50); /*延时...程序会暂停(10 -

grade)*50ms 的时间, windows.h里的函数

*/

}

}

程序分析:

gaming()函数是游戏的主要部分,难点在表示蛇的新位置并消除前一

次的图形。采用的方法是每次移动的时候从最后一节开始到倒数第二节

(因蛇头为两节),将前一节的坐标赋值给后一节的坐标,移动后只要把最

后一节用背景色去除即可,因为新位置0到n-l节还是要出现在画面上的。

然后蛇头按照方向键来更改位置。

另外,食物的随机出现要确保它的位置在10的倍数位置上,因为蛇

的坐标都是以10为模的,这样的话就可以让蛇吃到,蛇吃到食物的判断

是蛇头的坐标和食物的坐标相等。

其算法过程为:

(1)设置初始值。为防止食物总出现在一个位置上,要设置随机数发

生器,真正产生随机数。初始时,蛇只有蛇头,设定一个开始的方向。

(2)循环执行,直到按Esc键退出。

(3)没有按键的情况下,循环执行。

如果没有食物,随机出现食物;如果有食物,则显示食物,蛇移动身体,

根据蛇的方向改变坐标值,并判断蛇是否自己吃了自己,如果出现这种情

况,则蛇死,调用游戏结束函数GameOver(),结束本次游戏,重新开始。

如果蛇吃到了食物,蛇身体长一节,数组元素增加一个,身体节数、分数

都进行相应的改变。在新位置画出蛇。

(4)如果有按键,则识别键值。如果按键为Esc键则结束游戏,程序

运行结束;如果所按键为方向键,则根据该键改变代表蛇方向的变量

direction的值,要考虑相反方向键无效。

5.4其他函数的代码:

5.4.1隐藏光标函数

void HideCursor() /*隐藏光标,用到了一些CONSOLE

API*/

{

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

CONSOLE_CURSOR_INFO cci;

GetConsoleCursorInfo(hOut, &cci);

le = FALSE;

SetConsoleCursorInfo(hOut, &cci);

}

5.4.2光标定位函数

void GotoRood(int x, int y) /*光标跳跃到某个位置,用了

CONSOLE API*/

{

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

COORD cod;

cod.X = x;

cod.Y = y;

SetConsoleCursorPosition(hOut, cod);

}

5.4.3随机生成食物函数

int Random(int n) /*随机生成食物的位置*/

{

srand(time(NULL));

return (rand() % n);

}

5.4.4 构建蛇身

void BuildSnk(SNAKE *head) /*构造蛇身*/

{

SNAKE *p = head;

while (p != NULL)

{

GotoRood(p->x, p->y);

printf("#");

}

p = p->next;

}

5.4.5蛇的移动方向函数

void Move(int *d) /*移动方向。。。 上下左右 上:72 下:80

左:75 右:77*/

{

char ch;

while(_kbhit())

{

ch = getch();

if (ch == 72)

{

if ((*d == left || *d == right) && *d != down)

*d = up;

}

else if (ch == 80)

{

if ((*d == left || *d == right) && *d != up)

*d = down;

}

else if (ch == 75)

{

if ((*d == up || *d == down) && *d != right)

*d = left;

}

else if (ch == 77)

{

if ((*d == up || *d == down) && *d != left)

}

*d = right;

}

程序分析:

这里我们首先要明确一个函数kbhit()函数(VC++6.0下为_kbhit()),

该函数的功能及返回值为:检查当前是否有键盘输入,若有则返回一个非

0值,否则返回0。那么接下来所有的问题便可迎刃而解了

这里用到的是C语言当中的if语句和复合运算符,例如

if (ch == 72)

{

if ((*d == left || *d == right) && *d != down)

*d = up;

}

其中,ch == 72 和(*d == left || *d == right) && *d != down为

真的意思是说,如果贪吃蛇之前的运动为向左或者向右但是绝对不会是向

下时,那么贪吃蛇接下来的运动只会是向上。同理,贪吃蛇向左、向右、

向下的实现也是一样的。

5.4.6背景音乐播放函数

为了更好地放松身心,在玩游戏的时候我们可以一边玩游戏一边听音

乐。

代码如下:

#include

#include

#include

#pragma comment(lib, "")

void main()

{

PlaySound(TEXT("D:"),NULL,SND_ASYNC|SND_NODEF

AULT);

while (1)

{

printf("program heren"); /*这里跑你的程序,

按 Ctrl-C 组合键,结束程序*/

Sleep(1000); //休息1秒

}

exit(0);

}

程序分析:

背景音乐播放的实现利用的是PlaySound()函数,值得注意的是对

音乐的格式也有所要求,背景音乐的格式必须是.wav格式,要不然,背景

音乐是不会播放的。在编写程序的过程中,本人就是因为将背景音乐的格

式设置成了.mp3格式才造成了编程过程老是停滞不前。

实现背景音乐的播放过程解决了,接下来的问题是如何实现音乐播放

与游戏运行的有机结合,在这里我用到了while循环语句,只要将游戏过

程函数即gaming()函数写在while循环语句中就可以了

第六章 运行与测试

6.1 运行程序

(1)首先打开VC 6.0 开发工具,将编写好的程序复制到源程序文

件中去,然后点击编译,如图6-1所示

图6-1 编译

由图6-2可知,编译之后未发现错误

图6-2 错误显示

(2)点击执行按钮,进入界面,如图6-3所示

图6-3 进入界面

(3)按任意键,出现游戏主界面,如图6-4所示

图6-4 游戏主界面

(4)当蛇头与蛇身交叉时,蛇死亡意味着游戏结束,界面中就会跳出

“小菜鸟,你输了”的字样,如图6-5所示。

图6-5 游戏结束界面

6.2程序的调试与测试

调试与测试软件的目标就是发现并改正潜伏的错误。一个程序,必须

经过认真的调试和测试,才能尽量减少错误、保证程序满足功能、性能需

求,达到最初的设计、使用要求,从而保证程序的开发质量。

(1)拟定测试计划。根据游戏的总体情况,仔细分析游戏各个步骤的

运行可能出现的状况,对各种情况进行汇总,然后拟定出一份具体测试步

骤。

(2)初步测试。根据你定好的计划进行游戏调试,出现意外情况时及

时记录。测试完后对所记录的意外情况进行分析,然后提出改进的方案,

在进行修改。

(3)深度测试。对游戏进行最后的修改,确认没有漏洞后再进行测试

从各个方面进行一次整体的排查,直到不再出现意料之外的情况。

详细设计完成后,用C语言根据各个模块的算法来设计程序,每个模

块都设计成一个自定义函数。几个模块放在一个构成一个源程序文件,或

者一个模块构成一个源程序文件。源程序设计好后,输入到计算机,并储

存到磁盘上;然后对每个源程序文件都进行独立编译和调试;并针对不同

的模块设计测试用例进行单元测试;最后,将几个分别开发的模块组装到

一起,形成一个完整的程序,进行集成测试,从而发现并改正程序中存在

的一些潜藏的错误,并使程序的容错能力大大增强。调试与测试过程及结

果如下所述

6.2.1动画与音乐的同步播放

预期结果:

(1)片头在显示动画的同时播放音乐;

(2)按任意键后进入游戏主界面;

(3)进入游戏主界面后动画音乐继续播放。

实际运行结果:

在第(1)步,进入游戏后不能播放片头音乐。

错误分析:程序中使用循环播放动画,并在其循环体中插入发声函数以达

到音乐和动画的同步。但是对于背景音乐的文件格式是有要求的,并不是

每种格式都能作为背景音乐使用的

修改:将背景音乐改成.wav格式即可,为PlaySound

(TEXT("D:"), NULL, SND_ASYNC |

SND_NODEFAULT);。修改后程序运行的实际结果与预期效果一致。

6.2.2蛇头撞到蛇身

预期结果:当蛇的头部和蛇身相撞的时候,游戏应当结束。

实际运行的效果:蛇头撞到蛇身时,程序停止了。

修改后的代码为:

for(p = head->next; p != NULL; p = p->next)

{

}

if (head->x == p->x && head->y == p->y)

return 1;

6.2.3 终止程序

经过对各个模块的调试和单元测试并修改了错误以后,将各个模块组

装成一个软级系统,并进行集成测试。在集成的过程中发现了一些错误,

比如全局变量重复定义、函数重复声明等,分别进行了改正。最后连续运

行了5次,以便测试该游戏程序的功能、性能是否达到了预期的目标,并

根据所使用的具体机器随蛇的爬行速度进行适当的调整。测试内容包括蛇

的运行、分数、关数、音乐动画等的功能,情况均正常。

第七章 结 论

毕业设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际

问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和

考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以

说得是无处不在。因此作为二十一世纪的大学生来说掌握程序开发技术是

十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做

好C语言毕业设计是十分必要的。 回顾起此次毕业设计,至今我们仍感

慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一

个学期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所

学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次毕

业设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远

不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,

才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难

免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,

对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,

指针,链表等。通过这次毕业设计之后,我们把前面所学过的知识又重新

温故了一遍。

我做的是贪吃蛇游戏。简单的一个,但对我一个初学者来说却是一个

很大的困难。更加是第一次做毕业设计,所以在后期编写程序时老是停滞

不前,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教

导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在

一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。特别是

结构体,指针的部分,几乎是一片空白。不过经过几天的努力,大体上把

课本上的知识点看了一遍,知识点也都基本是撑握了,所以下一步就是开

始正式的编写程序了。不过毕竟是个新手,还是不知如何下手,于是就在

网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基

本过程和方法。 经过一波三折,终于开始正式编程。

编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压

力,还必须强破自己坚持下去,按照老师所说的模块化思想,分部分的进

行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,

也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细

就是非常重要的了。开始的时候真的感觉编程是一件很无聊的事情,不过

当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比

拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误

和漏洞,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努

力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。

通过这次毕业设计,使我对C语言有了更进一步的认识和了解,要想

学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现

我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学

习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调

用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过

实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,

还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在

学习过程中,我会更加注视实践操作,使自己便好地学好计算机。在毕业

设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,

懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中

怎么样去克服心理上的不良情绪。

虽然说,设计的过程是艰苦的,但是其中所带给我的快乐却是不言而

喻的。但看到贪吃蛇游戏活灵活现地呈现在屏幕上时,给我的感觉是皇天

不负苦心人,台上十分钟,台下十年功啊!!

致谢

历时半载,从论文选题到搜集资料,从开题报告、写初稿到反复修改,

期间经历了喜悦、聒噪、痛苦和彷徨,在写论文的过程中心情是如此的复

杂。如今,伴随着这篇毕业论文的最终成稿,复杂的心情烟消云散,自己

甚至还有一点成就感。

本论文是在我的导师徐金宝老师的亲切关怀和悉心指导下完成的。他

严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和

激励着我。在课题选择的时候,是徐老师给了我勇气去选择本课题。在进

行课题研究的时候,徐老师始终给予我细心的指导和不懈的支持。在系统

设计阶段,徐老师多次帮我解答问题,并讲解系统设计方面的错误,并提

出解决问题的各种可能性。在撰写论文阶段,多次亲自审阅我的论文,并

提出许多改进意见。所以,如果没有老师的指导,我就不能很顺利地完成

毕业设计。

几个月来,徐老师不仅在学业上给我以精心指导,同时还在思想、生

活上给我以无微不至的关怀,在此谨向徐老师致以诚挚的谢意和崇高的敬

意。在此,我还要感谢各位同学,正是由于你们的帮助和支持,我才能克

服一个一个的困难和疑惑,直至本文的顺利完成。

在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的

顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请

接受我诚挚的谢意!

参考文献

[01]谭浩强.《C程序设计题解与上机指导》.北京:清华大学出版社,

1992.

[02]赵海廷.《C语言程序设计》.北京:人民邮电出版社,2005.

[03]何光明,杨静宇.《C语言程序设计与应用开发》.北京:清华大学

出版社,2006

[04]张强华.《 C 语言程序设计》.北京:人民邮电出版社,2001.

[05]谭浩强.《 C 语言程序设计》.北京:清华大学出版社,1999.

[06]徐建民.《 C 语言程序设计》.北京:电子工业出版社,2002.

[07]钱启平.《C语言程序设计基础》.北京:铁道出版社,2000.

[08]陈平.软件设计师教程. 北京:清华大学出版社,2006.

[09]高阳等.微软Visual Studio 2010实战兵法.北京:电子工业

出版社,2010.

[10]王继民,柴春来,余宇峰等. C++程序设计与应用开发.北京:清

华大学出版社,2003.

[11]廖雷.《C语言程序设计》.第2版.北京:高等教育出版社,2006.

[12]贾学斌,宋海民.《C语言程序设计》.06年版.北京:中国铁道

出版社,2007.

[13]徐新华. 《 C 语言程序设计教程》.1999年版.北京:清华大学

出版

社.1999.

[14]李大友. 《 C 语言程序设计》.1999年版.北京:清华大学出版

社.1999.

[15]毕万新. 《 C 语言程序设计》.2005年版.大连:大连理工大学

出版

社.2005.

[16]刘 燕. 《 C 语言程序设计》.2008年版.北京:中国铁道出版

社.2008. [17]方少卿. 《C语言程序设计》. 2007年版.北京:中国

铁道出版社.2007. [18]吴文虎. 《 程序设计基础》.2003年版.北京:

清华大学出版社.2003.

附录A

附 录:英文技术资料翻译

英文原文:

The History of the Internet

The Beginning - ARPAnet

The Internet started as a project by the US government. The

object of the project was to create a means of communications between

long distance points, in the event of a nation wide emergency or,

more specifically, nuclear war. The project was called ARPAnet, and

it is what the Internet started as. Funded specifically for military

communication, the engineers responsible for ARPANet had no idea

of the possibilities of an "Internet."

By definition, an 'Internet' is four or more computers connected

by a network.

ARPAnet achieved its network by using a protocol called TCP/IP.

The basics around this protocol was that if information sent over

a network failed to get through on one route, it would find another

route to work with, as well as establishing a means for one computer

to "talk" to another computer, regardless of whether it was a PC

or a Macintosh.

By the 80's ARPAnet, just years away from becoming the more well

known Internet, had 200 computers. The Defense Department,

satisfied with ARPAnets results, decided to fully adopt it into

service, and connected many military computers and resources into

the network. ARPAnet then had 562 computers on its network. By the

year 1984, it had over 1000 computers on its network.

In 1986 ARPAnet (supposedly) shut down, but only the organization

shut

down, and the existing networks still existed between the more than

1000

computers. It shut down due to a failied link up with NSF, who wanted

to

connect its 5 countywide super computers into ARPAnet.

With the funding of NSF, new high speed lines were successfully

installed

at line speeds of 56k (a normal modem nowadays) through telephone

lines

in 1988. By that time, there were 28,174 computers on the (by then

decided) Internet. In 1989 there were 80,000 computers on it. By

1989, there were

Another network was built to support the incredible number of

people

joining. It was constructed in 1992.

Today - The Internet

Today, the Internet has become one of the most important

technological advancements in the history of humanity. Everyone

wants to get 'on line' to experience the wealth of information of

the Internet. Millions of people now use the Internet, and it's

predicted that by the year 2003 every single person on the planet

will have Internet access. The Internet has truly become a way of

life in our time and era, and is evolving so quickly its hard to

determine where it will go next, as computer and network technology

improve every day.

HOW IT WORKS:

It's a standard thing. People using the Internet. Shopping,

playing games,conversing in virtual Internet environments.

The Internet is not a 'thing' itself. The Internet cannot just

"crash." It functions the same way as the telephone system, only

there is no Internet company that runs the Internet.

The Internet is a collection of millioins of computers that are

all connected to each other, or have the means to connect to each

other. The Internet is just like an office network, only it has

millions of computers connected to it.

The main thing about how the Internet works is communication.

How does a computer in Houston know how to access data on a computer

in Tokyo to view a webpage?

Internet communication, communication among computers connected

to the Internet, is based on a language. This language is called

TCP/IP. TCP/IP establishes a language for a computer to access and

transmit data over the Internet system.

But TCP/IP assumes that there is a physical connecetion between

one computer and another. This is not usually the case. There would

have to be a network wire that went to every computer connected to

the Internet, but that would make the Internet impossible to access.

The physical connection that is requireed is established by way

of modems,phonelines, and other modem cable connections (like cable

modems or DSL). Modems on computers read and transmit data over

established lines,which could be phonelines or data lines. The

actual hard core connections are established among computers called

routers.

A router is a computer that serves as a traffic controller for

information.

To explain this better, let's look at how a standard computer

might view a webpage.

1. The user's computer dials into an Internet Service Provider

(ISP). The ISP might in turn be connected to another ISP, or a

straight connection into the Internet backbone.

2. The user launches a web browser like Netscape or Internet

Explorer and types in an internet location to go to.

3. Here's where the tricky part comes in. First, the computer

sends data about it's data request to a router. A router is a very

high speed powerful computer running special software. The

collection of routers in the world make what is called a "backbone,"

on which all the data on the Internet is transferred. The backbone

presently operates at a speed of several gigabytes per-second. Such

a speed compared to a normal modem is like comparing the heat of

the sun to the heat of an ice-cube.

Routers handle data that is going back and forth. A router puts

small chunks of data into packages called packets, which function

similarly to envelopes. So, when the request for the webpage goes

through, it uses TCP/IP protocols to tell the router what to do with

the data, where it's going, and overall where the user wants to go.

4. The router sends these packets to other routers, eventually

leading to the target computer. It's like whisper down the lane (only

the information remains intact).

5. When the information reaches the target web server, the

webserver then begins to send the web page back. A webserver is the

computer where the webpage is stored that is running a program that

handles requests for the webpage and sends the webpage to whoever

wants to see it.

6. The webpage is put in packets, sent through routers, and arrive

at the users computer where the user can view the webpage once it

is assembled.

The packets which contain the data also contain special

information that lets routers and other computers know how to

reassemble the data in the right order.

With millions of web pages, and millions of users, using the

Internet is not always easy for a beginning user, especially for

someone who is not entirely comfortale with using computers. Below

you can find tips tricks and help on how to use main services of

the Internet.

Before you access webpages, you must have a web browser to

actually be able to view the webpages. Most Internet Access

Providers provide you with a web browser in the software they usually

give to customers; you. The fact that you are viewing this page means

that you have a web browser. The top two use browsers are Netscape

Communicator and Microsoft Internet Explorer. Netscape can be found

at and MSIE can be found at

The fact that you're reading this right now means that you have

a web browser.

Next you must be familiar with actually using webpages. A webpage

is a collection of hyperlinks, images, text, forms, menus, and

multimedia. To "navigate" a webpage, simply click the links it

provides or follow it's own instructions (like if it has a form you

need to use, it will probably instruct you how to use it). Basically,

everything about a webpage is made to be self- explanetory. That

is the nature of a webpage, to be easily navigatable.

"Oh no! a 404 error! 'Cannot find web page?'" is a common remark

made by new web-users.

Sometimes websites have errors. But an error on a website is not

the user's fault, of course.

A 404 error means that the page you tried to go to does not exist.

This could be because the site is still being constructed and the

page hasn't been created yet, or because the site author made a typo

in the page. There's nothing much to do about a 404 error except

for e-mailing the site administrator (of the page you wanted to go

to) an telling him/her about the error.

A Javascript error is the result of a programming error in the

Javascript code of a website. Not all websites utilize Javascript,

but many do. Javascript is different from Java, and most browsers

now support Javascript. If you are using an old version of a web

browser (Netscape 3.0 for example), you might get Javascript errors

because sites utilize Javascript versions that your browser does

not support. So, you can try getting a newer version of your web

browser.

E-mail stands for Electronic Mail, and that's what it is. E-mail

enables people to send letters, and even files and pictures to each

other.

To use e-mail, you must have an e-mail client, which is just like

a personal post office, since it retrieves and stores e-mail.

Secondly, you must have an e-mail account. Most Internet Service

Providers provide free e-mail account(s) for free. Some services

offer free e-mail, like Hotmail, and Geocities.

After configuring your e-mail client with your POP3 and SMTP

server address (your e-mail provider will give you that information),

you are ready to receive mail.

An attachment is a file sent in a letter. If someone sends you

an attachment and you don't know who it is, don't run the file, ever.

It could be a virus or some other kind of nasty programs. You can't

get a virus just by reading e-mail, you'll have to physically execute

some form of program for a virus to strike.

A signature is a feature of many e-mail programs. A signature

is added to the end of every e-mail you send out. You can put a text

graphic, your business information, anything you want.

Imagine that a computer on the Internet is an island in the sea.

The sea is filled with millions of islands. This is the Internet.

Imagine an island communicates with other island by sending ships

to other islands and receiving ships. The island has ports to accept

and send out ships.

A computer on the Internet has access nodes called ports. A port

is just a symbolic object that allows the computer to operate on

a network (or the Internet). This method is similar to the

island/ocean symbolism above.

Telnet refers to accessing ports on a server directly with a text

connection. Almost every kind of Internet function, like accessing

web pages,"chatting," and e-mailing is done over a Telnet

connection.

Telnetting requires a Telnet client. A telnet program comes with

the Windows system, so Windows users can access telnet by typing

in "telnet" (without the "'s) in the run dialog. Linux has it built

into the command line; telnet. A popular telnet program for

Macintosh is NCSA telnet.

Any server software (web page daemon, chat daemon) can be

accessed via telnet, although they are not usually meant to be

accessed in such a manner. For instance, it is possible to connect

directly to a mail server and check your mail by interfacing with

the e-mail server software, but it's easier to use an e-mail client

(of course).

There are millions of WebPages that come from all over the world,

yet how will you know what the address of a page you want is?

Search engines save the day. A search engine is a very large

website that allows you to search it's own database of websites.

For instance, if you wanted to find a website on dogs, you'd search

for "dog" or "dogs" or "dog information." Here are a few

search-engines.

1. Altavista () - Web spider & Indexed

2. Yahoo () - Web spider & Indexed Collection

3. Excite () - Web spider & Indexed

4. Lycos () - Web spider & Indexed

5. Metasearch () - Multiple search

A web spider is a program used by search engines that goes from

page to page, following any link it can possibly find. This means

that a search engine can literally map out as much of the Internet

as it's own time and speed allows for.

An indexed collection uses hand-added links. For instance, on

Yahoo's site. You can click on Computers & the Internet. Then you

can click on Hardware. Then you can click on Modems, etc., and along

the way through sections, there are sites available which relate

to what section you're in.

Metasearch searches many search engines at the same time, finding

the top choices from about 10 search engines, making searching a

lot more effective.

Once you are able to use search engines, you can effectively find

the pages you want.

With the arrival of networking and multi user systems, security

has always been on the mind of system developers and system operators.

Since the dawn of AT&T and its phone network, hackers have been known

by many, hackers who find ways all the time of breaking into systems.

It used to not be that big of a problem, since networking was limited

to big corporate companies or government computers who could afford

the necessary computer security.

The biggest problem now-a-days is personal information. Why

should you be careful while making purchases via a website? Let's

look at how the internet works, quickly.

The user is transferring credit card information to a webpage.

Looks safe, right? Not necessarily. As the user submits the

information, it is being streamed through a series of computers that

make up the Internet backbone. The information is in little chunks,

in packages called packets. Here's the problem: While the

information is being transferred through this big backbone, what

is preventing a "hacker" from intercepting this data stream at one

of the backbone points?

Big-brother is not watching you if you access a web site, but

users should be aware of potential threats while transmitting

private information. There are methods of enforcing security, like

password protection, an most importantly, encryption.

Encryption means scrambling data into a code that can only be

unscrambled on the "other end." Browser's like Netscape

Communicator and Internet Explorer feature encryption support for

making on-line transfers. Some encryptions work better than others.

The most advanced encryption system is called DES (Data Encryption

Standard), and it was adopted by the US Defense Department because

it was deemed so difficult to 'crack' that they considered it a

security risk if it would fall into another countries hands.

A DES uses a single key of information to unlock an entire

document. The problem is, there are 75 trillion possible keys to

use, so it is a highly difficult system to break. One document was

cracked and decoded, but it was a combined effort of 14,000 computers

networked over the Internet that took a while to do it, so most

hackers don't have that many resources available.

中文译文:

互联网的历史

起源 - ARPAnet

互联网开始于美国政府的一个项目。该项目的目的是要建立长距离的

点之间的通信的装置,处理一个全国性的紧急,特别是核战争的事件。该

项目被命名为ARPAnet,它是Internet的前身。专为军事通信,负责ARPA

网的工程师们不知道它可能成为“互联网”。

根据定义,一个“互联网”是四个或更多的计算机网络连接的网络。

ARPAnet是通过一种叫做TCP/ IP协议实现了网络。这个协议的基本

原理是:如果通过网络发送的信息未能通过一条路线,它会找到另一条路

线工作,就像建立一种手段使一台计算机与另一台计算机“对话”,而不管

它是一台PC或Macintosh。

到了80年代,ARPA网只需几年就可以成为比较知名的互联网,它有

200台电脑。国防部很满意ARPAnets结果,就决定全面将其培养成能连接

许多军用计算机和资源共享的网络。到了1984年,它的网络上有1000多

台计算机。

1986年ARPA网(据说)关闭了,但只有该机构解散了,网络仍在1000

多台计算机之间存在 。由于使用NSF连接失败,ARPAnet才被关闭。NSF

是将5个国家范围内的超级计算机连入ARPAnet。

在1988年那个时候,用户可以通过56K的电话线上网,在Internet

上28174计算机。1989年,共有80000台计算机连入网络。到1989年,

有29万台连入网络。

另一个网络被建立来 支持许多人的加入。它建于1992年。

当今 - 互联网

如今,互联网已经成为人类历史上最重要的先进技术之一。每个人都

希望'上线',体验丰富的互联网信息。数以百万计的人现在使用的互联网,

据预测到2003年地球上的每个人都能接入互联网。互联网已经真正成为

了在我们这个时代的一种生活方式,而且随着计算机和网络技术的提高,

互联网进化的是是如此的快以至于很难确定它的下一步将走哪里。

工作原理:

互联网有一定的标准。在虚拟的互联网环境中人们使用互联网进行购

物,玩游戏,聊天。

互联网本身不是有形的。互联网不能被触摸。它就像电话系统,只有

没有网络公司,它就运行不了。

互联网成千上万台电脑的一个集合,这些电脑能够相互联系,或者是

通过某种方式相互联系。Internet就像是办公网络一样,不同的是,它有

成千上万台计算机相连接。

关于互联网如何工作?最主要的是沟通。在休斯敦一台电脑如何访问

在在东京的一台电脑上的数据来查看网页呢?

因特网通信,连接到Internet的计算机之间的通信,是基于一种语

言。这种语言被称为TCP/ IP。 TCP / IP协议建立一种语言来让一台电

脑在互联网系统中访问和传输数据。

但是TCP / IP协议是假定在一台计算机和另一台计算机之间有物理

链接。当然也未必都是这样。但也必须存在一根网络线将主机与Internet

连接起来,但做到这样,还是不可能与Internet连接的。

物理连接要求通过MODEM,电话线和其他类似MODEM的连接(如DSL)

来建立。计算机上的MODEM通过已建立的通信线进行收发数据,通信线可

以是电话线或是数据线。事实上计算机之间建立连接的硬核被成为路由器

路由器是一台计算机,这台计算机充当一个信息交互控制器。

为了达到更好的解释效果,让我们来看看一台标准的计算机是如何浏

览网页的。

1.用户计算机拨号进入因特网服务提供商(ISP)。而此ISP可能还要

连接入其他ISP,或是直接进入Internet主干。

2.用户打开网页浏览器如NETSCAPE或是IE。

3.这里是进入互联网的棘手部分。首先,计算机发送请求给一个路由

器。路由器一个速度快功能强的、能运行特殊软件的计算机。世界上所有

路由器的连接便形成了“主链”,在其上因特网上的所有数据被传输。目前

主链以每秒几千兆字节的速度工作。这样的速度分配到一只MODEM上,就

好比太阳光的热量分配到一块冰上的热量一样。

路由器的处理是来回的数据。路由器把数据的小块包装成所谓的数据

包,其功能类似于信封。所以,当对所述网页的请求经过时,它使用TCP /

IP协议来告诉路由器如何处理该数据。

4.路由器发送这些数据包到其他路由器,最终到达目标计算机。就像

传耳语的游戏一样。

5.当信息到达目标web服务器,web服务器然后开始发送该网页。 Web

服务器就是网页被存储在运行,后者用于处理网页的请求和发送网页到谁

想看到它的程序的计算机。

6.当信息到达目标网页的服务器是,服务器就开始将网页信息发送回

去。一台网页服务器,就是网页存储所在的计算机,它能对网页进行编辑,

并将它发送给用户。网页被分成数据报,通过路由器,最终到达用户计算

机,这样,用户就能浏览网页了。数据报中含有相关的数据以及一些必须

的信息让路由器或其他计算机知道如何将数据报按正确的顺序重新组装成

原始的数据段。

伴随数以百万计的网页,以及数以百万计的用户,使用互联网并不总

是容易的,特别是初学者将不容易使用电脑。下面你可以找到窍门技巧,

如何使用互联网的主要服务提供帮助。

在你访问的网页,你必须有一个Web浏览器能查看网页。大部分网络

服务商为您提供的,他们通常给客户的软件Web浏览器。您正在查看网页

时,其实意味着你有一个网页浏览器。目前使用最广泛的浏览器是

Netscape和MSIE。Netscape能自动连接到,MSIE能自动连接。

接下来,您必须熟悉实际使用的网页。一个网页是超链接,图片,文

字,表格,菜单和多媒体的集合。在“浏览”网页时,只需点击其提供的

链接遵循它自己的指令(比如,如果你需要用网页中的一张表,旁边就会

有使用这张表的帮助)做。基本上,所有有关网页制作是自我移植。

“哦,不!一个404错误!”“找不到网页?””是新的网络用户间的

一个共同的一句话。

有时候,网站有错误。但是在网站上的错误,当然不是用户的错误。

404错误意味着你试图去的页面不存在。这可能是因为该网站仍在建

设中,页面还没有被创建,或者是因为网站的制作者在制作网页出错了。

当出现一个404错误,只能通过电子邮件发送站点管理员(你想去的页面)

的告诉他/她有关的错误。

一个JavaScript错误是在一个网站的Javascript代码编程错误导致

的。并非所有网站都使用JavaScript,但用的人却很多。

JavaScript与Java不同,大多数浏览器都支持Javascript。如

果您使用的是旧版本的网络浏览器(Netscape的3.0为例),你可能会得

到Javascript错误,因为网站利用您的浏览器不支持Javascript版本。

所以,你可以尝试让你的网页浏览器升级到新版本。

电子邮件代表电子邮箱。电子邮件使人们能够发送信件,甚至文件和

图片给对方。

要使用电子邮件,您必须拥有一个电子邮件客户端,这就像一个邮递

员,为你收发电子邮件。

其次,你必须有一个电子邮件帐户。大多数互联网服务供应商都会提

供免费电子邮件帐户。有些网站提供的免费邮箱,如Hotmail和Geocities。

配置您的电子邮件客户端,与您的POP3和SMTP服务器地址(您的电

子邮件提供商会给你的信息)后,你就可以接收邮件。

附件是随着信发送的文件。如果有人向您发送的附件,你不知道他是

谁,你就永远不要运行该文件。这可能是一个病毒或其他恶意程序。只通

过阅读电子邮件你不能得到一个病毒,你不得不运行杀毒软件来防止病毒

感染。

签名是许多电子邮件程序的一个特点。签名被添加到每封邮件末尾。

你可以把一个文本图形,您的业务信息,任何你喜欢的东西作为签名。

试想一下,在互联网上的计算机就像海中的岛屿。大海充满了数以百

万计的岛屿。这是因特网。想象一下,一个岛与其他岛屿派遣船到其他岛

屿和接收舰艇进行通信。那么岛屿就有接收和发送船只的港口。

在互联网上的计算机都有一个称为港口的端口。端口只是一个象征性

的对象,它允许计算机通过网络(或互联网)上运行。此方法类似于以上

岛/海的象征。

远程登陆涉及到在一个服务器上直接用文本连接访问端口。

几乎每一种上网功能,如访问网页,“聊天”, 以及发电子邮件都是

依托远程登陆来实现的。

远程登录要求配置远程登录客户端。远程登录程序兼容Windows系统,

因此Windows用户可以通过键入telnet(不加's)来接入远程登录软件

Linux系统则将它创建在命令行里:键入telnet。用于Macintosh的普通

远程登陆程序是NCSA远程登陆软件。

任何服务器软件(web页面监督进程,聊天监督程序)都可以通过远

程登录进行访问,尽管它们通常不以这样的方式进行访问。

例如,它可以直接连接到邮件服务器,并通过与邮件服务器软件接口

检查您的邮件,但使用的电子邮件客户端更容易。

还有数以百万计的网页是来自世界各地,但你如何知道你想要的网页

的地址是是哪一个呢?

搜索引擎能节约时间。搜索引擎是一个非常大的网站,使您可以搜索

它自己的网站数据库。

举例来说,如果你想找到关于狗的网站,你可以搜索“狗”或“狗的

信息。”下面是一些搜索引擎:

1. AltaVista() - Web spider & Indexed

2.雅虎() - Web spider & Indexed Collection

3. Excite () - Web spider & Indexed

4. Lycos公司() - Web spider & Indexed

5. Metasearch () - Multiple search

一个网络蜘蛛是通过使用搜索引擎,它随着可能找到的任何链接从一

个网页到另一个网页。

这意味着,只要它自己的时间和速度允许,搜索引擎可以逐字逐句地

搜寻信息。索引的集合使用手工添加的链接。举例来说,在雅虎的网站,

您可以点击电脑和互联网。然后,再点击“硬件”,然后点击“猫”(调制

解调器)等等。那么通过分类的过程,与你要的类别相关的网站就找到了。

Metasearch同时搜索多个搜索引擎,从约10个搜索引擎发现的最佳

选择,使搜索更有效。一旦你能够使用搜索引擎,你可以有效地找到你想

要的页面。随着网络和多用户系统的到来,安全一直是系统开发和系统运

营商的考虑问题。

从美国电报电话公司和它的电话网组建开始,黑客已为许多人所知。

黑客就是一直寻找途径侵入系统的人。这过去不是一个大问题,因为网络

系统对于那些能够提供必要的电脑安全措施的大型法人公司和政府的电脑

来说是有限的。

现在,最大的问题是个人信息。为什么你要小心地通过网站进行购

买?让我们快速看一下互联网如何工作。用户传送信用卡信息到网页。看

起来安全的,对吗?不一定。用户提交信息时,它就会流过组成互联网主

干网的一系列的电脑。这些信息是小块的包称为数据包。

这里有一个问题:当信息通过这个大的骨干网传送,怎样阻止黑客拦

截在骨干分支上的数据流 ?你接入网站时哥哥不会看着你,但用户在传递

私人信息时应该清楚潜在的威胁。加强安全有很多方法,如密码保护,最

重要的是,加密。加密指将数据搅乱成只能在另一终端才能译出的密码。

浏览器如Netscape Communicator和Internet Explorer为在线传递提供

了特色的加密支持。

有些加密工作比别人做得更好。最先进的加密系统被称为DES(数据

加密标准),并通过了美国国防部,因为它被认为是那么难“破解” 以至

他们认为如果它落入其它国家手中会有安全风险。

DES用单独的信息钥匙来开启一整个文件。问题是,有750000亿可以

使用密钥,所以它是一种很难打破的系统。一个文件被侵入并解码,但它

是14000台计算机联网进入互联网系统的综合的努力过程,并需要花一段

时间来做。所以大多数黑客并没有很多可用资源。

本文标签: 游戏手机游戏程序C语言