软件工程课程设计(游戏软件).doc

上传人:文库蛋蛋多 文档编号:2885122 上传时间:2023-03-01 格式:DOC 页数:17 大小:130.50KB
返回 下载 相关 举报
软件工程课程设计(游戏软件).doc_第1页
第1页 / 共17页
软件工程课程设计(游戏软件).doc_第2页
第2页 / 共17页
软件工程课程设计(游戏软件).doc_第3页
第3页 / 共17页
软件工程课程设计(游戏软件).doc_第4页
第4页 / 共17页
软件工程课程设计(游戏软件).doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《软件工程课程设计(游戏软件).doc》由会员分享,可在线阅读,更多相关《软件工程课程设计(游戏软件).doc(17页珍藏版)》请在三一办公上搜索。

1、关于一个猜数字游戏软件的系统开发作者姓名: 专业班级: 指导教师:摘 要该系统是做了一个小游戏软件,猜数字游戏,这是一个运行在Windows平台下的小型游戏软件,依据猜数字游戏的基本规则,给用户提供一个游戏的平台。并且,该游戏提供了用户计分的功能,并能对每个参与游戏的用户进行成绩排行,在排行榜中排出前五名玩家的游戏记录,并可以随着玩家的游戏记录进行更新。关键词:猜数字游戏,计分,成绩排行,记录更新。英文题目Abstract: The system is to do a small game software,guessing number game, this is a Windows pla

2、tform running on the small game software, according to the basic rules of the game to provide users with a platform game. In addition, the game provides the user the function of points and for each of the users involved in the game performance ranks in the list of the top five players from the game

3、record, and can be recorded with the players game to be updated.Key words: guessing number game,record score,ranking results,update record.目 录第一章 前言.31.1 猜数字游戏软件的概述.31.2 系统主要功能简介.3第二章 软件开发环境.32.1 开发工具说明.32.2 系统运行环境说明.3第三章 方案论证.43.1 可行性分析.43.2 需求分析.43.2.1 用户需求.43.2.2 功能需求.4第四章 总体设计.54.1 开发与设计的总体思想.54

4、.2 系统模块结构图.54.3 模块设计.54.3.1 游戏区模块.54.3.2 排行榜模块.54.3.3 产生新纪录模块.64.3.4 读取最好记录模块.64.3.5 帮助模块.64.4 系统流程描述.64.5 界面设计.74.5.1 功能选择界面设计.74.5.2 游戏主体界面设计.74.5.3 排行榜界面设计.84.5.4 帮助界面设计.84.6 数据结构设计.9第五章 详细设计.95.1 游戏区模块.95.1.1 模块描述.95.1.2 源文件定义.95.1.3 函数声明.105.2 排行榜模块.125.2.1 模块描述.125.2.2 源文件定义.125.2.3 函数声明.125.3

5、 产生新纪录模块.145.3.1 模块描述.145.3.2 源文件定义.145.3.3 函数声明.145.4 读取游戏记录模块.155.4.1 模块描述.155.4.2 源文件定义.155.4.3 函数声明.155.5 帮助模块.155.5.1 模块描述.165.5.2 源文件定义.165.5.3 函数声明.16第一章 前言1.1猜数字游戏软件的概述该软件是一个运行在Windows平台下的小型游戏软件,依据游戏规则,在Windows平台上为为玩家提供猜数字游戏的基本功能,游戏用户可以选择开始游戏,排行榜查看,帮助等主要功能。1.2系统主要功能简介当用户选择开始游戏时,系统会提示用户排行榜上猜数

6、字成绩的最好记录,并让用户逐次猜数字,用户每次猜数字后系统会给出本次猜数字的结果提示,如位置和数字都正确的数字个数,数字正确但位置不正确的数字个数。如果用户猜数字的次数超过10次,则提示用户游戏失败,如果在10次之内猜出了4个数字和正确的顺序,则提示用户猜数字成功,并到排行榜中进行比较,如果排名在前五名,则计入排行榜中,以便其他用户查看。在排行榜查看功能中,用户可以查看当前的游戏排行,排行榜中总共显示前五名玩家的排行,如有新的记录产生,则插入到排行榜中,并把排行榜中位次最末的记录挤出排行榜。在帮助模块,用户可以查看游戏规则,当熟悉规则后可以退出帮助模块。第二章 软件开发环境2.1开发工具说明W

7、INTC是一个TC2 WINDOWS平台开发工具,该软件使用TC2为内核,提供WINDOWS平台的开发界面,支持WINDOWS平台下的功能,如剪切、复制、粘贴和查找替换等。而且在功能上也有它的独特特色例如语法加亮、C内嵌汇编、自定义扩展库的支持等。并在编程过程中提供一组相关辅助工具。该软件的主要优点有:1. 由于WINTC是WINDOWS程序,所以在其中进行鼠标操作,程序段的复制,中文输入输出等功能变得非常方便。2. 支持字体大小的调整和C 程序中各种关键字符的变色显示。3. WINTC消除了初学者设置工作目录的烦恼,自动设置好工作目录,程序编写好之后就可以直接编译运行。4. 中文界面,提示出

8、错信息也是中文的,支持在运行结果中显示中文,这样在程序中就可以输出中文的提示语句了。2.2系统运行环境说明1.硬件环境 处理器:Inter Pentium 166 MX或更高 内存:32MB以上 硬盘空间:1GB以上 显卡:SVGA显示适配器2.软件环境 操作系统:Windows 98/ME/2000/XP第三章 方案论证3.1可行性分析技术可行性:硬件、软件、运行环境和开发环境方面的条件和限制。硬件环境:主要包括处理器、内存、硬盘空间、显卡。软件环境:操作系统 Windows 98/ME/2000/XP开发环境:WINTC3.2需求分析3.2.1用户需求猜数字游戏软件的总体目标是按照特定游戏

9、规则为用户提供一个方便友好的游戏界面,同时给用户提供排行榜的功能使用户能够按照特定的目标提高自己的成绩,并且提供相应的帮助功能。当用户运行该软件时,即可根据界面提示,进入到用户想进入的区域。游戏规则如下:1. 游戏软件随机产生4个数字,但不显示,给用户提供输入提示符,让用户猜4个数字的值和位置顺序。如果数字值和位置顺序均正确,则猜数字成功。2. 玩家有10次猜数字的机会,如果在10次之内仍未猜出正确的数字值和数字位置顺序,则提示用户游戏失败。3. 一旦玩家在10次的次数限制内猜出正确的数字值和位置顺序,则赢得游戏。4. 当玩家赢得游戏后,会与排行榜中前五名玩家的游戏记录比较,如排名能够进入前五

10、名,则更新排行榜,使当前玩家成为入榜选手。5. 计分规则:猜数字所使用次数即为分数,所以分数越少证明玩家水平越高,排行榜中也是排列分数最少的前五名选手。3.2.2功能需求本游戏软件需要实现以下基本功能:1 游戏区:玩家可以在游戏区逐次猜数字,系统给出玩家每次猜数字后的提示,包括数值、位置均正确的数字个数和数值正确,但位置不正确的数字个数。2 刷新排行榜:当玩家成功完成一轮猜数字游戏后,可以通过和排行榜中相应记录的比较判断玩家是否可以进入排行榜,进入排行榜的资格是游戏成绩在前五名的玩家。3 查看排行榜:玩家可以查看当前排行榜中的排名顺序,从而确定自己的游戏目标。排行榜的查看按一定顺序显示给用户,

11、便于查看。4 清除排行榜:玩家可以选择清除排行榜功能,使得排行榜上的玩家姓名和玩家游戏记录从系统中清除,只留下系统默认的玩家名(player)和系统默认记录10次。第四章 总体设计4.1开发与设计的总体思想猜数字游戏是一种大众娱乐游戏,开发与设计的重点在于游戏供玩家进行猜数字游戏的原始数字的产生和用户每次进行猜数字操作之后的游戏提示,这两方面的规则设计往往决定了软件运行的正确性和质量。系统采用结构化的设计方法进行设计,采用C语言进行开发。4.2系统模块结构图 4.3模块设计4.3.1游戏区模块该模块为玩家提供数字游戏的主体功能,由系统自动产生4个随机排列的整数,并给用户10次机会猜测数字的数值

12、和排列顺序。如果用户在10次之内没有猜出正确的结果,则提示用户游戏失败,否则提示用户猜数字的成功,并调用产生新纪录模块对玩家游戏成绩进行处理。该模块有如下三个子功能。1. 产生原始数字:由系统产生四个随机数,并按任意顺序排列,作为游戏的原始数字供玩家进行猜数字游戏。2. 游戏提示:用如1A2B的形式提示玩家当前猜数字的匹配情况,例如,1A表示玩家猜测的数字中有2个与系统产生的原始数字相符,并且位置也完全符合,2B表示玩家猜测的数字中有2个与系统产生的原始数字相符,但位置不符。用这种方式提示用户对自己的猜测进行调整。3. 原始数字显示:当用户在10次之内仍未能猜出正确的原是数字和顺序时,系统提示

13、玩家失败,并给玩家显示出原始数字和顺序。模块功能树如图: 4.3.2排行榜模块该模块为玩家提供排行榜的浏览功能和清除功能,包括按玩家成绩顺序浏览、按玩家姓名浏览和清除排行榜3个子功能。1. 按玩家成绩顺序浏览子功能中,将玩家的姓名、游戏成绩按猜数字次数从少到多的顺序列表显示,即将玩家记录从高到低显示。2. 按玩家姓名浏览的子功能中,为了玩家便于查找到自己的游戏成绩,将玩家的姓名和猜数字次数记录按照玩家姓名的字母表顺序列表显示。3. 清除排行榜:当用户选择清除排行榜功能时,系统会将所有玩家的历史游戏记录和默认玩家姓名player和系统默认记录10次。排行榜模块功能树如图: 4.3.3产生新纪录模

14、块该模块的功能是当玩家成功完成游戏时,判断用户可否进入排行榜,如果可以进入,则刷新排行榜记录,将当前玩家的游戏记录写入排行榜,并将排行榜目前结果显示给用户。产生新纪录模块功能树如图: 4.3.4读取最好记录模块读取最好记录模块的主要功能是当用户选择游戏开始选项时,首先提示用户目前排行榜中的最好游戏记录,如果目前没有排行的玩家游戏,则初始化排行榜,给出系统默认的玩家姓名和默认的游戏记录。如果目前排行榜中有玩家记录,则判断出最好记录显示给用户。读取游戏记录模块功能树如图: 4.3.5帮助模块帮助模块提供的功能是玩家选项为帮助功能对应的选项数字时,进入帮助模块,给出用户猜数字的游戏规则和游戏中相关提

15、示的含义。4.4系统流程描述系统的主体处理流程如图所示: 4.5界面设计界面设计应遵循简洁美观、方便易用的基本原则。4.5.1功能选择界面设计充分考虑界面易于操作的系统需求,游戏控制和排行榜等功能需求采用类似于菜单的功能选择方式实现。具体功能选择界面设计效果图如图所示。 4.5.2游戏主体界面设计在游戏主体部分要提示用户排行榜中的最高纪录,并需要逐次提示用户猜数字的结果和猜数字的次数,主要保证提示准确性和易读性。具体设计效果如图所示。 4.5.3排行榜界面设计排行榜的界面设计主要考虑到浏览排行榜时的清晰和可读性,按成绩浏览和按玩家姓名浏览时都列表显示,注重清晰易读,具体设计效果如图所示。 4.

16、5.4帮助界面设计帮助界面需要使玩家清晰了解游戏规则和系统使用方法,具体设计效果如图所示。4.6数据结构设计猜数字游戏软件涉及到对玩家信息和排行榜的操作。为将玩家的姓名和游戏成绩描述成一个玩家的两个重要方面。使用C语言中的结构体来描述。具体的数据结构设计如下。/*player结构体,存放玩家姓名和游戏成绩*/Typedef struct Char name20; /*Field of name*/ Int score; /*Filed of score*/player; 第五章 详细设计基于系统需求分析和系统总体设计的结论,本系统采用WINTC实现各模块的功能,下面按照模块的划分来分别阐述系统

17、的详细设计和实现过程。5.1游戏区模块5.1.1模块描述游戏区模块是猜数字游戏软件的核心部分。用户进入游戏区模块后,系统会调用读取最好记录模块的功能,向用户显示目前排行榜中的榜首玩家姓名和成绩。之后,系统产生4个按任意顺序排列的随机数,并提供玩家10次机会,提示玩家进行猜数字过程,并在玩家每一次猜数字后都会给玩家当前猜测结果的提示。提示用A表示位置和数值均正确,B表示数值正确但位置错误。当玩家猜测次数超过10次,则提示玩家失败,如在10次之内猜出正确结果,则祝贺玩家并调用产生记录模块能否进入排行榜。5.1.2源文件定义Pmain.c 系统功能选择界面。start.c 游戏区功能,开始游戏和进行

18、游戏过程。Score.h 玩家姓名和游戏成绩结构体定义。5.1.3函数声明1void main( )函数功能:软件执行的入口,在函数所在的程序头部包含了部分系统必需的头文件和完成其他功能的源文件。在该函数中还提供了系统功能选择的平台,提示用户系统可用的功能有哪些和这些功能的选项代码。并给用户提供了输入功能选项代码的接口,当用户输入选项代码后,即显示给用户相应的功能处理界面或结果。输入:用户想要使用的系统功能的选项代码。处理:1) 接受玩家输入的选项代码。2) 引导玩家进入相应的功能界面。输出:1) 系统功能选择平台。2) 相应的功能界面。程序清单:(具体代码省略)Pmain.c/*Pmain.

19、c:系统功能选择界面*/#include#include/*玩家结构体类型头文件*/#includescore.h/*开始和进行游戏过程*/#includestart.c/*按游戏成绩排序浏览排行榜*/#includesort.c/*帮助*/#includehelp.c/*按玩家姓名排序浏览排行榜*/#includesname.c/*清除排行榜*/#includeclear.cvoid main() . . . .程序清单:Score.h#includestdio.h#include#include#include#define SIZE 5typedef struct char name20

20、;/*Field of name*/ int score; /*Filed of score*/player;2StartProgram( )函数功能:开始猜数字游戏和进行游戏过程,调用读取最好记录模块,提示用逐次猜数字,每次都给出游戏暗示。在10次之类未猜出者提示失败,如果成功,则调用产生新纪录模块,看玩家能否进入排行榜。输入:循环输入用户每次所猜数字。处理:1) 调用读取最好记录模块,提示用户榜首玩家和成绩。2) 产生4个按任意顺序排列的随机数。3) 循环获取用户输入的猜测数字并逐次给出提示。4) 判断玩家是否猜测成功。5) 失败,则提示用户。6) 成功,调用产生新记录模块。输出:1) 排

21、行榜中榜首玩家和成绩。2) 游戏提示,以A表示数值位置均正确,B表示数值正确位置不正确。3) 游戏失败的提示。4) 游戏成功的提示。程序清单:start.c(与getnumber( )函数在同一程序清单中,与getnumber( )函数的程序清单一同列出)。3. getnumber( )函数功能:由系统产生4个按任意顺序排列的随机整数。输入:无。处理:1) 调用随机数初始化函数。2) 用rand函数产生随机数。3) 将产生的随机数取整并处理为一位数的整数。4) 将产生的随机数存入变量中供猜数字游戏进行判断比较。输出:无。程序清单:start.c(getnumber( )和startprogra

22、m( )函数包含在此程序清单中)。#include#include#include#includereadrec.c#includereset.cint a5,b5,n1,n2,n3,i,j;/*n1计算位置数字相同的数字个数*/*n2计算数字相同但位置不相同的数字个数*/*n3计算所猜数字*/char ch;startProgram() . . . .getnumber()/*随机产生4个数的函数*/ randomize();/*产生随机数的初始化函数*/ for(i=1;i=1;j-) if(ai=aj)goto loop2; 5.2排行榜模块5.2.1模块描述排行榜模块主要供用户对排行榜

23、的浏览和清除。玩家可按照游戏分数和玩家姓名两种方式浏览排行榜,排序结果列表显示到屏幕上。用选择法对排行榜文件中的玩家游戏记录进行排序。当对排行榜中的玩家姓名进行排序并列表显示时,要用到C语言提供的strcmp()函数进行字符串大小的比较,从而将玩家姓名按字母表顺序排列。Strcmp()函数在C语言的string.h头文件中定义。清除排行榜功能使系统中的排行榜记录完全清除,只留下系统默认的用户名player和默认的游戏成绩10次。该功能的实现是通过文件的fwrite()函数实现的。用重新覆盖的方式将系统默认用户名player和游戏成绩10次写入排行榜文件(文件名为record),将原来的5个排行

24、榜记录覆盖掉即可完成清除排行榜的功能。5.2.2源文件定义sname.c 按玩家姓名字母表序列浏览排行榜。Sort.c 按玩家游戏成绩浏览排行榜。Clear.c 清除排行榜。5.2.3函数声明1. void SortByName( )函数功能:按玩家姓名字母表序浏览排行榜信息。列表显示至频幕。输入:在系统功能选择界面中输入该功能的功能选项代码。处理:1) 读取排行榜文件。2) 将文件中排行记录存入数组。3) 将数组中数据用选择法排序。4) 将排序后数据重新写入排行榜。5) 将排序好的文件列表输出到屏幕。输出:按成绩排序好的排行榜列表。程序清单:(具体代码省略)sname.c/*sscore.c

25、:按游戏成绩排序*/#include”stdio.h”void SortByName() . . . .2. voidSortByScore( )函数功能:按玩家成绩顺序浏览排行榜信息,列表显示至屏幕。输入:在系统功能选择界面中输入该功能的功能选项代码。处理:1) 读取排行榜文件。2) 将文件中排行记录存入数组。3) 将数组中数据用选择法排序。4) 将排序后数据重新写入排行榜。5) 将排序好的文件列表输出到屏幕。输出:按成绩排序好的排行表列表。程序清单:与程序清单sname.c结构类似(具体代码省略)3. void ClearSort( )函数功能:清除排行榜信息。输入:在系统功能选择界面中输

26、入该功能的功能选项代码。处理:1) 打开排行榜文件。2) 将系统默认玩家player和成绩10次写入文件,即完成清除功能,只留下默认记录。3) 关闭排行榜文件。输出:排行榜清除成功的提示。程序清单:(具体代码省略)Clear.c/*清除排行榜*/ClearSort(). 5.3产生新纪录模块 5.3.1模块描述当用户成功猜出数字的数值和顺序后,系统调用产生新纪录模块,判断该玩家的成绩是否能进入排行榜。首先判断排行榜中是否已有5名玩家,如果排行榜未满,则当前玩家直接上榜,如排行榜已满,则将排行榜中的最后一名挤出排行榜。5.3.1源文件定义reset.c5.3.2函数声明ResetRecord(i

27、nt n)函数功能:接收从start()函数传递过来的函数n,该参数代表用户猜数字所用的次数。提示玩家输入姓名,并判断排行榜是否已满。如未满,则直接用追加的方法将该玩家的成绩写入排行榜。;如已有5个玩家,则判断出成绩最差的玩家;如当前玩家成绩好于最差成绩,则将其替换为当前玩家的姓名和游戏成绩,从而使当前玩家入榜,并使最差玩家落榜。最后输出排行榜的当前情况。输入:1) start()函数传递的猜数字所用次数参数n。2) 玩家输入的姓名。处理:1) 获取玩家输入的姓名。2) 从排行榜文件中读取记录。3) 判断记录是否等于5,即判断排行榜是否已满。4) 如排行榜未满,则追加使玩家入榜。5) 如排行榜

28、已满,判断当前成绩是否好于最差成绩。6) 如好于最差成绩,则替换,使玩家入榜,最差玩家落榜。输出:排行榜的当前情况。程序清单:(具体代码省略)reset.c/*产生新纪录*/#includestdio.hResetRecord(int n)int i,j;int recnum=0;int maxscore=0; player r5; FILE *fp; . . . .5.4读取游戏记录模块5.4.1模块描述当用户开始游戏之前,提示用户当前在排行榜中的最好记录。5.4.2源文件定义readrec.c5.4.3函数声明1. ReadRecord( )函数功能:读取排行榜中的最好记录,显示给正要开始

29、游戏的玩家。如果该软件是第一次使用,还没有排行榜,则调用SetRecord()函数创建排行榜并设置初始的玩家player和初始的游戏记录10次。输入:无。处理:1) 打开排行榜文件。2) 如排行榜文件不存在,说明是第一次使用,则调用SetRecord( )函数初始化排行榜。3) 找出排行榜中最好记录。输出:排行榜中最好记录和玩家姓名。程序清单:(具体代码省略)readrec.c(SetRecord()函数也在此函数中)#include”stdio.h”ReadRecord()FILE *fp;player TmpS;player Min;Min.score=11;.,. 2. SetRecor

30、d( )函数功能:当该软件第一次使用,还没有排行榜时,该函数用来初始化排行榜,在排行榜中设置初始的玩家player和初始记录10次。输入:无。处理:1) 创建排行榜文件。2) 写入系统初始玩家player和成绩10次。、输出:无。程序清单:(具体代码省略)readrec.c(见ReadRecord()函数中所列出的程序清单)5.5帮助模块5.5.1模块描述显示系统帮助信息,包括游戏规则和游戏提示的含义。5.5.2源文件定义help.c5.5.3函数声明1. PrintHelp( )函数功能:打印显示系统帮助。输入:无。处理:显示帮助。输出:系统帮助信息,包括游戏规则和游戏提示的含义。程序清单:

31、(具体代码省略)help.c/*PrintHelp()函数,显示帮助信息*/PrintHelp() printf(“n”)/*另起一行打印帮助*/ . . . .结 论一个完整的猜数字游戏系统就创建实现了。本系统实现了猜数字游戏的典型功能,包括:系统产生4个不重复的随机数字、提供玩家10次猜测机会、提供给玩家每次猜数字后的正确数字和位置信息,让玩家根据这些信息继续下一次猜测等。在开发过程中,模拟了实际情况进行详细的系统需求分析;在系统的总体设计部分,介绍了系统开发与设计的总体思想。系统开发和设计的总体思想是系统开发的主线;在总体设计部分,给出了系统模块结构图,并对各个模块的设计过程进行了阐述。

32、并且根据软件工程的基本流程,对系统的流程进行了描述,并进行了界面设计和数据结构设计。整个系统设计部分为系统的实现构建了骨架,并在详细设计中由各个功能模块实现各个细节部分。在对本系统的实现过程中,将各个主要功能分别由不同的C语言源程序来实现,从而完成了在开发时对系统功能模块的划分。另外,对于一些典型的功能,则封装到C语言的函数中加以实现,从而有效地减少了代码的冗余,提高程序的执行效率。本系统在实现猜数字游戏的基本功能的同时,还提供了排行榜功能和帮助功能。但帮助功能的实现较为简单,不能进行帮助主题的索引等更为多样的操作。而且,排行榜功能能保存前五名玩家的游戏记录,但不能查询所有玩家的信息,这也是该软件的一些局限性。参考文献1谭浩强,张基温,唐永炎.C语言程序设计教程.北京:高等教育出版社,19922李瑞,戚海英,徐克圣,刘月凡 编著.C程序设计基础.北京:清华大学出版社,20083Waite.S.Prata 范植华,樊莹译.新编C语言大全.北京:清华大学出版社,19944张海藩.软件工程导论(第四版).北京:清华大学出版社,2003-85陈宏刚,熊明华,林斌,张高,张益肇,张亚勤.软件过程开发与案例.北京:清华大学出版社,2003-9

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号