课程设计报告样板Word文档格式.docx
- 文档编号:19506707
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:17
- 大小:312.35KB
课程设计报告样板Word文档格式.docx
《课程设计报告样板Word文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计报告样板Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
C语言程序设计及相应的开发环境。
2游戏设计目的
本课题要求利用TurboC编写与它功能相仿的扫雷游戏,寓学于乐。
程序的功能要求随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。
单击屏幕上的笑脸可以重新开始游戏。
所有地雷标出后胜利,当鼠标左键单击到地雷时失败。
3功能模块设计
1系统模块图
本程序包括3个子模块,分别是主界面显示模块、格子翻动模块、游戏胜负判断模块。
如图所示。
各个功能模块的功能描述如下:
1)主界面显示模块。
该模块主要是实现初始化时界面的设计结构。
基本的图形及鼠标。
2)格子翻动模块。
该模块主要计算格子周围的雷数,实现格子显示功能。
3)游戏胜负判断模块。
该模块主要是对玩家进行胜负的判断。
包括胜负功能后有特殊效果出现。
2任务执行流程图
1统计每个格子周围雷数,主要包括特殊格子周围雷数的统计和普通格子周围雷数的统计。
特殊格子有左上角、右上角、左下角、右下角、左边第一列、右边第一列、第一行、最后一行格子统计。
2显示无雷区空白部分的流程图,若该格子已经标记为红旗或格子已经处理过了,则返回。
否则,继续判断。
若格子周围没有雷,且该格子不处于是雷状态,显示(画)空格,否则,输出雷数。
4数据结构设计
1设置全局变量
定义一维数组charrandmineNUM[3],用来显示数字的字符串。
intgameAGAIN=0是表示是否重来的变量。
intgamePLAY=0是否是第一次玩游戏的标志。
intmineNUM统计处理过的格子数。
2定义结构体
struct
{
intnum;
introundnum;
intflag;
}Mine[10][10];
定义结构体变量使用了结构体数组。
Mine[10][10]。
num表示格子当前处于什么状态,num=1表示格子周围有雷,num=0表示已经显示过数字或者空白格子。
用roundnum统计格子周围有多少雷。
flag是右键按下显示红旗的标志,flag=0没有红旗标志,flag=1有红旗标志.
5函数功能描述
1line()
原型:
line(intx1,inty1,intx2,inty2)
功能:
在两点之间画一条线
2circle()
原型:
通过给定的圆心和半径画圆
功能:
circle(intx,inty,intr)
3getpixel()
该函数检索指定坐标点的像素的RGB颜色值。
;
COLORREFGetPixel(HDChdc,intnXPos,intnYPos)
4registerbgidriver()
功能:
登录已连接进来的图形驱动程序代码
原型:
intregisterbgidriver(void(*driver)(void))
5closegraph()
功能:
关闭图形系统
用法:
voidfarclosegraph(void)
6 kbhit()(VC++6.0下为_kbhit())
功能及返回值:
检查当前是否有键盘输入,若有则返回一个非0值,否则返回0
原型:
intkbhit(void)
包含头文件:
include<
conio.h>
7setcolor()
设置当前画笔颜色
voidsetcolor(intcolor)
8cleardevice()
清除图形画面
voidcleardevice(void)
9setfillstyle()
设置填充模式的式样和颜色
voidsetfillstyle(intpattern,intcolor)
10bar()
画填充矩形
voidbar(intleft,inttop,intright,intbottom)
11fillellipse()
画出以(x,y)为中心点,xradius为横轴半径,yradius为纵轴半径的填充椭圆。
voidfillellipse(intx,inty,intxradius,intyradius)
12putpixel()
在指定位置上画一个像素
voidputpixel(intx,inty,intcolor)
13settextstyle()
设置当前文本属性
voidsettextstyle(intfont,intdirection,intcharsize)14
14outtextxy()
图形模式下在指定位置输出一个字符串
voidouttextxy(intx,inty,charfar*string)
15randomaize()
随机数初始化生成器
原型:
voidrandomaize()
16getch()
从控制台读取一个字符,并且不在屏幕上显示出来。
intgetch(void)
头文件:
conio.h
17delay()
以毫秒为单位中断执行一段时间
voiddelay(time)
dos.
函数调用图
下面分别是显示空格函数ShowWhite()和烟花设计函数Drawfierwork()的函数调用情况。
6功能模块的设计与实现
6.1主函数
主要定义常用到的常量,全局变量,有关的函数原形说明。
然后随机布雷,统计好每个格子周围的雷数,画扫雷游戏界面,游戏接受鼠标操作,按任意键结束游戏,关闭图形系统,程序结束。
voidmain(void)
Init();
;
MouseMath();
Control();
Close();
}
6.2主界面显示设置(部分)
voidDrawfirework()
{inta[8],b[8],x,y,i,j,c;
randomize();
for(;
!
kbhit();
)
{y=rand()%100+300;
x=rand()%500+80;
a[0]=x;
b[0]=y-10;
a[1]=a[0]+5;
a[2]=a[1]+5;
a[3]=a[1];
a[4]=a[0];
a[5]=a[0]-5;
a[6]=a[5]-5;
a[7]=a[6]+5;
for(j=1;
j<
5;
j++)
b[j]=b[j-1]+5;
for(j=5;
8;
b[j]=b[j-1]-5;
for(j=0;
6;
{
for(i=0;
i<
i++)
c=rand()%13;
setcolor(c);
circle(a[i],b[i],1);
delay(100);
}
delay(1000);
b[0]-=10;
a[1]+=5;
b[1]-=5;
a[2]+=10;
a[3]+=5;
b[3]+=5;
b[4]+=10;
a[5]-=5;
b[5]+=5;
a[6]-=10;
a[7]-=5;
b[7]-=5;
getch();
6.3格子翻动模块
intMineStatistics(inti,intj)
intnNUM=0;
if(i==0&
&
j==0)
if(Mine[0][1].num==1)
nNUM++;
if(Mine[1][0].num==1)
if(Mine[1][1].num==1)
else
j==9)
if(Mine[0][8].num==1)
if(Mine[1][9].num==1)
if(Mine[1][8].num==1)
if(i==9&
if(Mine[8][0].num==1)
if(Mine[9][1].num==1)
if(Mine[8][1].num==1)
if(Mine[9][8].num==1)
if(Mine[8][9].num==1)
if(Mine[8][8].num==1)
elseif(j==0)
if(Mine[i][j+1].num==1)
if(Mine[i+1][j].num==1)
if(Mine[i-1][j].num==1)
if(Mine[i-1][j+1].num==1)
if(Mine[i+1][j+1].num==1)
elseif(j==9)
if(Mine[i][j-1].num==1)
if(Mine[i-1][j-1].num==1)
if(Mine[i+1][j-1].num==1)
elseif(i==0)
elseif(i==9)
return(nNUM);
intShowWhite(inti,intj)
if(Mine[i][j].flag==1||Mine[i][j].num==0)
return;
mineNUM--;
if(Mine[i][j].roundnum==0&
Mine[i][j].num!
=1)
DrawEmpty(i,j,1,7);
Mine[i][j].num=0;
if(Mine[i][j].roundnum!
=0)
DrawEmpty(i,j,0,15);
sprintf(randmineNUM,"
%d"
Mine[i][j].roundnum);
setcolor(13);
MouseOff();
outtextxy(225+j*20,65+i*20,randmineNUM);
MouseGetXY();
MouseOn(MouseX,MouseY);
return;
if(i!
=0&
Mine[i-1][j].num!
ShowWhite(i-1,j);
j!
=9&
Mine[i-1][j+1].num!
ShowWhite(i-1,j+1);
if(j!
Mine[i][j+1].num!
ShowWhite(i,j+1);
i!
Mine[i+1][j+1].num!
ShowWhite(i+1,j+1);
Mine[i+1][j].num!
ShowWhite(i+1,j);
Mine[i+1][j-1].num!
ShowWhite(i+1,j-1);
Mine[i][j-1].num!
ShowWhite(i,j-1);
Mine[i-1][j-1].num!
ShowWhite(i-1,j-1);
7程序运行结果
7.1初始界面
7.2游戏过程
7.3游戏失败界面
7.4游戏成功界面
8结论
经过四个多月的调查、学习、研究和设计,系统的制作接近了尾声。
在这里我将系统设计做如下总结。
1)本系统为基于PHP的房屋租赁管理系统,系统的功能已经达到设计的要求,系统中各个模块的功能均已实现,为整体系统的构建奠定了基础。
2)系统模块的功能可以被进一步扩展。
例如,系统中还可以增加房屋、二手房出售等功能。
系统的页面可以设计的更加精美。
3)系统中模块划分明确,模块功能设计有较强的针对性。
4)系统的设计遵循软件开发的全过程,使我对软件系统的开发过程有了更深刻的认识。
5)设计体现出了所使用的编程技术的优点,设计中结合了JavaScript。
6)在系统的设计中能够灵活运用PHP的对象技术,并且使用有效的MySQL语言操作后台数据库。
软件的设计没有完美无缺的,这个系统在某些地方可能存在不足,还需要我们进一步的改进和完善。
在这段时间里,我受益匪浅,不仅将所学的知识运用到实践,而且更进一步学习了软件开发技术,增强了PHP开发技术的语法基础,能够将其比较灵活地运用到开发中去。
将这个作品投入使用是我们的期望,系统功能会在实践中不断的摸索,达到最佳的使用效果。
参考文献
1姜灵芝,余健编著的《C语言课程设计案例精编》清华大学出版社
2郭翠英编著的《C语言课程设计》中国水利水电出版社
3譚浩强《C程序设计》(第四版)清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 样板
![提示](https://static.bdocx.com/images/bang_tan.gif)