69猜数游戏.doc
《69猜数游戏.doc》由会员分享,可在线阅读,更多相关《69猜数游戏.doc(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、沈 阳 航 空 工 业 学 院 课程设计学 号 200704033069班 级 7403302 姓 名 辛正行指导教师 王 晓 岩 2009 年 3 月 5日沈阳航空工业学院课程设计任务书院系:航空宇航工程学院 专业:飞行器设计与工程 班级:7403302学号: 200704033069 题目:猜数游戏 一、课程设计时间200809第2学期第1周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜中,给出所用时间及评语.三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作
2、方便。 用户界面中的菜单至少应包括“同学信息录入”、“同学信息查询(根据姓名,或编号等)”、“显示全部同学信息”、“退出”4项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、说明书成绩六、教师评语沈 阳 航 院 设 计 用 纸目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段6四、课设总结10五、参考文献11六、源程序1117一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为四个模块,其中每一个
3、模块对应一个函数,它们的功能分别是:产生随机数函数,猜数函数,显示时间及评语函数,退出函数。在这些函数当中,我认为不一定要严格按照题目要求去编写因为那样的话,程序将会显得死板,功能性不强.举个例子来说,在调用随机数函数时,不便于控制产生随机数的个数,使游戏功能不强,设置全局变量又不方便.而且考虑到实际情况.人们多习惯于在进入游戏之后才会选择他所希望的游戏状态.因此我们可以将游戏模块化,再在游戏中将功能模块化,这样可以使游戏更加流畅自然,符合人的思维.而且可以将评语及时间写入文件,这样既可以在游戏玩完之后知道自己的成绩又可以在事后查询,而且操作是分开的,在不同的函数中,贯了模块化思想.程序也显得
4、清晰.所以我并未严格按题目要求,但却是它的思想的延伸,实现了功能要求,贯彻了题目的初衷. 1、游戏1函数 主要实现显示游戏说明;产生玩家要求的若干个要猜的随机数;记录时间;按玩家要求显示成绩及评语,以及将成绩和评语写入文件.2、游戏2函数 主要实现随机的产生玩家要求的若干个要猜的随机数;记录时间,按玩家要求显示成绩及评语,以及将成绩和评语写入文件.思想与游戏1类似,但实现方式与难度以及游戏内容不同.3、显示时间及评语函数 通过调用文件实现查看记录时间及评语;4、退出函数 在玩者想要退出时退出;为了增加程序的灵活性,可以将猜数的个数加以控制,以满足不同人的喜好.因此选择在进入游戏后由玩者输入猜数
5、的个数.而且可以将时间及评语防到文件中,以便以后查看。二、程序流程图1、程序总体结构图图1程序总体结构图2、具体功能框图图1显示历史记录时间和评语函数(2)显示历史记录时间和评语函数图2 游戏2函数游戏2函数 图解 图3游戏1函数 游戏1函数 图解 三、核心技术的实现说明及相应程序段本程序主要由七个自定义函数和一个主函数组成,其中主函数以菜单的形式调用若干函数来实现部分要求的功能。在这些函数当中,产生随机数函数、时间函数和存取函数是程序中较为核心的部分,下面分别进行说明。1、产生随机数函数 产生随机数函数是在玩家进入游戏后产生的,具体的操作步骤如下:int chans()int sjs; sj
6、s=rand()%20;return sjs; printf(请输入你想猜的数字个数n); scanf(%d,&N); time_t start,end; start=time(NULL); 记时开始 for(i=0;iN;i+) 循环并N次调用时间函数 sjs=chans();在玩家输入要猜数的个数N后,系统会调用上面函数N次.2、时间函数该函数的核心内容是确定应该在合适的时间开始记录并在玩家猜中最后一个数后停止记时.而记录时间最好是在游戏中进行,所以我们不妨将记录的时间及评语放在一个文件夹中,在玩家想要再一次查看成绩及评语时,再一次调用文件.而只在游戏函数结束时提示玩家是否想知道自己所用的
7、时间间及评语。具体程序段如下:void cund4()FILE *fp3; fp3=fopen(chengj1.txt,r); if(fp3=NULL) printf(文件打不开.n); while(!feof(fp3)putchar(getc(fp3);printf(nnn); fclose(fp3); return;time_t start,end; start=time(NULL); for(i=0;icds)printf(你猜的数小了.);if(sjscds)printf(你猜的数大了.); /结束猜数end=time(NULL); ys=difftime(end,start); /将
8、用时等相关信息存档cund1(ys);/调用存档函数 printf(你是否想知道用时和评语?n是,请输入3,按Enter.n); scanf(%d,&cds); if(cds=3) printf(用时 %6.2f 秒n,ys);/评语if(ys=30)printf(太棒了!n);elseprintf(继续努力哦.n);3、存取函数存取是这个程序的最主要部分,在本程序主要是体现在读取游戏说明以及写入游戏用时及评价.具体的程序段如下:void cund4()FILE *fp3; fp3=fopen(chengj1.txt,r); if(fp3=NULL) printf(文件打不开.n); whil
9、e(!feof(fp3)putchar(getc(fp3);printf(nnn); fclose(fp3); return;void cund5()FILE *fp4; fp4=fopen(chengj2.txt,r); if(fp4=NULL) printf(文件打不开.n); while(!feof(fp4)putchar(getc(fp4);printf(nnn); fclose(fp4); return;/游戏1信息存档函数void cund1(double ys)FILE *fp3; fp3=fopen(chengj1.txt,a);fputs(n游戏1用时:n,fp3);fpri
10、ntf(fp3,%6.2f,ys);if(ys=30)fputs(n评语: 太棒了!,fp3);elsefputs(n评语: 继续努力哦.n,fp3);fclose(fp3);/游戏2信息存档函数void cund2(double ys)FILE *fp4; fp4=fopen(chengj2.txt,a); fputs(n游戏2用时:n,fp4);fprintf(fp4,%6.2f,ys); if(ys=300)fputs(n评语: 太棒了!,fp4);elsefputs(n评语: 继续努力哦.n,fp4);fclose(fp4);四、课设总结在这次课程设计学习中,我不仅仅是收获了知识,更深
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 69 游戏
限制150内