c语言程序的设计猜数字游戏报告文档格式.docx
- 文档编号:20306910
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:70
- 大小:211.11KB
c语言程序的设计猜数字游戏报告文档格式.docx
《c语言程序的设计猜数字游戏报告文档格式.docx》由会员分享,可在线阅读,更多相关《c语言程序的设计猜数字游戏报告文档格式.docx(70页珍藏版)》请在冰豆网上搜索。
6.论文撰写(10):
论文撰写的规范性、合理性等等。
小组总成绩:
教师签名
日期
一、猜数字游戏分析。
。
4
1.游戏概述。
2.系统运行环境。
3.功能需求描述。
二、总体设计。
5
1.开发和设计的总体思想。
2.程序模块结构图。
3.模块设计。
4.程序流程描述。
6
5.界面设计。
7
6.数据结构设计。
12
三、详细设计。
13
1.文件及函数组成。
2.函数设计。
14
四.程序代码。
17
1.start.h。
2.start.c。
19
3.mianzone.c。
25
4.gamezone.c。
32
5.refreshline.c。
37
6.reset.c。
40
7.print.c。
8.count_num.c。
48
9.intset–del.c。
49
10.imageline.c。
五.运行结果。
50
六、调试分析。
51
1.情况1。
2.情况2。
3.情况3。
4.情况4。
52
七、总结。
一、猜数字游戏分析
在《猜数字游戏》分析环节中,会对该游戏开发的意图、应用目标、作用范围和有关该软件开发的背景材料进行详细的分析。
《猜数字游戏》作为一个用来进行娱乐、消遣的应用软件,在对其进行需求分析的过程中,需要充分考虑游戏的可用性和娱乐性,联系实际生活,从而得到合理的需求分析的结论。
1.游戏概述
该软件为用户提供一个在Windows系统上运行的猜数字游戏,其使用者只有玩家:
玩家在运行该程序时,可以浏览游戏自最近一次重置数据记录以来,所保存的游戏记录:
分为“排行榜记录”和“成功情况”。
玩家可清空排行榜数据,以重新开始记录游戏成绩。
参加游戏后,游戏将自动刷新游戏记录,重新排行排行榜。
玩家参加游戏前,可浏览帮组功能,了解游戏规则。
2.系统运行环境
(1)硬件环境
◆处理器:
IntelPentium166或更高
◆内存:
32MB以上
◆硬盘空间:
2G以上
◆显卡:
SVGA显示适配器
(2)软件环境
◆操作系统:
Windows98/Me/2000/XP/vista/7
3.功能需求描述
猜数字游戏是用来进行娱乐、消遣活动的应用软件。
可进行游戏功能、浏览游戏记录功能和查看游戏帮助功能。
(1)游戏功能需求如下:
◆进行游戏:
在游戏提示下输入所要猜测的游戏数字,即可完成游戏。
◆重新开始游戏:
在游戏进行中,因不同原因玩家要求输入特定字符串以重新游戏,或放弃游戏且返回主菜单。
◆刷新排行榜:
游戏结束后,若玩家成功猜的答案,玩家要求记录自己的用户名和记录,参与新排行榜的排行。
◆输出答案:
当玩家在规定次数中不能猜出答案,则玩家要求在游戏结束后得知正确答案。
◆计算赢得游戏所用时间:
玩家猜出数字后,要求显示所用时间并记录到排行榜中,以便与其他玩家进行比较和检查自己的提升。
(2)浏览游戏记录功能需求如下:
◆查看排行榜:
游戏结束后,玩家需要查看自己的成绩排位,和了解其他玩家的游戏情况。
在不同情况下,玩家想依据成绩循序、用户名循序、所用时间多少进行输出排行榜。
◆count文件:
玩家需要查看游戏次数与成功次数的记录。
◆清空排行榜:
玩家在一定情况下,要求重新开始记录游戏信息。
◆清空count文件:
(3)帮组功能需求如下:
◆输出游戏规则:
玩家需要了解游戏规则。
◆游戏说明:
玩家要求更了解游戏的各种功能,以更方便操作程序。
二、总体设计
题目要求
(1)按照分析、设计、编码、调试和测试过程完成应用程序;
(2)学习并使用流程图等工具,并在撰写论文中使用;
(3)程序的各项功能在程序运行时,以菜单方式选择并执行;
(4)要求用户输入数据时,要给出清晰、明确的提示,包括:
输入数据的内容、格
式及结束方式等
(5)所有的信息存储在文件中,并实现文件读写操作。
1.开发和设计的总体思想
猜数字游戏是一个简易的娱乐游戏,开发设计的重点在于排行榜的跟新。
每次游戏结束后都要对排行榜进行跟新,不可漏掉任何一次跟新。
解决这个问题的方法是将跟新的过程单独写成一个可以独立完成得函数,在每次游戏结束后都必须调用该函数。
关于排行榜的输出问题,游戏将把成绩排行在前十名的玩家信息输出,当排行在十名后的玩家的成绩与第十名的成绩相同,则把与第十名的玩家的成绩相同的用户信息一同输出。
对于排行榜的容量问题,游戏采用自动增删的方法进行处理。
当排行榜存有的用户信息多于十五名时,排行榜将自动删除第十六条用户信息。
对菜单的选择判断要用到程序设计思想中的选择结构,对大量数据的处理要用到循环和文件处理等基本技术。
系统采用结构化的设计方法进行设计,采用C语言进行开发。
2.程序模块结构图
依据需求分析结果,猜数字游戏的程序可分为3个模块:
游戏区、游戏记录和帮助。
程序模块结构图如图1所示。
图1程序模块功能图
3.模块设计
(1)游戏区模块
该模块为进入游戏,玩家进入后可按照游戏提示完成游戏,和刷新游戏记录、排行榜。
(2)游戏记录模块
游戏记录模块的作用是为了保障系统的安全性和系统使用人员角色的区分。
该模块需要从输入设备获取用户输入的用户名和密码,判断是否为合法身份,其次要判断用户权限,从而决定其能使用的系统功能,其模块功能图如图2所示。
游戏记录
排行榜
显示count文件信息
按排名浏览排行榜
count文件
按姓名浏览排行榜
按用时浏览排行榜
清空排行榜
清空count文件
图2游戏记录模块功能图
(3)帮助模块
该模块主要实现常规的管理功能,如投票人的初始化,即创建投票人文件、投票人信息的增加、删除、修改和查询等。
该模块主要用结构体类型的数组和文件的读写来完成对大量数据的管理操作,其功能图如图3所示。
图3帮助模块功能图
4.程序流程描述
程序的主体处理流程如图8所示。
图4程序流程图
5.界面设计
应遵循简洁美观、方便使用的原则。
(1)主菜单界面设计
充分考虑界面易于操作的系统需求,其他的的功能调用采用类似于菜单的功能选择方式实现。
用printf语句构造简单的文字界面,具体功能选择界面设计效果如图5所示。
图5主菜单界面设计效果图
(2)游戏区界面设计
游戏区界面设计注重界面的简洁性,要求玩家在游戏时可在游戏提示下完成游戏,重新游戏,放弃游戏回到主菜单,游戏后刷新排行榜,浏览排行榜或继续游戏。
具体设计效果如组图6所示。
图6.1
图6.2
图6.3
组图6游戏区界面设计效果图
(3)数据记录菜单界面与其他菜单界面设计
用printf语句构造简单的文字界面,具体菜单选择界面设计效果如图7~图12所示。
图7数据记录菜单界面设计效果图
图8排行榜菜单界面设计效果图
图9重置排行榜菜单界面设计效果图
图10count文件菜单界面设计效果图
图11重置count文件菜单界面设计效果图
图12帮助菜单界面设计效果图
(4)排行榜输出界面、显示count文件界面、游戏规矩和游戏说明的输出界面设计
这些界面设计主要考虑玩家在浏览信息的清晰和易读性。
以防数据输出的排版长度大于窗口的长度,在输出所有数据后使光标回到窗口的最上端,利于玩家从数据的起始端开始浏览数据。
排行榜的输出中,将名次、用时、成绩(次数)和用玩家姓名列表显示。
具体排行榜输出界面设计效果如图13~图15所示。
图13按排名顺序输出排行榜界面设计效果图
图14按姓名次序输出排行榜界面设计效果图
图15按所用时间排序输出排行榜界面设计效果图
count文件的输出界面设计效果如图16所示。
图16count文件的输出界面设计效果图
游戏规则的输出界面设计效果如图17所示。
图17游戏规则界面设计效果图
游戏说明的输出界面设计效果如组图18所示。
图18.1
图18.2
图18.3
组图18游戏说明的输出界面设计效果图
(5)退出游戏界面设计
具体退出游戏界面设计效果如图19所示。
图19退出游戏界面设计效果图
6.数据结构设计
(1)玩家用户数据结构
描述玩家用户的用户名、猜出数字所用次数和游戏所用时间,作为一整条记录存放在文件中。
typedefstructa
{
charname[22];
//玩家用户名
intt;
//猜数字所用次数
intsj;
//游戏所用时间
structa*next;
}player;
(2)“胜利”信息数据结构
记录玩家赢得游戏次数与猜正确平均所需次数,作为一整条记录存放在文件中。
structwinave
intwintime;
//总共赢的次数
floatave;
//才正确平均所用次数
};
三、详细设计
基于系统需求分析与系统总体设计的结果,本系统采用VisaulC++6.0实现各模块的功能,下面阐述系统的详细设计和实现过程。
1.文件及函数组成
源文件
函数名或其他成分
功能
start.h
结构声明
库函数及函数原型声明
start.c
main
主函数
mainmenu
主菜单
menu2
游戏记录菜单
phbmenu
浏览排行榜菜单
qkmenu
清空排行榜菜单
countmenu
浏览count文件菜单
rscountmenu
重置count文件菜单
menu3
帮助菜单
move
“到达”函数
rulemenu
游戏规则
explainmenu
游戏说明
endmenu
结束菜单
mianzone.c
main1
被主函数调用,用以开始进入游戏
liulan
进入浏览排行榜功能
paihangbang
进入排行榜功能
qk
清空排行榜功能
qingkong
进入重置排行榜功能
pn
进入重置排行榜和count文件功能
countwork
进入count文件浏览功能
printcount
输出count文件数据函数
st
进入重置count文件
setcount
进入清空count文件功能
sc
进入重置count文件和排行榜
help
进入帮助功能
gamezone.c
checkcount
检查count的情况,且读取count中数据
closecount
更新count中的数据
creat
生成游戏所需猜的数字
checknum
检查输入的数字是否符合规定
Time_get
计算完成游戏所用时间
gamezone
进行游戏
refreshline.c
refresh
更新排行榜
note
记录或输出记录起始时间
reset.c
resetline
清空或重置排行榜
resetcount
重置或清空count.txt文件
print.c
printline
按成绩输出排行榜
printname
按姓名输出排行榜
printtime
按用时输出排行榜
count_num.c
countnum
计算及输出平均成功率
intset–del.c
inset
插入新纪录链表
del
删除链表中的第十六个记录
imageline.c
pl;
pl0;
2.函数设计
(1)头部文件
文件名称:
功能:
声明函数原型,宏定义包含头文件及定义数据结构。
要求:
完成所需函数的原型声明。
(2)进入游戏函数
函数原型:
main()
调用mian1函数
参数:
void
返回值:
开始程序,使游戏顺利开始。
(3)进入游戏函数
voidmain1()
进入游戏主菜单
如果游戏者没有进行等级设定,则默认初级进行游戏。
(4)菜单函数
voidmainmenu()
voidmenu2()
voidphbmenu()
voidqkmenu()
voidcountmenu()
voidrscountmenu()
voidmenu3()
帮助菜单函数
输出菜单选项
明确显示菜单选项,使玩家准确进入相应的游戏功能。
(5)“到达”函数
voidmove(inti,intj)
使光标回到窗口的特定位置。
inti和intj:
特定位置的坐标
实现程序所需功能。
(6)游戏规则和游戏说明函数
voidrulemenu()
游戏规则函数
voidexplainmenu()
游戏说明函数
输出游戏规则和游戏说明
使玩家清楚游戏的玩法,是玩家可以了解本程序的功能。
(7)结束函数
voidendmenu()
输出结束界面
感谢玩家使用本软件。
(8)检查count函数
voidcheckcount(charcount[])
charcount[]:
需要读取的数组
检查count的情况,若存在,则读取其中的数据;
若不存在,则重置count文件。
(9)更新count函数
voidclosecount(charcount[])
将count[]数组中的数据存储到
需要存储到文件的数组
更新count数据。
(10)生成随机数函数
voidcreat(charkey[])
charkey[]:
存储答案的数组
生成4个不重复的数字。
(11)检查输入函数
voidchecknum(charguess[])
charguess[]:
需检查的玩家猜测的数组
检查输入的数字是否符合规定,不合规定的要求玩家重新输入;
若和规则的,检查与答案的不同,输出提示。
(12)算时函数
intTime_getchecknum(time_tfirst,time_tsecond)
time_tfirst,time_tsecond:
游戏开始的时间与游戏结束的时间
inta:
second与first相差的秒数
计算second与first相差的秒数并返回。
(13)游戏函数
voidgamezone()
void;
顺利进行游戏。
(14)更新排行榜函数
voidrefresh(charname[],intt,intsj)
charname[],intt,intsj:
需要插入的玩家信息(玩家姓名,所用次数,所用时间)
若排行榜不存在,则新建排行榜;
若存在,则将新加入的信息插入到排行榜中。
(15)记录函数
voidnote(inti)
inti:
所需进行的功能
i=1
(2)时,输出排行榜(count文件)记录起始时间;
i=3(4)时,记录排行榜(count文件)重置时间。
(16)重置排行榜函数
FILE*resetline(FINE*fp)
FILE*fp:
重置文件的指针
FILE*fp;
用“r”打开的处理后的排行榜文件
若排行榜不存在,新建排行榜;
若存在,则清空排行榜。
(17)重置count文件函数
voidresetcount(void)
void
若count文件不存在,新建count文件;
若存在,则清空count文件。
(18)按成绩输出排行榜函数
voidprintline(void)
按成绩先后输出排行榜
若存在,则按成绩先后输出排行榜。
(19)按姓名输出排行榜函数
按姓名顺序输出排行榜
若存在,则按姓名顺序输出排行榜。
(20)按用时输出排行榜函数
按用时多少输出排行榜
若存在,则按用时多少输出排行榜。
(21)计算及输出平均成功率函数
voidcountnum(void)
若count文件不存在,新建count;
若存在,则计算及输出平均成功率。
(22)插入链表函数
player*inset(player*head,player*stud)
player*head,player*stud:
需要被插入的链表的头指针和需要插入表
player*head:
处理后的链表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 设计 数字 游戏 报告