1、C+课程设计报告青岛理工大学C+面向对象课程设计报告院(系) 计算机工程学院 专业: 计算机科学与技术 学生姓名: 班级:学号: 题目: 人事管理系统 起迄日期: 12月20号12月31号 设计地点: 2#401室 指 导 教 师: 完成日期: 2010 年 12月 31日目录一、 需求分析 2二、设计内容 21、程序的主要功能模块: 22、主要模块的流程图 6(1)添加记录: 6(2)修改记录: 6(3)删除记录: 7(4)查询记录: 7(5)排序: 8(6)统计人数: 83、数据库的建立及设计步骤: 9【1】建立数据库及连接步骤 9【2】程序主要代码: 14(1)添加记录 14(2)修改记
2、录 14(3)删除记录 15(4)查询记录 15(5)排序 15(6)统计人数 15(7)初始化界面 16三、调试分析 161实际完成的情况说明: 162程序的性能分析: 163上机过程中出现的问题及其解决方案: 164程序中可以改进的地方说明: 175程序中可以扩充的功能及设计实现构想: 17四、用户手册 171建立数据库 172登录界面: 173选择功能: 17五、设计总结 21六、参考文献 22七、附录 22一、需求分析1、开发这个系统的目的就是帮助企业的人力资源部门提高工作效率,实现企业人事信息管理的系统化,规范化和自动话。在C+面向对象思想的指导下,用数据库系统设计方法对公司人事系统
3、进行设计,使公司管理人员能够更容易、更方便的用计算机进行对人事的管理。2、能够实现以下功能:显示第一条记录,下一条记录,上一条记录,最后一条记录,添加记录,修改记录,删除记录,查询记录,排序和统计人数等功能。二、设计内容1、程序的主要功能模块:(1)CAboutDlg类 /系统自动定义生成class CAboutDlg : public CDialogpublic: CAboutDlg(); enum IDD = IDD_ABOUTBOX ; protected: virtual void DoDataExchange(CDataExchange* pDX); protected: DECLA
4、RE_MESSAGE_MAP();(2)CMainFrame类/系统自动定义生成class CMainFrame : public CFrameWnd protected: CMainFrame(); DECLARE_DYNCREATE(CMainFrame)public:public: virtual BOOL PreCreateWindow(CREATESTRUCT& cs);public: virtual CMainFrame();#ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext&
5、 dc) const;#endifprotected: CStatusBar m_wndStatusBar; CToolBar m_wndToolBar;protected: afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); DECLARE_MESSAGE_MAP();(3)CMyApp类/系统自动定义生成class CMyApp : public CWinApppublic: CMyApp(); public: virtual BOOL InitInstance(); afx_msg void OnAppAbout(); DECLARE
6、_MESSAGE_MAP();(4)CMyDoc类/系统自动定义生成class CMyDoc : public CDocumentprotected: CMyDoc(); DECLARE_DYNCREATE(CMyDoc)public: CMySet m_mySet;public: public: virtual BOOL OnNewDocument(); virtual void Serialize(CArchive& ar);public: virtual CMyDoc();#ifdef _DEBUG virtual void AssertValid() const; virtual vo
7、id Dump(CDumpContext& dc) const;#endifprotected:protected: DECLARE_MESSAGE_MAP();(5)CMySet类/系统自动定义生成class CMySet : public CRecordsetpublic: CMySet(CDatabase* pDatabase = NULL); DECLARE_DYNAMIC(CMySet) long m_column1; CString m_column2; CString m_column3; CString m_column4; long m_column5; CString m_
8、column6; long m_column7; CString m_column8; CString m_column9;public: virtual CString GetDefaultConnect(); virtual CString GetDefaultSQL(); virtual void DoFieldExchange(CFieldExchange* pFX); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const;#endif;(6)CMyView类/
9、定义编写的视图类class CMyView : public CRecordViewprotected: CMyView(); DECLARE_DYNCREATE(CMyView)public: enum IDD = IDD_MY_FORM ; CMySet* m_pSet; long m_bianhao; CString m_xingming; CString m_xingbie; CString m_bumen; int m_nianling; CString m_jingyan; int m_gongzi; CString m_zhiwei; CString m_xueli; int m
10、_renshu; public: CMyDoc* GetDocument();public: public: virtual CRecordset* OnGetRecordset(); virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual void DoDataExchange(CDataExchange* pDX); virtual void OnInitialUpdate(); /AFX_VIRTUALpublic: void RefreshData(); virtual CMyView();#ifdef _D
11、EBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const;#endifprotected:protected: afx_msg void OnButtonFIRST(); afx_msg void OnButtonNEXT(); afx_msg void OnButtonPREV(); afx_msg void OnButtonLAST(); afx_msg void OnButtonADD(); afx_msg void OnButtonMODIFY(); afx_msg void OnB
12、uttonDELETE(); afx_msg void OnButtonSEARCH(); afx_msg void OnButtonCHUSHIHUA(); afx_msg void OnButtonSORTRECO(); afx_msg void OnButtonCOUNT(); DECLARE_MESSAGE_MAP();成员函数的功能 afx_msg void OnButtonFIRST(); 显示第一条记录 afx_msg void OnButtonNEXT(); 显示下一条记录 afx_msg void OnButtonPREV();显示前一条记录 afx_msg void OnB
13、uttonLAST();显示最后一条记录 afx_msg void OnButtonADD();添加记录 afx_msg void OnButtonMODIFY();修改记录 afx_msg void OnButtonDELETE();删除记录 afx_msg void OnButtonSEARCH();查询记录 afx_msg void OnButtonCHUSHIHUA();初始化界面 afx_msg void OnButtonSORTRECO();对数据库排序 afx_msg void OnButtonCOUNT();对人数进行统计2、主要模块的流程图(1)添加记录:(2)修改记录:(3
14、)删除记录:(4)查询记录:(5)排序:(6)统计人数:3、数据库的建立及设计步骤:【1】建立数据库及连接步骤人事管理数据表结构创建字段名称字段类型字段大小索引必须填写职工编号数字长整型惟一、主索引是职工姓名文本20是职工性别文本2是所在部门文本30是职工年龄数字整型是工作时间文本20是基本工资数字整型是职位文本20是学历文本20是用Microsoft Access建立数据库,数据类型如上表所示。打开控制面板中的管理工具的数据源,点击添加。【2】程序主要代码: (1)添加记录void CMyView:OnButtonADD() try m_pSet-AddNew();/设置数据集为添加记录状态
15、 UpdateData(TRUE);/用控件的当前内容更新成员变量 m_pSet-m_column1=m_bianhao;/把成员变量的值赋给数据集的相应成员 m_pSet-m_column2=m_xingming; m_pSet-m_column3=m_xingbie; m_pSet-m_column4=m_bumen; m_pSet-m_column5=m_nianling; m_pSet-m_column6=m_jingyan; m_pSet-m_column7=m_gongzi; m_pSet-m_column8=m_zhiwei; m_pSet-m_column9=m_xueli;
16、m_pSet-Update();/执行写入操作 m_pSet-Requery();/更新数据集 catch(CDBException*pe) AfxMessageBox(pe-m_strError);/如果发生数据库异常则报告相应错误 pe-Delete(); (2)修改记录void CMyView:OnButtonMODIFY() try m_pSet-Edit();/设置数据集为编辑记录状态 UpdateData(TRUE);/用控件的当前内容更新成员变量 m_pSet-m_column1=m_bianhao;/把成员变量的值赋给数据集的相应成员 m_pSet-m_column2=m_xi
17、ngming; m_pSet-m_column3=m_xingbie; m_pSet-m_column4=m_bumen; m_pSet-m_column5=m_nianling; m_pSet-m_column6=m_jingyan; m_pSet-m_column7=m_gongzi; m_pSet-m_column8=m_zhiwei; m_pSet-m_column9=m_xueli; m_pSet-Update();/执行写入操作 m_pSet-Requery();/更新数据集 catch(CDBException*pe) AfxMessageBox(pe-m_strError);/
18、如果发生数据库异常则报告相应错误 pe-Delete(); (3)删除记录void CMyView:OnButtonDELETE() try m_pSet-Delete();/设置数据集为删除状态 m_pSet-Requery();/更新数据集 RefreshData();/更新视图 catch(CDBException*pe) AfxMessageBox(pe-m_strError);/如果发生数据库异常则报告相应错误 pe-Delete(); (4)查询记录void CMyView:OnButtonSEARCH() UpdateData(TRUE); m_pSet-MoveFirst();
19、 while(m_pSet-m_column1!=m_bianhao) m_pSet-MoveNext(); RefreshData();(5)排序void CMyView:OnButtonSORTRECO() m_pSet-m_strSort=职工编号; /指定排序字段 m_pSet-Requery (); /刷新数据库 UpdateData(FALSE); /更新表单(6)统计人数void CMyView:OnButtonCOUNT() UpdateData(TRUE); /用控件的当前内容更新成员变量 long i; m_pSet-MoveLast(); i=m_pSet-m_colum
20、n1; m_pSet-MoveFirst(); int j=1; while(m_pSet-m_column1!=i) j+=1; m_pSet-MoveNext(); m_renshu=j;/将J的值赋值给人数变量 m_pSet-m_column1 = 0; m_pSet-m_column2 = _T(); m_pSet-m_column3 = _T(); m_pSet-m_column4 = _T(); m_pSet-m_column5 = 0; m_pSet-m_column6 = _T(); m_pSet-m_column7 = 0; m_pSet-m_column8 = _T();
21、m_pSet-m_column9 = _T(); RefreshData();/更新视图(7)初始化界面void CMyView:OnButtonCHUSHIHUA() m_pSet-m_column1 = 0; m_pSet-m_column2 = _T(); m_pSet-m_column3 = _T(); m_pSet-m_column4 = _T(); m_pSet-m_column5 = 0; m_pSet-m_column6 = _T(); m_pSet-m_column7 = 0; m_pSet-m_column8 = _T(); m_pSet-m_column9 = _T();
22、 RefreshData();三、调试分析1实际完成的情况说明:本程序可以实现数据库记录的添加,修改、删除,查询,排序,初始化界面和统计人数等功能2程序的性能分析:可以处理简单的数据,当数据不符合要求时会出现提示:超出处理范围。相关操作不能在界面中显示,例如排序,必须在界面中一个一个显示,不能一起显示出来。添加,修改,删除都可以可以通过查询体现出来。能够查询第一条,下一条记录,上一条记录和最后一条记录。3上机过程中出现的问题及其解决方案:在设计定义表格时工作时间定义为数据库所提供的时间模式,出现错误,涉及相关知识,我并不太会,所以把时间都定义成文本类型。通过MFC建立的登陆界面,在修改后,并不
23、能在运行是体现出来。可以换一台机器就可以了。在建立数据库时,数据类型要和输入数据,编程变量保持一致。数据源名必须与你所创建的数据库的名称一致。在有数据源的情况下,程序才能正常运行。4程序中可以改进的地方说明:可以分别统计各部门的人数或分别统计男女人数,统计工资超过一定数的人数等功能,设计一个列表功能,输出修改,删除,添加,排序等功能,使用户能够直接看到处理结果。5程序中可以扩充的功能及设计实现构想:可以在该系统中添加工资管理系统。并且直接显示排序后的数据库,并可以通过对话框进入不同的处理功能。不用通过主键,只要输入相关信息,就可显示所有满足条件的记录信息四、用户手册1、建立数据库2登录界面:3
24、选择功能:(1)排序:单击排序按钮,对数据库中的成员,按编号排序数据库排序后的情况:(2)查询记录:输入职工编号编号,单击查询记录按钮(3)添加记录:输入所要添加的记录,再单击添加记录按钮添加记录后的数据库(4)删除记录:查询到所要删除的记录,再单击按钮删除删除后的数据库(5)修改记录:查询到所要修改的记录,然后修改后,单击修改按钮。修改后的数据库(6)初始化界面:单击按钮,即可进入初始化界面(7)统计人数:单击统计人数按钮,即可输出数据库中的人数五、设计总结经过不到两个星期的课程设计,通过看书和问同学和老师,顺利完成该课程设计。通过该次设计,收获颇多。但是我编写的人事管理系统并不实用,并不符
25、合实际人事管理的情况,并不能满足对象的需求,这是因为我对实际情况的不了解以及知识不足所造成的。 但是通过该课程设计,我了解怎样建立数据库,并对其进行连接,了解了其各阶段的基本任务,熟悉了程序总流程框图,了解了程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,同时对于MFC 有了一定的了解,MFC通过四个宏来声明和实现消息映射表。MFC的这种表驱动的机制使消息处理结构变得更加清晰,明了。MFC应用程序框架 应用程序类,框架窗口类,试图类,文档类构成了应用程序的框架,框架的功能是通过各类之间的协调工作实现的类。MFC采用文档/试图结构来实现数据和数据表现的分离,文档试图的分离有利
26、于数据和数据表现的单独改变。MFC用类信息存储了动态创建类对象时所需要的消息。把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。 通过把该程序设计的内容,算法的执行顺序在计算机上实现,知道和理解了怎样制一个人事管理系统,但其中还有很多不足,很多方面都和实际情况不相符,但是对该理论在实践中的应用有深刻的理解 。通过该次课程设计,全面系统的理解了数据库创建和连接以及MFC编程的原理,程序构造的一般原理和基本实现方法。把课本知识和实际操作相结合,激发了学习的积极性。把学过的C+面相对象的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。该课程设计中程序比
27、较复杂,不一定能一次性通过,在调试时应该仔细,在程序调试时,一定要有耐心,找出出错的原因。在这次实习中,我按照实验指导的思想来完成。加深了MFC编程的内部功能及内部实现,培养实践动手能力和程序开发能力的目的。只看和想,不实际编程,很难发现自己的错误,只有通过编程运行才能更好的指导我们学习,让我们知道自己的不足,以及怎样处理编程期间出现的问题,更有利于我们的学习。六、参考文献1. 李兰、任凤华. C+面向对象程序设计. 西安:西安电子科技大学出版社, 2010.92郑莉C+语言程序设计(第3版) 北京:清华大学出版社,2005.73钱能C+程序设计教程(第2版) 北京:清华大学出版社,2005.
28、84. 黄维通. Visual C+面向对象与可视化程序设计(第2版).北京:清华大学出版社, 2003.125. 刘路放. Visual C+与面向对象程序设计教程(第二版). 北京:高等教育出版社,2007.8七、附录MainFrm.cpp /人事管理框架类StdAfx.cpp /人事管理头文件类实现人事管理系统.cpp/人事管理主程序类实现人事管理系统Doc.cpp/人事管理文档类实现人事管理系统Set.cpp/人事管理数据集类实现人事管理系统View.cpp/人事管理数据集类实现MainFrm.h/人事管理框架类Resource.h/人事管理资源类StdAfx.h/人事管理头文件类人事管理系统.h/人事管理主程序类人事管理系统Doc.h/人事管理文档类人事管理系统Set.h/人事管理数据类人事管理系统View.h/人事管理视图类
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1