您现在的位置:网站首页答辩论文计算机毕业设计计算机论文计算机软件

C++课程设计

  • 简介: 原文 设计题目:用Visual C++ 编写一个指针式时钟的程序,要求用单文档应用程序。设计思想:1)用MFCAppWizard(exe)创建一个新工程,将其命名为wulihua。2)在MFCAppWiz...
    • 请与管理员联系购买资料 QQ:5739126
  • 论文简介
  • 相关论文
  • 论文下载
原文

设计题目:用Visual C++ 编写一个指针式时钟的程序,要求用单文档应用程序。
设计思想:1)用MFCAppWizard(exe)创建一个新工程,将其命名为wulihua。
2)在MFCAppWizard第一步中设计应用程序的类型为单个文档模式,然后单击“确定”按钮,于是应用程序wulihua 就创建完毕。
3)打开MFCAppWizrd,为wulihua,为wulihua类添加OnCreater和OnTimer函数
4)编辑OnDraw函数的代码,实现绘制时钟;编辑OnTimer函数的代码,用来更新窗口;编辑OnCreater函数的代码,用来设置时钟。
5)最后对此工程进行编译,若有错误,则进行修改,没有错误则运行成功。
具体内容:
首先,工程建立完毕后,打开此工程,在wulihuaView.cpp窗口中
进行编译。
在函数void CWulihuaView::OnDraw(CDC* pDC)下进行编译。
源代码如下:
void CWulihuaView::OnDraw(CDC* pDC)
{
CWulihuaDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CClockDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
//获取客户区大小
RECT Rect;
GetClientRect(&Rect);
//计算椭圆位置
int CenterX=Rect.right/2;
int CenterY=Rect.bottom/2;
CTime Time=CTime::GetCurrentTime();
//取当前时间
CString str;
int i,x,y;
CSize size;//创建一支黑色的笔
CPen Pen(PS_SOLID,5,RGB(0,0,0));
//选进设备表,保存原笔
CPen*Oldpen=pDC->SelectObject(&Pen);
//绘制钟面椭圆
pDC->Ellipse(5,5,Rect.right-5,Rect.bottom-5);
//设置字体颜色为红色
pDC->SetTextColor(RGB(255,0,0));
for(i=1;iGetTextExtent(str,str.GetLengh());
//计算时间点放置位置
Radians=(double)i*6.28/12.0;
x=CenterX-(size.cx/2)+(int)((double)(CenterX-0)*sin(Radians));
y=CenterY-(size.cy/2)-(int)((double()CenterY-20)*cos(Radians));
//绘制12个时间点(1-12)
pDC->TextOut(x,y,str);
}//计算时钟指针的夹角
Radians=(double)Time.GetHour()+(double)Time.GetMinute()/60.0+(double)Time.GetSecond()/3600.0;
Radians*=6.28/12.0;
//创建时针指钟画笔
CPen HourPen(PS_SOLID,5,RGB(0,255,0));
pDC->SelectObject(&HourPen);
//绘制时钟指针线
pDC->MoveTo(CenterX,CenterY);
pDC->LineTo(CenterX,(int)((doble)(CenterX/3)*sin(Radians)),CenterY-(int)((double)(CenterY/3)*cos(Radians)));
Radians=(double)Time.GetMinute()+(double)Time.GetSecond()/60.0;
Radians*=6.28/60.0;
//创建分钟指针画笔
CPen MinutePen(PS_SOLID,3,RGB(0,0,255));
pDC->SelectObject(&MinutePen);
//绘制分钟指针线
pDC->MoveTo(CenterX,CenterY);
pDC->LineTo(CenterX+(int)((double)(CenterX*2/3)*sin(Radians)),CenterY-(int)((double)(CenterY*2/3)*cos(Radians)));
Radians=(double)Time.GetSecond();..


 \ 目录

摘 要
设计题目
设计思想
具体内容
运行结果
设计总结
设计心得
参考文献
致 谢


 \ 参考资料

《Visual C++ 程序设计实战训练》 张卫华 刘征 赵志刚 编著 人民邮电出版社
《Visual C++ 程序开发案例解析 》杨富国 王浩 堂巧琪 王健 编著 清华大学出版社 北京交通大学出版社


 \ 简单介绍

C++ 技术正突飞猛进,日臻完善,解决越来越多的实际问题。这次C++课程设计我主要设计的是指针式时钟,指针式时钟是程序中最常用的后台任务机制之一,其时间 间隔最低约55毫秒,被广泛应用于时钟,磁盘备份程序或需要在某一时刻运行的程序等。C++工程包括三部分:单文档应用程序,多文档应用程序和对话框应用 程序,本次设计用的时单文档程序设计。
主要是编辑void CWulihuaView::OnDraw(CDC* pDC)(此函数用于绘制时钟的边框和指针以及十二个时间点)和另外两个函数:int CWulihuaView::OnCreate (LPCREATESTRUCT lpCreateStruct)和 void CWulihuaView::OnTimer (UINT nIDEvent),后两个函数主要是用于窗口和时间刷新,代码编辑之后运行结果是一个时钟。

查看评论 已有0位网友发表了看法
  • 验证码: