C高级语言程序设计猜数字游戏.docx
- 文档编号:4890129
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:13
- 大小:28.29KB
C高级语言程序设计猜数字游戏.docx
《C高级语言程序设计猜数字游戏.docx》由会员分享,可在线阅读,更多相关《C高级语言程序设计猜数字游戏.docx(13页珍藏版)》请在冰豆网上搜索。
C高级语言程序设计猜数字游戏
《高级语言程序设计》课程设计
说明书
设计题目:
猜数字游戏
目录
1.游戏说明、、、、、、、、、、、、、、、、、、、、、、、、、、1
2.程序的模块组成、、、、、、、、、、、、、、、、、、、、2
3.程序流程、、、、、、、、、、、、、、、、、、、、、、、、、、2
4.程序源清单、、、、、、、、、、、、、、、、、、、、、、、、2
5.课程设计总结、、、、、、、、、、、、、、、、、、、、、、、19
课题:
猜数字游戏
说明:
每次随机产生5个数字,提供10次机会,若猜中进入下一次猜数,每猜中一次奖励100分,可中途退出猜数游戏,可以累计分数,和产生积分榜
基本功能:
1.用户注册
2.用户积分查看
游戏流程设计思路:
.新游戏
退出游戏
用户积分查看
注册用户
进入游戏1
给出提示
与真确答案比较
输入数字
开始游戏
继续或退出游戏
答案真确
1
答案错误
设计思路:
1.程序的模块组成:
主函数、、、、、、、、、、、、intmian
创立结构体、、、、、、、、structrecord
定义数组、、、、、、、、、、charname[]
清除文本模式窗口、、system("cls")
2.程序流程:
分别用void定义开始界面display,操作函数sys(inta),记录文件recwrite(),浏览界面vdisplay(),读取文件recread(),开始游戏newgame(),判断并增加记录addrec()。
在用intmian主函数调用。
srand((unsigned)time(NULL),以时间为种子,产生随机数,更具有代表性,这样避免了随机出显的数字服从正太分布。
3程序源清单:
#include
#include
#include
#include
#include
structrecord
{
charname[10];
intsorce;
}rec;
intnum;//输入的数字
voiddisplay();//开始界面
voidxuanze();//选择函数
voidsys(inta);//操作函数
voidzhuce();//用户注册
voidnewgame();//新游戏
voidvdisplay();//浏览记录界面
intqushu();//取数函数
inttishi(intaa);//提示函数
voidaddrec();//判断并且增加记录
voidrecread();//读取记录文件
voidrecwrite();//写入记录文件
voidmain()3
{
display();
}
voiddisplay()//开始界面
{
system("cls");//清屏
printf("============================================\n");
printf("================数字竞猜游戏================\n");
printf("============================================\n");
printf("\n");
printf("1:
新游戏\n");
printf("\n");
printf("2:
注册用户\n");
printf("\n");
printf("3:
用户积分查看\n");
printf("\n");4
printf("4:
退出\n");
printf("\n");
printf("============================================\n");
xuanze();
}
voidxuanze()//选择函数
{
inta;
printf("请输入你所选择的操作数:
\n");
scanf("%d",&a);
if(a==1||a==2||a==3||a==4)
{
sys(a);
}//选择相应的操作数执行函数
else
{
printf("错误的操作数!
\n");;
printf("\n");
printf("请按任意键继续...\n");
getchar();5
getchar();
display();
}
}
voidsys(inta)//操作函数
{
switch(a)
{
case1:
newgame();break;
case2:
zhuce();break;
case3:
vdisplay();break;
case4:
exit(0);break;//退出
}
}
voidzhuce()
{
system("cls");
printf("请输入你的名字\n");
scanf("%s",&rec.name);6
recwrite();//写入
printf("恭喜!
注册成功!
\n");
printf("请按任意键继续...\n");
getchar();
getchar();
display();
}
voidrecwrite()//写入记录文件
{
FILE*fp;
fp=fopen("E:
\\rec.rec","wb");
if(fp==NULL)
printf("写入失败!
\n");
fwrite(&rec,sizeof(structrecord),1,fp);
fclose(fp);
}
voidvdisplay()//浏览记录界面
{7
system("cls");//清屏
printf("============================================\n");
printf("================数字竞猜游戏================\n");
printf("====================积分====================\n");
recread();
printf("\n");
printf("姓名:
%s:
分数%d\n",rec.name,rec.sorce);
printf("\n");
printf("请按任意键继续...\n");
getchar();
getchar();
display();
}
voidrecread()//读取记录文件
{
FILE*fp;8
L:
fp=fopen("E:
\\rec.rec","rb");
if(fp==NULL)
{
recwrite();
gotoL;//初始化
}
if(fread(&rec,sizeof(record),1,fp)==1)
{
}
else
{
printf("文件读取失败!
");
}
fclose(fp);
}
voidnewgame()//新游戏
{
recread();
system("cls");//清屏9
printf("\n");
if(rec.name==0)
{printf("请先注册用户\n");
printf("请按任意键继续...\n");
getchar();
getchar();
vdisplay();}
/////////////////////////////////////////////////////////////////////////////
intsnum;//输入的数字
intsn=10;//机会次数
num=qushu();//取数
L:
system("cls");//清屏
printf("============================================\n");
printf("============================================\n");
printf("================数字竞猜游戏================\n");
printf("============================================\n");
printf("\n");
printf("===========================================\n");
printf("姓名:
%s:
分数%d\n",rec.name,rec.sorce);
printf("\n");
printf("按1:
终止游戏,显示答案\n");
printf("============================================\n");
printf("\n");
printf("请输入你猜想的五个数字(格式为99999样式)你还有%d次机会:
\n",sn);
scanf("%d",&snum);
if(snum<100000&&snum>10000||snum==1)
{
if(snum==1)
{
printf("你放弃了本局游戏!
该五个数字是:
%d\n",num);11
printf("\n");
printf("请按任意键继续...\n");
getchar();
getchar();
display();
}
else
{
intflag=tishi(snum);
if(flag!
=0&&sn!
=0)
{
sn--;
if(sn==0)
{
printf("真是遗憾!
十次机会没有了!
没有关系!
下次继续!
\n");
printf("\n");
printf("请按任意键继续...\n");
getchar();
getchar();
newgame();12
}
printf("请按任意键继续猜...\n");
getchar();
getchar();
gotoL;
}
else
{
if(sn!
=0)
addrec();
else
{
printf("请按任意键继续...\n");
getchar();
getchar();
newgame();
}
}
}
}
else
{13
printf("错误的操作数!
\n");;
printf("\n");
printf("请按任意键继续...\n");
getchar();
getchar();
gotoL;
}
}
inttishi(intaa)//提示函数
{inta,b,c,d,e;
intaf,bf,cf,df,ef;
if(aa==num)
{
printf("恭喜!
你猜对了!
五个数就是:
%d\n",num);
return(0);
14
}
else
{a=num/10000;
b=num/1000%10;
c=num/100%100%10;//获取输入的四个数字
d=num/10%1000%100%10;
e=num%10000%1000%100%10;
af=aa/10000;
bf=aa/1000%10;
cf=aa/100%100%10;//获取输入的四个数字
df=aa/10%1000%100%10;
ef=aa%10000%1000%100%10;
if(af>a)printf("\n第一个数应该比%d小一点!
\n",af);
if(af==a)printf("恭喜!
第一个数字对了!
应该是:
%d\n",af);//数字比较
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 数字 游戏