c++课程设计mfc要求

上传人:第*** 文档编号:32683351 上传时间:2018-02-12 格式:DOC 页数:28 大小:1.02MB
返回 下载 相关 举报
c++课程设计mfc要求_第1页
第1页 / 共28页
c++课程设计mfc要求_第2页
第2页 / 共28页
c++课程设计mfc要求_第3页
第3页 / 共28页
c++课程设计mfc要求_第4页
第4页 / 共28页
c++课程设计mfc要求_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《c++课程设计mfc要求》由会员分享,可在线阅读,更多相关《c++课程设计mfc要求(28页珍藏版)》请在金锄头文库上搜索。

1、面向对象程序设计课程设计(之方向二VC+ MFC 应用)指导书1设计一:“用 VC+制作一个人事管理系统”11 课程设计的目的和意义人事管理系统具有数据库应用系统的典型特征,同时系统结构与现实生活联系紧密,便于没有分析、设计经验的同学进一步扩展,应此它的开发简单而又不失一般性。本设计的目的是使同学们初步掌握 VC+ MFC 应用程序的结构和开发。12 课程设计要求(满分 8590)(1) 完成具有以下功能的人事管理系统:人事信息的增、删、改、查和排序,并能成功演示其运行。(2) 阐述在开发过程中遇到的问题及解决过程。(3) 解决 VC 在开发数据库应用时“日期/时间字段”的查询和更新问题。(可

2、以采用其他新方法)(4) 论述你对“MFC AppWizard(exe) ”生成的应用程序的框架的认识、理解和开发心得。(5) 选做:同学们可根据自己的调研进一步扩充系统功能,如“万能查询” ,即可以按所有字段查询。附:教学大纲中的有关要求:成绩考核面向对象的编程技术课程设计实验采用课程设计实验报告和课程设计实验应用系统程序综合评定成绩,其中课程设计实验报告占 60%;课程设计应用系统程序占 40%。课程设计提交一份综合实验报告,一份程序软盘,课程设计应用系统程序采取上机检验的方式确定分数。课程设计实验报告的基本格式课程设计实验报报告的基本内容至少包括封面、正文、附录三部分。1封面封面包括“面

3、向对象的编程技术课程设计实验报告” 、班级、姓名、设计时间等信息。2正文(1)应用程序的名称;(2)应用程序的主题、设计目的;(3)应用程序简介:设计目的、功能介绍、基本内容、主要技术、运行环境等;(4)应用程序的总体设计结构图、类层次图、主要运行界面的介绍;(5)创新和难点:阐述创新的得意之处;在开发过程中遇到的重点、难点问题及解决过程。(6)课程设计中目前存在的问题;(7)设计实践过程中的心得体会。3附录附录中至少包括:附录 1: 程序的安装、使用说明。2设计一:“用 VC+制作一个人事管理系统”开发指导 21 数据库设计采用 Access 数据库:“人事管理系统.mdb ”数据库中有一张

4、“人事管理数据表”方法一:利用 VC+创建数据工程VC 主菜单 | 文件 | 新建 | 工程标签中的数据库工程 | 输入工程名和保存位置 ,ok|进入数据源选择对话框,选机器数据源 | new,用户数据源,下一步| 数据源类型选 Microsoft Access Driver*.mdb下一步,完成| 先 create 一个库“人事管理系统.mdb” ,然后输入数据源名称,ok| 回到数据工程窗体,双击弹开,Tables 右键,准备在数据库中 new 一张“人事管理数据表” 。不规范的 VC+安装版无法“New Table”,所以只好把前面工作全删掉,准备采用方法二。方法二:用 Office 中

5、的 Access 软件建库、建表、输入数据,配置 ODBC 数据源“人事管理数据表”结构如下:字段名称 字段类型 字段大小 索引 必须填写职工编号 数字 长整型 有(无重复) ,主键 是职工姓名 文本 20 是职工性别 文本 2 是所在部门 文本 30 是职工年龄 数字 整型 是工作时间 日期/时间 10 短日期 是基本工资 数字 单精度 是职称 文本 20 是简历 备注 默认 是输入数据:配数据源: 控制面板 | 管理工具| 双击数据源(ODBC) 指 W2K,98 或 xp 下可能位置不同| User DSN | Add | 数据源类型选 Microsoft Access Driver*.

6、mdb,完成| 输入数据源名称“人事管理系统 ”, “选择”刚创建好的 mdb 文件,确定22 创建人事管理应用程序框架VC+ | 文件 | 新建 | 工程标签中的 MFC AppWizard(exe)向导 |输入工程名和保存位置 ,ok选“单文档” , “支持文档/视图架构 ”,next选不带文件支持的数据库视图,点 Data Source,选中刚建好的 ODBC 数据源及其中的表 此时就可以 finish。看一下摘要。向导已帮你生成程序框架理解此框架见参考书23 制作人事管理主窗体向导已生成主窗体:Dialog 下的 IDD_MY_FORM。在此对话框中加 10 个静态标签控件(只是用来提

7、示其旁边的编辑框),如下表:控件 ID 控件类型 控件标题IDC_STATIC_BT 静态标签 人事管理系统IDC_STATIC_ZGBH 静态标签 职工编号IDC_STATIC_ZGXM 静态标签 职工姓名IDC_STATIC_ZGXB 静态标签 职工性别IDC_STATIC_SZBM 静态标签 所在部门IDC_STATIC_ZGNL 静态标签 职工年龄IDC_STATIC_GZSJ 静态标签 工作时间IDC_STATIC_JBGZ 静态标签 基本工资IDC_STATIC_ZC 静态标签 职称IDC_STATIC_JL 静态标签 简历每个控件下右键 | 属性,可设置其 ID 和标题在对应的静

8、态标签右边放 9 个编辑框控件,每个控件下右键 | 属性,可设置其 ID。 控件 ID 控件类型 绑定数据库字段IDC_EDIT_ZGBH 编辑框控件 职工编号IDC_EDIT_ZGXM 编辑框控件 职工姓名IDC_EDIT_ZGXB 编辑框控件 职工性别IDC_EDIT_SZBM 编辑框控件 所在部门IDC_EDIT_ZGNL 编辑框控件 职工年龄IDC_EDIT_GZSJ 编辑框控件 工作时间IDC_EDIT_JBGZ 编辑框控件 基本工资IDC_EDIT_ZC 编辑框控件 职称IDC_EDIT_JL 编辑框控件 简历为每个编辑框控件绑定数据源字段:选定一个编辑框控件,右键 | 建立类向导

9、 | 成员变量标签 |class name 列表下选 CmySet(数据库的结果集) 。左边是数据库字段资源,右边是在类中为其分配的成员变量,但 m_column*不好记,又不能改,只好全部删掉(Delete Variable)再手工建立(Add Variable) ,换为好记的名字将编辑框(在 CmyView 视图类中)与上述变量绑定:Add Variable然后选而不是输入。你会发现惟独 IDC_EDIT_GZSJ 与 m_gzsj(工作时间)联不上(没有 m_pSet-m_gzsj 可选),看一下 m_gzsj 的定义,在“人事管理系统 Set.h”文件中。 用的是 Ctime 类,此类

10、有些毛病(年份范围有限) 以下花了很大精力解决 “日期/ 时间字段”问题,本来可以把数据库的“工作时间”字段改为“文本”类型,这样向导就会自动对应 Cstring,从而回避此问题。之所以不回避,主要目的是想通过解决此问题,让同学们了解程序的结构。 ,并且应该初始化为 0(即 NULL) (据说用 SQL Server 数据库就没问题,难道是与 Access 不匹配?) ,因此检查一下 CmySet 类的构造函数:发现惟独没有对 m_gzsj 初始化,因此加一句 m_gzsj=0;再回去看看,结果还是不能绑定(还是没有 m_pSet-m_gzsj 可选) 。 所以还是不用 Ctime 类,改用

11、COleDateTime 类,改头文件:m_gzsj=NULL;改构造函数中的初始化:再回去看看,结果可以绑定了,注意类型变为 COleDateTime。再到视图类中看看影射函数 DoDataExchange(),已有映射了。保存,编译出错,提示 DDX_FieldText(pDX, IDC_EDIT_GZSJ, m_pSet-m_gzsj, m_pSet);中DDX_FieldText : none of the 10 overloads can convert parameter 3 from type class COleDateTime可见 COleDateTime 与 CString

12、 无法转换方法 1:自己转 (请用此方法完成后面的“增加记录” )int dyear,dmonth,dday;dyear= m_pSet-m_gzsj.GetYear();dmonth= m_pSet-m_gzsj.GetMonth();dday= m_pSet-m_gzsj.GetDay();CString dstr;dstr.Format(“%d-%d-%d”,dyear,dmonth,dday);DDX_FieldText(pDX, IDC_EDIT_GZSJ, dstr, m_pSet);编译,运行 开始正确,但点“下一记录” ,出错,考虑:DDX_FieldText(pDX, IDC

13、_EDIT_GZSJ, dstr, m_pSet);中最后的指针已没有用处,将此句改为: DDX_Text(pDX, IDC_EDIT_GZSJ, dstr); 编译,运行,暂时正确(还未经过 UPDATE 验证)方法 2:不用 Cstring,即不用编辑框控件 IDC_EDIT_GZSJ,取消其与 m_gzsj 的绑定,再删掉此编辑框控件;在对话框中加一个“Date Time Picker”控件,资源索引 ID 为IDC_DATETIMEPICKER_GZSJ,并与 m_gzsj 绑定。此时视图类中的影射函数 DoDataExchange()增加了一句:DDX_ FieldDateTimeC

14、trl(pDX, DATETIMEPICKER_GZSJ, m_pSet-m_gzsj, m_pSet)。 但编译报错:没有 DDX_FieldDateTimeCtrl 标识(应该是 VC 的 BUG) ,故改为:DDX_DateTimeCtrl(pDX, DATETIMEPICKER_GZSJ, m_pSet-m_gzsj);运行也正确(还未经过 UPDATE 验证)2.4 为系统实现增加、删除、排序和查询功能2.4.1 增加 4 个按钮,ID 如下表:控件 ID 控件类型 控件标题IDC_BUTTON_ADD 命令按钮 增加记录IDC_BUTTON_DEL 命令按钮 删除记录IDC_BUT

15、TON_SORT 命令按钮 排序记录IDC_BUTTON_FILTER 命令按钮 筛选记录2.4.2 增加新的对话框(窗体)及创建类成员在查询或过滤记录时,需要一个对话框,用于输入查询的条件,增加对话框的方法:VC 主菜单, “插入”| “资源”| “对话框(Dialog)类型”| 放一个“分组框控件” ,标题为“请输入过滤查询条件”| 在分组框内放一个 “编辑框”控件新建对话框在工程中是不可识别的,须为其定义一个新的“类”并作一个类的声明,才可在工程中调用,对话框中“右键”| “类向导” ,提示必须创建新类,创建,并命名为CDlgQuery 切到“成员变量”标签,为编辑框控件 IDC_EDI

16、T1 增加成员变量 m_query2.4.3 编制按钮的单击响应代码回到 IDD_MY_FORM 对话框,(1) 双击“增加记录”按钮,完成下列代码:void CMyView:OnButtonAdd() / TODO: Add your control notification handler code herem_pSet-AddNew();m_pSet-Update();/更新记录集m_pSet-Requery();/重新提取数据m_pSet-MoveLast();/移动下一条记录UpdateData(FALSE);/更新视图(2) 双击“删除记录”按钮,完成下列代码:void CMyView:OnButtonDel() / TODO:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号