VC++课程设计-小学生算术练习软件.doc
《VC++课程设计-小学生算术练习软件.doc》由会员分享,可在线阅读,更多相关《VC++课程设计-小学生算术练习软件.doc(20页珍藏版)》请在沃文网上搜索。
1、 NO.20 小学生算术练习软件1.课程设计的目的Visual C+程序设计是计算机科学与技术专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。VC+程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。要求学生在设计指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题对此能够较好地理解和
2、掌握,能够进行简单分析和判断,能编写出具有良好风格的程序,掌握VC+程序设计的基本技能和面向对象的概念和方法,了解菜单、视图/文档、数据库等编程技术。同时培养学生进行分析问题、解决问题的能力,培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。提高和加强自己的计算机应用与软件开发能力,使自己由初学者向专业的程序员过渡。培养自己独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势。学习和掌握Visual C+程序设计方法以及上机调试技巧,为今后学习其它专业课程打好坚实的基础。检测自己在这一学期对MFC的学习及掌握情况。知道自己的不足,
3、及时的弥补,也为自己以后如何制定学习计划做一铺垫。VC+程序设计课程设计是计算机科学与技术专业的VC+程序设计课程的综合性实践环节。VC+程序设计是一门实用性很强的学科,是进行软件开发的主要工具,只有进行实际操作,才能将理论知识和实际应用有机的结合起来,锻炼学生分析解决实际问题的能力,提高学生实际运用的能力,为学生毕业设计,日后工作中的软件开发打下良好的基础。2.设计方案论证2.1需求分析基于MFC设计一个小学生进行四则运算的算术练习软件,要求用户界面方便、友好。软件需要完成如下功能:小学生上机练习时,可以根据自身情况选择不同的难度题目进行练习;每次计算机为小学生出多道题目让学生作答,根据完成
4、答案的正确率与完成时间给出不同的分数;设立一个计时器,记录完成题目所用时间;计算完题目后,给出做题的分析结果,包括对错题数,每道题做对所使用的计算机会,完成题目所用时间以及总成绩等详细信息。2.2设计思路小学生上机练习时,可以选择三个练习等级A,B,C中的一种,其中A级为一位数加减乘除运算,B级为两位数加减乘除运算,C级为三位数加减乘除运算。每次练习计算机为小学生出10个加减乘除运算题目(10道题中分布有加减乘除题目),每个题目有三次计算机会,第一次算对加10分,接着出第二题目;第一次不对,第二次出同样的题目,若算对加8分,接着出第二个题目,若不对再给第三次机会,作对加5分,做不对不加分。每题
5、只有三次计算机会,依此类推。设立一个计时器,记录10道题目所用时间。计算完10个题目后,给出做题分析结果,包括对错题数,每道题做对所使用的计算机会,10道题目所用时间,总成绩。2.3设计方法根据需求,设计该软件的主要功能如下:(1)能用于小学生的四则运算练习,提高小学生的计算能力;(2)小学生上机练习时,可以选择三个练习等级A,B,C中的一种,其中A级为一位数加减乘除运算,B级为两位数加减乘除运算,C级为三位数加减乘除运算;(3)每次练习计算机为小学生出10个加减乘除运算题目(10道题中分布有加减乘除题目),每个题目有三次计算机会(第一次算对加10分,接着出第二题目;第一次不对,第二次出同样的
6、题目,若算对加8分,接着出第二个题目;第二次若不对再给第三次机会,作对加5分,做不对不加分。每题只有三次计算机会,依此类推); (4)该软件设有计时器,能查看小学生做完10道题目所花的总时间,用于综合评分;(5)学生做完题后可以点击“评分说明”菜单里的“查看成绩”,查看该次的成绩,成绩单里包括每题的表达式,三次的答案,对错题数,答题时间,以及评分标准等;(6)该软件利用了文件存储,能将每个等级的最佳成绩存在文件中,以便和其他用户进行对比,提高成绩;(7)在答题的过程中,如果想回到主菜单重新进行选择,则只需点击“操作”菜单里的“回到主菜单”即可。如果想退出程序,则只需点击“退出软件”即可。2.4
7、功能模块设计2.4.1主对话框的设计主对话框包含菜单栏和主窗口。其中菜单栏包含三个菜单:软件说明、评分说明、意见反馈。“软件说明”菜单包含“软件简介”、“退出软件”两个子菜单。其中“软件简介”用以调用软件简介对话框,使新用户对该软件熟悉,减少用户使用的熟悉期;“退出软件”用以从界面正常退出该软件,退出前用文件保存最佳成绩。“评分说明”菜单包含“题型设置”、“查看成绩”、“最佳成绩”三个子菜单。其中“题型设置”向用户介绍该软件的题型、题量、等级、出题方式、方法等,方便用户正确做出选择,能更好的利用该软件;“查看成绩”用于在用户做完10道题后查看所得分数。如果没有答题或答题中途返回主对话框,则用于
8、存储信息的链表为空,不能显示成绩;“最佳成绩”向现用户展示以往用户的最佳成绩,用于比较,可以起到激励的作用,同时,使软件更加实用和友好。“意见反馈”菜单提供了软件制作者的联系方式,可以让用户和编程者进行交流,方便编程者不断对软件进行改进。主窗口中的单选按钮用于向用户展示本软件的题型,方便用户选用。该对话框的测试按钮(即“开始”),调用了GetTickCount()函数,用于实现计时器的功能。2.4.2答题对话框的设计答题窗口由主对话框进行调用,连续调用十次。每次调用所得的题目都是由计算机随机出的,利用了rand()函数。该对话框的最核心函数即为提交按钮的响应函数,当用户完成运算,将答案输入到光
9、标所在的文本框即可进入下一次调用,同时,在答完题后按回车也可调用。该函数实现了让用户有三次答题机会的功能,但每次的给分不同。在答对的情况或者三次都答错的情况下,利用链表将数据存在内存中,方便显示成绩单。该链表采用的是头插法。当用户未向答题框输入答案单击“下一题”按钮或回车时,系统弹出“请输入答案!”的提示框提醒用户输入答案,避免因点击过快造成的错误而影响最终成绩的情况发生。该对话框上附有操作按钮,方便用户在答题过程中临时变换所选题目等级,以及随时正确退出该软件,使用户用得方便自如。在答完十道题后自动调用成绩单对话框,便于用户查看成绩。2.4.3成绩单对话框的设计该对话框将用户所做的十道题的做题
10、细则完全的显示出来。用户做每道题的时候都有三次答题机会,成绩单会将每道题的三次答案以及最终得分都显示在列表中,一目了然,方便用户进行总结和纠错。列表的右侧附有该软件的评分标准,供用户参考,帮助用户提高成绩。下方列有对错题数、所用总时间、总成绩以及以往用户在所选等级段的最佳成绩,方便用户进行比较。浏览完成绩单后点击“确定”按钮或直接关闭成绩单返回主对话框界面。2.4.4主要数据结构由于该软件运行完毕后还要在成绩单中显示每次做题的细节,因此,必须用数据结构将每道题目的所有数据都存起来。该软件采用了类链表这一数据结构来存数据。用类CExpression来存每道题目的所有数据,包括:表达式,三次做题答
11、案,正确答案、该题得分等信息。2.4.5文件存储文件的存储格式主要有文本格式和二进制格式。文本格式的一个显著优点是可以用文本编辑软件(如记事本)打开文件进行观察和读取。与文本格式不同,二进制格式不能简单的将文件打开编辑。但二进制文件读取速度快,并且能够利用 MFC库进行序列化,是主流的文件输出格式。本软件采用的是文本格式。用于存取各个用户的最佳成绩,方便不同用户之间进行比较,交流。2.5类与函数的设计与实现2.5.1对话框类(1)主对话框类class CDXDDlg : public CDialog/ Constructionpublic:CDXDDlg(CWnd* pParent = NUL
12、L);/ standard constructorafx_msg void OnExitMain();/AFX_MSGDECLARE_MESSAGE_MAP();(2)答题对话框类(用于用户的练习)class CCalculateDlg : public CDialog/ Constructionpublic:CCalculateDlg(CWnd* pParent = NULL); / standard constructorafx_msg void OnReturn();afx_msg void OnExit();/AFX_MSGDECLARE_MESSAGE_MAP();其中,OnButt
13、onHand() (提交函数,用于处理答案)为核心函数。使用户能有三次答题机会。在该函数里还运用了链表的头插法来存数据。在初始化函数内运用了生成随机表达式的算法。具体如下:第一个数、第二个数以及运算符都有rand()函数随机生成,再将这三个元素组合起来,加以判断,如果是一个小学生范围内的算术题,则将它作为一道题目,否则,再出一道。该类里还编写了对话框的刷新函数RefreshDlg(),在用户答错的情况下刷新对话框。(3)成绩单对话框类(用于将数据显示出来)class CRecordDlg : public CDialog/ Constructionpublic:CRecordDlg(CWnd*
14、 pParent = NULL); / standard constructorafx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);/AFX_MSGDECLARE_MESSAGE_MAP();2.5.2表达式类(用于存题目信息)class CExpression public:int m_k1;int m_k2;char m_operator;int m_end;int m_end1;int m_end2;int m_end3;int m_count;CExpression *m_next;;2.6系统总体结构系统对话
15、框之间的调用关系,如图1所示。主对话框(CDXDDlg)软件简介对话框(CIntroductionDlg)题型设置对话框(CSettingsDlg)答题对话框(CCalculateDlg)联系方式对话框(CLinkDlg)最佳成绩对话框(CBestDlg)成绩单对话框(CRecordDlg)图1 系统对话框调用图答题过程主要运算流程图,如图2所示。开始判断级别判断i是否大于10答题成绩单B级,i=1i10i10i10i=10i=10i+i+图2 答题过程流程图3.设计结果与分析利用微软公司的C+开发工具Microsoft Visual C+ 6.0创建MFC应用程序,添加各种对话框资源、菜单项
16、,编写代码完成软件的各种功能,软件经过检查修改无误后运行通过操作各个菜单项以及对话框按钮,各部分的功能与菜单提示一致。(1)运行软件,主对话框及各功能菜单如图3、4、5、6所示。图3 主对话框图4 “软件说明”子菜单图5 “评分说明”子菜单图6 “意见反馈”子菜单(2)选择主对话框界面的题型分级,点击“开始”按钮,开始答题,满足用户需求,实现随机出题,答题完成,单击“下一题”或回车调用下一道题目,如图7所示。图7 答题对话框当答案框中输入为空时,弹出对话框提示输入答案,如图8所示。图8 无答案提示框当答题答案回答错误时,弹出对话框提示回答错误并显示错误次数,每道题有3次答题的机会,3次答错后进
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 课程设计 小学生 算术 练习 软件
