网络设计程序报告.doc
《网络设计程序报告.doc》由会员分享,可在线阅读,更多相关《网络设计程序报告.doc(25页珍藏版)》请在沃文网上搜索。
1、网络程序设计报告班级:计算机网络1班学号:200902220110姓名:廖维海所作课题:模拟时钟指导老师:胡庆辉二零一一年六月二十五日(另外:想要该MFC工程文件,在Q:450016913上面留言,到时候发给你!)MFC模拟时钟程序报告一、实验目的:基于学习了MFC的WINDOWS应用程序设计,特别鉴于此,所以用MFC工程编写一个模拟时钟程序,用来巩固自己的知识。该程序初始界面为在屏幕左方有一个指针式钟面,右方有一个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致,用菜单选项或按钮设置时间和秒表。二、问题分析:本程序所涉及到的知识点有:时钟指针运动算法、屏幕重绘方法、定时器消
2、息、鼠标消息、菜单命令、对话框、画笔/画刷、显示文字等。指针运动算法和屏幕重绘方法是本程序主要难点所在。三、程序基本要求:(1)为该程序设计一个美观大方的图标。(2)程序界面设计合理,色彩得体大方,显示正确。(3)时针、分针和秒针形象美观,即使各指针重合也可辨认。(4)各指针运动规律正确。由于时间有限,所以设计之初,时钟速度应比实际时间快20倍,即1小时相当于3分钟。(5)数字式时钟的时间显示与指针式时钟显示一致。(6)按下设置时间按钮或菜单项可弹出一对话框,用于设置当前的时间和日期。四、运行环境与参考文献:环境:Windows XP操作系统下的Microsoft Visual C+ 6.0参
3、考文献:Visual C+编程技巧精选500例五、软件图结构:否启动时钟时钟初始化获取当前时间绘制秒针、分针、时针退出按下功能键是六、运行后的界面:1、启动时界面:2、停止时的界面:3、时钟设置:主要源代码:/ ClockView.cpp : implementation of the CClockView class/#include stdafx.h#include Clock.h#include ClockDoc.h#include ClockView.h#include math.h#define PI 3.14159265#include SetTimeDlg.h#ifdef _DE
4、BUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CClockViewIMPLEMENT_DYNCREATE(CClockView, CView)BEGIN_MESSAGE_MAP(CClockView, CView)/AFX_MSG_MAP(CClockView)ON_COMMAND(ID_START, OnStart)ON_COMMAND(ID_STOP, OnStop)ON_WM_LBUTTONDOWN()ON_WM_TIMER()ON_COMMAND(ID_SETTIME, On
5、Settime)/AFX_MSG_MAP/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_MESSAGE_MAP()/ CClockView construction/destructionCClockView:CClockView()/ TODO: add construct
6、ion code here / 设定时间year = 2004;month = 1;day = 1;hour = 0;minute = 0;second = 0; / 设定画笔/画刷m_HouPen. CreatePen (PS_SOLID, 5, RGB (255, 0, 0) ); / 时针画笔m_MinPen. CreatePen (PS_SOLID, 3, RGB (0, 0, 250) ); / 分针画笔m_SecPen. CreatePen (PS_SOLID, 1, RGB (0, 0, 0) ); / 秒针画笔m_MarkBrush. CreateSolidBrush (RGB
7、 (250, 250, 0) ); / 设定表心位置m_Center. x = 200;m_Center. y = 200; / 设定时钟半径m_Radius = 200; / 计算指针位置 SetClock (hour, minute, second); / 设定秒表计数器及按钮位置watch = 0;m_WatchStart = CRect (480, 310, 560, 340); / 启动钮m_WatchStop = CRect (590, 310, 670, 340); / 停止钮CClockView:CClockView()BOOL CClockView:PreCreateWind
8、ow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CView:PreCreateWindow(cs);/ CClockView drawingvoid CClockView:OnDraw(CDC* pDC)CClockDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data here/ 绘制表盘上的标记pDC-SelectOb
9、ject(m_MarkBrush);for(int i=0;iRectangle(pt.x-5,pt.y-5,pt.x+5,pt.y+5);elsepDC-Ellipse(pt.x-2,pt.y-2,pt.x+2,pt.y+2); / 画时针pDC-SelectObject (m_HouPen);if (m_OldHour0!= m_Hour0) / 用白色覆盖原位置时针pDC-SetROP2(R2_WHITE);pDC-MoveTo(m_OldHour 0 );pDC-LineTo(m_OldHour 1 );pDC-SetROP2(R2_COPYPEN); /时针绘制pDC-MoveTo(
10、m_Hour0);pDC-LineTo(m_Hour1);else / 时针绘制pDC-MoveTo(m_Hour0);pDC-LineTo(m_Hour1);/ 画分针pDC-SelectObject (m_MinPen);if (m_OldMin0!=m_Minute0) / 用白色覆盖原位置分针pDC-SetROP2(R2_WHITE);pDC-MoveTo(m_OldMin0);pDC-LineTo(m_OldMin1);pDC-SetROP2(R2_COPYPEN); / 分针绘制pDC-MoveTo(m_Minute0);pDC-LineTo(m_Minute1);else/ 分针
11、绘制pDC-MoveTo(m_Minute0);pDC-LineTo(m_Minute1); / 用白色覆盖原位置秒针pDC-SelectObject(m_SecPen);pDC-SetROP2(R2_WHITE);pDC-MoveTo(m_OldSec0);pDC-LineTo(m_OldSec1);pDC-SetROP2(R2_COPYPEN); / 秒针绘制pDC-MoveTo(m_Second0);pDC-LineTo(m_Second1); / 数字时钟显示pDC-SelectStockObject(WHITE_BRUSH);pDC-Rectangle(450,30,700,180)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 设计 程序 报告
