C语言学生成绩管理系统答辩_第1页
C语言学生成绩管理系统答辩_第2页
C语言学生成绩管理系统答辩_第3页
C语言学生成绩管理系统答辩_第4页
C语言学生成绩管理系统答辩_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计:基于C语言的学生管理系统答辩学生:网14班王露1234课题介绍课题介绍问题与分工问题与分工课题内容课题内容成果展示成果展示论论文文概概述述扫雷游戏介绍: 扫雷是一款相当大众的小游戏,玩法是通过点击方块并以出现的数字来判断附近地雷的数量,并以此找出所有不是雷的方块。扫雷遇到的问题:1,如何记录游戏时间2,如何布雷3,如何扫雷4,如何记录玩家游戏数据5,如何显示声音和颜色扫雷小组成员分工王佳:主要负责布雷和扫雷的算法设计。包嘉琪:英雄榜的算法设计王想:时间,声音,颜色的算法设计,以及后期论文报告的制作。论文结构整体分析与设计功能模块划分和设计重点算法实现测试情况游戏流程分析绘制雷区随机布

2、雷左键右键地雷数字空白标记取消标记GAME OVER111论文结构整体分析与设计功能模块划分和设计重点算法实现测试情况Main()函数:显示游戏菜单游戏初始化显示启动画面游戏主控鼠标驱动加载游戏初始化处理控制信息功能模块划分和设计论文结构整体分析与设计功能模块划分和设计重点算法实现测试情况主菜单的显示void menu() /主菜单函数int choice; SetConsoleTitle(“扫雷游戏”); /设置控制台窗口标题 ;gotoxy(0,0);coutendl; cout 欢迎来玩扫雷游戏endl;cout*游戏说明*endl;cout用鼠标的左键扫雷,用鼠标的右键标记雷,标志出雷

3、后同时按下左右键周围扫雷endl;cout 胜利的条件是把所有的*的格子打开,并且不能遇到雷endl; cout 游戏过程中按下鼠标中的滚动键退出游戏endl;cout 游戏等级:endl;cout10)endl;cout40)endl;cout99)endl;cout - endl; cout 查看英雄榜请按 4 nendl;cout*游戏说明*endl;coutchoice;switch(choice)case 1:line=9,arrange=9,Lei=10,level=1;break;case 2:line=16,arrange=16,Lei=40,level=2;break;cas

4、e 3:line=30,arrange=16,Lei=99,level=3; break;case 4:bang();break; cout按任意键开始游戏endl;getch();布雷代码for(int iv=0;ivLei;)/T为需要布的雷数int x=rand()%(line);/用来随机布雷int y=rand()%(arrange);if(leixy=X);elseleixy=X;iv+; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_RED | FO

5、REGROUND_BLUE | FOREGROUND_GREEN);/初始化用白色输出到屏幕上for (int iy=0;iyline;iy+)for (int jy=0;jyarrange;jy+)gotoxy(iy,jy);/到指点位置输出数组中的值 cout*; 扫雷调用代码switch(count(row,col) case 0: /调用递归扫雷cout ;cairowcol=1; num+;for(int i=-1;i=1;i+)for(int j=-1;j=1;j+)sweep(row+i,col+j);break;case1:SetConsoleTextAttribute(Get

6、StdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN ); /1显示黄色coutcount(row,col);/输出此格子周围的雷数cairowcol=1;/标记表示这个格子已经被扫过num+;/统计共扫的格子数break;case2:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN | FOREGROUND_INTENSITY); /2显示绿色coutcount(row,col);

7、cairowcol=1;num+;break;case 3:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_INTENSITY); /3显示红色coutcount(row,col);cairowcol=1;num+;break;default:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_RED | FOREGROUND_BLUE); /其它显示

8、紫色coutcount(row,col);cairowcol=1;num+;break;int win() /胜利的条件是未扫的数组数等于雷数char name50;if(line*arrange-Lei&TT=0) clearscreen(); finish = clock();gotoxy(0,0);cout你赢啦,好厉害哦!n;spendtime=(double)(finish - start) / CLOCKS_PER_SEC;cout您所用的时间为:spendtimesecondsendl; cout*n;coutname;Player p(name,spendtime);C

9、hoose(p);cout按回车键继续进行游戏,否则退出游戏;char m=getch();if(m=13)return 1;elseexit(0);return 0;判断胜利的代码英雄榜的实现Player:Player()memset(name,0 x0,sizeof(name);strcpy(name,Player1);time=0.f;Player:Player(char *na,double t)strcpy(name,na);time=t;Player:Player()ostream & operator (ostream & out,const Player &am

10、p; p)t;outp.time (istream & in,Player & p);inp.time;return in;英雄榜的实现void Choose(Player p) switch(level)case 1:int ifound = -1;for(int i=0;ip.time|WinList0i.time=0)ifound = i;break;if(ifound=0)for(int i=4;iifound;i-)WinList0i=WinList0i-1;WinList0ifound=p;file(WinnerFile1);break;case 2:int ifound = -1;for(int i=0;ip.time|WinList0i.time=0)ifound = i;break;if(ifound=0)for(int i=4;iifound;i-)WinList1i=WinList1i-1;WinList1ifound=p;file(WinnerFile2);break;case 3:int ifound = -1;for(int i=0;ip.time|WinList0i.time=0)i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论