打字游戏课程设计报告
- 格式:docx
- 大小:323.28 KB
- 文档页数:30
第七课打字游戏教学设计第一篇:第七课打字游戏教学设计第7课打字游戏教学目标1、通过打字游戏熟悉键盘的键位分布,明确手指分工。
2、掌握正确的键盘操作姿势与击键要领3、培养学生良好的坐姿及击键习惯;体验游戏化学习的乐趣。
教学重点:掌握正确的键盘操作姿势和击键要领;找准基本键、明确手指分工;提高击键的速度和正确率。
教学难点:掌握正确的键盘操作姿势和击键要领;提高击键的速度和准确性课时安排:1课时课前准备:安装金山打字通2003,多媒体电脑房教学过程一、情境导入通过前几节课键位分区课程训练后,同学们基本上已掌握26个字母的位置了。
这节课,我们要进入打字游戏,进行指法综合运用大比拼啦!同学们有没有信心夺冠?!二、打字游戏(一)简单介绍游戏规则(广播教学)今天我们要进行“打鼹鼠”游戏比赛,首先,同学们打开金山打字通软件,进入打字游戏,选择“鼹鼠的故事”。
下面,老师简要介绍一下游戏规则,我们可以看到每个鼹鼠出现时都举着一个牌子,上面标有一个字母,只要从键盘上击中该字母即可。
(进行游戏演示)(二)、学生自主游戏(取消广播教学)好,看来同学们都已经迫不及待地想玩这个游戏了,那就先让大家自主游戏20分钟热热身吧。
在游戏过程中,老师只强调两点,一要注意打字的正确姿势和手指分工。
因为这直接影响我们的眼睛和输入速度。
另外,凡出现游戏过火现象的同学,老师会对其进行黑屏冷静处理。
希望同学们能够合理控制好情绪。
(遏制一些学生胡乱敲击键盘现象)在学生玩游戏时,进行巡视指导,主要是纠正学生的指法、击键动作以及坐姿等。
(三)引导学生集体游戏刚才,同学们进行了几种打字游戏的自主练习,可以看出大家都学得非常开心。
那大家想不想和其他同学比比,看看谁的打字水平更胜人一筹?!好,现在我们来进行一场趣味打字比赛吧!首先,我们一起进入“鼹鼠的故事”1、设置游戏速度要求:游戏时间设置为5分钟鼹鼠出现时间间隔为3 停留时间为72、比赛过程中,进行巡视指导。
打字游戏的设计报告姓名:赵香俊班级:中北11级.net专业:软件设计日期:2012-10-25目录简介3目的3范围3参考资料3概述3定义13 2.1排行版:4 2.2自由模式:4 2.3 计时赛:4 2.4 生存模式:4 2.5难度选择: 5 2.6 游戏帮助:5定义2:6简介将本系统中所涉及的词汇(术语)进行详细、准确的描述。
目的1.1.1在描述的过程中让开发人员了解、熟悉业务过程。
1.1.2为用例描述、用例建模、架构设计提供术语解释。
1.1.3为实体建模、数据库设计提供术语解释。
范围主界面模块,自由游戏模块,生存模式模块,计时赛模块,排行版模块参考资料概述定义12.1主页面在主页面上有排行版,自由练习,计时赛,生存模式以及难度的选择。
Label1 Label2 Label3 Label4 Label5 Label6,上字体的颜色可以不断地变化。
在难度中可以让用户选择,可以把选项放在一个panel中,让他隐藏来,当用户点难度的时候可以选择难易程度。
在接下来介绍的三种模式当中都可以把他们放在同一个界面上2.2自由模式:你点击开始-游戏开始游戏开始后会从屏幕的上方掉下字,每次落下来的字的颜色都不同,速度也不同,并且不可以让字飘到屏幕以外的地方。
如果你在没有落到屏幕的底方的时候把字给消除了,加10分,否则就扣10分。
同时成绩也会记录到数据库中,在排行版中可以查询。
2.3计时赛:1.用户点击开始,开始的按钮上会显示出暂停,这两个功能可以在同一个按钮上切换,点击开始,音乐响起,随之字母会从屏幕的最上方落下来,每次的颜色不同,速度不同,字母也不同,当你在字母没有落到屏幕的最低端的时候你把字母给消除了你就可以加10分,否则减10分。
在计时赛这个模块中有时间限制,如果到了规定的时间内,系统就会停止工作。
2.2.4 生存模式1.用户点击开始,开始的按钮上会显示出暂停,这两个功能可以在同一个按钮上切换,点击开始,音乐响起,随之字母会从屏幕的最上方落下来,每次的颜色不同,速度不同,字母也不同,当你在字母没有落到屏幕的最低端的时候你把字母给消除了你就可以加10分,否则减10分。
题目:打字小游戏学号姓名专业班级指导教师院(系、所)电气与电子工程学院华中科技大学教务处制课程设计目的:(1)熟悉单片机的工作原理和应用方法,掌握单片机编程的一些技巧(2)利用单片机及键盘、LED和发光二极管设计具有竞争性、趣味性的游戏。
课程设计内容本次课程设计的内容是编写一个打字游戏,此游戏的想法来源于当初开始学习计算机时玩过的金山打字游戏,即随机显示一些字母,要在限定的时间内敲中键盘上对应的字母,通过练习可以快速熟悉键盘。
我所设计的这个打字游戏基本规则和金山打字游戏类似,在LED上随机出现一个数(0~F),并且这个数会以一定的速度从最左边的LED“跑”到最右边的LED并消失,必须在它消失之前敲中键盘上对应的数字,循环十次最后显示敲中的次数。
最后我还设计了可以控制字“跑”的速度,可供对键盘熟悉程度水平不同的人练习使用。
课程设计原理1)随机数的产生:因为T1在不断计数,可将TIMER1寄存器中数读出来并取后四位,即:LDB CX,TIMER1AND CX,#000FH2)在8位LED上“跑”动:即每隔一段时间由下一位LED显示这个随机数,在本程序中我是利用T1 产生中断,在中断程序中移位,即LED显示的位选码加一,而段选码不变,直至最后一位LED。
而且可以设置T1中断的次数来控制随机数“跑”动的速度,如设置T1中断两次才使LED移到下一位。
3)扫描键盘:在执行完一些初始化语句之后,程序便不停地扫描键盘,并判断输入键值是否等于所显示的数,若相等则计数器加一,本次循环结束并转下一次循环。
扫描程序借用我们做过的实验中用的RD_KB。
4)显示结果:先通过循环控制,若已循环十次则将计数器的结果显示出来,这里需要将十位和个为分别显示在两位LED上,可通过二进制到十进制转换,即CLR 36HDIVU 34H,#0AH原34H单元中存有计数器的值,除10之后十位在34H单元,个位在36H单元。
再分别将十位和个位作为段选码的偏移量,即可在LED上显示相应的数字。
c打字游戏课程设计报告一、课程目标知识目标:1. 学生能够掌握C语言基础语法,包括变量声明、数据类型、运算符等。
2. 学生能够理解并运用循环结构、条件语句编写简单的打字游戏程序。
3. 学生了解基本的计算机编码知识,如ASCII码。
技能目标:1. 学生能够运用C语言编写简单的打字游戏程序,提高编程实践能力。
2. 学生能够通过编写代码解决问题,培养逻辑思维和问题解决能力。
3. 学生能够熟练使用计算机键盘,提高打字速度和准确性。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发学习C语言的热情。
2. 学生在团队协作中,培养沟通、协作能力,增强团队意识。
3. 学生通过编程实践,体会计算机科学的魅力,树立正确的科技观。
课程性质:本课程为实践性较强的编程课程,结合打字游戏的形式,让学生在轻松愉快的氛围中学习C语言编程。
学生特点:五年级学生,具备一定的计算机操作能力,对游戏有浓厚兴趣,具备初步的逻辑思维能力。
教学要求:教师应注重引导学生主动探究、实践,关注学生的个体差异,鼓励学生发挥创意,提高编程能力和团队协作能力。
通过本课程的学习,使学生达到上述具体的学习成果。
二、教学内容1. C语言基础语法:- 变量声明、数据类型(整型、字符型)- 常量和变量- 运算符(算术、关系、逻辑)- 语法结构(顺序、选择、循环)2. 编程实践:- 打字游戏程序设计思路- 设计简单循环结构,实现打字游戏基本框架- 引入随机函数,生成随机字母或单词- 使用条件语句,判断用户输入与随机字母的匹配3. 计算机编码知识:- ASCII码介绍- 键盘布局与打字技巧4. 教学内容的安排和进度:- 第一课时:C语言基础语法回顾,介绍打字游戏目标- 第二课时:设计打字游戏基本框架,学习循环结构- 第三课时:引入随机函数,学习条件语句- 第四课时:完善打字游戏功能,进行编程实践- 第五课时:总结与展示,讨论编程过程中的问题及解决方法教材关联:- 《C语言趣味编程》第三章:循环结构- 《C语言趣味编程》第四章:分支结构- 《计算机科学》第二单元:计算机编码知识教学内容注重科学性和系统性,结合教材相关章节,引导学生通过实践掌握C 语言编程知识,提高编程技能。
课程设计报告打字母一、教学目标本课程的教学目标是使学生掌握打字母的基本技能,提高学生的打字速度和准确性。
具体目标如下:1.知识目标:使学生了解打字母的基本概念和技巧,包括正确的打字姿势、指法规则、键盘布局等。
2.技能目标:培养学生能够熟练使用键盘进行打字,达到每分钟20个字符的打字速度,且准确率在90%以上。
3.情感态度价值观目标:培养学生对打字技能的兴趣和重视,提高学生自我学习和自我提升的意识。
二、教学内容本课程的教学内容主要包括以下几个方面:1.打字母的基本概念和技巧,包括正确的打字姿势、指法规则、键盘布局等。
2.打字的练习方法,包括打字练习软件的使用、单词和段落的打字练习等。
3.打字速度和准确性的提高方法,包括打字比赛的参与、打字技巧的分享等。
三、教学方法本课程的教学方法包括以下几种:1.讲授法:通过讲解打字母的基本概念和技巧,使学生掌握正确的打字姿势和指法规则。
2.讨论法:通过小组讨论和分享,让学生互相学习和交流打字技巧和经验。
3.实验法:通过使用打字练习软件和参与打字比赛,让学生实际操作和练习,提高打字速度和准确性。
四、教学资源本课程的教学资源包括以下几种:1.教材:提供相关打字母的教材和参考书,供学生自学和复习。
2.多媒体资料:提供打字技巧和练习的视频教程,帮助学生更直观地学习和理解。
3.实验设备:提供电脑和键盘,供学生进行实际的打字练习和比赛。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解能力。
2.作业:布置定期的打字作业,评估学生的打字速度和准确性,以及对手指的灵活运用能力。
3.考试:进行打字速度和准确性的考试,评估学生的打字技能水平。
评估方式应客观、公正,能够全面反映学生的学习成果。
教师应及时给予反馈,帮助学生了解自己的不足之处,并加以改进。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节和内容进行教学,确保学生掌握打字母的基本技能和知识。
中南大学Java课程设计报告题目打字游戏学生姓名窦立阳指导教师陈丽萍学院信息科学与工程学院专业班级计科1204完成时间 2015年1月15日目录第一章实验要求 (3)第二章总体设计界面设计 (4)运行流程 (4)逻辑设计 (4)积分设计 (4)第三章详细设计主面板 (5)两个按键 (5)相关全局变量 (5)全局变量说明 (5)相关全局函数 (7)字符下落模块 (7)WordLabel (7)WordFallControl (8)WordFallLabel (8)速度控制模块 (8)按键模块设计 (8)键盘监听事件 (9)积分模块设计 (9)事件模块设计 (10)第四章调试分析第一次调试 (11)第二次调试 (11)第三次调试 (12)第五章运行结果 (13)第六章课程设计总结 (17)第七章参考文献 (19)第八章附录:带注释的源代码Wordfall (20)WordFallControl类 (20)WordLabel类 (22)WordFallLabel类 (23)ScoreLabel类 (24)StartButton类 (25)TimeLabel类 (26)AAAAA类:程序的主函数入口 (28)Maintain类 (30)第一章实验要求【问题描述】设计实现一个打字游戏,界面参见图2-2,具备如下功能:●点击“开始”按钮,产生随机字符从屏幕上方下落;●点击键盘上按钮,如果正确,当前的字符消失,产生新的按钮从上方继续落下。
●提供速度调整和积分功能。
图2-2 打字游戏界面第二章总体设计界面设计根据实验要求中的图2-2,在主面板中,有一个模块控制各个字符的生成并且控制他们的自动下落,并在正确触发时,字符不可见;“开始”和“结束”,用于字符下落的开始和结束;运行流程程序启动,程序等待按键“开始”的事件的触发;当“开始”键触发后,负责字符下落的模块,将持续产生字符,并使其下落;键盘开始被监听,从键盘的按键触发,向程序返回值;积分模块开始工作,将字符下落模块的字符和键盘事件返回的值进行比较,得出积分,并且将积分值显示在面板上;如果点击“停止”按键,所有模块停止工作,等待程序关闭,或者等待“开始”逻辑设计字符不断产生并且下降,需要一个线程控制产生字符,然后还应该有一个线程对面一个字符,控制其下落。
打字游戏教案及反思教案标题:打字游戏教案及反思教案目标:1. 帮助学生掌握基本的打字技能,包括正确的手指位置、按键方法和速度控制。
2. 提高学生的打字准确性和速度。
3. 培养学生对打字的兴趣和积极性。
教学资源:1. 打字游戏软件或在线打字游戏网站。
2. 打字键盘。
3. 计算机或笔记本电脑。
教学步骤:引入活动:1. 向学生介绍打字游戏的重要性和好处,如提高工作效率、减少错误率等。
2. 与学生讨论他们对打字游戏的了解和经验。
主体活动:步骤1:讲解基本打字知识1. 向学生展示正确的手指位置和按键方法。
2. 解释键盘上各个键的功能和位置。
3. 演示如何使用正确的手指位置进行打字。
步骤2:练习打字技能1. 学生跟随教师一起练习打字,重点放在正确的手指位置和按键方法上。
2. 教师提供一些简单的打字练习,如打印字母表、常用单词等。
步骤3:进行打字游戏1. 学生使用打字游戏软件或在线打字游戏网站进行练习。
2. 学生可以选择适合自己水平的游戏难度,并逐渐提高挑战。
步骤4:评估学生的打字技能1. 设计一些评估练习,包括打字速度和准确性的测试。
2. 为学生提供反馈和建议,帮助他们改进打字技能。
总结活动:1. 与学生讨论他们在打字游戏中的体验和收获。
2. 强调持续练习的重要性,并鼓励学生在日常生活中多加练习打字技能。
教案反思:1. 教师应提前测试打字游戏软件或在线网站的可用性和适应性。
2. 教师应根据学生的实际水平和需求,选择合适的打字游戏和练习内容。
3. 教师应鼓励学生积极参与,提供正面的激励和反馈,以增强学生的学习动力。
4. 教师应关注学生的进展,并根据需要进行个别辅导和指导。
通过本教案的实施,学生将能够逐步掌握基本的打字技能,并在打字游戏中提高准确性和速度。
同时,他们也会培养对打字的兴趣和积极性,为今后的学习和工作打下坚实的基础。
学号09750223实习报告微型计算机原理及应用课程设计报告打字游戏程序设计起止日期:2012 年1 月3 日至2012年 1 月6 日学生姓名马聪班级09电气2班成绩指导教师(签字)电子与信息工程系2012年1月05日摘要为了更好地掌握学习微机原理的知识,我们进行了这次课程实验,以完善我们的知识体系,我们通过汇编语言在PC机上完成了一个打字游戏的设计,它具有练习打字的功能。
本有游戏主要针对指法练习,并提供字母和单词两种选择。
根据用户自身情况,可以进行速度调节,以达到最佳的练习效果。
同时本游戏提供显示得分,正确率和失败个数的功能。
当失败个数超过一定个数后,游戏结束并提示是否继续。
目录一、课程设计题目 (2)二、设计思路模块划分流程图 (2)㈠设计思路 (2)㈡模块划分 (2)㈢流程图 (3)三、程序源代码 (4)四、调试过程,运行结果和出现的问题及解决 (12)1、调试结果 (12)2、在调试中碰到问题 (14)五、课程设计心得 (14)六、成绩单 (15)一、课程设计题目、内容和实现的功能字母打字游戏基本功能:0 菜单主界面由“开始”“速度调整”“暂停”“结束”“统计得分”等项组成1 按ESC键退出游戏,显示得分,正确打字数和错误打字数.二、设计思路、模块划分、流程图(一)设计思路:利用计算机控制发声的原理,来演奏乐曲的程序。
乐曲按一定的高低、长短和强弱关系组成的音调。
根据歌谱,来编写歌程序的音符表和节奏表。
组成乐谱的每个音符的频率值和持续时间是乐曲程序发声所需要的两个数据。
通过来设时间值,然后通过发声程序“*”来播放音乐。
通过键盘控制扬声器发出各种音符声音,使计算机键盘变成钢琴键盘,这是可以用它来演奏各种简单的声音。
弹奏时对应乐谱上的q音符,按下1,程序将接收到的1键的频率为262Hz送入程序中。
1、音乐播放选择从键盘上输入“1”,则播放“新年好”;从键盘上输入“q”,则退出;从键盘上输入其它字符,则等待重新输入。
java课程设计报告一打字游戏Java开发技术课程设计(打字游戏)学院:计算机与信息工程学院学号:*** ***姓名:**时间:2011年12月14日一、程序描述1.1程序设计的目的通过java开发技术课程的学习,我初步了解了如何运用java语言编写程序。
课程结束后,按老师的要求,在查找资料后,我完成了打字练习这个程序。
在这个过程中,主要达到了两个目的,一是检验和巩固专业知识,二是提高综合课堂上掌握的理论知识与处理数据的素质和能力。
通过该程序的编写,可以将我业务相结合,以检验我掌握知识的宽度、深度及对知识的综合运用能力。
1.2 程序设计的要求(1)程序的界面会随机的出现字母和数字,玩家在键盘上理相应的键后,界面上的对应的字符就会消失(2)字符下落的速度可以选择,完成一定量的字符后,显示进入下一关,下一关的速度加快(3)能统计正确与错误的字符数分别是多少(4)程序的主界面是能够给玩家第一感官的部分,主要包括程序图形区域界面、程序的显示更新界面。
1.3程序设计的环境Windows xp 操作系统、Myeclipse 编辑工具、jdkl. 6二、分析与设计2. 1游戏处理流程本次游戏设讣的处理流程如下图所示进入游戏画面单击“开始”按钮,游戏开始,字符开始随机。
根据出现的字符按相应的键,对应一个消失一个(字符)按对一定字符后将提示进入下一关,下一关的速度有所增加。
速度也可单独调节。
没有擅倒相应游戏中途欲中的键,错误的断,稍后继续数字将加一游戏单击“退出”单击“暂停”退出游戏游戏暂停再次单击开始游戏,游戏恢复游戏处理流程图2. 2需求分析2. 2. 1用户的特点打字练习具有很强的实用性,对键盘不熟悉的人均可用之练习。
这种需求同时也要求该程序具有可调节性,用户可以根据自己的水平调节速度,以提高打字水平。
2.2.2功能需求在可使用性方面,要求各个功能实现简单,操作方便,系统处理正确;整个系统恢复性能好,连接速度快,以确保系统可使用性好。
XXXX大学C#课程设计报告打字练习小游戏院(系)别专业班级学号姓名指导教师二○XX年XX月随着社会经济的发展,计算机在生活占据着越来越重要的地位,如何高效快速的使用计算机解决问题重要性尤为突出,社会竞争压力越来越大,工作与娱乐相结合更受群众喜爱。
基于以上分析,我们开发了一个打字练习的小游戏。
本游戏应用基于Visual Studio 2008平台的应用程序开发技术,采用C#作为开发编程语言,实现打字游戏的练习计算机键盘按键位置及娱乐功能。
该系统具有结构清晰、便于分布、实施简单、易于扩充、维护等特点,其功能主要是:在玩游戏的过程中练习打字,提高打字速度,熟悉键盘。
其主要特点是操作简单,娱乐性强,可自由控制难易度。
关键词:打字练习,C#编程摘要 (1)目录 (1)1 概述 (2)1.1 设计的背景和意义 (2)1.2 设计任务分工说明 (2)2 系统分析 (2)2.1 软件功能分析 (2)2.2 程序流程分析 (4)2.3 程序性能分析 (4)3 系统设计 (5)3.1 物理配置方案设计 (5)3.2 数据文件设计 (5)3.3 操作数据文件 (6)3.4 界面设计 (6)3.4 其他说明 (8)4 系统实现 (8)5 总结 (10)参考文献 (11)1 概述1.1 设计的背景和意义1.1.1 设计的背景1946年,第一台计算机在美国诞生。
之后随着社会经济的发展,计算机的作用与日俱增,计算机的高效运用决定了工作的效率及质量。
它被广泛运用于人们生活的各个方面,军事、工业、教育、农业等各个方面,从而更好的推动经济的增长。
同系列的其他打字游戏的功能主要包括熟悉字母,提高辨识、确认字母能力,特殊的还具有计时和惩罚奖励,调节游戏速度功能。
我们的打字游戏在实现以上的所有功能外还有所创新,不仅游戏方式新颖,还具有分数换取游戏次数的机制,使得游戏可玩性大大加强。
1.1.2 设计的意义随着计算机的更进一步普及,人们熟练掌握计算机运用已经成为衡量一个优秀人才的重要指标。
计算机学院计算机科学与技术专业《程序设计综合课程设计》报告(2011/2012学年第一学期)学生姓名:学生班级:学生学号:指导教师:2011年12月30日于氏打字通目录第一章课程设计目的和要求 (1)1.1 目的 (1)1.2 要求 (1)第二章课程设计任务内容 (3)第三章详细设计说明 (4)3.1 模块描述 (4)3.2 性能 (4)3.3 输入项 (4)3.4 输出项 (4)3.5 流程逻辑 (5)3.6 限制条件 (8)3.7 测试计划 (8)第四章软件使用说明 (13)第五章课程设计心得与体会 (14)附录1:参考文献 (16)附录1:程序清单 (17)第一章课程设计目的和要求1.1目的C++语言课程设计的主要目的是培养学生综合运用C++程序设计课程所学到的知识,编写C++程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。
通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C++语言程序的基本技巧,充分理解结构化程序设计的基本方法。
C++语言程序设计的主要任务时要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C++语言程序及编写设计报告。
本次课程设计是通过设计一个较为简单的“打字游戏”,进一步熟悉C++中有关各种知识的运用与掌握。
了解系统开发的需求分析、模块分析、程序流程图、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯,进一步培养完善的C++编程设计思维,为以后进行软件编程、数据库管理等深入学习打下一个牢固基础掌握并且熟练应用《C++程序设计》中所学知识。
掌握函数功能的划分方法,并运用此方法解决问题。
学会程序测试方案的制定,并且实现程序的测试。
通过此次实践,积累经验,提高分析和解决问题的能力。
1.2要求课程设计需要从整体来考虑,在大的方向下来考虑小的模块,在继续分工。
作到最小化,可执行化。
1)对于课程设计需要自己筹划一下自己如何去下手,让自己的方案能够用C++来执行。
2)对于运行结果的处理,再运行程序时可能会遇到一些其他问题,对于运行结果的处理主要是在达不到自己的期望是,就要对其进行分析。
3)错误的改正,在对于编程中错误的改正也是一重要的步骤,学会错误的改正才能更好的提高自己。
4)巩固和加深学生对C++语言课程的基本知识的理解和掌握;5)掌握C++语言编程和程序调试的基本技能;6)掌握利用C++语言进行软件设计的方法;7)提高书写程序设计说明文档的能力;8)提高运用C++语言解决实际问题的能力。
第二章课程设计任务内容打字游戏对于玩家的打字能力和反应能力都有很大帮助,游戏中玩家需要对屏幕上显出的字母、单词或句子迅速做出反应。
并且能尽自己最大的能力,在最短的时间内取得优异的成绩。
通过所学的C++编程语言知识,在Visual C++ studio 2008的语言环境中编写程序,以实现以下内容:完成“于氏打字通”的游戏,使该游戏能够实现如下功能:1.简要介绍游戏的开发背景、目的及意义;2.提示玩家该游戏的规则;3.使玩家可以根据自己的实际需要和水平选择关卡;4.使玩家能够在需要时退出;5.将玩家结束游戏的时间与程序中已设时间的作比较来判断玩家的成绩。
第三章详细设计说明3.1模块描述该程序整体较易理解,共分三个模块:头文件,源文件和资源文件,所以总体来看层次有序,简单易懂。
3.2性能该程序具有操作简单,无需组建等工序,直接编译、连接即可运行。
操作简单,根据提示即可完成游戏的全过程。
3.3输入项只需在游戏过程中按照提示输入,开始、选择关卡,重新开始或者退出即可,以上输入为数字输入,可按照提示输入相应数字。
3.4输出项系统会自动调用资源文件中3个txt文本文件中的数据,数据为从左到右依次读取,当游戏结束时,系统会将玩家结束游戏的时间与程序中已设时间的作比较来判断玩家的成绩。
3.5流程逻辑该程序采用循环套循环的方式,结构简单易懂,但是较为繁琐。
主要思路为,屏幕上出现字母、单词、句子,系统判断玩家输入的字母是否是屏幕显示的字母,另外,当玩家将库中所有字母打完后,系统在判断时间是否超过系统的预设时间,最后给玩家输出成绩。
主要流程图如下:主流程如图(1):图(1)图(2)打字流程图(3)图(3)打字流程图(4)图(4)3.6限制条件该程序必须在Visual C++ studio 2008环境中运行。
在玩家输入错误后系统会自动退出没有提醒信息。
由于程序用的循环较多并且程序较为繁琐,尤其是随机抽取牌的时候,循环次数较多,所以程序可能有时运行较慢,玩家需要等待,但是时间是非常短的。
3.7测试计划分别有意输入想要的结果,看其是否能够运行。
如输入结果,分别为:游戏开始、选择关卡、开始游戏、输出成绩、退出等。
游戏开始游戏规则提示,如图(4):图(4)选择关卡,如图(5):图(5)进行游戏,如图(6):图(6)运行结果如图(7):图(7)运行结果如图(8):图(9)运行结果如图(10):图(10)图(11)第四章软件使用说明该程序必须在Visual studio 2008环境中运行,程序具有操作简单,无需组建等工序,直接编译、连接即可运行。
操作简单,根据提示即可完成游戏的全过程。
另外,编码操作完成后,先静态检查一下有没有语法错误,然后进行编译,更深一步检查语法错误。
待编译通过时,运行程序,观察是否能够正常运行,如果有问题,再去修改源程序,直至达到了预期的效果。
第五章课程设计心得与体会通过这次课程设计的实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C++语言这门课程开始,已发现程序设计的乐趣,在学习C++语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。
在实际操作过程中犯的一些错误还会有意外的收获,感觉实训很有意思。
在具体操作中对这学期所学的C++语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C++语言具有的语句简洁,使用灵活,执行效率高等特点。
发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。
通过实际操作,学会C++语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。
深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”……的寓意。
同时在此希望以后应多进行这样的实训,加长设间,培养学生独立思考问题的能力,提高实际操作水平。
对于课程设计一开始有一种一头雾水的感觉,它是干什么的,我要怎么做。
拿下来题目之后,觉得以我的能力根本就不可能实现这个题目的要求,可是慢慢我发现它并非不可实现。
只要耐心的分析它要的功能需要什么函数实现,就可以做到。
于是我就着手做这个程序,可是它也并不像我想得那么简单。
在设计中刚开始出现了一百多个错误,令我一头雾水,但是在经过几天的检查与修改后,能够编译出来,这令我非常的高兴,但是运行结果有点出乎我的意料,所运行的结果,不能达到所期望的,但是经过一番修改后,能够输出,并且能进行游戏,这让我喜出望外。
另外,这次的课程设让我认识到很多C++的内在要素:1.程序设计语言是程序设计的工具。
这是我通过两周课程设计深深体会的一点,并且发现如果想有效的进行程序设计,正确地应用程序设计语言表达算法,必须准确的运用程序设计语言,掌握其语法知识。
2.学习程序设计必须重视时间环节,多读程序,多编写程序,多上机实践。
这次的课程设计就使得课堂教学、式样和实践之间的关系更为紧密。
对我的学习有着很深远的影响。
3.我发现作为一个程序设计人员,需要掌握面向过程的程序设计,也要掌握面向对象的程序设计。
从前,人们通过C++语言学习面向过程的程序设计,再通过C++学习面向对象的程序设计。
其实C++并不是纯粹的面向对象的语言,它是一种混合语言。
学习C++既可以编写面向过程的程序,也可以编写面向对象的程序。
这一点是我通过可课程设计所的实践发现的。
4. 深切的感受到了C++语法的复杂,内容的繁多。
发现如果对它缺乏系统的了解,将难以真正的运用,编出来的程序错误百出。
[1]谭浩强著.C++程序设计.北京:清华大学出版社,2004。
[2]谭浩强著.C++程序设计题解与上机指导.北京:清华大学出版社,2005。
Main.cpp#include <iostream>#include "welcome.h"#include "specialfunc.h"#include "shixian.h"using namespace std;int main(){//welcome();if(!judge(shixian(choose()))){exit(0);}gotoxy(15,15);cout<<"是否继续游戏?(Y/N)...";char ch=0;while(ch=toupper(getchar())){if(ch=='Y'){if(!judge(shixian(choose())))exit(0);else{gotoxy(15,15);cout<<"是否继续游戏?(Y/N)...";}}else if(ch=='N')break;}return 0;}Shixian.hint shixian(int filenum);int judge(int ntime);Shixian.cpp#include <iostream>#include <fstream>#include "specialfunc.h"#include <conio.h>#include "welcome.h"#include <time.h>using namespace std;//#define MAXLINE 18#define BEGINLINE 4#define BEGINCOLUM 6int shixian(int filenum){//time_t ntime=0;ntime=time(NULL);frame();char filename[50]={0};sprintf_s(filename,"data\\%d.txt",filenum); ifstream ifsRead(filename);char buffer1[200]={0};char buffer2[200]={0};char * pBuf1=buffer1;char * pBuf2=buffer2;if(ifsRead){memset(buffer1,0,sizeof(buffer1));memset(buffer2,0,sizeof(buffer2));ifsRead.getline(buffer1,sizeof(buffer1)-1);ifsRead.getline(buffer2,sizeof(buffer2)-1);char ch=0;int nline=BEGINLINE;int ncolum=BEGINCOLUM;while(ifsRead){//gotoxy(ncolum,nline);cout<<buffer1;if(nline>=MAXLINE||ifsRead.peek()==EOF){//如果是显示区最后一行,则在打对字符后直接削去,最后在显示区第一行显示下一句话gotoxy(5,nline);while(*pBuf1!=0){ch=_getch();if(ch==*pBuf1){gotoxy(ncolum,nline);cout<<' ';pBuf1++;ncolum++;}}frame();nline=BEGINLINE;gotoxy(BEGINCOLUM,nline);cout<<buffer2;}else{//在下两行显示下一句nline+=2;gotoxy(ncolum,nline);while(*pBuf1!=0){ch=_getch();if(ch==*pBuf1){gotoxy(ncolum,nline);cout<<*pBuf2;gotoxy(ncolum,nline-2);cout<<' ';pBuf1++;pBuf2++;ncolum++;}}}memset(buffer1,0,sizeof(buffer1));//strcpy_s(buffer1,buffer2);memcpy(buffer1,buffer2,sizeof(buffer1));memset(buffer2,0,sizeof(buffer1));ifsRead.getline(buffer2,sizeof(buffer2)-1);pBuf1=buffer1;pBuf2=buffer2;ncolum=BEGINCOLUM;}}else{cout<<"error open file"<<endl;exit(0);}return int(time(NULL)-ntime);}#define MAXTIME 60//判断是否闯关是否成功int judge(int ntime){//if(ntime>MAXTIME){gotoxy(15,19);cout<<"你太慢了!!!受不了你了!!!BYE!!!";gotoxy(15,21);cout<<" 按任意键退出吧!!!";_getch();return 0;}else{gotoxy(15,19);cout<<"哎呦!!!还不错哦!!!";gotoxy(15,21);cout<<" 按任意键继续吧!!!";_getch();return 1;}}Welcome.h//int welcome();int frame();int choose();Welcome.cpp#include <iostream>#include "welcome.h"#include "specialfunc.h" using namespace std;//chooseint choose(void){//frame();gotoxy(0,5);cout<<" 1. "<<endl<<endl<<" 2. "<<endl<<endl<<" 3. "<<endl;gotoxy(20,15);cout<<"请输入您的选择:";char ch=0;while(ch=getchar()){if(ch>='1'&&ch<='3')return ch-'0';}}//welcomeint welcome(void ){frame();gotoxy(0,2);cout<<" "<<endl;cout<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" ** **"<<endl;cout<<" * *"<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" !@#¥…&* 于氏打字通 *&…¥#@ !"<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" * *"<<endl;cout<<" 按任意键开始游戏...";_getch();return 0;}//frameint frame(){clrscr();//headfor(int j=0;j<2;j++){for(int i=0;i<76;i++)cout<<'*';cout<<endl;}cout<<" 欢迎使用于氏打字通 "<<endl;//borderfor(int i=0;i<24;i++){gotoxy(76,i);cout<<"**";}//endgotoxy(0,22);for(int j=0;j<2;j++){for(int i=0;i<76;i++)cout<<'*';cout<<endl;}gotoxy(0,2);return 0;}Specialfunc.h#include <windows.h>#ifndef STDIO#define STDIO#include <iostream>using namespace std;#endif#include <conio.h>void gotoxy(int x, int y);void clrscr(void);void OboOutput(char *pstr,int interval,int maxchar);Specialfunc.cpp#ifndef SPECIALFUNC#define SPECIALFUNC#include "specialfunc.h"#endif//gotoxy function ,set the cursor to(x,y)void gotoxy(int x, int y){COORD coord;coord.X = x;coord.Y = y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);}//clrscr funciont,implement clear screen void clrscr(void){system("cls");}。