程序设计基础课程设计报告书.docx
- 文档编号:25250933
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:12
- 大小:915.97KB
程序设计基础课程设计报告书.docx
《程序设计基础课程设计报告书.docx》由会员分享,可在线阅读,更多相关《程序设计基础课程设计报告书.docx(12页珍藏版)》请在冰豆网上搜索。
程序设计基础课程设计报告书
湖北第二师范学院
《程序设计基础》课程设计报告书
题目:
模拟时钟转动程序
系部:
计算机系
专业:
计算机科学与技术(嵌入式方向)
班级:
13级计科三班
******
学号:
**********
同组人员:
无
******
设计时间:
2014年05月24日~2014年06月14日
1.课程设计计划
(根据自己的实际情况来写)
序号
起始日期
工作内容
1
5.24—5.29
确定设计题目,拟定设计计划。
2
5.30—6.4
分析题目,确定设计思想和设计结构。
3
6.5—6.10
用C语言编写源代码,并修改调试。
4
6.11—6.14
交给老师检查指导,并最终完成课程设计。
2.前言
(主要叙述本课题的意义、研究范围及要求达到的技术参数;简述本课题应解决的主要问题。
)
时钟几乎是每个人生活中必备的生活用品。
时钟虽小确非常重要。
一款良好的时钟可以给人们带来极大的便利。
当然,现在关于时钟的各种应用程序层出不求,我的目的是设计一款界面简单、方便易用、功能相对丰富的指针式时钟程序。
为了达到上述目标,以及课程设计的要求,结合自己自身的情况,选择了PC平台、Windows操作系统、VisualC++6.0开发平台、MFC框架来实现自己的程序。
而且希望能通过自己这款小应用程序的设计,来掌握面向对象的程序设计方法,了解C++面向对象的设计方法和技巧,有效地、深刻地理解课程内容,体会理论、方法和设计原则;培养分析实际问题和解决问题的能力,具备使用面向象程序设计开发工具设计实际系统的能力。
程序所实现的功能:
运行界面是一指针式时钟,能模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致;按任意键时程序退出。
模拟时钟是一种集计时器和时钟显示于一体的程序。
编写一个指针式时钟程序,此程序在屏幕正中有一个指针式钟面,窗口标题以数字方式显示日期和时间。
指针式的时钟表盘为椭圆形或圆形,并且圆周上有分布均匀的12个刻度,刻度要求显示清楚,钟面上有长度不相同的指针,即时针、分针、秒针,指针的运动要求具有规律性,且为顺时针。
数字钟显示时间的格式是年月日时分秒,小时为24进制,分钟和秒是60进制,指针式的时钟和数字式的时钟显示的时间同步,且两个时钟所显示的时间计算机的系统时间一致。
3.需求分析
(主要内容包括本课程设计题目、课程设计任务、课程设计思想、软硬件运行环境及开发工具。
)
课程设计题目:
模拟时钟转动程序
课程设计任务:
要熟练掌握C语言的基本知识:
数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
用C语言实现一个模拟时钟转动程序。
提出总体方案的设计思想和原理,绘制程序流程图和描述程序的功能,并说明程序的特点和难点。
能模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致;按任意键时程序退出。
模拟时钟是一种集计时器和时钟显示于一体的程序。
编写一个指针式时钟程序,此程序在屏幕正中有一个指针式钟面,窗口标题以数字方式显示日期和时间。
指针式的时钟表盘为椭圆形或圆形,并且圆周上有分布均匀的12个刻度,刻度要求显示清楚,钟面上有长度不相同的指针,即时针、分针、秒针,指针的运动要求具有规律性,且为顺时针。
数字钟显示时间的格式是年月日时分秒,小时为24进制,分钟和秒是60进制,指针式的时钟和数字式的时钟显示的时间同步,且两个时钟所显示的时间计算机的系统时间一致。
课程设计思想:
用C语言实现模拟时钟的功能。
环境和开发工具:
在windowsXP环境下用VC++6.0编写模拟时钟程序源代码实现模拟时钟的功能。
4.概要设计
(主要叙述本课题设计的流程图(各功能模块)、主要的数据结构、主要函数功能介绍、函数间的调用关系等,附main()函数源代码或伪代码。
)
流程图:
主要函数说明:
1.OnDraw()函数实现对系统时间的获取和绘制椭圆表面和时钟指针。
2.设置计时器,创建窗口时启动一个计时器不断发出WM_TIME消息,调用SetTimer()函数。
3.用TextOut()函数显示数字钟。
画模拟时钟最重要的大约就是三角函数了。
手机和电脑的默认坐标系都是原点在左上角。
这样,我们确定了圆心位置后,就确定了表的位置,表针,表盘的位置坐标都在以圆心为中心的圆环上。
其坐标可以通过三解函数推导出来。
设圆心为(X,Y),半径为R,表上其他点的坐标为(X1,Y1),该点与圆心X轴夹角为A,大致可以推出该点坐标公式:
位于圆心右上角点的公式为:
X1=X+RcosA;Y1=Y-RsinA;
位于圆心左上角点的公式为:
X1=X-RcosA;Y1=Y-RsinA;
位于圆心左下角的公式为:
X1=X-RcosA;Y1=Y+RsinA;
位于圆心右下角的公式为:
X1=X+RcosA;Y1=Y+RsinA;
如果+-使用角度来校正,公式就可以统一为X1=X+RcosA;Y1=Y+RsinA;由于表是顺时针转动,我们的角度习惯上使用逆时针,所以我们使用自己校正后的角度值,从12点开始,按顺时针重新排列三角函数值,
入对角度正负的校正。
首先定义一些时钟常用的宏:
#defineANALOG_CENTER_X(227)//时钟显示的中心位置的横坐标227
#defineANALOG_CENTER_Y(178)//时钟显示的中心位置178
#defineANALOG_R(150)//时钟显示图的半径150
#defineANALOG_CENTER_R(10)//时钟显示中心图形的半径10
#defineANALOG_HOUR_LEN(ANALOG_R-80)//时针长短(半径)70
#defineANALOG_MINUTE_LEN(ANALOG_R-50)//分针长短(半径)100
#defineANALOG_SECOND_LEN(ANALOG_R-30)//秒针长短(半径)120
部分代码:
5.详细设计
(主要内容:
自己所负责的模块数据流程图、主要技术源代码以及注释、用户界面及用户使用手册等)
模块数据流程图及主要技术源代码见上;
用户界面如下图:
用户手册
1windows系统vc++6.0设计
2、本程序不需要安装使用,直接运行即可弹出时钟对话框
6.技术难点与分析
(主要内容:
本课题在设计过程中所遇到的技术难点及解决方法。
)
开始时,总是缺少一种图形函数的头文件,每次编译都会有这样那样的错误,最后请教老师,原来这种程序需要图形函数graphics.h,最后在老师的帮助下下载这个头文件,放在程序的文件夹下,然后编译调试,最终解决了这个问题。
7.心得体会
(主要对本课题开发过程进行归纳和总结,还应包括所得结果与已有结果的比较和本课题尚存在的问题,以及进一步开发的见解与建议。
感谢对本课程设计完成过程中曾直接给予帮助的人员)
经过一个学期对《C++课程设计》的学习,我们学习了理论知识,了解了C++语言程序设计的思想,
这些知识都为我们的下一步学习打下了坚实的基础。
通过课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。
通过对模拟时钟的设计进一步的巩固了用C++编写程序,并且有利于更好的掌握程序设计语言!
在模拟时钟的编写过程中也体会到了做事情一顶要细心、认真。
更加知道了要掌握好基础知识。
还有体会到了成功的感觉通过本项课程设计也培养了我独立思考、 综合运用所学有关相应知识的能力,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!
由于程序设计语言是近年在国内外得到迅速推广应用的一种语言。
它功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。
通过这次的程序设计更加了解了语言设计的好处和其可用性!
在这次课程设计中也知道了自己的动手能力不强有待进一部的提高!
在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!
在设计过程中的一次次设计错误增加了我放弃的想法!
不过经过自己的独立思考和同学的帮助终于完成了课程设计!
完成该程序后想起自己以前的每一次对自己失去信心,
就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!
只要自己对自己不失去信心相信就可以完成那些以前认为完成不了的事情!
也让我懂得了要想成功首先就必须有很强的自信心!
懂得了自己以后要在做任何事情时都要自信!
当自己都不相信自己能够成功时还可能会获得成功吗?
在课程设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!
都是要更好的掌握该门知识,提高自己的自程序设计综合课程设计身的修养,提高自己的能力!
为以后的工作打下良好的知识基础和技能基础!
8.致谢
(以简短的文字对在设计研究和设计报告撰写过程中曾直接给予帮助的人员表示自己的谢意)
感谢邓芳老师细心的教导,感谢同学们的帮助!
9.参考文献
(在课程设计过程中曾参考或引用过的书籍、文献以及网络资源列表)
1]侯俊杰《深入浅出 MFC (第 2 版)》湖北华中科技大学出版社 2001.7
[2]潘爱民,《Visual C++技术内幕(第5 版)》北京清华大学出版社2000.3
[3]杨永国《Visual C++ 6.0 实用教程》北京清华大学出版社 2004.1
[4]XX百科关于MFC的词条:
[5]程序员百科关于Cview类的词条:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 课程设计 报告书