软件工程课程设计人事管理系统可编辑优质文档文档格式.docx
《软件工程课程设计人事管理系统可编辑优质文档文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计人事管理系统可编辑优质文档文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
4撤除员工信息
5对系统进行设置
2.5系统流程图
图2-1人事管理系统的系统流程图
(1)添加信息流程图:
图2-2添加信息流程图
(2)删除信息流程图:
图2-3删除信息流程图
(3)修改信息流程图:
图2-4修改信息流程图
(4)查找信息流程图:
图2-5查找信息流程图
第三章需求分析
3.1数据流图
(1)顶层数据流图:
图3-1顶层数据流图
(2)查询数据流图:
图3-2查询数据流图
(3)管理员添加、删除、修改数据流图:
3.2数据字典[4]
数据流名:
员工信息
组成:
姓名+性别+婚姻状况+职称+员工编号+出生年月+部门号
流量:
20张/月,每张10笔数据
来源:
各部门
去向:
成本管理组
管理员信息
管理员姓名+密码+权限
10张/月,每张5笔数据
文件名:
用户的文件
用户名+编号+用户信息
存储方式:
顺序
存储频率:
1次/5天
数据项名:
员工编号
类型:
数值
长度:
10位
取值范围:
1000~4999
姓名
字符型
C/8
性别
D/10
职称
婚姻状况
D/8
加工名:
添加信息
输入数据:
员工情况
输出数据:
加工逻辑:
对系统进行增加员工信息
删除信息
删除情况
对系统进行删除员工信息
修改信息
对系统进行修改员工信息
员工信息汇总
员工信息汇总表
各部门将员工信息汇总,最后输出员工信息汇总表
3.3E-R图[2]
1)员工基本信息:
图3-4员工信息E-R图
2)学历信息:
图3-5学历信息E-R图
3)婚姻状况信息:
图3-6婚姻状况信息E-R图
4)部门信息:
图3-7部门信息E-R图
5)管理员:
图3-8管理员E-R图
6)总E-R图:
图3-9总E-R图
第四章总体设计
4.1数据库设计
目前设计数据库主要采用的是以逻辑数据库设计和物理数据库设计为核心的规范设计方法。
其中逻辑数据库是根据用户要求和特定数据库管理系统的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构。
物理数据库设计是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。
各种规范设计方法在设计步骤上存在差别,各有不同。
现将数据库概念结构转化为数据系统所支持的实际数据模型,也就是数据库的逻辑结构。
在上面的实体以及实体之间关系的基础上,形成数据库的表格以及各个表格之间的关系。
员工基本信息表
字段名
数据类型
含义说明
空值情况
PER-ID
Char
主关键字
NAME
不为空
SEX
“男”或“女“
可为空
BIRTHDAY
Data
出生年月
BEGTIME
参加工作时间
PAR
DEPT-ID
char
部门号
表4-1员工基本信息表
学历信息表
DEGREE
学历
PRO
专业
GRATIME
毕业时间
SCHOOL
学校
FOREIGN
外语状况
表4-2学历信息表
婚姻状况表
SPOUSE
有无配偶
表4-3婚姻状况信息表
部门信息表
DEPTNAME
部门名称
DEPTMANAGER
部门经理
表4-4部门信息表
管理员信息表
ADMINISTRATOR
管理员
PASSWORD
密码
PERMISSION
权限
表4-5管理员信息表
4.2系统模块结构设计
图4-1层次结构图
第五章详细设计
5.1程序流程图
1)添加模块
图5-1添加程序流程图
2)删除模块
5-2删除程序流程图
3)修改模块
5-3修改程序流程图
第六章编码实现与测试用例设计
6.1.界面的设计
程序运行后会出现一个简捷的窗口,便于用户查询数据。
通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。
应用系统主控界面包括员工信息录入,查找等功能模块。
员工信息录入功能完成员工信息记录,查询功能可以对数据各分类的记录进行查询。
[1]
6.2详细模块设计
1)登录界面
图6-1登陆界面
部分核心代码:
[2]
voidCZHUCE:
:
OnButton1()
{
UpdateData(TRUE);
if(m_username.IsEmpty()||m_password.IsEmpty()||m_password2.IsEmpty())
{AfxMessageBox("
请将资料填写完整!
"
);
m_password2.Empty();
m_password.Empty();
UpdateData(FALSE);
return;
}
OnInitADOConn();
if(m_password2==m_password)
{
CStringstr;
str.Format("
insertinto用户表(用户名,密码)values('
%s'
'
)"
m_username,m_password);
_variant_tvar;
intfieldrow;
try{//捕捉表的主键存在重复值的异常
m_pConnection->
Execute((_bstr_t)str,&
var,adCmdText);
fieldrow=(int)V_I2(&
var);
}
catch(...)
{
AfxMessageBox("
用户名已存在,注册失败"
m_username.Empty();
m_password.Empty();
m_password2.Empty();
UpdateData(FALSE);
return;
AfxMessageBox("
注册成功,请返回登录!
m_pConnection->
Close();
Cloginclg;
clg.DoModal();
else{AfxMessageBox("
两次密码输入不一样,注册失败!
m_username.Empty();
}}
OnInitADOConn()
try
{//创建连接对象实例
m_pConnection.CreateInstance("
ADODB.Connection"
//设置连接字符串
CstringstrConnect="
Provider=Microsoft.Jet.OLEDB.4.0;
DataSource=salary.mdb;
PersistSecurityInfo=False;
;
//使用Open方法连接数据库
Open((_bstr_t)strConnect,"
"
adModeUnknown);
catch(_com_errore)
AfxMessageBox(e.Description());
}
_RecordsetPtr&
CZHUCE:
GetRecordSet(_bstr_tsqlstr)
{{
try{if(m_pConnection==NULL)
{OnInitADOConn();
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->
Open(sqlstr,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
catch(_com_errore)
{e.Description();
returnm_pRecordset;
2))添加功能
图6-2添加信息界面
图6-3学历信息录入界面
部分核心代码代码如下:
voidCGXZHG:
OnButton2()
{//TODO:
Addyourcontrolnotificationhandlercodehere
if(m_Bianhao.IsEmpty()||m_Name.IsEmpty())
notnull"
return;
CStringstr;
str.Format("
update姓名set性别='
年龄=%d,='
参加工作时间='
职称='
部门号='
where职工编号='
m_Sex,m_Age,m_Telphone,m_Address,m_Zhiwei,m_Beizhu,m_Bianhao);
m_pConnection->
Execute((_bstr_t)str,NULL,adCmdText);
m_zhglist.DeleteAllItems();
AddToGrid();
ClearAll();
UpdateData(FALSE);
OnButton3()
CStringbstrSQL;
bstrSQL.Format("
deletefrom职工表where职工编号='
m_tiaojian);
CMAKESUREcmake;
if(cmake.DoModal()!
=IDOK)
return;
Execute((_bstr_t)bstrSQL,NULL,adCmdText);
m_zhglist.DeleteAllItems();
AddToGrid();
ClearAll();
OnButton4()
m_type.GetWindowText(m_Type);
if(m_Type.IsEmpty())
{AfxMessageBox;
if(m_tiaojian.IsEmpty())
{AfxMessageBox;
CStringsql;
sql+="
select*from职工表where"
sql+=m_Type+"
="
+"
'
+m_tiaojian+"
Execute((_bstr_t)sql,NULL,adCmdText);
UpdateGrid();
ClearAll();
3)查询功能
a)按姓名查询:
图6-4姓名查询界面
b)按婚姻状况查询:
图6-5婚姻状况查找界面
c)按学历查询:
图6-6学历查找界面
voidCGXGZ:
{UpdateData(TRUE);
if(m_Chaxun.IsEmpty())
请输入查询的职工编号!
sql.Format("
select*from工资表where职工编号='
m_Chaxun);
m_gzlist.DeleteAllItems();
m_Chaxun.Empty();
{try
CStringstrConnect="
UpdateGrid()
{//连接数据库
//设置查询字符串
CStringbstrSQL;
select*from职工编号='
orderby职工编号desc"
//创建记录集指针对象实例
m_pRecordset.CreateInstance(__uuidof(Recordset));
//打开记录集
m_pRecordset->
MoveNext();
//AfxMessageBox("
123"
//断开数据库连接
ExitConnect();
ExitConnect()
{if(m_pRecordset!
=NULL)
4)删除功能
图6-7删除界面
图6-8输入删除姓名界面
voidCTXGZ:
请输入删除的职工编号!
职工编号='
ClearALL();
AfxMessageBox("
删除成功!
m_yuefen.SetCurSel(0);
5)修改功能
图6-9更新界面
图6-10输入修改姓名界面
OnButton5()
请输入修改的职工编号!
m_Chaxun=m_Chaxun;
第七章单元测试与运行记录
7.1测试目的
为了尽可能的找出软件的不足,提高软件的质量,促进软件的成功验收,所以要进行测试。
其主要目的在于为所要进行的测试工作制定各种必要的准则和规范,以及在有关方面协议的基础上对测试工作进行合理组织与管理。
7.2测试方法
通过在计算机上直接运行被测程序,来发现程序中的错误。
机器测试包括黑盒测试盒白盒测试。
黑盒测试也称功能测试,将软件看作黑盒子,在完全不考虑程序的内部结构和特性的情况下,研究软件的外部特性。
根据软件的需求规格说明书测试用例,从程序的输入和输出特性上测试是否满足设定的功能。
白盒测试也称结构测试,将软件看作一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查与测试是否相符。
7.3测试结果
1)用户登陆界面测试
每个用户登录系统都需要进行身份验证,只有用户名和密码相对应才能进入系统。
因为在系统设置中已经对系统使用权限进行了规定,所以,在用户登录的同时也决定了用户对系统的使用权限。
图7-1登陆测试界面
如果需要修改密码,可进入密码修改界面
图7-2密码修改测试界面
2)用户管理界面测试
成功登录系统后,可进入用户管理界面
图7-3用户管理测试界面
3)编辑员工信息界面测试
当需要添加员工信息时,可进入编辑员工信息界面
图7-4编辑员工信息测试界面
4)浏览员工信息界面测试
当需要查看用户信息时,可进入浏览界面
图7-5浏览员工信息测试界面
结束语
软件工程是一门很实用的课程,也被广泛利用,我这次做的是人事管理设计。
软件工程比较重要的是需求分析阶段,因为无论做一个什么软件都有他的用途,而他的用途就是给人民带来方便,也就是满足人们的需求,因此要做好一个软件首先要了解客户对他有什么要求,然后我们才知道自己要做些什么,要实现什么样的目的,当然这过程必须是真实的,我们不能自己捏造。
在一个系统开发的过程中编码不是重要的,重要的是分析系统、建立