c专业课程设计实验报告.doc
《c专业课程设计实验报告.doc》由会员分享,可在线阅读,更多相关《c专业课程设计实验报告.doc(10页珍藏版)》请在咨信网上搜索。
中南大学 本科生课程设计(实践)任务书、设计汇报 (C++程序设计) 题 目 时钟控件 学生姓名 指导老师 学 院 交通运输工程学院 专业班级 学生学号 计算机基础教学试验中心 9月7日 《C++程序设计基础》课程设计任务书 对象:粉冶、信息、能源、交通工程试验 2101学生 时间:.6 2周(18~19周) 指导老师:王小玲 1. 课程设计任务、性质和目标 本课程设计是在学完《C++程序设计基础》课程后,进行一项综合程序设计。在设计当中学生综合“面向对象程序设计和结构化程序设计”思想方法和知识点,编制一个小型应用程序系统。经过此设计深入提升学生动手能力。并能使学生清楚知道开发一个管理应用程序思想、方法和步骤。 2. 课程设计配套教材及参考书 l 《C++程序设计》,铁道出版社,主编 杨长兴 刘卫国 。 l 《C++程序设计实践教程》,铁道出版社,主编 刘卫国 杨长兴。 l 《Visual C++ 课程设计案例精编》,中国水力电力出版社,严华峰等编著。 3. 课程设计内容及要求 (1) 自己任选一个题目进行开发(如画笔、游戏程序、练习打字软件等),要求利用MFC 工具操作实现。 (2) 也可选一个应用程序管理系统课题(如:通讯录管理系统;产品入库查询系统;学生成绩管理;图书管理等); 设计所需数据库及数据库中数据表,建立表之间关系。 设计所选课题系统主封面(系统开发题目、作者、指导老师、日期)。 设计进入系统各级口令(如系统管理员口令,用户级口令)。 设计系统主菜单。要求含有下列基础功效: l 数据浏览和查询 l 数据统计 l 数据多种报表 l 打印输出 l 帮助系统 多个形式窗体设计(最少有查询窗体、输入窗体) 注意:开发应用程序工作量应确保在2周时间完成,工作量不能太少或太多。能够2人合作,但必需将各自分工明确。 4. 写出设计论文 论文基础内容及撰写次序要求: l 内容摘要 l 系统开发设计思想 l 系统功效及系统设计介绍 l 系统开发体会 论文基础格式要求: l 封面,见附件1 l 正文,见附件2 考评方法和评分措施 l 出勤考评成绩占总成绩20%。 l 设计结果评价总总成绩60%。 l 实践论文评价占总成绩20%。 6月6日 时钟控件 摘要:使用vc++6.0编写一个模拟时钟程序,此程序在屏幕左方有一个指针式钟面,右方有两个矩形框,上面以数字方法显示日期和时间,该时间应和指针显示时间一致,下方矩形框作为秒表。用菜单选项或按钮设置时间和秒表。时间无须和机器系统时间相同,可任意设置。 关键词:c++程序设计、mfc[.exe]、面向对象、时钟、秒表 一、 时钟程序开发设计思想 该程序设计关键包含到知识点有:时钟指针运动算法、屏幕重绘方法、定时器消息、鼠标消息、菜单命令、对话框、画笔/画刷、显示文字、修改程序图标等。其中最关键是指针运动算法和屏幕重绘方法应用。 其中,在设计表盘指针时候,因为不管何种指针,每次转动均以π/30弧度(一秒角度)为基础单位,且全部以表盘中心为转动圆心。计算指针端点(x, y)公式以下: x =圆心x坐标 + 指针长度 * cos (指针方向角) y =圆心y坐标 + 指针长度 * sin (指针方向角) 而指针长度是指自圆心至指针一个端点长度(是整个指针一部分),因为指针可能跨越圆心,所以一个指针需要计算两个端点。其次,三个指针运动是相关联,秒针转一圈引发分针运动一格,分针转一圈引发时针运动一格,所以需要使用一个定时器消息来处理指针运动。若用三个定时器消息分别处理时针、分针和秒针运动,就会使问题复杂化且不易实现三个指针联动正确规律。采取一个定时器消息能够很轻易实现指针联动算法。代码编写当中能够使用我们所学过if语句来实现指针联动。 因为屏幕重绘速度很快(50 ms一次),假如采取全屏删除式重绘则闪烁十分显著,显示效果不佳。本程序采取非删除式重绘,假定指针将要移动一格,则先采取背景色(这里是白色)重绘原来指针以删除原来位置指针,再采取指针颜色在目前位置绘制指针;假如指针没有动,则直接绘制指针。 另外,秒表采取是单独定时器消息控制。 二、 时钟功效及程序设计介绍 1、系统功效介绍 (1)左边部分是一个圆形表盘,右边部分上面是一个数字式时钟,右边下面是一个秒表。 (2)圆形表盘时针、分针以后秒针运动规律正确且即使重合在一起也能清楚进行识别;数字式时钟能够显示年、月、日、时、分、秒等数据。时间显示和指针式时钟显示一致;秒表显示窗中显示从0开始时间,单位为百分之一秒。再次按下秒表控制按钮后计时停止,该窗口显示累计时间。 (3)按下设置时间菜单项可弹出一对话框,用于设置目前时间和日期。 (4)含有一个美观大方图标和个性帮助信息。 2、程序设计介绍 (1)首先在mfc AppWizard中生成一个名为Clock单文档程序框架。然后在classview中修改cclockapp中lnitlnstance[]中代码,去掉单文档窗口中上面和下面部分工具栏,使得界面愈加美观。然后修改resourceview中dialog和version下面信息,添加、修改程序图标和定制个性化帮助信息。 (2)编辑项目标菜单资源,在主框架窗口主菜单(IDR_MAINFRAME)中添加一个名为“时钟控制”下拉菜单。在“时钟控制”菜单中添加三个菜单选项“开启时钟”、“停止时钟”和“时间设置”。并在菜单属性项中设定“开启时钟”菜单ID标号为ID_START,“停止时钟”菜单ID标号为ID_STOP,“时间设置”菜单ID标号为ID_SETTIME。 (3)利用ClassWizard为视图类添加菜单命令处理函数。进入ClassWizardMessage Maps选项卡,选择Class Name项为CClockView类,在Object IDs列表框中分别选择新添加菜单选项ID,在Messages列表框中选择COMMAND,按下Add Function按钮添加组员函数。ClassWizard会为“开启时钟”、“停止时钟”和“时间设置”菜单选项添加对应消息响应函数OnStart ( )、OnStop ( )和OnSettime ( )。 (4)利用ClassWizard为视图类添加定时器和鼠标消息处理函数。进入ClassWizardMessage Maps选项卡,选择Class Name项为 CClockView类,在Messages列表框中分别选择定时器消息WM_TIMER和鼠标消息WM_LBUTIONDOWN,按下Add Function按钮添加组员函数。ClassWizard会添加对应定时器和鼠标消息响应函数OnTimer和OnLButtonDown。 (5)使用Developer Studio菜单Insert / Resource…选项调出Insert Source对话框,为项目添加新对话框资源。在对话框属性中,修改对话框名为“时间设定”。在对话框中增加用来输入年、月、日、时、分、秒编辑框控件。并经过控件属性,将年、月、日、时、分、秒等编辑控件ID改为IDC_YEAR、IDC_MONTH、IDC_DAY、IDC_HOUR、IDC_MINUTE和IDC_SECOND。 (6)设计好这个对话框模板后,利用ClassWizard自动建立对话框类。进入ClassWizard后,它会发觉已建立对话框模板资源,并弹出一个对话框问询是否要为该对话框模板建立类。按下“OK”按钮,会弹出New Class对话框,在Name栏填写对话框类名称CSetTimeDlg后按“OK”按钮,即可为对话框创建一个对应类。 (7) 利用ClassWizard为对话框类添加和各控件对应数据组员。选择MemberVariables选项卡,确保Class Name项为对话框CSetTimeDlg类,然后在选项卡下方窗口中选择各控件ID并按下“Add Variable…”按钮,为其添加对应组员变量,以下表所表示。 编辑控件属性 Control IDs Variable Type Member variable name Variable Range IDC_YEAR int m_Year 0~3000 IDC_MONTH int m_Mouth 1~12 IDC_DAY imt m_Day 1~31 IDC_HOUR imt m_Hour 0~23 IDC_MINUTE int m_Minute 0~59 IDC_SECOND int m_Second 0~59 最终一列为变量取值范围。 (8)完成以上工作后,即可修改程序框架,在关键部分添加必需代码来实现表盘绘制、计时器设置、指针计算和屏幕重绘等要求。 (9)组建、运行、调试。 最终效果图 3、程序设计过程中碰到问题和处理方法 (1)漏打字母。比如在前面clockView中添加引用头文件语句中csettimedlg打成了csetimedlg,而头文件是#include “SetTimeDlg. H”,造成在组建调试时候总是提醒引用不到头文件、没有这个文件,以后是一行行仔细检验代码时候发觉。 (2)错打符号。在clockview.cpp中添加代码时候,有个//{{AFX_DATA_INIT(CSetTimeDlg)……// }}AFX_DATA_INIT当中{{和}}打成了||,结果造成后面设定初始时间代码无法找到对应头文件。这是我经过对比其它没有修改过原来就存在函数格式发觉并更正。这件事也让我纠正了原来一直有一个误区,//符号后面不一定只有对代码无任何影响注释。 (3)窗口大小设置问题。我经过movewindow函数来设置窗口大小,不过总是没有成功,以后考虑到窗口大小对程序正常使用没有多大影响,而且设置了窗口大小话,就不好确定表盘右边秒表方框位置了,所以这件事就不了了之了,这也是此次程序设计过程当中一大遗憾。 (4)屏幕重绘问题。存在两个问题,第一个是本程序因为完全在OnDraw函数中实现,所以屏幕重绘较为麻烦。假如在OnDarw函数中采取“异或”屏幕重绘方法,在程序窗口最大、最小化及移出屏幕时,会显示异常。经过查阅资料得悉,处理这一问题较理想方法是在定时器处理函数OnTimer中采取“异或”方法直接重绘屏幕,而不采取调用Invalidate ( )函数方法;同时在OnDraw函数中显示指针最终状态,方便处理程序窗口最大、最小化及移出屏幕情况。第二个是采取全屏删除式重绘则屏幕闪烁显著,显示效果不佳。能够经过采取非删除式重绘方法来缓解这一现象。 三、 时钟开发体会 这是我第一次使用mfc开发小程序,因为只是对vc++和mfc相关知识掌握程度不是很高,所以我在图书馆和网络当中查找了很多相关资料,不过甚至照着书本制作过程当中还是出现了很多问题,使得我调试了很长时间,才发觉这是一件很费精力事情,这件事使得我认为程序开发是很不轻易,尤其是大型程序。 另外,这次计算机课程设计不仅让我巩固了以前所学编程方面知识、学到了很多课堂上所学不到知识,而且让我明白了一个道理,“千里之堤毁于蚁穴”,不管是编程时候,还是平时生活学习、进行科学研究时候,全部要养成严谨、仔细作风,不然就算再努力,最终得到可能还是零。 最终,我要对全部在我完成课程设计过程当中提供过帮助老师和同学表示衷心感谢,尤其要感谢裘老师、李老师,是你们对我耐心讲解和帮助,才让我顺利完成了此次课程设计;是你们,给我提供了这么一个补充自我、提升自我机会和平台,谢谢你们!- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专业课程 设计 实验 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文