课程设计报告样板Word文档格式.docx

上传人:b****5 文档编号:19506707 上传时间:2023-01-07 格式:DOCX 页数:17 大小:312.35KB
下载 相关 举报
课程设计报告样板Word文档格式.docx_第1页
第1页 / 共17页
课程设计报告样板Word文档格式.docx_第2页
第2页 / 共17页
课程设计报告样板Word文档格式.docx_第3页
第3页 / 共17页
课程设计报告样板Word文档格式.docx_第4页
第4页 / 共17页
课程设计报告样板Word文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

课程设计报告样板Word文档格式.docx

《课程设计报告样板Word文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计报告样板Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

课程设计报告样板Word文档格式.docx

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程序设计》(第四版)清华大学出版社

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

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1