《面向对象程序设计》课程设计实验报告
院系名称 计算机科学与工程学院 专 业 信息管理与信息系统 学 号 11303060138 姓 名 李 知 澳 成 绩 时 间
2014 年12月
一、 任务描述
1.复杂计算器
使用面向对象程序设计语言Visual C++设计与实现一个复杂计算器,包括如下功能:
(1)能进行十进制整数的加减乘除算术运算; (2)能进行八进制整数的加减乘除算术运算; (3)能进行房贷计算;
要求:运用静态文本控件、文本编辑框、按钮控件、组合框控件、选项卡控件等控件及Cstring类。
2.电话簿管理系统
使用面向对象程序设计语言Visual C++设计与实现一个电话簿管理系统,包括如下功能:
(1)以树控件的方式显示电话簿分组及各分组人员名单; (2)以列表视图控件显示各人员的姓名和电话号码; (3)能添加、删除和修改人员的电话簿记录;
要求:运用静态文本控件、文本编辑框、按钮控件、树控件、列表视控件等。
3. 简单绘图系统
使用面向对象程序设计语言Visual C++设计与实现一个绘图系统,包括如下功能: (1)能绘制直线; (2)能绘制自由曲线; (3)能绘制矩形并能填充; (4) 能绘制圆角矩形并能填充; (5) 能绘制椭圆并能填充; (6)能保存与读取绘制的图形。
要求:(1)使用画笔并能选择线型、线宽、线的颜色;(2)使用画刷并能选择填充类型和填充颜色;(3)使用单文档视图,设计绘图菜单和参数设置菜单。
二、 系统分析
1、分析复杂计算器功能
(1)整数计算器。
对话框中有1-9数字按钮,加减乘除按钮,清空按钮,等于按钮。 清空按钮,可以把上一次运算结果清零。 默认为十进制并能实现加减乘除运算;
通过进制选项卡控件选择八进制的加减乘除运算。 能够通过选项卡控件选择进行十进制或八进制运算。
(2)房贷计算器。
对话框中有贷款额、月利率、还款月数、累计还款额、月还款额等文本编辑框和计算的按钮。 能够通过按钮控件选择还款月数。 能够输入贷款额、月利率、还款月数。 自动计算出累计还款额、月还款额。
2、分析电话薄管理系统功能
通过树控件的方式显示电话薄分组及各分组人员名单。 可以以列表视图显示各人员的姓名和电话号码。 能够添加、删除、修改人员,其中修改人员为右键控制。
有添加、删除按钮,选中分组后,点击添加会弹出新对话框,可以输入新人员的姓名和电话号码。选中分组后,点击删除按钮可以删除此对话框的人员。
选中人员,点击右键可以出现修改,点击后会弹出新对话框,可以修改人员姓名和电话号码的信息。
3、分析简单绘图系统功能
可以通过绘画工具栏或者绘图菜单选择图形类型并能够绘出直线、自由曲线、矩形、椭圆形、圆角矩形。能够通过颜色工具栏选择线的颜色。
可以通过设置菜单选择线型参数并选择线型、线宽、线的颜色,选择填充参数使用画刷并选择填充类型和填充颜色。
能够使用单文档视图,设计绘图菜单和参数设置菜单。 能够保持绘图,并能通过软件打开视图。
3
能够在下方显示鼠标所处位置坐标。
三、 系统设计
1.复杂计算器系统设计
(1)建立工程11303060138 李知澳 1
(2)新建对话框IntegerCalculator,添加各控件,并为所以按钮添加响应函数,并在函数中添加相应代码;在头文件添加成员变量,并在构造函数中付初值;为两个进制的单选按钮添加BN_CLICKED消息,添加代码,再编写transform()函数和octToDec()函数,修改计算过程;为添加复选框控件添加BN_CLICKED消息。
(3)新键对话框IDD _CREDIT_DIALOG,添加各控件,并为各控件添加关联变量,建立CcreditDlg类,为类添加OnInitDialog()函数,添加代码;为计算按钮添加响应函数,并添加代码。
(4)在复杂计算器对话框中添加选项卡控件,并添加相应关联变量。为类添加OnInitDialog()函数,并编写代码。为IDC_TAB添加TCN_SELCHANGE消息响应函数
2.电话簿管理系统设计
(1)建立工程11303060138 李知澳 2
(2)添加树控件,并修改相应信息。在OnInitDialog()函数中添加相应代码。 (3)添加新对话框IDD_ADD_DIALOG,并添加类CaddDlg。为新对话框添加控件,并添加确定与取消的响应函数,为其编写代码。编写OnAdd()函数,为其加入代码,编写OnDelete()函数,为其编写代码。
(4)为电话簿绘制图像,并在OnInitDialog()中添加相应代码。
(5)添加列表视图控件,修改ID,并添加相应的关联变量。为OnInitDialog()函数添加代码。为IDC_TREE添加TVN_SFLCHANGED消息响应函数,并添加代码。
(6)添加一个菜单栏,修改ID,为其添加消息响应函数,并添加代码,为IDC_LIST添加NM_RCLICK消息响应函数,并添加代码。
(7)建立修改人员对话框,并完成相应声明,编写代码。
3.简单绘图系统设计
(1)建立工程11303060138 李知澳 3
4
(2)为主菜单添加绘图菜单资源,并修改相应ID和名称。建立新类ClineType和Cfill,并添加相应代码。
(3)为绘图|直线添加消息响应函数,并添加相应代码。并为视图类添加新的成员变量,并初始化为0.为视图类添加按下鼠标左键的消息响应函数,并添加代码。
(4)建立新类Cline,并添加成员变量。增加新的成员函数Draw(),并添加代码。在视图类添加新的成员变量m_nFigureType.并赋值。改写鼠标左键按下的消息处理函数。 (5)在11303060138 李知澳 1Doc,h中添加删除图元对象链表的函数RemoveList()的声明。为CmainFrame添加窗口关闭响应函数,并添加代码。为11303060138 李知澳 1Doc类添加虚函数并添加代码。
(6)为主菜单添加设置菜单资源,并修改相应ID和名称。创建“设置线型参数”对话框并添加相应控件,为该对话框添加变量,并在OnInitDialog()函数中添加初始化代码。添加列表框的消息响应函数,并添加代码添加颜色对话框按钮的消息响应函数,并添加代码。添加“线型参数”菜单项的菜单响应函数,并添加代码。修改相应代码。 (7)修改视图类的鼠标左键按下消息响应函数,增加视图类的鼠标左键释放消息响应函数,并为其添加代码。增加视图类的鼠标移动消息响应函数,并添加代码。 (8)修改相应函数代码,是其实现鼠标和键盘组合键的使用。
(9)在Toolbar中插入绘图工具栏和颜色工具栏,并为其编辑各按钮图标,修改按钮的相应信息。为相应函数添加代码。
(10)定义自由曲线类,为其文件添加代码,以实现自由曲线的绘制功能。定义矩形类,为其文件添加代码,以实现矩形类的绘制功能。定义椭圆类,为其文件添加代码,以实现椭圆的绘制功能。定义圆角矩形类,为其文件添加代码,以实现圆角矩形的绘制功能。(11)在各类的实现文件中添加函数Serialize()的实现代码和IMPLEMENT_SERIAL宏,实现图形文件的保存和读取。
四、系统实现
1.复杂计算器系统实现
//11303060138 李知澳 1.h //11303060138 李知澳 1Dlg.h
#include \
#include \
5