程序设计_猜单词汇总

上传人:无*** 文档编号:201889708 上传时间:2023-04-21 格式:DOC 页数:20 大小:225KB
收藏 版权申诉 举报 下载
程序设计_猜单词汇总_第1页
第1页 / 共20页
程序设计_猜单词汇总_第2页
第2页 / 共20页
程序设计_猜单词汇总_第3页
第3页 / 共20页
资源描述:

《程序设计_猜单词汇总》由会员分享,可在线阅读,更多相关《程序设计_猜单词汇总(20页珍藏版)》请在装配图网上搜索。

1、程序设计报告( 2014 / 15 学年 第 一 学期)题 目:猜字游戏 专 业 组长 学号姓名 组员 学号姓名 指 导 教 师 指 导 单 位 日 期 成员分工组长()调试程序程序代码(选择等级的功能、记录排名的功能)组员()编辑报告程序报告(实现进行游戏的功能、显示菜单的功能)组员()评分细则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简短评语 教师签名: 年 月 日评分等级备注评分等级共五种:优秀、良好、中等、及格、不及格猜单词一、 课题内容

2、和要求这是一个简单的智力游戏,游戏者每次只能猜一个字母,如果游戏者猜的字母在单词中,单词中所有的该字母将被视为已猜出,例如:如果原单词是apple,游戏者猜出了p,则程序应显示当前猜出的残缺单词为-pp-;设置选择时间限制或猜错次数限制,超过限制则游戏失败。1-5个字母为初级;5-9个字母为中级;10个字母以上为高级,猜错次数限制自定。1.设计游戏者信息格式,记录用户名、成绩,并保存,下次开始时可选择用户继续游戏,用户信息存放2.在user.txt中。建立积分排行榜,保留不同级别前五名的成绩。3.根据单词长度设置不同级别的游戏。4.游戏过程中,猜错的字母将被记录下来,每次猜测后,游戏应显示出当

3、前猜出的残缺单词,以及当前猜错的所有字母,和剩下的机会。5.提供相应安全机制,保证程序的健壮性,如选择单词长度时,应避免非数字字符的输入造成程序出错等。6.提供选择一次求助机会。如显示单词一秒钟,或给出指定位置上的一个字母二、 需求分析功能框架图如图1所示。主菜单(1)新游戏(3)设置(2)排行(4)帮助(5)退出难度次数图1 功能框架图(1)新游戏:提供进入游戏的功能。(3)排行:提供建立成绩积分表,保留不同级别前五名成绩的功能。(3)设置:提供选择猜测次数和难度等级的功能。(4)帮助:提供游戏说明的功能。(5)退出:提供退出游戏的功能。三、概要设计 1 主要结构体typedef struc

4、t Playerint ranker;char name20;/玩家姓名 int right; /猜对的字母int wrong; /猜错的字幕int time; /猜单词的时间Player;2 主要函数流程图 用Void PlayGame()作为主体来进行游戏。如图2 开始判断是否猜过输入猜测字母guess判断字母是否正确存在给guessword赋值给wrongword赋值判断是否超过猜测次数结束 图2 函数结构图四、源程序代码 #include #include #include #include #include int rank=7,tot=0,guesstime=10;double s

5、tart_time,end_time;typedef struct Playerint ranker;char name20; int right;int wrong;int time;Player;Player p5=1,unknown,0,0,0,2,unknown,0,0,0,3,unknown,0,0,0,4,unknown,0,0,0,5,unknown,0,0,0;Player temp;int right=0,wrong=0;int times;char wordlist100020;void get_word();void chooose_len();void choose_g

6、uesstime ();void input_name();void Compare();void Record();void PlayGame();void Menu();int main(int argc, char *argv)get_word();while(1) /使得猜完单词或查看完排行榜后返回主菜单Menu();return 0;void get_word()FILE *fp; if(fp=fopen(d:/word.txt,r+)=NULL) /读文件 printf(单词库无法打开!n); exit(0); elsewhile(fscanf(fp,%s,wordlisttot+

7、)!=EOF);void chooose_len() ag:printf(请选择最大单词长度:(范围5-15); scanf(%d,&rank);if(rank1)goto ag;void choose_guesstime ()printf(请输入你想猜的次数:);scanf(%d,&guesstime);void input_name()printf(请先输入您的大名:);scanf(%s,temp.name);void StartGame ()while(1)int i; char play; printf(请输入你要猜的字母,每次一个,祝你好运哦!n); PlayGame(wordlis

8、t); temp.time=times; temp.right=right; temp.wrong=wrong;Compare();Record(); printf(是否再玩一次?(Y/N)n); scanf( %c,&play); if(play!=n) continue; else break; printf(n);void Compare()int i;for(i=0;ipi.right) strcpy(pi.name,temp.name);pi.right=temp.right;pi.wrong=temp.wrong;pi.time=temp.time;break;void Recor

9、d()int i;FILE *fp;fp=fopen(d:/record.txt,w+);if(!fp)printf(游戏记录无法打开!);exit(1); fprintf(fp,111名次t姓名tt成绩:猜对 or 猜错)t时间(s)n);for(i=0;i5;i+)fprintf(fp,%dt%sttRight:%d Wrong:%dt%dn,i+1,pi.name,pi.right,pi.wrong,pi.time);fclose(fp);void Show()int i;FILE *fp;char ous200;fp=fopen(d;/record.txt,r+);if(!fp)pri

10、ntf(游戏记录无法打开!n);exit(1);while(fgets(ous,256,fp)puts(ous);fclose(fp);void PlayGame()char guess;/存用户打入的字母char play;char guessword20,WrongGuess20;int c=1,l,j,f,k=0;int q;int x=0,t=0;int flag =0;while(1) guess=play=l=j=f=k=q=x=t=flag=0;for(c=0;crank)goto ag2; /求单词长for(f=0;fl;f+)guesswordf=-; /定义词一空单词,词长

11、与所选一样guesswordl=0; /字符串结尾printf(%s,guessword);/打印与词长相同的-for(k=1;k=guesstime & c!=0;) /判断是否猜完 flag=0;printf(你有%d次机会!n,guesstime-k+1);scanf( %c,&guess);for(j=0;j 1. 开始游戏 2. 设置游戏 3. 成绩排行 4. 帮助 5. 退出游戏 n);printf( *n);printf()printf(请输入你的选择:);scanf(%d,&choice);while(choice5)printf(Please choice 1-5 again

12、n);scanf(%d,&choice);switch (choice)/选择case 2:chooose_len();case 1:input_name();StartGame();/调用游戏函数break;case 3:Show();break;case 4:printf( 游戏规则:n);printf( 这是一个简单的智力游戏,游戏者每次只能猜一个字母 n);printf( 如果游戏者猜的字母在单词中,单词中所有的该字母将被视为已猜出 n);printf( 例如:如果原单词是apple,游戏者猜出了p,则程序应显示当前猜出的残缺单词为-pp-n);printf( 设置选择时间限制或猜错次

13、数限制,超过限制则游戏失败 n);printf( 1-5个字母为初级;5-9个字母为中级;10个字母以上为高级,猜错次数限制自定n);break;case 5:printf(欢迎下次来玩n);exit(0);五、测试数据及其结果分析结果分析:1)在输入菜单选项时如果输入的内容不是1-0之间的数字,而是其他数字,系统将继续执行等待下次正确的输入 2)要建立word还有record文件才可以正常运行。六、调试过程中的问题1)是时间函数的添加,先在没有猜之前提取一次时间,然后再在猜完之后提取一次时间然后,两次的时间差为猜单词所需要的时间。一定要先定义double start_time,end_tim

14、e;然后才可以应用的,while(1) guess=play=l=j=f=k=q=x=t=flag=0;for(c=0;c20;+c)guesswordc=WrongGuessc=0;c=1;start_time=(double)clock()/CLOCKS_PER_SEC;/开始时间ag2: srand(time(NULL);q=rand()%tot;/printf(The True Letter is %sn,worldlistq); /查看程序随机选到的单词,调试时使用先提取开始的时间l=strlen(wordlistq);printf(错误单词是%sn,WrongGuess);end_

15、time=(double)clock()/CLOCKS_PER_SEC;printf(Time used = %.2lf sn,end_time-start_time);printf(是否再玩一次?(y/n)n);scanf( %c,&play);if(play!=n)continue;elseexit(0);然后再提取后来的时间七、课程设计总结 21世纪是科技飞速发展的时代,而计算机技术的发展起到了决定性作用。生活中的一切与计算机有着千丝万缕的联系。也许是教室里老师必不可少的教学用具,也许是吃个饭都愿意揣着的通讯设备,也许是各式人看万千网络文件的智能神器。21世纪时代发展是计算机技术发展的成

16、果,一个美好的时代是计算机技术给我们最好的礼物。所以组员们虽然不是计算机专业的学生,但是都必须进行这一次关于计算机程序设计的实习,这是学校为我们敞开的一次领悟计算机魅力的旅行。在整个实习中,组员间相互分配任务,展开寻找实现各项功能程序代码的工作。我们重新翻开c+课本,回忆,探索,思考,为了找到满意的代码而苦恼。运行,更改,运行,更改,再运行,再更改,不希望看到error的心情到达极致,没有捷径来实现计算机程序苛刻的要求。或许这是计算机给我们的警戒,我们享有的一切便利,背后都是所有密集的思考和创新。其实在实践过程中,“原来如此啊”也许是最常印刻在心里的心情,原来如此啊,我们手上的高科技产品是这样的,原来如此啊,这些乱七八糟的代码都有他们存在的意义,原来如此啊,一整个程序也可能就败在一个小小的字符上。总而言之,在完成这份报告时,以想努力克服的心态面对所有的不足,也希望两周的实践不会是学习计算机最后的步伐,希望会更好的学习计算机。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!