可视化程 序 设 计
( 2009.7.6—2009.7.17 )
实
训
报
告
目录
实训报告一.................................................................................................................................3
一、实训日期:.................................................................................................................3
二、实训题目:计算器.....................................................................................................3
三、实训目的.....................................................................................................................3
四、实现过程.....................................................................................................................3
1、创建 MFC 应用程序过程.............................................................................................3
2、编辑对话框...................................................................................................................3
3、添加成员变量...............................................................................................................4
4、添加信息映射及成员函数...........................................................................................4
5、成员函数初始化...........................................................................................................7
实训报告二.................................................................................................................................8
一、实训日期:.................................................................................................................8
二、实训题目:画图程序.................................................................................................8
三、实训目的:.................................................................................................................8
四、实现过程:.................................................................................................................8
1、创建单文档应用程序..................................................................................................8
2、菜单的制作..................................................................................................................8
3、工具栏按钮的制作.......................................................................................................9
4、对话框设计...................................................................................................................9
5、文档类代码设计.........................................................................................................11
6、视图类设计.................................................................................................................12
实训报告三.......................................................................................................................13
一、实训日期:...............................................................................................................13
二、实训题目:图书管理系统.......................................................................................13
三、实训目的:...............................................................................................................13
四、实现过程:...............................................................................................................14
1、需求分析.....................................................................................................................14
2、总体设计.....................................................................................................................14
(1)、系统层次模块图......................................................................................................15
(2)、数据库设计..............................................................................................................16
3、详细设计:.................................................................................................................18
(1)、主控平台的实现:.................................................................................................18
(2)、权限验证模块..........................................................................................................18
(3)、用户管理模块.........................................................................................................20
(4)、基础数据设置模块.................................................................................................20
2
(5)、借阅管理模块.........................................................................................................22
(6)、书库管理模块:......................................................................................................23
(7)、读者管理模块:......................................................................................................24
(8)、数据库管理模块.....................................................................................................24
实训报告一
一、实训日期:
2009 年 7 月 6 日—2009 年 7 月 8 日。
二、实训题目:计算器
编程设计实现一个简单计算器,要求:有数字按钮和功能键按钮,可实
现简单四则运算及平方根、倒数等功能。
三、实训目的
了解 C++程序开发的一般方法和过程,掌握面向对象程序设计的基本思想和
基本概念。
(1)熟悉 Visual C++6.0/Visual studio 2005 的集成开发环境。
(2)掌握 Visual C++6.0/Visual studio 2005 的可视化编程方法。
(3)掌握 Visual C++6.0/Visual studio 2005 的 Doc/View 框架的设计方法。
(4)掌握 VC 中数据库应用程序的开发方法。
(5)熟悉 VC 对文件的基本操作方法。
四、实现过程
1、创建 MFC 应用程序过程
使用 MFC AppWizard[exe]向导生成一个基于对话框的应用程序 Calculator,
并将主窗口对话框的 Caption 改为 Calculator。
2、编辑对话框
打开对话框编辑器,在对话框设计模板中添加如下图所示的控件,并对各
个控件进行属性设置。Calculator 窗口中共包含 21 个控件,其中一个为编辑框,
20 个为控件。编辑框设置为只读,不能接受输入;+、-、*、÷为操作按钮;+
/-、Sqrt、1/x 分别为取负、求平方根及求倒数按钮;Back 为倒退按扭,删除错
误的数字输入;Clear 为清除按扭,重新开始新的运算操作;单击“=”按扭,在
编辑框中显示最后的计算结果。
3
3、添加成员变量
(1)利用 ClassWizard 为编辑框在 CCalculatorDlg 对话框类中添加 double 型成
员变量 m_result。
(2) 为 CCalculatorDlg 类 添 加 两 个 int 型 变 量
m_OprationCount、m_NumberCount,一个 double 型数组 m_number[15]和一个 int
型数组 m_Opration[15]。变量 m_OprationCount 用于存放输入的加、减、乘、除
四种运算的顺序号,m_NumberCount 用于存放输入的操作数的顺序号,数组
m_number[15] 存放输入的操作数,m_Opration[15] 存放输入的存放输入的操作
符。
4、添加信息映射及成员函数
(1)、 手工加入 ON_COMMAND_RANGE 命令信息映射,处理分配个一系
列相邻编号的命令 ID。
1)、 在 CalculatorDlg.h 头文件中声明信息映射函数。
afx_msg void OnNumberKey(UINT nID);
afx_msg void OnOperationKey(UINT nID);
其 中 , 函 数 OnNumberKey( ) 用 来 响 应 数 字 按 钮 的 单 击 操 作 ,
OnOperationKey( ) 响应操作符按钮的单击操作。
2) 、 在 CalculatorDlg.cpp 实 现 文 件 的 信 息 映 射 表 中 加 入
ON_COMMAND_RANGE 命令信息。
ON_COMMAND_RANGE(IDC_NUMBER7 ,IDC_NUMBER0,OnNumberKey)
ON_COMMAND_RANGE(IDC_MINUS,IDC_ADD ,OnOperationKey)
(2)在 CalculatorDlg.cpp 实现文件中加入信息处理函数。
void CMyDlg::OnNumberKey(UINT nID)
{
int n=0;
switch(nID)
{
case IDC_NUMBER1: n=1; break;
4
case IDC_NUMBER2: n=2; break;
case IDC_NUMBER3: n=3; break;
case IDC_NUMBER4: n=4; break;
case IDC_NUMBER5: n=5; break;
case IDC_NUMBER6: n=6; break;
case IDC_NUMBER7: n=7; break;
case IDC_NUMBER8: n=8; break;
case IDC_NUMBER9: n=9; break;
case IDC_NUMBER0: n=0; break;
}
if (!flagofpoint)
{
m_number[m_NumberCount]=m_number[m_NumberCount]*10+n;
m_result=m_number[m_NumberCount];
}
else
{
double resultofpoint=1;
for (int i=0; i<countofpoint; i++)
{
resultofpoint*=10;
}
m_number[m_NumberCount]=m_number[m_NumberCount]+n/resultofpoint;
m_result=m_number[m_NumberCount];
countofpoint++;
}
UpdateData(false);
}
void CMyDlg::OnOperationKey(UINT nID)
{
flagofpoint=false;
countofpoint=1;
int i;
switch(nID)
{
case IDC_ADD:
m_Operation[m_OperationCount]=1; break;
case IDC_SUBTRACT:
m_Operation[m_OperationCount]=2; break;
case IDC_MULTIPLY:
m_Operation[m_OperationCount]=3; break;
case IDC_DIVIDE:
m_Operation[m_OperationCount]=4; break;
5