课程设计报告

发布 2022-10-01 04:14:28 阅读 2616

c++程序设计(下)

—指针式时钟。

姓名: 李望学。

班级: 1020551

学号: 40

指导老师: 孔令德。

时间:2011年12月7

设计描述。1.1.1 在应用程序中,经常有一些任务需要在后台处理,实现方式有两种:计时器和onidle循环处理。本案例将使用计时器创建一个时钟。

1.1.2 计时器是程序中最常用的后台任务机制之一,其时间间隔最低约55毫秒,被广泛用于时钟、磁盘备份程序或需要在某一时刻运行的程序等。

1.1.3 使用计时器只需了解两个函数:

cwnd::settimer()函数用来设置一个计时器以指定的时间间隔触发,cwnd::killtimer()函数用来使一个正在运行的计时器停止。

1.1.4 计时器以两种方式通知应用程序计时器间隔时间已到:

发送wm_timer消息和调用应用程序定义的**函数。其中前者相对比较简单,但对于多个计时器则应使用**函数。计时器消息发送给应用程序时都是低优先级,因此只有当消息对列表中没有其他消息时才会处理它们。

2 设计分析。

2.1.1 用mfc appwizard(exe)创建一个新工程,将其命名为b04。

2.1.2 在mfc appwizard第一步中设置应用程序的类型为单个文档模式,然后单击“确定”按钮,于是应用程序b04就创建完成。

2.1.3 打开mfc classwizard,为b04view类添加oncreate和ontimer函数。

2.1.4 编辑ondraw方法的**,实现绘制时钟;编辑ontimer函数的**,用来更新窗口;编辑oncreate方法,用来设置时钟。

3 源**。

3.1.1 头文件定义类cb04view的接口,完成变量初始化。

class cb04view : public cview

protected: /create from serialization only

cb04view();

declare_dyncreate(cb04view)

public:

cb04doc* getdocument();

public:

public:

virtual void ondraw(cdc* pdc); overridden to draw this view

virtual bool precreatewindow(createstruct& cs);

protected:

virtual bool onprepareprinting(cprintinfo* pinfo);

virtual void onbeginprinting(cdc* pdc, cprintinfo* pinfo);

virtual void onendprinting(cdc* pdc, cprintinfo* pinfo);

public:

virtual ~cb04view();

#ifdef _debug

virtual void assertvalid() const;

virtual void dump(cdumpcontext& dc) const;

#endif

protected:

protected:

/创建视图消息处理函数。

afx_msg int oncreate(lpcreatestruct lpcreatestruct);

/计时器消息处理函数。

afx_msg void ontimer(uint nidevent);

//}afx_msg

declare_message_map()

3.1.2源文件类cb04view的实现文件。

3.1.2.1 消息映射定义。

begin_message_map(cb04view, cview)

//}afx_msg_map

// 标准输入命令。

on_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()

3.1.2.2 cb04view构造函数和析构函数。

cb04view::cb04view()

cb04view::~cb04view()

3.1.2.3客户区重绘函数,用来绘制时钟。

void cb04view::ondraw(cdc* pdc)

cb04doc* pdoc = getdocument();

assert_valid(pdoc);

//获取客户区。

rect rect;

getclientrect(&rect);

//计算椭圆中心位置。

int centerx =

int centery =

//取当前时间。

ctime time = ctime::getcurrenttime();

cstring str;

int i,x,y;

csize size;

//创建一支黄色的笔,用来画椭圆。

cpen pen(ps_solid,5,rgb(255,255,0));

//设置当前画笔,并记下以前的画笔。

cpen *oldpen = pdc->selectobject(&pen);

//绘制钟面椭圆。

pdc->ellipse(5,5,double radians;

//设置字体颜色为红色。

pdc->settextcolor(rgb(255,0,0));

for(i = 1;i <=12;i++)

//计算时钟指针的夹角。

radians = double) +

(double)

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)((double)(centerx/3)*sin(radians)),centery -(int)((double)(centery/3)*cos(radians)))

radians = double)

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)

radians *=6.28/60.0;

//创建秒钟指针画笔。

cpen secondpen(ps_solid,1,rgb(0,255,255));

pdc->selectobject(&secondpen);

//绘制秒钟指针。

pdc->moveto(centerx,centery);

pdc->lineto(centerx + int)((double)(centerx*4)/5)*sin(radians),centery - int)((double)(centery*4)/5*cos(radians)))

pdc->selectobject(oldpen);

3.1.2.4 视图创建消息处理函数,初始化计时器。

int cb04view::oncreate(lpcreatestruct lpcreatestruct)

3.1.2.5 计时器消息处理函数。

void cb04view::ontimer(uint nidevent)

invalidaterect(null,true);

updatewindow();

cview::ontimer(nidevent);

4. 设计总结。

4.1.1 需要注意的是,计时器消息不是和其他消息异步处理的,即计。

课程设计报告格式 课程设计

洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...

课程设计总结,课程设计报告

课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...

课程设计 课程设计报告格式

学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...