打字练习软件课程设计报告_第1页
打字练习软件课程设计报告_第2页
打字练习软件课程设计报告_第3页
打字练习软件课程设计报告_第4页
打字练习软件课程设计报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、燕山大学专业综合设计报告题目 打字练习软件学院(系) 信息科学与工程学院 年级专业 07 计算机软件 2 班 学生姓名 李成武 指导教师 陈子阳 日 期 2010 年 10 月 13 日 目录目录1 概述概述.11.1 软件开发环境、工具和方法.11.2 软件功能简介.12 软件功能设计软件功能设计.22.1 系统的总体功能描述.23 编码设计编码设计.33.1 打字练习部分.33.2 数据库部分.53.3 FLASH部分 .73.4 主要模块实现.84 测试测试.104.1 黑盒测试.12 白盒测试.135 总结总结.15参考文献.161 概述 软件开发环境、工具和方法打字练习软件是基于 W

2、indows 操作平台,以 Visual Studio 2005 为开发环境,利用 MFC 编写的。可在 Windows XP 操作系统中安全运行。本软件界面的设计主要通过 Visual C+提供的多种控件来构建的,例如, RicheEdit2.0 控件用来实现显示和输入字符串;Shockwave Flash Object 控件打开Flash 打字游戏;List Control 控件读取并显示数据库内容等等。本软件采用 Access 2003 作为数据库,用来记录软件使用者的部分信息,如姓名、字母打字得分和数字打字得分等数据。1.2 软件功能简介本软件对打字练习方法经过合理的安排,使之形成完善

3、的应用系统。下面将介绍此打字练习软件的基本功能:(1)教程功能这是打字入门的基础。正确的打字姿势习惯关于整个打字练习的成败。这个功能将为那些初学打字或者打字姿势不正确的人提供一个正确的指导,为形成良好的打字习惯奠定坚实的基础。(2)练习功能即提供给使用者进行打字练习,使其熟悉键盘上相应字母的指法并正确的打出相应的字母或者数字。由于键盘可大致分为两个部分,一个是主键盘区,另一个是数字键盘区。熟悉整个键盘并能熟练的进行盲打,使我们设计此软件的宗旨。因此,练习功能必须包含字母练习功能和数字键盘区练习。 (3)游戏功能通过在窗口中调入Flash游戏,给使用者一种寓教于乐的氛围,游戏娱乐的同时也熟悉了指

4、法,为枯燥的打字练习平添许多趣味。因此,这项功能的需要也就不言而喻了。(4)排行榜功能通过Access数据库对打字成绩进行有选择的录入,增添和修改,帮助使用者了解自己的程度和与理想程度的差距,从而刺激使用者再接再厉,打破记录再创佳绩。2 软件功能设计2.1 系统的总体功能描述该部分主要任务是确定软件应该完成的工作,打字练习软件的主要功能应该为:(1) 教程功能,帮助打字初学者掌握正确的姿势、指法和练习方法。(2) 练习功能,提供练习功能,帮助使用者熟悉字母和数字的指法。(3) 游戏功能,寓教于乐,打字娱乐两不误,让打字变轻松。(4) 排行榜功能,记录本软件练习者的最好记录。具体功能,如图 2-

5、1 所示图 2-1 系统功能图打字练习软件登陆模块教程模块练习模块模式一练习模块模式二游戏模块排行榜字母练习数字练习字母练习数字练习3 编码设计3.1 打字练习部分(1)基本原理添加两个重叠的 RichEdit2.0,然后设置行高为字体高度的一倍。两个错开,一个用于文本显示,一个用于用户输入。(2)具体实现/ /显示随机产生的数字或字母组成的字符串srand(time(NULL); /设置产生随机种子的种子TCHAR buffer5=0; /临时的存储器for (int i=0;iReplaceSel(letter1,FALSE);/设置字体的函数void CLetterDlg:setFont

6、(CRichEditCtrl &m_RichEdControl)CHARFORMAT cf;ZeroMemory(&cf, sizeof(CHARFORMAT);cf.cbSize = sizeof(CHARFORMAT);cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;cf.dwEffects = 0;cf.yHeight = 900;/文字高度cf.crTextColor = RGB(0, 0, 255); /文字颜色lstrcpy(cf.szFaceNam

7、e ,_T(GulimChe);/设置字体m_RichEdControl.SetSel(0, -1); /设置处理区域,0 到-1 为全部设置rmat(cf);/设置行高的函数void CLetterDlg:setLineHeight(int iHigh, CRichEditCtrl &m_RichEdControl)UpdateData(TRUE); PARAFORMAT2 pf2; pf2.cbSize= sizeof(PARAFORMAT2); pf2.dwMask= PFM_LINESPACING; pf2.dyLineSpacing = iHigh; = 5; m_RichE

8、dControl.SetParaFormat(pf2);/设置输入过程中的每一个字符的颜色及字体的函数void CLetterDlg:setColor(int n, COLORREF color, CRichEditCtrl &m_RichEdControl)CHARFORMAT cf; DWORD dwMask = m_RichEdControl.GetSelectionCharFormat (cf); cf.dwMask = CFM_FACE|CFM_SIZE|CFM_COLOR; m_RichEdControl.SetSel(n,n+1); cf.crTextColor =col

9、or; m_RichEdControl.SetSelectionCharFormat(cf); 重新 PreTranslateMessage()函数,以成功相应键盘消息。BOOL CLetterDlg:PreTranslateMessage(MSG* pMsg)SendMessage(pMsg-message,pMsg-wParam,pMsg-lParam);return 0;/return CDialog:PreTranslateMessage(pMsg);添加 OnChar()函数,以随时对键盘输入的字符进行同步处理,判断是否输入正确,并根据结果改变字体颜色和大小。利用 SetTimer(

10、)函数按“开始”键后定时,在 OnTimer()函数中进行计时运算,并在其中实现倒计时,打字速度和结果的显示。3.2 数据库操作 数据库连接HRESULT hr; try hr = m_pConnection.CreateInstance(ADODB.Connection);/创建Connection对象 if(SUCCEEDED(hr) hr=m_pConnection-Open(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:StaffInfo.mdb,adModeUnknown);/*打开连接*/ catch(_com_error e)/捕捉

11、异常 CString errormessage;errormessage.Format(TEXT(连接数据库失败!rn错误信息:%s),e.ErrorMessage();AfxMessageBox(errormessage);/显示错误信息查询数据库 _variant_t vname;CString temp=c_Typing;m_pRecordset.CreateInstance(ADODB.Recordset);m_pRecordset-Open(SELECT * FROM TypingExe,_variant_t(IDispatch*)m_pConnection,true),adOpen

12、Static,adLockOptimistic,adCmdText);BOOL test=0;while (!m_pRecordset-adoEOF)vname= m_pRecordset-GetCollect(PlayerName);CString tem=vname.bstrVal;int flag=temp.Compare(tem);if (flag=0)test=1;break;m_pRecordset-MoveNext();添加记录 CString str_score1=score1; CString str_name1=c_Typing; CString temp; temp.Fo

13、rmat(TEXT(SELECT * FROM TypingExe WHERE PlayerName=%s),str_name1); m_pRecordset.CreateInstance(ADODB.Recordset); m_pRecordset-Open(temp.GetBuffer(), _variant_t(IDispatch*)m_pConnection,true), adOpenStatic,adLockOptimistic,adCmdText); temp.ReleaseBuffer(); m_pRecordset-PutCollect(_variant_t(Numscore)

14、,_variant_t(str_score1); m_pRecordset-Update();3.3 Flash 游戏模块BOOL CGameDlg:OnInitDialog()CDialog:OnInitDialog();TCHAR strCurDrt500;int nLen = :GetCurrentDirectory(500,strCurDrt);if( strCurDrtnLen!= )strCurDrtnLen+ = ;strCurDrtnLen = 0;CString strFileName = strCurDrt;strFileName += 打字游戏.swf;m_Game.Lo

15、adMovie(0,strFileName);m_Game.Play();return TRUE; / return TRUE unless you set the focus to a control/ 异常: OCX 属性页应返回FALSE3.4 主要模块实现 登录模块用户登录后,可以直接输入添加新用户,也可选择旧用户进入。图3-1 系统登录界面主界面,是进入各个更能模块的入口。如图3-2所示:图 3-2 主界面 教程模块给予打字初学者姿势、指法、方法的指导,如图3-3所示:图3-3 教程模块4 练习模块可从字母打字练习和数字打字练习二者选一,正确显绿色,错误显红色。图3-4 练习模块一图

16、3-5 练习模块二5 游戏模块通过flash控件调入一个SWF格式的flash游戏。图3-6 游戏模块6 排行榜模块图3-7 排行榜模块 4测试4.1 黑盒测试黑盒测试也称为功能测试,目的是监测系统是否满足功能设计的要求。黑盒测试把软件看成一个黑盒子,只关心功能是否达到要求,接口的数据是否正确,不关心程序的内部结构是什么,测试依据是需求说明书。黑盒测试主要检查下列几类错误:不正确或遗漏的功能;界面错误;数据结构或外部数据库访问错误;性能错误;初始化和终止条件错误等等。 等价分类法等价分类法是把根据程序输入的数据集合,按输入条件将其划分为若干等价类每一等价类设计一个测试用例,这样既可大大减少测试

17、的次数又不错过发现问题的机会。因此等价分类法的关键是如何利用输入数据的类型和程序的功能说明划分等价类。例如,输入字母时,却输入其他字符,报错,如图4-1。登陆时用户名为空,报错。 如图4-1 如图4-2 边界值法边界值是软件最容易出错的地方。因此,边界值法就是有意选择边界值作为测试用例,在程序中运行,就很容易发现大量错误问题。如,练习暂停时,误点了重新开始,以及换页是弹出提示。 如图 4-3 如图 4-4 如图 4-54.2白盒测试白盒测试与黑盒测试相反,重点侧重于测试程序的结构,即用解剖的方法、透视的方法了解程序的结构,从而发现程序存在的问题和错误。白盒测试是一种针对程序细节进行的测试,测试

18、人员可以通过测试不同的逻辑路径来确定程序与需求设计期望值是否一致。白盒测试应该根据程序的控制结构设计测试用例,并遵守如下原则: 使模块中每一独立的路径至少执行一次。 使所有判断的每一分支至少执行一次。 使每一循环都在边界条件和一般条件下都至少各执行一次。 测试所有内部数据结构的有效性。 练习模块一,测试如图 4-6 图 4-6 练习模块一测试 统计信息模块测试此模块主要测试客房使用情况饼状图,测试结果如图 4-3 所示:图 4-7 练习模块二测试5 总结打字练习,是电脑使用者的入门基础。只有拥有熟练的打字技能才能让电脑成为我们生活和工作中的得力助手。为此,此打字练习软件,应运而生。现在打字练习软件的设计工作已经基本完成,其功能主要如下:1 打字练习功能此练习功能主要是实现字母序列和数字序列的打字练习,如果在此阶段本人技能上有突破的话或许会实现英文和中文打字练习功能。2 游戏功能此功能提供给使用者一种寓教于乐的氛围,游戏娱乐的同时也熟悉了指法,为枯燥的打字练习平添许多趣味。3 排行榜功能通过对使用者的最好记录的录入,帮助使用者了解自己的打字练习的进度,鼓舞其打字练习的信心。这份报告记录了我独立设计一个对我的水平来说较大的一款软件的整个过程。在

温馨提示

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

评论

0/150

提交评论