C高级语言程序设计猜数字游戏Word格式.docx
- 文档编号:17843222
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:13
- 大小:28.29KB
C高级语言程序设计猜数字游戏Word格式.docx
《C高级语言程序设计猜数字游戏Word格式.docx》由会员分享,可在线阅读,更多相关《C高级语言程序设计猜数字游戏Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
1
答案错误
设计思路:
1.程序的模块组成:
主函数、、、、、、、、、、、、intmian
创立结构体、、、、、、、、structrecord
定义数组、、、、、、、、、、charname[]
清除文本模式窗口、、system("
cls"
)
2.程序流程:
分别用void定义开始界面display,操作函数sys(inta),记录文件recwrite(),浏览界面vdisplay(),读取文件recread(),开始游戏newgame(),判断并增加记录addrec()。
在用intmian主函数调用。
srand((unsigned)time(NULL),以时间为种子,产生随机数,更具有代表性,这样避免了随机出显的数字服从正太分布。
3程序源清单:
#include<
stdlib.h>
stdio.h>
time.h>
#include<
windows.h>
string.h>
2
structrecord
{
charname[10];
intsorce;
}rec;
intnum;
//输入的数字
voiddisplay();
//开始界面
voidxuanze();
//选择函数
voidsys(inta);
//操作函数
voidzhuce();
//用户注册
voidnewgame();
//新游戏
voidvdisplay();
//浏览记录界面
intqushu();
//取数函数
inttishi(intaa);
//提示函数
voidaddrec();
//判断并且增加记录
voidrecread();
//读取记录文件
voidrecwrite();
//写入记录文件
voidmain()3
display();
}
voiddisplay()//开始界面
system("
);
//清屏
printf("
============================================\n"
================数字竞猜游戏================\n"
\n"
1:
新游戏\n"
2:
注册用户\n"
3:
用户积分查看\n"
4
4:
退出\n"
xuanze();
voidxuanze()//选择函数
inta;
请输入你所选择的操作数:
scanf("
%d"
&
a);
if(a==1||a==2||a==3||a==4)
{
sys(a);
}//选择相应的操作数执行函数
else
错误的操作数!
;
请按任意键继续...\n"
getchar();
5
}
voidsys(inta)//操作函数
switch(a)
case1:
newgame();
break;
case2:
zhuce();
case3:
vdisplay();
case4:
exit(0);
//退出
voidzhuce()
请输入你的名字\n"
%s"
rec.name);
6
recwrite();
//写入
恭喜!
注册成功!
voidrecwrite()//写入记录文件
FILE*fp;
fp=fopen("
E:
\\rec.rec"
"
wb"
if(fp==NULL)
写入失败!
fwrite(&
rec,sizeof(structrecord),1,fp);
fclose(fp);
voidvdisplay()//浏览记录界面
{7
====================积分====================\n"
recread();
姓名:
%s:
分数%d\n"
rec.name,rec.sorce);
voidrecread()//读取记录文件
8
L:
rb"
gotoL;
//初始化
if(fread(&
rec,sizeof(record),1,fp)==1)
文件读取失败!
"
voidnewgame()//新游戏
//清屏9
if(rec.name==0)
{printf("
请先注册用户\n"
vdisplay();
/////////////////////////////////////////////////////////////////////////////
intsnum;
intsn=10;
//机会次数
num=qushu();
//取数
===========================================\n"
按1:
终止游戏,显示答案\n"
请输入你猜想的五个数字(格式为99999样式)你还有%d次机会:
sn);
snum);
if(snum<
100000&
&
snum>
10000||snum==1)
if(snum==1)
你放弃了本局游戏!
该五个数字是:
%d\n"
num);
11
display();
intflag=tishi(snum);
if(flag!
=0&
sn!
=0)
sn--;
if(sn==0)
真是遗憾!
十次机会没有了!
没有关系!
下次继续!
newgame();
12
请按任意键继续猜...\n"
if(sn!
=0)
addrec();
newgame();
{13
inttishi(intaa)//提示函数
{inta,b,c,d,e;
intaf,bf,cf,df,ef;
if(aa==num)
你猜对了!
五个数就是:
%d\n"
return(0);
14
{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小一点!
af);
if(af==a)printf("
第一个数字对了!
应该是:
//数字比较
if(af<
第一个数应该比%d大一点!
if(bf>
b)printf("
第二个数应该比%d小一点!
bf);
if(bf==b)printf("
第二个数字对了!
就是:
if(bf<
第二个数应该比%d大一点!
15
if(cf>
c)printf("
第三个数应该比%d小一点!
cf);
if(cf==c)printf("
第三个数字对了!
if(cf<
第三个数应该比%d大一点!
if(df>
d)printf("
第四个数应该比%d小一点!
df);
if(df==d)printf("
第四个数字对了!
if(df<
第四个数应该比%d大一点!
\n\n"
if(ef>
e)printf("
第五个数应该比%d小一点!
ef);
if(ef==e)printf("
第五个数字对了!
if(ef<
第五个数应该比%d大一点!
return
(1);
16
voidaddrec()//判断并且增加记录
//标志位
a=100;
rec.sorce=rec.sorce+a;
intqushu()//取数函数
inta=0;
inti=0;
17
srand((unsigned)time(NULL));
//随机数种子设置
while(i==0)
i=rand();
//这样做就是为了增加随机性
i=i%100;
for(intj=0;
j<
i;
j++)
a=a+rand();
//判断随机数是否是五位数如果不是继续取数
a=(a/i+rand())%100000;
if(a<
10000)gotoL;
return(a);
18
3.课程设计总结
这次的课程设计总算是告一段落,虽然源程序不是自己亲自全部完成,但是毕竟也花费了自己的很多精力,从开始的到网上查找资料,然后自己一点点的改正,调试,中间的好多问题自己都没有办法解决,也看不懂,也让自己知道光靠书本的那点知识是无法解决的,书本的知识毕竟是有限的。
好多知识都得自己去学,而不是等着老师教。
第一次完成这么大的一个完整的程序,让自己意识到了自己的知识欠缺。
和以前课本上的许多知识没有学到位。
有时候在电脑面前呆几个小时就是为了解决一个小问题,很是费时间和精力,更是让自己知道了基础知识的重要性,再复杂的程序也是从基础开始的,所以打好基础是关键!
19
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 数字 游戏