猜单词课程设计报告

上传人:wu****ei 文档编号:164008124 上传时间:2022-10-24 格式:DOC 页数:35 大小:969KB
返回 下载 相关 举报
猜单词课程设计报告_第1页
第1页 / 共35页
猜单词课程设计报告_第2页
第2页 / 共35页
猜单词课程设计报告_第3页
第3页 / 共35页
点击查看更多>>
资源描述
计算机学院计算机科学与技术专业程序设计综合课程设计报告 (2011/2012学年 第一学期)学生姓名: 学生班级: 学生学号: 指导教师: 2011年12月31日目录 第一章 课程设计的目的和要求.41.1课程设计的目的.41.2课程设计的实验环境.5. 1.3课程设计的预备知识.51.4.课程设计要求.5第二章 课程设计任务.62.1 课程设计题目.62.2.时下背景.62.3.系统功能.6第三章 程序详细设计.63.1 主函数的工作步骤.73.2 编码与调试.7第四章 系统测试及调试结果.84.1.使用说明.84.2 调试结果.9第五章 课程设计心得及总结.18附录1.19附录2.20.新型猜单词游戏猜单词游戏第一章 课程设计的目的和要求1.1课程设计的目的C+语言课程设计的主要目的是培养学生综合运用C+程序设计课程所学到的知识,编写C+程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C+语言程序的基本技巧,充分理解结构化程序设计的基本方法。C+语言程序设计的主要任务时要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C+语言程序及编写设计报告。本次课程设计是通过设计一个较为简单的“猜单词游戏”,进一步熟悉C+中有关各种知识的运用与掌握。了解系统开发的需求分析、模块分析、程序流程图、编码测试、模块组装与整体调试的全过程,加深对C+的理解与Visual C+环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯,进一步培养完善的C+编程设计思维,为以后进行软件编程、数据库管理等深入学习打下一个牢固基础本课程设计的目标:1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握;2. 掌握C+语言编程和程序调试的基本技能;3. 掌握利用C+语言进行软件设计的方法;4. 提高书写程序设计说明文档的能力;5. 提高运用C+语言解决实际问题的能力。1.2 课程设计的实验环境你得先安装VisualC+6.0英文版后,在工具栏“file”中单击“new”选项,单击“files”菜单,选择“C+ Source file”输入文件名为“猜单词游戏”1.3 课程设计的预备知识大概了解C+的总体框架,初步会运用函数的调用,形参与实参的用法,以及对数组的运用一维或二维数组的运用,数组指针的用法。面向对象的类等等。1.4 课程设计要求1. 了解该系统软件开发的相关背景;2. 参考相关书籍学习课程设计的基本知识;3. 清楚所开发系统软件的各个相关功能,以便顺利开发系统软件;4. 对系统功能模块进行分析,写出设计说明文档;5. 设计完成的软件要便于操作和使用;6. 对自己所设计的程序进行调试,并不断完善;7. 在设计过程中熟练掌握软件编程的相关知识;8. 详细体会并记录相关过程,并将心得体会写在课程设计报告中;10.设计完成后提交课程设计报告。 第二章.课程设计任务内容2.1 课程设计题目猜单词游戏。2.2 背景时下,无论是社会上某些场合还是校园内,经常可以看到不同年龄段的人玩各种游戏,在无聊之余做一些简单的游戏是比较能够放松心情的方式,为此各种简单游戏就此出现,猜单词是一种无聊事做无聊的事情方式,可以两个人可以人机对猜。2.3功能用C+实现猜单词游戏。该系统主要有以下功能:1、 系统以菜单方式工作;2、 在窗口中有两个选项(人人对猜,直接退出)选其中一项进行游戏;3、按照窗口的提示你可以继续游戏,有(410)种等级,你可以选择。选择10你有10次机会猜十次完了你还猜不对游戏结束你失败。第三章 详细设计说明 3.1 主函数的工作步骤开始 执行计数变量循环 进行主回路出口变量 选择使用者输出的游戏类型或退出 如果选择不是1 执行系统清屏 选1 则人人对猜 选择2退出系统3.2 编码与调试此程序包含八个函数:void instructin() void usergame() void compgame() void test() void lchosen() void rnd() void drawman() inline istream&flush() int main()其中main()han函数为主函数会输出主界面第一个界面让你选择void instruction()函数让游戏者选择人人队猜还是人机对猜或者直接退出void usergame 主要让参加者选择可以对单词最多猜多少次,每次你所猜的单词猜对多少个字母都有显示;void lchosen1void testvoid rnd 得到随机词文件void drawman2inline istream& Flush组织flush流程起到主动第四章 软件使用说明及运行结果 4.1、使用说明该程序可以让两个人互猜对方单词,先一个人按界面菜单提示步骤输入单词,然后让对方才你所输入的单词是哪个,最多有十次机会猜诗词你猜不到就算你猜不出来,不过为了比较简单些每次你所输入的单词不过对几个字母都有提示,可以根据提示做出比较合理的猜测。不过你得先安装VisualC+6.0英文版后,在工具栏“file”中单击“new”选项,单击“files”菜单,选择“C+ Source file”输入文件名为“猜单词游戏”开始输入程序,程序输入完成,单击“build”工具栏,选择“build猜单词游戏.cpp1”,待程序无误后,开始执行程序。根据数据结构、函数功能和主要的流程图,进行录入源代码操作。在编码时,注意代码的书写规范,包括命名惯例、注释、分隔和缩进等,这样使程序层析清晰,增强可读性和可维护性。 编码操作完成后,先静态检查一下有没有语法错误,然后进行编译,更深一步检查语法错误。待编译通过时,运行程序,观察是否能够正常运行,如果有问题,再去修改源程序,直至达到了预期的效果。4.2 运行结果1、 初始界面,提供功能选择,输入相应数字。第五章 课程设计心得与体会课程设计刚开始的时候,我真的感觉到无从下手。因为我出生于农村从小就不怎么接触编程滁州高中都没学过编程,到大二是我第一次接触编程而且学的又不深,如果单单写一个比较的小的程序还可以,大程序基本写不了。当老师把题目发给我们之后,刚开始是一筹莫展,不过短时间内就已经觉醒,重新对题目分析了一遍,了解了一下要用到哪方面的知识,然后着手去看书,重新熟悉一下以前的知识。然后去图书馆借了一些关于数据结构和c+的书。看过那些书之后,信心增加了不少,对接下来的程序编译有很大帮助。通过这三周的课程设计,我独立完成了一个较大的C+语言程序的设计,并认真完成了课程设计报告。回忆这三周的时间,我收获很大。首先,我熟练地运用了所学的知识编写程序,并成功的完成,感觉成就感很强,这大大激发了我编程的兴趣;其次,在设计的过程中遇到了一些困难,我会认真的去思考,或者充分利用网络资源来寻求帮助,提高获取信息的能力。课程设计期间,我有向老师和同学寻求帮助,在交流中共同进步。最后,我了解了软件开发的大体过程及各个步骤,这对将来的学习和工作是很有帮助的。对于计算机专业的大学生来说,积累实战经验是一项极其重要的内容,很可能成为将来就业的敲门砖。而程序设计综合课程设计就是积累实战经验的一个过程,虽然程序的规模并不大,但能够让我们尽早地认识软件开发的重要性和必要性,为将来的就业打下坚实的基础。经过两个星期的上机实践学习,使我对C+语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己编程粗心大意,经常出错,通过学习也有所改进;再有对C+语言的一些标准函数不太了解,还有对函数调用的正确使用不够熟悉,以及对C+语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。这次的课程设让我认识到很多C+的内在要素:1. 程序设计语言是程序设计的工具。这是我通过两周课程设计深深体会的一点,并且发现如果想有效的进行程序设计,正确地应用程序设计语言表达算法,必须准确的运用程序设计语言,掌握其语法知识。2. 学习程序设计必须重视时间环节,多读程序,多编写程序,多上机实践。这次的课程设计就使得课堂教学、式样和实践之间的关系更为紧密。对我的学习有着很深远的影响。3. 我发现作为一个程序设计人员,需要掌握面向过程的程序设计,也要掌握面向对象的程序设计。从前,人们通过C+语言学习面向过程的程序设计,再通过C+学习面向对象的程序设计。其实C+并不是纯粹的面向对象的语言,它是一种混合语言。学习C+既可以编写面向过程的程序,也可以编写面向对象的程序。这一点是我通过可课程设计所的实践发现的。4. 深切的感受到了C+语法的复杂,内容的繁多。发现如果对它缺乏系统的了解,将难以真正的运用,编出来的程序错误百出。附录1:参考文献1谭浩强编著:C+程序设计,北京:清华大学出版社,20042杨秀金编著:数据结构(c+版),北京:人民邮电出版社,2009.4附录2:程序清单#include #include #include #include #include #include #includedraw.h using namespace std;/Function declerationsvoid instruction(int& choice); /Give instructions and gets choicevoid usergame(int i); /Plays 2nd user game/Tests current letter and raplaces starred wordvoid test(string word,char letter,int& numwrong,string& temp,int i);/Checks current letter and adds it to letters chosen output if not entered alreadyvoid lchosen(char letter,string& letterchosen,int& check,int& chosencounter,int i);void rnd(string& word,int i); /Gets random word from filevoid drawman(int numguess,int numwrong,int i); /Draws hangmaninline istream& Flush(istream& stream); /Flushses cin stream/Start of mainint main()int i=0; /Counter variable for loopsint exit=0; /Main loop exit variableint choice; /users input choice for type of game or to exit/Main control loopdo /while exit!=1system(cls); /执行系统命令清屏instruction(choice);/Give instructions switch(choice)case 1:usergame(i);/Calls user gamebreak;case 2:coutGoodbyeendl;exit=1;break;default:cerrInvalid choice-try againendl;while(exit!=1); /End main loopsystem(pause); /执行系统命令:暂停return 0;/End mainvoid instruction(int& choice)cout -Hangman-endlendl;cout Created by laserendlendl;cout*endl;coutendl;coutEnter -1-to play against userendl;coutEnter -2-to quitendl;coutendl;cout*endlendl;coutchoice;while(!cin)cerrInvalid characterendl; cerrchoice;system(cls);void usergame(int i)int numguess=0;int numwrong=0;int check;int wordcheck;int end=0;int chosencounter=0;/char letter;string word;string temp;string letterchosen= ;/docoutnumguess;while(numguess10);coutword;dowordcheck=0;for(int i=0;iword.length();i+)if(!isalpha(word.at(i)wordcheck=1;if(wordcheck=1)coutword;while(wordcheck=1);temp=word;for(i=0;iword.length();i+)temp.replace(i,1,1,*);system(cls);dodrawman(numguess,numwrong,i);if(word=temp)coutendlendl;coutYou guessed itwordendlendl;system(pause);end=1;if(numwrong=numguess)coutendlendl;coutYou failedendlendl;system(pause);end=1;if(end=0)coutendlendlendl;coutLetters chosen: letterchosenendl;coutendlendlendl;coutguesses left: numguess-numwrongendlendl;cout tempendlendl;coutletter;while(!isalpha(letter)Flush(cin);coutletter;lchosen(letter,letterchosen,check,chosencounter,i);if(check=0)test(word,letter,numwrong,temp,i);else;system(cls);system(cls);while(end!=1 & end!=2); if(end=2)coutCorrect word waswordendlendl;system(pause);if(end=1)cout ;system(cls);void lchosen(char letter,string& letterchosen,int& check,int& chosencounter,int i)check=0;for(i=0;iletterchosen.length();i+)if(letter=letterchosen.at(i)check=1;if(check=1)coutendl;coutLetter already chosenendl;system(pause);elseletterchosen.replace(chosencounter,1,1,letter);chosencounter+;void test(string word,char letter,int& numwrong,string& temp,int i)int check2=0;for(i=0;iword.length();i+)if(letter=word.at(i)temp.replace(i,1,1,letter);check2=1;if(check2=0)coutendl;coutWrong letterendl;system(pause);numwrong+;void drawman(int numguess,int numwrong,int i)draw d;for(i=0;i=numwrong;i+)if(numguess=4)switch(i)case 1:d.rope();coutendl;d.head();coutendl;d.neck();break;case 2:coutendl;d.leftarm();d.rightarm();break;case 3:coutendl;d.waisttop();break;case 4:coutendl;d.leftleg();d.rightleg();coutendlendlDeadendl;break;else if(numguess=5)switch(i)case 1:d.rope();break;case 2:coutendl;d.head();coutendl;d.neck();break;case 3:coutendl;d.leftarm();d.rightarm();break;case 4:coutendl;d.waisttop();break;case 5:coutendl;d.leftleg();d.rightleg();coutendlendlDeadendl;break;else if(numguess=6)switch(i)case 1:d.rope();break;case 2:coutendl;d.head();coutendl;d.neck();break;case 3:coutendl;d.leftarm();d.rightarm();break;case 4:coutendl;d.waisttop();break;case 5:coutendl;d.leftleg();d.rightleg();case 6:d.rightleg();coutendlDeadendl;break;else if(numguess=7)switch(i)case 1:d.rope();break;case 2:coutendl;d.head();coutendl;d.neck();break;case 3:coutendl;d.leftarm();break;case 4:d.rightarm();break;case 5:coutendl;d.waisttop();break;case 6:coutendl;d.leftleg();break;case 7:d.rightleg();coutendlDeadendl;break;else if(numguess=8)switch(i)case 1:d.rope();break;case 2:coutendl;d.head();break;case 3:coutendl;d.neck();break;case 4:coutendl;d.leftarm();break;case 5:d.rightarm();break;case 6:coutendl;d.waisttop();break;case 7:coutendl;d.leftleg();break;case 8:d.rightleg();coutendlDeadendl;break; else if(numguess=9)switch(i)case 1:d.rope();break;case 2:coutendl;d.head();break;case 3:coutendl;d.neck();break;case 4:coutendl;d.leftarm();break;case 5:d.rightarm();break;case 6:coutendl;d.waisttop();break;case 7:break;case 8:coutendl;d.leftleg();break;case 9:d.rightleg();coutendlDeadendl;break;else if(numguess=10)switch(i)case 1:d.rope();break;case 2:coutendl;d.head();break;case 3:coutendl;d.neck();break;case 4:coutendl;d.leftarm();break;case 5:d.rightarm();break;case 6:coutendl;d.waisttop();break;case 7:break;case 8:coutendl;d.leftleg();break;case 9:d.rightleg();coutOne last chance.What do you want on your tombstore?;break;case 10:coutendlDeadin_avail();return stream.ignore(chars_to_skip);
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑工程


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

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


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