《面向对象程序设计》课程设计实验指导书2013

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》课程设计

实验指导书

武汉理工大学理学院

物理科学与技术系

2013年2月1日

目录

设计一简单计算器 (1)

设计二模拟时钟程序 (4)

设计三 24点游戏 (8)

设计四多媒体视频播放器 (11)

设计五幸运52 (14)

设计六简单画图程序 (17)

课程设计说明书要求 (20)

设计一简单计算器

一、概述

在运算过程中,通过使用计算器能减少运算量。既可以用“计算器”的标准视图执行简单的计算,也可以用其科学型视图执行高级的科学计算。用户使用“计算器”执行所有通常用手持计算器完成的标准操作。

简单计算器包括双目运算和单目运算功能。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,阶乘,对数,开方,倒数等运算。简单计算器可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算,同时包含清除,退格,退出功能。简单计算器出现错误会给出相应错误提示。而且可以操作与运算按钮相对应的菜单项。

通过对简单计算器的设计,可以熟悉MFC编程,包括Visual C++在数学计算方面的知识、算法设计、对话框和控件的使用及应用程序的调试,同时对面向对象与可视化程序设计有一定的认识,并提高动手编程的能力。

二、设计任务

1、提出总体方案的设计思想和原理,绘制程序流程图和描述程序的功能,并说明程序的特点和难点。具体如下:

执行简单计算:

(1) 键入计算的第一个数字。

(2) 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。

(3) 键入计算的下一个数字。

(4) 输入所有剩余的运算符和数字。

(5)单击“=”。

执行科学计算:能够执行阶乘、正弦、余弦和指数运算。

2、添加相关控件,制作与用户交互性较好的应用程序界面。

3、进行按钮事件处理,编写代码,完成整体设计。

4、调试程序,达到所要求的功能。

三、设计步骤

1、初始界面设计

要求应用程序中包含菜单操作和帮助,合理排列各个控件的位置,具体可参照Windows中的标准型计算器:

或如下图所示的简单型计算器:

3 具体设计

(1) 创建应用程序框架。

(2) 创建对话框资源,添加成员处理函数和成员变量。

(3) 添加消息处理函数。

(4) 添加完成各个功能的代码。包括处理输入、处理计算和处理显示。

4 程序的完善

(1) 添加处理科学计算的功能。

(2) 加入键盘处理。

5 重点和难点

在设计过程中,要注意考虑运算的优先级问题、数制的转换算法和界面的布局显示、使用菜单进行相关控制。

四、思考题

1、程序中如何实现小数的显示与运算?

2、描述等号对应的消息处理函数中需要处理的问题及相应的实现代码?

3、(选做)若实现了科学型和标准型,说明科学型和标准型实现的关键算法?

设计二模拟时钟程序

一、概述

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

以实例为背景学习基于MFC的WINDOWS应用程序设计,编写一个指针式时钟程序,此程序在屏幕正中有一个指针式钟面,屏幕下方或右方以数字方式显示日期和时间。指针式的时钟表盘为椭圆形或圆形,并且圆周上有分布均匀的12个刻度,刻度要求显示清晰,钟面上有长度和颜色及粗细各不相同的指针,即时针、分针、秒针,以便各个指针重合时亦可以轻易辨认,指针的运动要求具有规律性,且为顺时针。数字钟的钟面为一个规则的矩形,其显示时间的格式是时:分:秒,小时为24进制,分钟和秒是60进制,指针式的时钟和数字式的时钟显示的时间同步,且两个时钟所显示的时间与计算机的系统时间一致。

通过对指针式时钟的设计,可以掌握API或MFC编程,其中包括各种视图类的作用、绘图函数的使用、计时器的操作、对话框的使用及应用程序的调试,同时对面向对象与可视化程序设计有一定的认识,并提高动手编程的能力。

二、设计任务

1、提出总体方案的设计思想和原理,绘制程序流程图和描述程序的功能,并说明程序的特点和难点。

2、编程要求

(1)为该程序设计一个美观大方的图标。

(2)程序界面设计合理,色彩得体大方,显示正确。

(3)用绘图函数绘制钟的界面图。时针、分针和秒针形象美观,即使各指针重合也可辨认。

(4)各指针运动规律正确。

(5)客户区中显示数字时钟,数字式时钟的时间显示与指针式时钟显示一致。

(6)提供对话框由用户设置当前新的时间。

3、调试程序,达到所要求的功能。

三、设计步骤

1、钟面功能设计

根据自己的考虑绘制钟的界面图,具体也可参照下图:

或另一种方案图:

总体显示效果如下:

2、具体设计

本题主要涉及到的知识点有:时钟指针运动算法、屏幕重绘方法、定时器消息、菜单命令、对话框、画笔/画刷、显示文字等。指针运动算法和屏幕重绘方法是本程序主要难点所在。

不论何种指针,每次转动均以π/30弧度(一秒的角度)为基本单位,且都以表盘中心为转动圆心。计算指针端点(x, y)的公式如下:x =圆心x坐标 + 指针长度* cos (指针方向角)

y =圆心y坐标 + 指针长度* sin (指针方向角)

注意,指针长度是指自圆心至指针一个端点的长度(是整个指针的一部分),由于指针可能跨越圆心,因此一个指针需要计算两个端点。

三个指针的运动是相关联的,秒针转一圈引起分针运动一格,分针转一圈引起时针运动一格,因此应该使用一个定时器消息来处理指针的运动。

(1) OnDraw()函数实现对系统时间的获取和绘制椭圆表面和时钟指针。(2) 设置计时器,创建窗口时启动一个计时器不断发出WM_TIMER消息,调用SetTimer()函数。

(3) 用TextOut()函数显示数字钟。

(4) 添加菜单,用菜单项控制弹出对话框设置显示的时间。

相关文档
最新文档