高级语言课程设计猜数字游戏Word下载.docx
- 文档编号:17869838
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:23
- 大小:224.89KB
高级语言课程设计猜数字游戏Word下载.docx
《高级语言课程设计猜数字游戏Word下载.docx》由会员分享,可在线阅读,更多相关《高级语言课程设计猜数字游戏Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
第二章程序设计
第1节 程序的功能
该游戏可以由程序随机产生或由用户自定义五个0到9之间的数字,且不重复。
输入正确则为成功,累计十次错误则游戏失败。
游戏成功根据猜测次数给出相应的得分!
该游戏还能自动判断你输入是否有误,如果输入有误,则自动提示您正确的操作。
第2节 输入输出的要求
按提示输入0-9之间的数字进行操作
①输入如:
在菜单页面时
输入1进入游戏;
输入2退出游戏;
输入3进入游戏说明页面;
输入4查看游戏版本及版权;
输入5查看游戏得分榜。
②输出如:
在游戏成功与失败时输出游戏得分与挑战成功与否!
如果当输入的选项出现错误时,则系统输出游戏提示“你输入有误,请确定后重新输入!
”。
第3节 程序模块
第1条 模块组成
本程序分为八个模块,main()主模块,menu()菜单模块,startf()开始模块,save()存储模块,display()排行榜模块,,shuomingf()说明模块,tuichu()退出模块,guanyuf()关于模块。
第2条 层次结构
第3条 模块调用
第1条 模块解释与功能
vmain()--主模块,操作系统的开始与结束运行;
voidmain()/*主函数*/
{
menu();
//调用菜单模块进行菜单选择
}
vmenu()--菜单模块,打印菜单选项给游戏者进行选择,进入相应的模块并执行;
scanf("
%d"
&
k);
switch(k)/*选择项*/
{
case1:
{
system("
cls"
);
startf();
//开始游戏
};
break;
case2:
break;
case3:
{system("
returnshuomingf();
///跳到说明
}
case4:
system("
returnguanyuf();
//跳到关于
}
default:
{printf("
\t\t您的输入有误,请重新输入!
\n"
pause"
returnmenu();
//返回主菜单
vstartf()--开始模块,猜数字游戏开始,游戏者按照自己的意愿来进行游戏,系统对游戏的输入进行判断,真正实现了系统与游戏者完美融合;
scanf("
f);
//进行是否自定义选择
switch(f)
case0:
//进行随机游戏
srand((int)time(0));
/*随机数据的产生*/
n=1+(int)(10000.1*rand()/(RAND_MAX+1.0));
break;
default:
printf("
你输入有误,请重新输入!
!
"
printf("
请输入你要自定义的数据\n"
scanf("
n);
}
Do//进行游戏,知道猜对或10次才结束
intc;
printf("
请输入五个0到9之间的数字,且不重复,如:
12345\n"
scanf("
cs);
/*判断随机数据是否合格*/
intt1,g1,s1,b1,q1,A=0,B=0;
//**拆分测试数据**//
t1=cs%10;
//个位数
g1=cs/10%10;
//十位数
s1=cs/100%10;
//百位
b1=cs/1000%10;
//千位
if(cs<
1000)
q1=0;
else
q1=cs/1000;
///**拆分测试数据**//
intp[5]={q1,b1,s1,g1,t1},i,j;
/*比较各位数是否相等*/
if(cs==n)//游戏区//
for(i=0;
i<
5;
i++)
for(j=0;
j<
j++)
if(p[i]==a[j])
if(i==j)
A++;
else
B++;
m++;
//次数累计
system("
\t\t\t%dA%dB,m=%d"
A,B,m);
while(m<
10);
//进行游戏,直到猜对或10次才结束
vphangb()--排行榜模块,进入排行榜查看自己及以往的游戏排行情
vTuichu()--退出模块,退出整个游戏系统;
h);
switch(h)//是否退出模块选择
menu();
//返回主菜单
{
system("
printf("
您的输入有误,请重新输入!
//提示报错
returnmenu();
vShuomingf--说明模块(),向游戏者介绍游戏的规则,并提示游戏者如何进行游戏;
vGuanyuf()--关于模块,向游戏者介绍本游戏的版本及版权。
第4章调试
第1节 菜单测试
在主菜单中
输入1:
进入游戏;
输入2:
退出游戏;
输入3:
进入游戏说明;
输入4:
进入关于;
输入5:
进入游戏排行榜;
输入其它数据或按键时:
提示“你输入有误,请重新输入”;
2)在自定义数值中
进入自定义,提示请输入你要自定义的数据;
输入0:
进入随机游戏,系统将自动生成数据给游戏者猜;
系统报错,提示“你输入有误,请重新输入!
”;
3)在继续菜单中
继续进行游戏;
系统报错,提示“你输入有误,请重新输入”;
第2节 游戏测试
第1条 在自定义中
自定义:
输入12345
1)第一次12345
结果如下图:
2)第一次127892A0B;
第二次146781A1B;
第三次234560A4B;
第四次356790A2B;
第五次782452A1B;
第六次023653A0B;
第七次453211A4B;
第八次12345
输入12
提示报错,--“是否自定义数值”,直至定义正确;
结果如上图:
第2条 在随机游戏中
随机数据12345
第一次127892A0B;
结果如下图:
附录源程序
#include<
time.h>
stdlib.h>
stdio.h>
#include"
math.h"
staticintt;
inta[100];
externstartf();
/*外部说明*/
externmenu();
externbackf();
/*外部说明*/
externtuichu();
externshuomingf();
externguanyuf();
//学生基本信息保存模块
voidSave(intx)
FILE*fp;
inti;
a[t]=x;
t++;
fp=fopen("
c:
\\youxi.txt"
"
w+"
for(i=0;
t;
fwrite(&
a[i],sizeof(int),1,fp);
//每次写一个条录入或一个结构体数组至文件
if(i>
0)
\n完成%d个文件的保存\n"
t);
else
\n文件为空,没有保存一个文件\n"
fclose(fp);
//关闭文件
//显示模块
voiddisplay()
\n\t\t\t\t%d"
a[i]);
if(t==0)
没有分数"
system("
//主函数
intcount=0;
FILE*fp;
d:
a+"
//保存在c:
youxi.txt,以读写创建一个新的文本
if(fp==NULL)//打开头文件失败
\n文件打开错误!
exit(0);
while(!
feof(fp))
if(fread(&
a[count],sizeof(int),1,fp)==1)
//一次从文件中读取一条学生信息
count++;
t=count+t;
printf("
\n\n\n\n\n\n\n"
\t\t|*********************************************|\n"
\t\t||\n\n"
\t\t|............欢迎使用...........|\n\n"
\t\t|.........经典猜数字游戏..........|\n\n"
\t\t|...........感谢您的参与.............|\n\n"
\t\t|...............谢谢...................|\n\n"
\t\t|.................^_^...................|\n\n"
\t\t|*********************************************|\n\n"
\n\n\n\n\t\t\t\t\t\t\t\t..徐宏伟编制\n"
//菜单
intmenu()/*菜单模块*/
intk;
\n\n\n\n\t\t...................猜数字游戏..................\n"
\t\t|***********************************************|\n"
\t\t|***************==>
<
==**************|\n"
1.开始<
2.退出系统<
3.游戏说明<
4.关于<
5显示分数<
\t\t|...............................................|\n"
\n\n\n\n"
\t\t请按提示输入:
case5:
display();
//开始开始
intstartf()/*游戏模块*/
intn,m=0,g,s,b,q,t,cs,C=0,f;
//**cs表示测试数据**//
do
是否自定义数值:
1/0(1:
是0:
否)\n"
n=rand()%(99999-10000+1)+10000;
/*n为X~Y之间的随机数*/
//n=1+(int)(10000.1*rand()/(RAND_MAX+1.0));
}
t=n%10;
g=n/10%10;
s=n/100%10;
b=n/1000%10;
if(n<
10000)
q=0;
q=n/10000;
while((g==s)||(g==b)||(g==t)||(g==q)||(s==b)||(s==q)||(b==q)||(n<
=124)||(n<
=10000));
inta[5]={q,b,s,g,t};
/*将随机数据重组*/
….欢迎进入猜数字游戏…....\n\n"
\t\t.......A:
数字正确,且位置正确.......\n"
/*温馨提示*/
\t\t.......B:
数字正确,但位置错误.......\n"
\t\t.......m:
实验次数.......\n\n"
do
///**拆分测试数据**//
q1=cs/10000;
if(p[i]==a[j])
//游戏区//
if(m<
10||cs==n)//游戏得分情况//
switch(m)
{
case1:
printf("
\t\t\t\tscore:
90\n\t\t\t\tsuccess!
!
Save(90);
case2:
80\n\t\t\t\tsuccess!
Save(80);
case3:
70\n\t\t\t\tsuccess!
Save(70);
case4:
60\n\t\t\t\tsuccess!
Save(60);
case5:
50\n\t\t\t\tsuccess!
Save(50);
case6:
;
case7:
30\n"
Save(30);
default:
system("
\t\t\t\tyouarewonderful!
\n\t\t\t\tscore:
100\t\t\t\t\n"
Save(100);
}
}
\t\t\t\tfail\n"
//判断胜利与否//
returntuichu();
//退出退出
inttuichu()/*提示模块*/
inth;
\t\t.....................猜数字游戏...................\n"
\t\t|********************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言 课程设计 数字 游戏