您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > C++课程设计人事管理系统
1《面向对象编程技术》课程设计实验报告姓名:学号:班级:指导老师:日期:2目录:一.设计任务与要求……………………………………………………….31.设计目的……………………………………………………………………32.课程设计的要求………………………………………………………..3二.系统分析……………………………………………………………………31.需求分析:………………………………………………………………32.功能分析:………………………………………………………………33.系统功能模块………………………………………………………..34.功能的实现……………………………………………………………35.模块框架图…………………………………………………………...4三.系统设计…………………………………………………………………...4四.问题分析和实验总结………………………………………………..10课程设计部分源代码…………………………………………………………113一.设计任务与要求设计题目:人事管理系统1.设计目的:制作人事管理系统,实现对增加数据记录,删除记录,排序记录,筛选记录数据的要求。2.课程设计的要求A.用access创建人事管理数据表,该表记录职工的基本信息,其中包括职工编号,职工姓名,所在部门,职工年龄,工作时间,基本工资,职称和监理等信息。B.创建新的数据源C.论述对“MFCAppEizard(exe)”生成的应用程序的框架的认识,理解和开发心得二.系统分析1.需求分析:可利用该程序实现对员工信息的记录和浏览能够对职工信息进行输入、删除、排序、以及筛选等操作;2.功能分析:新增记录:系统能在原有记录的基础上增加新的记录。删除记录:对数据表中的数据进行删除。筛选记录:根据职工标号对职工进行筛选进行精确查找职工人员。排序记录:对职工信息编号进行从小到大的排序3.系统功能模块人事管理系统有:新增记录、深处记录、排序记录、筛选及浏览记录。4.功能的实现:1)“筛选及浏览记录”模块:在access中建表时,在职工编号栏开启关键词索引功能,筛选时在对话框的编辑框内输入要筛选的职工标号即可进行筛选。2)“新增记录”模块:再新建一个对话框创建一个新类,给每个编辑框绑定变量,在人事管理系统view.cpp中添加自拟头文件3)“数据删除模块”显示当前的数据内容,点击删除按钮将该职工的所有信息删除。4)“排序记录”模块显示当前数据内容,点击排序按钮将当前表中所有员工信息从小到大排序。45.模块框架图三、系统设计人事管理系统.mdb表的初始化结果1.界面设计人事管理系统增加记录删除记录填写信息删除数据保存员工信息筛选记录输入编号显示职工信息排序记录排序数据显示当前编号最小的员工信息该员工信息消失5运行时主界面6增加记录界面增加信息成功:7筛选界面筛选成功:8排序和删除界面删除了李英的信息9排序功能:102、程序设计通过主窗体调用其他窗体,在调用增加记录时要弹出新的对话框,一边输入要添加的信息。筛选记录时,要实现在创建access数据库时打开索引功能。这样再点击筛选记录是只要在新对话框中输入关键词(职工编号)便可。四、课程设计的问题分析和实验总结此次的人事管理系统的设计,主要是运用MFC操作,以让程序更加的便于操作和使用,这其中也出现了不少问题,走了很多弯路,比如:1.创建数据源,用控制面板设置数据源文件时老是出错。解决方法:先在access中创建人事管理系统表,然后在控制面板中原则添加指定数据源。2.在写对话框类成员函数时总出现大小写错误,导致程序编译不能通过。解决办法:仔细检查源代码,利用错误提示改正。3.在编写子对话框成员函数时,编译老提示该类未申明。解决办法:原因是未在view.cpp文件中添加对应的类头文件,所以在对应位置添加头文件。4.在添加函数中,发现实验指导的步骤结果增加记录函数运行结果不能正常添加记录。解决办法:点击增加函数时,应该弹出输入信息对话框,以便新增职工信息,新增完毕后,点击确定完成添加操作。上网查阅资料后,完善了增加函数代码,并新增了一个对话框和对应类CDlgAdd,使其能完成其指定功能。本程序部分源代码:11//人事管理系统View.cpp:implementationoftheCMyViewclass//#includestdafx.h#include人事管理系统.h#includeDlgQuery.h#includeDlgAdd.h#include人事管理系统Set.h#include人事管理系统Doc.h#include人事管理系统View.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_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_CLICKED(IDC_BUTTON_SORT,OnButtonSort)//}}AFX_MSG_MAP//StandardprintingcommandsON_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/destructionCMyView::CMyView():CRecordView(CMyView::IDD){//{{AFX_DATA_INIT(CMyView)m_pSet=NULL;12m_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//theCREATESTRUCTcsreturnCRecordView::PreCreateWindow(cs);}voidCMyView::OnInitialUpdate(){m_pSet=&GetDocument()-m_mySet;CRecordView::OnInitialUpdate();GetParentFrame()-RecalcLayout();ResizeParentToFit();}/////////////////////////////////////////////////////////////////////////////13//CMyViewprintingBOOLCMyView::OnPreparePrinting(CPrintInfo*pInfo){//defaultpreparationreturnDoPreparePrinting(pInfo);}voidCMyView::OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/){//TODO:addextrainitializationbeforeprinting}voidCMyView::OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/){//TODO:addcleanupafterprinting}///////////////////////////////////////////////////////////////////////////////CMyViewdiagnostics#ifdef_DEBUGvoidCMyView::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///////////////////////////////////////////////////////////////////////////////CMyViewdatabasesupportCRecordset*CMyView::OnGetRecordset(){returnm_pSet;14}///////////////////////////////////////////////////////////////////////////////CMyViewmessagehandlersvoidCMyView::OnButtonAdd(){//TODO:Addyourcontrolnotificationhandlercodehere/*m_pSet-AddNew();m_pSet-Update();//更新记录集m_pSet-Requery();//重新提取数据m_pSet-MoveLast();//移动下一条记录Update
本文标题:C++课程设计人事管理系统
链接地址:https://www.777doc.com/doc-6336300 .html