软件工程课程设计 0215 蒙小林Word格式.docx
《软件工程课程设计 0215 蒙小林Word格式.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计 0215 蒙小林Word格式.docx(33页珍藏版)》请在冰豆网上搜索。
![软件工程课程设计 0215 蒙小林Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/30/c46eb3d8-8b61-4793-9c21-f4c743e34759/c46eb3d8-8b61-4793-9c21-f4c743e347591.gif)
(1)尽量减少人力与管理费用;
(2)提高信息准确度;
(3)改进管理和服务;
(4)建立高效的信息传输和服务平台,提高信息处理速度和利用率;
(5)系统设计优良,界面设计精美、友好、快捷,人性化设计,后台管理功能强大、效率高;
(6)更简便、信息化程度更高的工资管理流程;
1.4.2用户的特点
(1)本软件的最终用户是面向管理员(公司工资管理员和其它管理人员)、职工(各部门的职员),他们都具有一定的计算机应用基础,可以比较熟练操作计算机。
管理员和职工都是经常性用户。
(2)系统维护人员为计算机专业人员,熟悉数据库、操作系统、网络维护工作。
维护人员为间隔性用户。
第二章工资管理系统需求分析
2.1市场需求分析
工资管理系统是一个企业单位不可缺少的部分,它能为用户提供充足的信息和快捷的查询手段。
(1)一个工资管理系统可以高效能、大容量地收集、处理、存贮工资管理信息,大幅度地提高工资管理信息系统的工作质量和效率。
(2)能够为企业管理人员及时掌握整个工资管理系统的全面情况,提供系统的准确的工资管理信息,可以促进工资管理工作的规范化及各项管理制度与指标体系的建立和健全。
(3)为企业提供各种加工处理了的工资管理信息,以满足工资管理的特殊要求,适应新形势对职工队伍提出的新要求,帮助管理人员选择方案,实现优化决策。
虽然当前,不少单位的工资管理部门对于计算机的应用还仅限于简单的单机应用,随着时间的推移、任务的复杂、用户的需求,其应用还会扩大。
2.2系统需求分析
2.2.1系统功能需求分析
工资管理系统涉及到员工基本信息的录入、修改和删除,工资标准的设定、查询和结算等。
典型的工资管理系统主要有以下基本功能:
a)员工基本信息的录入、修改、删除等功能
b)工资标准的设定功能,集体包括职务工资、职称工资以及其他工资标准的设定。
c)工资信息的浏览
d)员工工资信息表的创建
e)工资调整管理
f)工资统计
2.2.2系统目标
企业工资管理系统可以用于支持企业完成工资管理工作,有如下3个方面的目标。
(1)支持企业实现规范化的管理。
(2)支持企业高效率完成人事管理的日常业务,包括新员工加入时人事档案的建立,老员工转出、辞职、退休等。
(3)支持企业进行人事管理及其相关方面的科学决策,如企业领导根据现有的员工合同期限决定是否继续聘用等。
2.2.3系统数据流图
图2.1底层数据流图
图2.2工资管理第一层数据流图
图2.3工资管理第二层数据流图
图2.4本月工资管理的展开
2.2.4数据字典
通过系统需求分析,对工资管理系统编制数据字典如下:
(1)数据流定义
数据流名称:
职工名单
数据流编号:
F1
简述:
职工信息
数据来源:
人事科
数据去向:
P1.1
本月工资
F2
对职工本月工资进行修改
劳资科
P2.1,P2.2
(2)数据存储定义
职工发工资
P2.2
根据工资条形成本月工资表
输入数据流:
D2->
输出数据流:
P2.2->
职工
处理:
查询D1(本月工资表),打印本月职工工资条
财务记账后传盘给银行。
(3)处理逻辑定义
外部实体名称:
S1
对职工添加,删除进行管理的部门
S2
对职工工资进行管理的部门
财务科
S3
发放工资,及工资记账管理。
(4)外部实体定义
数据存储名称:
职工信息表
数据存储编号:
D0
职工基本信息
数据存储组成:
职工编号+姓名+科室号+职称+体制+医保号+公积金号+养老金号+银行账号+有效标志
关键字:
职工编号
相关处理:
本月工资表
D1
职工本月工资信息
职工号+工资日期+操作员+1{薪金科目}20+1{扣款科目}5
职工编号+工资日期
第三章工资管理系统数据库设计
3.1系统E-R图
根据需求分析以及数据库设计的内容,对工资管理系统各个实体的属性以及各表的功能联系作出如下的联系,即原始的E-R图
图3.1原始的系统E-R图
由于原始的E-R图存在数据冗余,进行操作时会出现很多重复项,不满足第三范式,故把原始的E-R图中一些无关的属性删除,简化成满足第三范式的E-R图,如下图所示:
图3.2简化后的系统E-R图
3.2系统数据库设计
所谓数据库(Database)就是指按一定组织方式存储在一起的,相互有关的若干个数据的结合,数据库管理系统(DatabaseManagementSystem)就是一种操纵和管理数据库的大型软件,简称DBMS,他们建立在操作系统的基础上,对数据库进行统一的管理和控制,其功能包括数据库定义,数据库管理,数据库建立和维护,于操作系统通信等。
DBMS通常由数据字典,数据描述语言及其编译程序,数据操纵(查询)语言及其编译程序,数据库管理例行程序等部分组成。
关系数据库是以关系模型为基础的数据库,是根据表、记录和字段之间的关系进行组织和访问的一种数据库,它通过若干个表(Table)来存取数据,并且通过关系(Relation)将这些表联系在一起,关系数据库提供了成为机构化查询语言(SQL)标准接口,该接口允许使用多种数据库工具和产品,关系数据库是目前最广泛应用的数据库。
在VFP中数据库是一个逻辑上的概念,通过一组系统文件将相互关联的数据表及其数据库对象组织起来,成为扩展名为.dbc的数据库文件、扩展名为.dct的数据库备注文件和扩展名为.dcx的数据库索引文件,三个文件一般不能直接使用,而是交由VFP数据库统一管理。
VFP把.dbf文件称为表文件,一个库可以容纳多个表,通过库我们可明确各表之间的相互关系,使表文件不在彼此孤立,而成为相互关联的数据集合。
由于考虑到本系统是应用在单机系统上,另外根据人员规模,我们只建立起一个数据库,在此数据库基础上建立起如下表:
·
职工基本信息表 employee_information_table
职工出勤信息表employee_attendance_information_table
职工工资表employee_salary_table
表3-1职工基本信息表
字段名
字段类型
字段宽度
能否为空
主键
工号
char
10
否
是
姓名
8
所属系别
20
职位
表3-2职工出缺勤信息表
应出勤次数/月
Int
2
实际出勤次数/月
缺勤次数
缺勤原因
50
表3-3职工工资信息表
基本工资
5
原始奖金
缺勤金
实际工资
数据库介绍
职工基本信息数据库:
包括职工的工号,姓名,所属系别,职位
职工出缺勤信息数据库:
包括职工的工号,姓名,应出勤次数/月,实际出勤次数/月,缺勤次数,缺勤原因;
职工工资信息数据库:
包括职工的工号,姓名,基本工资,原始奖金,缺勤金,实际工资;
第四章工资管理系统总体设计
4.1系统功能
该信息管理系统可以在WindowsXP平台上运行,开发工具主要采用VC++语言开发。
系统的主要功能如下:
(1)员工基本信息管理功能
Ø
员工基本信息的录入
员工基本信息的修改
员工基本信息的删除
员工基本信息的查询及表单输出
(2)员工出勤管理功能
员工请假信息的录入
员工请假信息的修改
员工请假信息的删除
员工请假信息的查询及表单输出
(3)员工工资管理功能
员工工资信息的录入
员工工资信息的修改
员工工资信息的删除
员工工资信息的查询及表单输出
4.2功能结构模块图
图4.1功能结构模块图
4.3系统接口设计
(1)用户接口
用户接口主要采用图形接口和命令接口方式,用户可以通过点击图形界面的按钮、菜单、对话框等图形接口元素对程序和数据进行操作和在输入框中输入命令的方式查询信息。
向员工提供命令
软件回答信息
检索员工信息
匹配检索关键字的员工信息
修改员工资料
修改后新的员工资料
查阅月工资
查阅成功的月工资信息
查阅年工资
查阅成功的年工资信息
月扣除工资
月扣除成功的工资信息
年扣除工资
年扣除成功的工资信息
(2)外部接口
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。
在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。
外观上也要做到合理化,考虑到用户对Windows风格较熟悉,应尽量向这一方向靠拢。
接口
传递信息
硬件接口
与打印机接口
工资信息,员工信息
软件接口
与数据库接口
工资信息,部门工资标准,用户信息,部门类别信息
(3)内部接口
身份认证模块的返回值决定当前用户是否可以进入工资管理系统,身份通过以后再根据用户本身的权限判定进入哪一个功能模块,并且判断其相应的操作权限,这些采用返回值方式由用户本身的权限标志决定。
维护员工信息
添加员工信息
员工信息(员工编号,员工姓名,部门职位,密码,权限,电话,地址,性别,备注)
修改员工信息
删除员工信息
维护工资标准信息
添加工资标准
工资信息(部门类别表编号,日常工资,请假扣的工资,加班加的工资,出差所得工资,迟到扣的工资,早退扣的工资,旷工罚的工资,特别奖励的工资,备注)
修改工资标准
删除工资标准
维护工资信息
添加工资信息
工资信息(员工编号,员工姓名,日常工资,请假扣的工资,加班加的工资,出差所得工资,迟到扣的工资,早退扣的工资,旷工罚的工资,特别奖励的工资,备注)
修改工资信息
删除工资信息
维护部门类别信息
添加部门类别
部门类别信息:
(部门编号,部门职位名称,备注)
修改部门类别
删除部门类别
第五章工资管理系统详细设计
5.1运行设计
(1)运行控制
运行控制将严格按照各模块间函数调用关系来实现。
在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。
(2)运行时间
在软件的需求分析中,对运行时间的要求为必须对作出的操作有较快的反应。
硬件对运行时间有最大的影响,当设备负载量大时,对操作反应将受到很大的影响。
所以尽量采用高性能主机,充分发挥软件性能。
5.2系统详细流程图
5.2.1职工基本信息管理子系统流程图
功能:
①职工基本信息输入:
用于采集职工的职工的工号,姓名,所属系别,职位
②建立职工基本信息表:
为三个子系统提供数据源
③职工基本信息查询:
实现查询功能
④职工基本信息修改:
a.写修改职工基本信息:
对职工信息异动进行修改
b.发送提示信息至其他部门:
将异动报告提交给使用该表的其他部门
图5.1职工基本信息表流程图
5.2.2职工出勤管理子系统流程图
①职工出勤信息输入:
用于采集职工的出勤率
②建立职工出勤信息表:
③职工出勤信息查询:
④职工出勤信息修改:
a.写修改职工出勤信息:
对职工出勤信息异动进行修改
图5.2职工出勤管理子系统流程图:
5.2.3职工工资管理子系统流程图
①职工基本工资信息读取:
职工的工号,姓名,基本工资,原始奖金,缺勤金,实际工资
②职工实际工资奖金计算:
职工出缺勤信息,职工基本工资信息
③标准工资信息与银行之间的双向传输:
标准工资信息
④工资条对各部门的发放:
图5.3职工工资管理子系统流程图
第六章工资管理系统编程与实现
6.1程序描述
(1)性能
职工基本信息管理子系统:
①职工基本信息输入:
数据输入,存储
②建立职工基本信息表:
数据集中
③职工基本信息查询:
数据查询
④职工基本信息修改:
数据修改
b.发送提示信息至其他部门:
数据读出
职工出勤管理子系统:
①职工出勤信息读取:
②职工出勤次数计算:
数据加工
③出勤信息对各员工的公布:
职工工资管理子系统:
数据读出,输入
(2)输入项目
职工基本信息管理子系统:
职工的工号,姓名,所属系别,职位
无
存储在表中的任一数据
新数据(职工基本信息)
异动提示报告
职工的工号,姓名,所属系别,职位
职工实际出缺勤信息
职工出勤率
(3)输出项目
职工基本信息表
查询目标
职工出勤信息表
实际出勤次数
职工基本工资信息表
6.2部分编程代码
6.2.1员工基本信息增删改功能
员工基本信息模块主要分为员工信息浏览界面和员工信息查询界面,员工信息浏览界面
核心代码:
(1)“增加新记录”按钮控件源代码:
thisform.pageframe1.page1.fy1.enabled=.F.
mand2.enabled=.F.
mand3.enabled=.F.
mand4.enabled=.T.
ifmand1.caption='
增加新记录'
thisform.pageframe1.page1.txtpid.enabled=.T.
thisform.pageframe1.page1.txtpname.enabled=.T.
thisform.pageframe1.page1.txtpsex.enabled=.T.
thisform.pageframe1.page1.txtpjob.enabled=.T.
thisform.pageframe1.page1.txtpindate.enabled=.T.
thisform.pageframe1.page1.txtprank.enabled=.T.
appendblank
mand1.caption='
增加确认'
thisform.pageframe1.page1.refresh
thisform.pageframe1.page1.txtpid.setfocus
else
getid=alltrim(thisform.pageframe1.page1.txtpid.value)
getname=alltrim(thisform.pageframe1.page1.txtpname.value)
getsex=alltrim(thisform.pageframe1.page1.txtpsex.value)
getjob=alltrim(thisform.pageframe1.page1.txtpjob.value)
getindate=alltrim(thisform.pageframe1.page1.txtpindate.value)
getrank=alltrim(thisform.pageframe1.page1.txtprank.value)
ifempty(getid)orempty(getname)orempty(getsex)orempty(getjob)orempty(getindate)orempty(getrank)
messagebox("
资料不足"
48,"
错误"
)
tableupdate(.t.)
thisform.pageframe1.page1.txtpid.enabled=.F.
thisform.pageframe1.page1.txtpname.enabled=.F.
thisform.pageframe1.page1.txtpsex.enabled=.F.
thisform.pageframe1.page1.txtpjob.enabled=.F.
thisform.pageframe1.page1.txtpindate.enabled=.F.
thisform.pageframe1.page1.txtprank.enabled=.F.
thisform.pageframe1.page1.fy1.enabled=.T.
mand2.enabled=.T.
mand3.enabled=.T.
mand4.enabled=.F.
endif
(2)“修改这条记录”按钮控件源代码:
mand1.enabled=.F.
ifmand2.caption='
修改这条