C++课程设计人事管理系统培训资料.docx

上传人:b****5 文档编号:6085261 上传时间:2023-01-03 格式:DOCX 页数:15 大小:461.71KB
下载 相关 举报
C++课程设计人事管理系统培训资料.docx_第1页
第1页 / 共15页
C++课程设计人事管理系统培训资料.docx_第2页
第2页 / 共15页
C++课程设计人事管理系统培训资料.docx_第3页
第3页 / 共15页
C++课程设计人事管理系统培训资料.docx_第4页
第4页 / 共15页
C++课程设计人事管理系统培训资料.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++课程设计人事管理系统培训资料.docx

《C++课程设计人事管理系统培训资料.docx》由会员分享,可在线阅读,更多相关《C++课程设计人事管理系统培训资料.docx(15页珍藏版)》请在冰豆网上搜索。

C++课程设计人事管理系统培训资料.docx

C++课程设计人事管理系统培训资料

 

C++课程设计人事管理系统

 

《面向对象编程技术》课程设计实验报告

 

姓名:

学号:

班级:

指导老师:

日期:

 

目录:

一.设计任务与要求……………………………………………………….3

1.设计目的……………………………………………………………………3

2.课程设计的要求………………………………………………………..3

二.系统分析……………………………………………………………………3

1.需求分析:

………………………………………………………………3

2.功能分析:

………………………………………………………………3

3.系统功能模块………………………………………………………..3

4.功能的实现……………………………………………………………3

5.模块框架图…………………………………………………………...4

三.系统设计…………………………………………………………………...4

四.问题分析和实验总结………………………………………………..10

课程设计部分源代码…………………………………………………………11

 

一.设计任务与要求

设计题目:

人事管理系统

1.设计目的:

制作人事管理系统,实现对增加数据记录,删除记录,排序记录,筛选记录数据的要求。

2.课程设计的要求

A.用access创建人事管理数据表,该表记录职工的基本信息,其中包括职工编号,职工姓名,所在部门,职工年龄,工作时间,基本工资,职称和监理等信息。

B.创建新的数据源

C.论述对“MFCAppEizard(exe)”生成的应用程序的框架的认识,理解和开发心得

二.系统分析

1.需求分析:

●可利用该程序实现对员工信息的记录和浏览

●能够对职工信息进行输入、删除、排序、以及筛选等操作;

2.功能分析:

●新增记录:

系统能在原有记录的基础上增加新的记录。

●删除记录:

对数据表中的数据进行删除。

●筛选记录:

根据职工标号对职工进行筛选进行精确查找职工人员。

●排序记录:

对职工信息编号进行从小到大的排序

3.系统功能模块

人事管理系统有:

新增记录、深处记录、排序记录、筛选及浏览记录。

4.功能的实现:

1)“筛选及浏览记录”模块:

在access中建表时,在职工编号栏开启关键词索引功能,筛选时在对话框的编辑框内输入要筛选的职工标号即可进行筛选。

2)“新增记录”模块:

再新建一个对话框创建一个新类,给每个编辑框绑定变量,在人事管理系统view.cpp中添加自拟头文件

3)“数据删除模块”

显示当前的数据内容,点击删除按钮将该职工的所有信息删除。

4)“排序记录”模块

显示当前数据内容,点击排序按钮将当前表中所有员工信息从小到大排序。

5.模块框架图

 

三、系统设计

人事管理系统.mdb表的初始化结果

1.界面设计

运行时主界面

●增加记录界面

增加信息成功:

●筛选界面

筛选成功:

●排序和删除界面

删除了李英的信息

排序功能:

2、程序设计

通过主窗体调用其他窗体,在调用增加记录时要弹出新的对话框,一边输入要添加的信息。

筛选记录时,要实现在创建access数据库时打开索引功能。

这样再点击筛选记录是只要在新对话框中输入关键词(职工编号)便可。

四、课程设计的问题分析和实验总结

此次的人事管理系统的设计,主要是运用MFC操作,以让程序更加的便于操作和使用,这其中也出现了不少问题,走了很多弯路,比如:

1.创建数据源,用控制面板设置数据源文件时老是出错。

解决方法:

先在access中创建人事管理系统表,然后在控制面板中原则添加指定数据源。

2.在写对话框类成员函数时总出现大小写错误,导致程序编译不能通过。

解决办法:

仔细检查源代码,利用错误提示改正。

3.在编写子对话框成员函数时,编译老提示该类未申明。

解决办法:

原因是未在view.cpp文件中添加对应的类头文件,所以在对应位置添加头文件。

4.在添加函数中,发现实验指导的步骤结果增加记录函数运行结果不能正常添加记录。

解决办法:

点击增加函数时,应该弹出输入信息对话框,以便新增职工信息,新增完毕后,点击确定完成添加操作。

上网查阅资料后,完善了增加函数代码,并新增了一个对话框和对应类CDlgAdd,使其能完成其指定功能。

本程序部分源代码:

//人事管理系统View.cpp:

implementationoftheCMyViewclass

//

#include"stdafx.h"

#include"人事管理系统.h"

#include"DlgQuery.h"

#include"DlgAdd.h"

#include"人事管理系统Set.h"

#include"人事管理系统Doc.h"

#include"人事管理系统View.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CMyView

IMPLEMENT_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_CLICKED(IDC_BUTTON_SORT,OnButtonSort)

//}}AFX_MSG_MAP

//Standardprintingcommands

ON_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()

/////////////////////////////////////////////////////////////////////////////

//CMyViewconstruction/destruction

CMyView:

:

CMyView()

:

CRecordView(CMyView:

:

IDD)

{

//{{AFX_DATA_INIT(CMyView)

m_pSet=NULL;

m_gzsj=0;

//}}AFX_DATA_INIT

//TODO:

addconstructioncodehere

}

CMyView:

:

~CMyView()

{

}

voidCMyView:

:

DoDataExchange(CDataExchange*pDX)

{

CRecordView:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CMyView)

DDX_FieldText(pDX,IDC_EDIT_JBGZ,m_pSet->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->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_MAP

}

BOOLCMyView:

:

PreCreateWindow(CREATESTRUCT&cs)

{

//TODO:

ModifytheWindowclassorstylesherebymodifying

//theCREATESTRUCTcs

returnCRecordView:

:

PreCreateWindow(cs);

}

voidCMyView:

:

OnInitialUpdate()

{

m_pSet=&GetDocument()->m_mySet;

CRecordView:

:

OnInitialUpdate();

GetParentFrame()->RecalcLayout();

ResizeParentToFit();

}

/////////////////////////////////////////////////////////////////////////////

//CMyViewprinting

BOOLCMyView:

:

OnPreparePrinting(CPrintInfo*pInfo)

{

//defaultpreparation

returnDoPreparePrinting(pInfo);

}

voidCMyView:

:

OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)

{

//TODO:

addextrainitializationbeforeprinting

}

voidCMyView:

:

OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)

{

//TODO:

addcleanupafterprinting

}

/////////////////////////////////////////////////////////////////////////////

//CMyViewdiagnostics

#ifdef_DEBUG

voidCMyView:

:

AssertValid()const

{

CRecordView:

:

AssertValid();

}

voidCMyView:

:

Dump(CDumpContext&dc)const

{

CRecordView:

:

Dump(dc);

}

CMyDoc*CMyView:

:

GetDocument()//non-debugversionisinline

{

ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));

return(CMyDoc*)m_pDocument;

}

#endif//_DEBUG

/////////////////////////////////////////////////////////////////////////////

//CMyViewdatabasesupport

CRecordset*CMyView:

:

OnGetRecordset()

{

returnm_pSet;

}

/////////////////////////////////////////////////////////////////////////////

//CMyViewmessagehandlers

voidCMyView:

:

OnButtonAdd()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

/*m_pSet->AddNew();

m_pSet->Update();//更新记录集

m_pSet->Requery();//重新提取数据

m_pSet->MoveLast();//移动下一条记录

UpdateData(FALSE);//更新视图*/

try

{

CDlgAddDlgAdd;

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=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);//对于异常信息的处理,这里是简单的输出错误的信息

}

}

voidCMyView:

:

OnButtonDel()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_pSet->Delete();

m_pSet->MoveNext();

if(m_pSet->IsEOF())

m_pSet->MoveLast();

if(m_pSet->IsBOF())

m_pSet->SetFieldNull(NULL);

UpdateData(FALSE);

}

voidCMyView:

:

OnButtonFilter()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CDlgQueryDlgquery;

CStringvalue;

if(Dlgquery.DoModal()==IDOK)//"模式窗口方式打开,结束前不能操纵父窗口"

{

value="职工编号=+"+Dlgquery.m_query+"";

m_pSet->m_strFilter=value;

m_pSet->Requery();

UpdateData(FALSE);

}

}

voidCMyView:

:

OnButtonSort()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_pSet->m_strSort="职工编号";

m_pSet->Requery();

UpdateData(FALSE);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1