计算机综合课程设计报告
2010年10月
计算机综合课程设计报告
目录
目录
1 概述 1 1.1 项目背景 ........................................................................................................................................... 1 1.2 系统目标 ........................................................................................................................................... 1
2 需求分析 2 2.1 系统功能分析 .................................................................................................................................... 2 2.1.1 功能1 .......................................................................................................................................... 2 2.1.2 功能2 .......................................................................................................................................... 2 2.2 系统性能指标 .................................................................................................................................... 2 2.3 系统平台 ........................................................................................................................................... 2
3 概要设计 3 3.1 总体设计 ........................................................................................................................................... 3 3.1.1 系统总体结构 .............................................................................................................................. 3 3.1.2 子系统系统接口 ........................................................................................................................... 4 3.2 各子系统结构 .................................................................................................................................... 6 3.2.1 管理系统结构 .............................................................................................................................. 6 3.2.2 输出系统结构 ............................................................................................................................ 10
4 详细设计 14 4.1 职工类CEMPLOYEE详细设计 .......................................................................................................... 14 4.1.1 数据成员 ................................................................................................................................... 14 4.1.2 函数成员 ................................................................................................................................... 14 4.2 视图类CEMPLOYMANAVIEW详细设计 ............................................................................................... 15 4.2.1 数据成员 ................................................................................................................................... 15 4.2.2 函数成员 ................................................................................................................................... 15 4.3 文档类CEMPLOYMANADOC详细设计 ............................................................................................... 16 4.3.1 数据成员 ................................................................................................................................... 16 4.3.2 函数成员 ................................................................................................................................... 16 4.4 对话框类CMANAGEDLG详细设计 .................................................................................................... 17 4.4.1 该对话框的外观如下: .............................................................................................................. 17 4.4.2 标题、ID和功能 ........................................................................................................................ 17 4.4.3 对话框控件ID、标题、和映射变量如下: ................................................................................ 17 4.4.4 管理对话框的类图如下: .......................................................................................................... 18 4.4.5 对话框的算法与控制消息流说明 ................................................................................................ 18 4.5 对话框类CEMPLOYDATADLG详细设计 ............................................................................................. 19 4.5.1 该对话框的外观如下: .............................................................................................................. 19 4.5.2 标题、ID和功能 ........................................................................................................................ 19 4.5.3 对话框控件ID、标题和映射变量如下: .................................................................................... 19 4.5.4 新增职工信息对话框的类图如下: ............................................................................................ 20
. I .
计算机综合课程设计报告 摘要、关键词
4.5.5 对话框的算法与控制消息流说明 ................................................................................................ 20 4.6 对话框类CDELETE的详细设计 ........................................................................................................ 21 4.6.1 该对话框的外观如下: .............................................................................................................. 21 4.6.2 标题、ID和功能 ........................................................................................................................ 21 4.6.3 对话框控件ID、标题和映射变量如下: .................................................................................... 21 4.6.4 删除职工信息对话框CDELETE 的类图如下: ............................................................................ 22 4.6.5 对话框算法与控制消息流说明 ................................................................................................... 22 4.7 对话框类CMODIFYDLG的详细设计 ................................................................................................. 23 4.7.1 改对话框的外观如下: .............................................................................................................. 23 4.7.2 标题、ID和功能 ........................................................................................................................ 23 4.7.3 对话框控件的ID、标题和映射变量如下: ................................................................................ 23 4.7.4 新增职工信息对话框的类图如下: ............................................................................................ 24 4.7.5 对话框的算法与控制消息流说明 ................................................................................................ 25 4.8 对话框类CDISPLAYDLG详细设计 .................................................................................................... 25 4.8.1 该对话框的外观如下: .............................................................................................................. 25 4.8.2 标题、ID和功能 ........................................................................................................................ 25 4.8.3 对话框控件ID、标题和映射变量如下: .................................................................................... 25 4.8.4 “职工信息”对话框的类图如下: ............................................................................................ 25 4.8.5 对话框算法与控制消息流 .......................................................................................................... 26 4.9 对话框类CIMPUTNUMDLG的详细设计 ............................................................................................. 26 4.9.1 该对话框的外观如下: .............................................................................................................. 26 4.9.2 标题、ID和功能 ........................................................................................................................ 26 4.9.3 对话框控件ID、标题和映射变量如下: .................................................................................... 26 4.9.4 “输入职工号”对话框的类图如下:......................................................................................... 27 4.9.5 对话框算法与控制流说明 .......................................................................................................... 27 4.10 对话框类CINPUTTITLEDLG详细设计 .............................................................................................. 27 4.10.1 静态结构 ................................................................................................................................. 27 4.10.2 标题、ID和功能 ...................................................................................................................... 27 4.10.3 对话框控件ID、标题和映射变量如下: .................................................................................. 27 4.10.4 “输入职称”对话框的类图如下: .......................................................................................... 28 4.10.5 对话框算法与控制流说明 ........................................................................................................ 28 4.11 对话框类CINPUTBIRTHDLG详细设计 ............................................................................................. 28 4.11.1 静态结构 .................................................................................................................................. 28 4.11.2 标题、ID和功能 ...................................................................................................................... 28 4.11.3 对话框控件ID、标题和映射变量如下: .................................................................................. 28 4.11.4 “输入生日”对话框的类图如下: .......................................................................................... 29 4.11.5 对话框算法与控制流说明 ......................................................................................................... 29
5 系统实现 30 5.1 设计过程 ......................................................................................................................................... 30 5.2 开发过程 ......................................................................................................................................... 30 5.3 测试过程 ......................................................................................................................................... 30 5.3.1 功能测试 ................................................................................................................................... 30 5.3.2 边界测试 ................................................................................................................................... 39
. II .
计算机综合课程设计报告 摘要、关键词
6 使用说明 43 6.1 安装与卸载 ...................................................................................................................................... 43 6.2 职工管理系统的使用 ....................................................................................................................... 43
7 项目总结 44 7.1 选题与技术难点分析 ....................................................................................................................... 44 7.2 项目计划与实施情况 ....................................................................................................................... 44 7.3 项目组成工作情况 ........................................................................................................................... 44 7.4 项目中遇到的困难与解决方法 ......................................................................................................... 44 7.5 项目总结 ......................................................................................................................................... 45
. III .
计算机综合课程设计报告 摘要、关键词
摘要:
该职工管理系统是MFC课程设计的一个选题,同时也是根据市场需求应运而生。程序简单而且易于使用,对电脑硬件要求较低。
该职工管理系统在磁盘中存储某单位所有职工的基本信息,对于每一个职工存储;职工编号、姓名、性别、出生年月、职称、最后学历、工资和婚否等信息。
系统功能要求如下: ? ? ? ?
创建存储该单位职工信息的存储系统(第一次输入职工基本信息时)。 增加职工信息,增加新职工时输入新职工的基本信息。 删除某职工的基本信息(如死亡或离职)。
修改某职工(指定职工编号)的某些信息(如加工资、获得新学位、晋升职称、结婚或离婚)。 ? ? ? ? ? ?
可以输出符合某种特征的职工信息列表,包括:
全体职工信息列表。 某职称的职工信息列表。 某年月以后出生的职工信息列表。 某年月以前出生的职工信息列表。 未婚职工信息列表。
关键词:
MFC课程设计 职工管理系统 列表查询 子系统设计
. IV .
计算机综合课程设计报告 1概述
1 概述
1.1 项目背景
该职工管理系统主要是为了记录,管理与保存职工信息。随着计算机的迅速发展与广泛普及,使用计算机进行管理的资料越来越多。该职工管理系统使用方便,能够记录较多的职工信息,能提供诸如添加新职工,删除离职职工,修改职工信息等功能。
1.2 系统目标
该职工管理系统能够保存每个职工的职工编号、姓名、性别、出生年月、职称、最后学历、婚否等信息。第一次运行时能够创建存储改单位职工信息的存储系统。系统具有以下功能:增加一个新职工,删除一个旧职工,修改某职工的信息。系统同时具有很多的输出功能,包括:输出全体职工信息、输出某职称的职工信息列表、输出某年月以后出生的职工信息列表、输出某年月以前出生的职工信息列表、输出未婚职工信息列表。每次对职工信息进行修改以后都可以进行存储,下次打开存档继续使用。
. 1 .
计算机综合课程设计报告 2需求分析
2 需求分析
2.1 系统功能分析
一个现代化的公司,拥有数千名员工,那么如何管理这么庞大的职工信息档案呢?这时,开发一个功能完善的职工信息管理系统就必不可少了,从职工的信息的查询到管理实现了自动化的模式,从而提高了工作效率和减少工作中的出错率,对公司内部的员工管理更加方便。
2.1.1 功能1
编辑存储员工基本信息,包括姓名,性别,职工编号,出生年月,职称,最后学历,工资和婚否等信息。
2.1.2 功能2
按照指令输出员工的基本信息,可以进行查询
2.2 系统性能指标
由于大公司的员工众多,管理不易。在这种环境下,此系统应运而生,这个系统可以帮助公司财务人事部门更方便的管理公司员工,在这个系统里,使用者可以编辑、存储、查询员工的基本信息,并可以随时查看员工工资、职称等信息,实在是大为方便。
2.3 系统平台
安装并运行此系统的要求较低,目前市场上基本各种电脑硬件和系统均能使用。
. 2 .
计算机综合课程设计报告 3概要设计
3 概要设计
3.1 总体设计
3.1.1 系统总体结构
职工管理系统的结构图如下: 职工管理系统 子系统输出 输出全体职工信息 输出指定职工号信息 删除职工信息功能 输出某职称职工信息 子系统管理 各对话框之间的调用关系如下:
修改职工信息功能 增加职工信息功能 输出某年月以后出生职工信输出某年月以前出生职工信输出未婚职工信息 . 3 .
计算机综合课程设计报告 3概要设计
新增 职工 信 息对 话框
直接实现输出全体职工和未婚职工信息,不需要设计对话框获取用户输入 职工信息对话框 管理对话框 输出功能 职工管理系统 删除职工信息对话框修改职工信息对话框输入职工号对话框输入职称对话框输入生日对话框输入生日对话框 3.1.2 子系统系统接口
在这里说明各子系统之间的数据交互和接口
. 4 .
计算机综合课程设计报告 3概要设计
CEmploymanaDoc: 职工链表:m_employList GetDocment() CEmploymanaView: 管理选项m_ViewChoice; 职工数据链表指针:m_ViewEmpList 输出链表:m_ViewTempList 获取用户输入 OnMenuManage() m_ViewChoice= m_DlgChoice 管理对话框: 管理选项:m_DlgChoice 输出全体职工信息指定职工号对话框指定职称职工对话框指针增加文档数据增加职工:通过指 删针 除删职除 工文:档 通数过据 指定某年月以前出生对话框 指定某年月以后出生对话框 输出未婚职工 指针修改文档数据修改职工:通过 m_ViewEmpList m_ViewEmpList m_ViewEmpList 调用Ondraw()函数,使用m_ViewTempList链表统一输出。 . 5 .
计算机综合课程设计报告 3概要设计
3.2 各子系统结构
3.2.1 管理系统结构
子系统管理的界面如下:
该子系统的设计如下: 在文档类CEmploymanaDoc中定义了一个链表m_employList(CObList类型), 该链表用于存储数据以及完成序列化的有关功能。 在视图类CEmploymanaView中则定义了一个链表指针m_ViewEmpList(CObList * 类型),改链表指针通过CEmploymanaView中的GetDocment()函数指向了文档类中的m_employList。 在视图类CEmploymanaView中还定义了两个整型数据m_ViewErr和m_ViewChoice,其中m_ViewErr作为一个错误状态字用于判断程序是否有错误,而m_ViewChoice用以记录用户对管理功能的选择。
3.2.1.1 增加职工
Switch(manadlg.m_DlgChoice) Case 0: {
If(职工编号已经存在) { m_ViewErr = 1;
. 6 .
计算机综合课程设计报告 3概要设计
显示一个信息框用于报错。(信息框内容:该职工编号已存在);
}
Else(改职工编号还没有) {
M_ViewChoice = manadlg.m_DlgChoice(将对话框获得的管理功能选择项赋给视图类的m_ViewChoice);
显示一个信息框用于获取用户数据的输入;
根据获取的数据动态创建一个CEmployee类对象并将其指针赋给TempEmp(CEmployee* 类型);
将动态创建的对象增加到m_ViewEmpList的链表尾; }
重画文档视图; 退出switch语句; }
. 7 .
计算机综合课程设计报告 3概要设计
3.2.1.2 删除职工
Switch(manadlg.m_DlgChoice) Case 1: {
If(职工编号不存在) { m_ViewErr = 1;
显示一个信息框用于报错。(信息框内容:没有该员工);
}
Else(改职工编号存在) {
显示该职工的所有信息;
If(用户单击确认删除) {
M_ViewChoice = manadlg.m_DlgChoice(将对话框获得的管理功能选择项赋给视图类的m_ViewChoice); 删除该职工的信息;
. 8 .
计算机综合课程设计报告 3概要设计
}
}
重画文档视图; 退出switch语句; }
3.2.1.3 修改职工
Switch(manadlg.m_DlgChoice) Case 2: {
If(职工编号不存在) { m_ViewErr = 1;
显示一个信息框用于报错。(信息框内容:没有该员工);
}
Else(该职工编号存在) {
显示一个对话框,该对话框初始显示该职工的所有信息,随后用于获取用户对职工信息的输入;
. 9 .
计算机综合课程设计报告 3概要设计
If(用户单击确认修改) {
M_ViewChoice = manadlg.m_DlgChoice(将对话框获得的管理功能选择项赋给视图类的m_ViewChoice);
调用void CEmployee::SetEmployee( int employnum, CString name, int sexnum, int birthyear, int birthmonth,,CString title, CString edulevel, double salary, int marriagenum)函数对职工信息进行修改; }
3.2.2 输出系统结构
子系统输出分为六个部分: 为了完成输出功能,在视图类CEmploymanaView中定义了一个链表m_ViewTempList(CObList类),改链表用于存储符合条件的职工,六个输出功能公用这个临时链表能够节省存储空间。同时,每次输出完后必须清空改链表。 为了完成输出功能,还在CEmploymanaView定义了五个函数: void CEmploymanaView::FindBirAft( int year, int month ), void CEmploymanaView::FindBirBef( int year, int month ), POSITION CEmploymanaView::FindEmpNum (int num ), void CEmploymanaView::FindNotMar(),
void CEmploymanaView::FindTitle( CString str ),
. 10 .
计算机综合课程设计报告 3概要设计
这五个函数分别对应输出某年月以后出生职工信息,输出某年月以前出生职工信息, 输出指定职工编号职工信息,输出未婚职工信息,输出某职称职工信息。这五个函数的功能类似,都是为了从m_ViewEmpList中找到符合条件的职工,并将其加入m_ViewTempList中,然后在视图类CEmploymanaView中进行统一的输出。
3.2.2.1 输出全体职工信息
void CEmploymanaView::OnOutputFull() {
判断链表m_ViewEmpList是否为空; If(链表为空) {
显示一个信息框用于报错。(信息框内容:没有任何员工); 重画视图Invalidate(); } Else {
m_ViewChoice = 3;
将链表m_ViewEmpList中的元素全部加到m_ViewTempList中; }
重画视图Invalidate();(重画视图可以调用列表控件进行显示,同时将更新文档区域,在文档区域也进行显示); }
3.2.2.2 输出指定职工号的职工信息
void CEmploymanaView::OnOutputNumble() {
If(点击确定按钮) {
调用POSITION CEmploymanaView::FindEmpNum (int num ),判断是否有该职工; If(没有该职工) {
m_ViewErr = 1;
显示一个信息框用于报错。(信息框内容:没有改员工); 重画视图Invalidate(); } Else {
m_ViewChoice = 3;
将该职工添加到链表m_ViewTempList中;
重画视图Invalidate();(重画视图可以调用列表控件进行显示,同时将更新文档区域,在文档区域也进行显示) } } }
. 11 .
计算机综合课程设计报告 3概要设计
3.2.2.3 输出指定职称职工
void CEmploymanaView::OnOutputTitle() {
If(点击确定按钮) {
调用函数void CEmploymanaView::FindTitle( CString str )(将符合条件的职工加到链表m_ViewTempList中; If(m_ViewTempList为空)
{
m_ViewErr = 1;
显示一个信息框用于报错。(信息框内容:没有符合条件的员工); 重画视图Invalidate(); } Else {
m_ViewChoice = 3;
重画视图Invalidate();(重画视图可以调用列表控件进行显示,同时将更新文档区域,在文档区域也进行显示) } } }
3.2.2.4 输出某年月以前出生的职工
void CEmploymanaView::OnOutputBefbirth() {
If(点击确定按钮) {
调用函数void CEmploymanaView::FindBirBef( int year, int month ); If(m_ViewTempList为空) {
m_ViewErr = 1;
显示一个信息框用于报错。(信息框内容:没有符合条件的员工); 重画视图Invalidate(); } Else { m_ViewChoice = 3;
重画视图Invalidate();(重画视图可以调用列表控件进行显示,同时将更新文档区域,在文档区域也进行显示) } } }
3.2.2.5 输出某年月以后出生的职工
void CEmploymanaView::OnOutputAftbirth()
. 12 .
计算机综合课程设计报告 3概要设计
{
If(点击确定按钮) {
调用函数void CEmploymanaView::FindBirAft( int year, int month ); If(m_ViewTempList为空) {
m_ViewErr = 1;
显示一个信息框用于报错。(信息框内容:没有符合条件的员工); 重画视图Invalidate(); } Else { m_ViewChoice = 3;
重画视图Invalidate();(重画视图可以调用列表控件进行显示,同时将更新文档区域,在文档区域也进行显示) } } }
3.2.2.6 输出未婚职工
void CEmploymanaView::OnOutputUnmarriage() { 调用函数void CEmploymanaView::FindNotMar(); If(m_ViewTempList为空)
{ m_ViewErr = 1; 显示一个信息框用于报错。(信息框内容:没有符合条件的员工);
重画视图Invalidate(); } Else {
m_ViewChoice = 3;
重画视图Invalidate();(重画视图可以调用列表控件进行显示,同时将更新文档区域,在文档区域也进行显示)
} }
. 13 .
计算机综合课程设计报告 4详细设计
4 详细设计
4.1 职工类CEmployee详细设计
该类公有派生自CObject,该类的数据成员和函数成员如下:
4.1.1 数据成员
private:
int m_employnum; CString m_name; int m_sexnum; int m_birthyear; int m_birthmonth; CString m_title; CString m_edulevel; double m_salary; int m_marriagenum;
职工编号
职工姓名
记录职工性别的整型数(男性为1,女性为0) 职工生日的年份 职工生日的月份 职工的职称 职工的最后学历 职工工资
记录职工婚姻状况的整型数(已婚为1,未婚为0)
4.1.2 函数成员
public
CEmployee();
职工类的无参构造函数; CEmployee( CEmployee& emp );
职工类的复制构造函数,采用深复制; virtual ~CEmployee(); 职工类的析构函数
CEmployee( int, CString, int, int, int, CString, CString, double, int ); 职工类的构造函数;
void SetEmployee( int, CString, int, int, int, CString, CString, double, int ); 用于设置,修改职工信息的函数; int GetEmploynum();
用于获取职工编号的函数 CString GetName();
. 14 .
计算机综合课程设计报告 4详细设计
用于获取职工姓名的函数 int GetSexnum();
用于获取标志职工性别的整型数 int GetBirthyear();
用于获取职工的出生年份 int GetBirthmonth();
用于获取职工的出生月份 CString GetTitle(); 用于获取职工的职称 CString GetEdulevel(); 用于获取职工的最后学历 double GetSalary(); 用于获取职工的工资 int GetMarriagenum();
用于获取标志职工性别的整型数
void DrawEmployee( int startpos, CDC* pDC );
用于在程序文档处输出职工信息,改函数包含两个参数,输出起点以及画笔指针CDC* pDC)
virtual void Serialize( CArchive& );
序列化函数,当程序打开,关闭和保存文档时,将调用该函数。 DECLARE_SERIAL( CEmployee )
4.2 视图类CEmploymanaView详细设计
该类公有派生字CView类,其数据成员和函数成员如下:
4.2.1 数据成员
CEmployee* TempEmp; CEmployee类对象的一个指针 int m_ViewErr ; 该整型数用于记录程序的错误信息,当程序发生错
误时,m_ViewErr= 1,否则为0
int m_ViewChoice; 该整型数用于记录用户对管理功能的选择,当选择增加职工时,m_ViewChoice = 0;当选择删除职工时,m_ViewChoice = 1;当选择修改职工时,m_ViewChoice = 2;
CObList* m_ViewEmpList; 改链表指针指向CEmploymanaDoc类的 m_employList
CObList m_ViewTempList; 改链表用于输出子系统,符合条件的职工将被加入到该链表,同时在CEmploymanaView中的OnDraw函数进行输出 POSITION m_ViewPosition; 临时变量,用以记录链表的位置;
4.2.2 函数成员
CEmploymanaDoc* GetDocument();
. 15 .
计算机综合课程设计报告 5系统实现
显示为
该功能正常
二.“输出”中的功能 1.超出指定职工号。
显示:
2.没有该指定职称的搜索
显示为
. 41 .
计算机综合课程设计报告 5系统实现
3.在输出某年以前出生的职工中,先输入出生最早的职工的生日,后选择那年以前,两次输出均为:
显示正确,该功能正常。 4. .在输出某年以后出生的职工中,先输入出生最迟的职工的生日,后选择那年以后,两次输出均为:
显示正确,该功能正常。
测试结果:所有功能均正常。
. 42 .
计算机综合课程设计报告 6使用说明
6 使用说明
6.1 安装与卸载
运行名为EMPLOYMANA的EXE文件,则可运行此系统,删除文件既是卸载。
6.2 职工管理系统的使用
本软件是在C++环境下编写的程序,能够实现如下功能:存储每个职工的基本信息:职工编号、姓名、性别、出生年月、职称、最后学历、工资和婚否等信息;增加、删除和修改职工信息,并能输出符合各种特征的职工信息列表,包括:全体职工信息列表、某职称的职工信息列表、某年月以后出生的职工信息列表、某年月以前出生的职工信息列表以及未婚职工信息列表。
运行程序,在菜单栏上可以看到“管理”和“输出”这两个菜单选项,单击管理菜单,会有“增加职工”,“删除职工”和“修改职工”这三个选项,顾名思义,就是可以进行增加,删除和修改职工信息。
单击输出时会有“全体职工信息列表”“某职称的职工信息列表”“某年月以后出生的职工信息列表”“某年月以前出生的职工信息列表”“未婚职工信息列表”“职工基本信息查询”。单击“全体职工信息列表”可以查看公司所有员工的信息;单击“某职称的职工信息列表”(“某年月以前出生的职工信息列表”)可以查看某一职称的所有员工信息;单击“某年月以后出生的职工信息列表”你可以输入一个年月然后回车就可以看到在这个年月后(前)出生的员工信息;单击“职工基本信息查询”然后输入职工号就可以看到该员工的基本信息。
以上就是这个程序的使用方法
. 43 .
计算机综合课程设计报告 7项目总结
7 项目总结
7.1 选题与技术难点分析
我们选了职工信息管理系统这个选题。此选题要求对于每一个职工编号,姓名,性别,出生年月,职称,最后学历,工资及婚否等信息的管理。要求创建包括以上信息的类并通过对话框实现其管理。重点和难点是其类的建立和其与对话框的联系。
7.2 项目计划与实施情况
程序主要按课本上的要求来设计,我们分好工作后,各自对自己的部分进行安排,对各自部分的完成时间进行估计。在一段时间后我们进行交流与核对,又对具体工作进行更细致的划分,各自任务基本按时完成,最后整合成整个项目。
7.3 项目组成工作情况
首先架构设计师进行需求分析,并大体总结出程序所需要完成的功能。然后程序员进行编程实现。调试运行后,测试员检查其程序与要求是否相符及进行必要的改善。最后进行项目总结。
7.4 项目中遇到的困难与解决方法
在程序开始设计时我们有多个方案,在进行选择时,大家有不同看法,然后各自进 方案优点的阐述 ,最后选择了合适的方案。
. 44 .
计算机综合课程设计报告 7项目总结
由于是各自完成项目中的一部分,在进行汇总时产生一点偏差,我们对自己的部分进行了修改,各自完善后重新汇总起来了。
7.5 项目总结
在完成过程中,我们都付出了劳动,尤其程序员进行编程完成任务最重。最后在大家的努力下,我们的项目成功完成了,实现了课本对该项目的要求。
. 45 .
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库基于MFC职工信息系统课程设计报告在线全文阅读。
相关推荐: