C++课程设计人事管理系统_第1页
C++课程设计人事管理系统_第2页
C++课程设计人事管理系统_第3页
C++课程设计人事管理系统_第4页
C++课程设计人事管理系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上面向对象编程技术课程设计实验报告姓名: 学号:班级:指导老师:日期:目录:一 设计任务与要求.31. 设计目的32. 课程设计的要求.3二 系统分析31. 需求分析:32. 功能分析:33. 系统功能模块.34. 功能的实现35. 模块框架图.4三 系统设计.4四 问题分析和实验总结.10课程设计部分源代码11 一 设计任务与要求设计题目:人事管理系统1.设计目的:制作人事管理系统,实现对增加数据记录,删除记录,排序记录,筛选记录数据的要求。2.课程设计的要求A用access创建人事管理数据表,该表记录职工的基本信息,其中包括职工编号,职工姓名,所在部门,职工年龄,工

2、作时间,基本工资,职称和监理等信息。B.创建新的数据源C.论述对“MFC AppEizard(exe)”生成的应用程序的框架的认识,理解和开发心得二系统分析1.需求分析:l 可利用该程序实现对员工信息的记录和浏览l 能够对职工信息进行输入、删除、排序、以及筛选等操作;2.功能分析:l 新增记录:系统能在原有记录的基础上增加新的记录。l 删除记录:对数据表中的数据进行删除。l 筛选记录:根据职工标号对职工进行筛选进行精确查找职工人员。l 排序记录:对职工信息编号进行从小到大的排序3.系统功能模块人事管理系统有:新增记录、深处记录、排序记录、筛选及浏览记录。4.功能的实现:1) “筛选及浏览记录”

3、模块:在access中建表时,在职工编号栏开启关键词索引功能,筛选时在对话框的编辑框内输入要筛选的职工标号即可进行筛选。2) “新增记录”模块:再新建一个对话框创建一个新类,给每个编辑框绑定变量,在人事管理系统view.cpp中添加自拟头文件3) “数据删除模块”显示当前的数据内容,点击删除按钮将该职工的所有信息删除。4) “排序记录”模块显示当前数据内容,点击排序按钮将当前表中所有员工信息从小到大排序。5.模块框架图人事管理系统该员工信息消失排序记录排序数据显示当前编号最小的员工信息删除数据删除记录保存员工信息填写信息增加记录筛选记录输入编号显示职工信息三、系统设计人事管理系统.mdb表的初

4、始化结果 1.界面设计运行时主界面l 增加记录界面增加信息成功:l 筛选界面筛选成功:l 排序和删除界面删除了李英的信息排序功能:2、程序设计通过主窗体调用其他窗体,在调用增加记录时要弹出新的对话框,一边输入要添加的信息。筛选记录时,要实现在创建access数据库时打开索引功能。这样再点击筛选记录是只要在新对话框中输入关键词(职工编号)便可。四、课程设计的问题分析和实验总结此次的人事管理系统的设计,主要是运用MFC操作,以让程序更加的便于操作和使用,这其中也出现了不少问题,走了很多弯路,比如:1. 创建数据源,用控制面板设置数据源文件时老是出错。解决方法:先在access中创建人事管理系统表,

5、然后在控制面板中原则添加指定数据源。2. 在写对话框类成员函数时总出现大小写错误,导致程序编译不能通过。解决办法:仔细检查源代码,利用错误提示改正。3. 在编写子对话框成员函数时,编译老提示该类未申明。解决办法:原因是未在view.cpp文件中添加对应的类头文件,所以在对应位置添加头文件。4. 在添加函数中,发现实验指导的步骤结果增加记录函数运行结果不能正常添加记录。解决办法:点击增加函数时,应该弹出输入信息对话框,以便新增职工信息,新增完毕后,点击确定完成添加操作。上网查阅资料后,完善了增加函数代码,并新增了一个对话框和对应类CDlgAdd,使其能完成其指定功能。本程序部分源代码:/ 人事管

6、理系统View.cpp : implementation of the CMyView class/#include "stdafx.h"#include "人事管理系统.h"#include "DlgQuery.h"#include "DlgAdd.h"#include "人事管理系统Set.h"#include "人事管理系统Doc.h"#include "人事管理系统View.h"#ifdef _DEBUG#define new DEBUG_NEW#

7、undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMyViewIMPLEMENT_DYNCREATE(CMyView, CRecordView)BEGIN_MESSAGE_MAP(CMyView, CRecordView)/AFX_MSG_MAP(CMyView)ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel)ON_BN_CLICKED(IDC_BUTTON_FILTER, OnButtonFilter)ON_BN_

8、CLICKED(IDC_BUTTON_SORT, OnButtonSort)/AFX_MSG_MAP/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CRecordView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView:OnFilePrintPreview)END_MESSAGE_MAP()/ CMyView construction/destructio

9、nCMyView:CMyView(): CRecordView(CMyView:IDD)/AFX_DATA_INIT(CMyView)m_pSet = NULL;m_gzsj = 0;/AFX_DATA_INIT/ TODO: add construction code hereCMyView:CMyView()void CMyView:DoDataExchange(CDataExchange* pDX)CRecordView:DoDataExchange(pDX);/AFX_DATA_MAP(CMyView)DDX_FieldText(pDX, IDC_EDIT_JBGZ, m_pSet-&

10、gt;m_jbgz, m_pSet);DDX_FieldText(pDX, IDC_EDIT_JL, m_pSet->m_jl, m_pSet);DDX_FieldText(pDX, IDC_EDIT_SZBM, m_pSet->m_szbm, m_pSet);DDX_FieldText(pDX, IDC_EDIT_ZC, m_pSet->m_zc, m_pSet);DDX_FieldText(pDX, IDC_EDIT_ZGBH, m_pSet->m_zgbh, m_pSet);DDX_FieldText(pDX, IDC_EDIT_ZGNL, m_pSet->

11、m_zgnl, m_pSet);DDX_FieldText(pDX, IDC_EDIT_ZGXB, m_pSet->m_zgxb, m_pSet);DDX_FieldText(pDX, IDC_EDIT_ZGXM, m_pSet->m_zgxm, m_pSet);DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_GZSJ, m_pSet->m_gzsj);/AFX_DATA_MAPBOOL CMyView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class o

12、r styles here by modifying/ the CREATESTRUCT csreturn CRecordView:PreCreateWindow(cs);void CMyView:OnInitialUpdate()m_pSet = &GetDocument()->m_mySet;CRecordView:OnInitialUpdate();GetParentFrame()->RecalcLayout();ResizeParentToFit();/ CMyView printingBOOL CMyView:OnPreparePrinting(CPrintInf

13、o* pInfo)/ default preparationreturn DoPreparePrinting(pInfo);void CMyView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initialization before printingvoid CMyView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add cleanup after printing/ CMyView diagnostics#ifdef

14、_DEBUGvoid CMyView:AssertValid() constCRecordView:AssertValid();void CMyView:Dump(CDumpContext& dc) constCRecordView:Dump(dc);CMyDoc* CMyView:GetDocument() / non-debug version is inlineASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc);return (CMyDoc*)m_pDocument;#endif /_DEBUG/ CMyView datab

15、ase supportCRecordset* CMyView:OnGetRecordset()return m_pSet;/ CMyView message handlersvoid CMyView:OnButtonAdd() / TODO: Add your control notification handler code here/*m_pSet->AddNew();m_pSet->Update();/更新记录集m_pSet->Requery();/重新提取数据m_pSet->MoveLast();/移动下一条记录UpdateData(FALSE);/更新视图*/

16、tryCDlgAdd DlgAdd;if(DlgAdd.DoModal()=IDOK)/"模式窗口方式打开,结束前不能操纵父窗口"m_pSet->AddNew();m_pSet->m_zgbh=DlgAdd.m_zgbh;m_pSet->m_zgxm=DlgAdd.m_zgxm;m_pSet->m_zgnl=DlgAdd.m_zgnl;m_pSet->m_zgxb=DlgAdd.m_zgxb;m_pSet->m_zc=DlgAdd.m_zc;m_pSet->m_szbm=DlgAdd.m_szbm;m_pSet->m_jbgz

17、=DlgAdd.m_jbgz;m_pSet->m_gzsj=DlgAdd.m_gzsj;m_pSet->m_jl=DlgAdd.m_jl;m_pSet->Update();/更新记录集m_pSet->Requery();/重新提取记录集m_pSet->MoveLast();/移动下一条记录UpdateData(FALSE);/更新视图catch (CDBException* e)MessageBox(e->m_strError);/对于异常信息的处理,这里是简单的输出错误的信息void CMyView:OnButtonDel() / TODO: Add yo

18、ur control notification handler code herem_pSet->Delete();m_pSet->MoveNext();if(m_pSet->IsEOF()m_pSet->MoveLast();if(m_pSet->IsBOF()m_pSet->SetFieldNull(NULL);UpdateData(FALSE);void CMyView:OnButtonFilter() / TODO: Add your control notification handler code hereCDlgQuery Dlgquery;CString value;if(Dlgquery.DoModal()=IDOK)/"模式窗口方式打开,结束前不能操纵父窗口"v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论