软件工程课程设计工资管理系统Word文档格式.docx

上传人:b****3 文档编号:7559568 上传时间:2023-05-08 格式:DOCX 页数:26 大小:101.77KB
下载 相关 举报
软件工程课程设计工资管理系统Word文档格式.docx_第1页
第1页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第2页
第2页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第3页
第3页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第4页
第4页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第5页
第5页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第6页
第6页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第7页
第7页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第8页
第8页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第9页
第9页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第10页
第10页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第11页
第11页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第12页
第12页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第13页
第13页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第14页
第14页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第15页
第15页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第16页
第16页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第17页
第17页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第18页
第18页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第19页
第19页 / 共26页
软件工程课程设计工资管理系统Word文档格式.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件工程课程设计工资管理系统Word文档格式.docx

《软件工程课程设计工资管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计工资管理系统Word文档格式.docx(26页珍藏版)》请在冰点文库上搜索。

软件工程课程设计工资管理系统Word文档格式.docx

系统负责员工的工资表以及员工工资的历史记录及记录员工的请假信息和出差信息等意外情况。

(4)系统可以给管理员提供权限增加删除修改系统用户以及其它实体信息,系统的部分权限不能下放给普通用户以保证系统的安全性以及数据的正确性。

2.3外部接口需求分析

系统人机交互界面为半屏幕大小,采用上下左右居中方式显示,系统分辩率默认设置为1280*800,实际的界面大小由具体的屏幕决定。

主界面包括标题栏,菜单栏,快捷工作区,帮助信息区(默认是隐藏的)。

每一个菜单对应一个键盘快捷键区。

2.4性能需求分析

系统在主频1.5GHZ,内存512MB,总线频率667MHZ的硬件平台上运行时,系统的响应时间、更新处理时间、数据转换与传输时间、运行时间均能达到毫秒级。

系统支持用户并发操作,事务采用可串行化隔离级别,防止在读写过程中产生的丢失修改、读脏数据、不可重复读等一系列由并发操作带来的不一致问题。

系统的运行主存控制在1024KB以内,响应时间控制在1000ms以内,系统对数据的存储空间取决于数据库系统表空间的约束限制。

2.5软件属性需求分析

系统必须保证所有操作结果以及存储数据的正确性,对于用户的非法操作,系统必须能够提出告警信息,对于用户的错误操作,系统能够提供错误信息以及错误源。

在数据库操作上的异常,系统也应捕捉到并提供界面化的提示信息,对于可能会产生错误的操作,应当能够防范。

另外系统必须提供一定的安全保密性,一些保密信息只针对特定的用户提供。

它人员无法访问。

软件必须为中文操作界面,并且所有的中文功能菜单项描述须与其实际对应的功能相一致,不能存在功能不足或者功能不对的情况,软件采用面向对象技术架构,遵循代码编写规范,提供适当的代码注释,尽可能地采用可复用技术,提高软件的可维护性。

3 概要设计

3.1系统设计总体思想

当工资管理系统处理的事务主要有工资管理,员工信息管理,部门信息管理,职务信息管理,职称信息管理。

职务和职称以及部门信息管理主要服务于工资管理和员工信息管理,系统接收的输入项目有员工信息,部门信息,职务信息,职称信息,请假信息,出差信息等。

系统能够接受用户的请求,显示相应的查询信息,增加、删除、修改相应的合法的信息。

图3.1.1工资管理系统HIPO图

图3.1.1是工资管理系统的HIPO图,上图主要说明了系统的各个主要功能以及各功能模块之间的层次关系。

上图的基本框架也是整个系统界面的基要框架。

系统的人机交互采用图形化用户界面,考虑到系统的平台无关性,系统由JAVA语言实现,系统的界面元素也是采用了JAVA的JFC图形类库。

系统可以在安装了JAVA运行环境的平台上运行。

系统从登录界面开始,要求验证用户信息,用户通过验证后,进入系统主界面。

主界面提供了一个菜单框架,可以通过各个菜单类的一个实例来加载菜单,这一步不是由主界面完成的,而是由所需要被加载的类完成的,但需要主界面类去生成这些菜单英的实例。

系统加载的功能主要包括系统管理,用户管理,工资管理,部门管理,职务管理,职称管理以及适当的帮助信息。

系统管理主要向用户提供用户更改密码的操作以及退出程序的功能。

用户管理允许管理员新建一个员工信息,比如当公司新增加了一个员工时,系统为该员工生成相应的工资关系,但新建这个员工的信息则是第一环节,当然如果公司离任了一名员工时,此员工与公司的工资关系已解除,则没有必要保留该员工的信息,系统应向管理员提供删除该员工的功能,同时删除与该员工相关的所有其它信息。

公司所在的员工可能有部分具有相应的职称,考虑到职称的种类繁多,系统只添加本公司员工所拥有的职称的一个集合,而不考虑外界的因素,因此系统提供了增加、删除、修改、查询等对职称的相关操作。

例如,当公司一员工拿到高级职称后,管理员首选应该查看系统是否记录了相应职称的信息,如果有,则直接将该职称信息添加到员工信息中去,如果没有,则应当先增加这一职称信息,再执行上述操作。

另外在删除一个职称的时候,系统要求必须没有员工拥有此职称,否则系统不能删除,如果确实要删除,则只能先删除拥有此职称的所有员工或者撤销拥有此职称的所有员工的此职称。

3.2系统功能模块设计

图3.2.1系统功能模块设计

3.3系统数据库设计

通过对工资管理系统的数据分析并根据业务之间的联系,我们可以得出与系统相关的实体有:

员工、部门、职务、职称、请假信息、出差信息、工资。

工资管理系统的数据据库管理模式用语义描述如下:

(1)每一个员工只能属于一个部门,担任一个职务,但是可以拥有多个职称.

(2)每个部门可以有多名员工,有不同的职务.

(3)每个职务可以由多名员工担任,可以在相同的部门,也可以在不同的部门.

(4)每个职称可以授予不同的员工.

(5)每个员工每个月都会有一份工资记录,并且会有一份历史工资记录.

(6)员工每个月可以请假多次或者出差多次.但是要扣除相应的工资或者获得相应的补助.每个员工都有一分历史请假记录和历史出差记录。

综合上述语义,可以得出系统的ER图如图3.3.1所示:

3.3.1工资管理系统ER图

根据实体之间的联系,以及分析实体的属性,得出了工资管理系统中各个实体的属性,相关属性列表见表3.3.1。

表3.3.1工资管理模型的相关属性列表

实体或联系

属性

员工

员工编号、姓名、性别、部门号、职务

部门

部门编号、名称、人数、电话

职务

职务编号、名称、基本工资

职称

职称编号、名称、职称津贴

出差信息

出差编号、员工编号、天数、出差年份、出差月份、出差补助

员工职称信息

员工编号、职称编号

请假信息

请假编号、员工编号、天数、年、月、扣除工资、请假原由

工资

工资编号、员工编号、工资所属年月、基本工资、扣除工资、出差补助、岗位工资、职称津贴、工资总额

说明:

加粗部分为主键,加底线部分为外键

图3.3.2实体及其相关属性图

4 详细设计

4.1数据结构设计

4.1.1数据库表结构设计

Employee——员工信息表

字段名

数据类型

约束

名称

说明

empno

number(6)

主键

员工编号

ename

varchar2(20)

notnull

员工姓名

sex

varchar2(4)

性别

deptno

外键department(deptno)

部门编号

dutyno

外键duty(dutyno)

职务编号

Department--部门信息表

deptname

部门名

empnum

number

部门人数

tel

电话

Duty--职务信息表

dutyname

varchar(20)

职务名

dutypay

default(0),check(dutypay>

=0)

职务基本工资

Title--职称信息表

titleno

职称编号

titlename

职称名

titlepay

default(0),check(titlepay>

职称津贴

TitledEmployee--员工职称联系表

组合主键,外键employee(empno)

year

number(4)

记录职称授予时间

month

between1and12

Leave--员工请假信息表

leaveno

请假编号

外键employee(empno)

请假员工

leavedays

请假天数

leaveyear

请假年份

leavemonth

请假月份

deduction

扣除工资

reason

varchar(60)

请假原因

BusinessTravel--出差信息表

travelno

primarykey

出差编号

traveldays

出差天数

travelyear

出差年份

travelmonth

出差月份

travelpay

出差补助

Reward--奖励信息表

rewardno

奖励编号

rewardyear

奖励年份

rewardmonth

奖励月份

rewardpay

奖励金额

奖励原由

Penalty--罚金信息表

penaltyno

罚金编号

penaltyyear

罚金年份

penaltmonth

罚金月份

penaltynum

罚金额度

罚金原由

Salary--职工工资信息表

salno

工资编号

payyear

工资年份

paymonth

工资月份

basepay

基本工资

请假扣除金额

职务工资

罚金

totalpay

工资总额

4.1.2程序数据结构设计

(1)ADTDepartmentBean

{

数据对象:

D={deptNo,deptName,empNum,tel|deptNo,empNumt和tel均为整数,deptName为字符串}

数据关系:

R1={<

deptNo,deptName,tel>

|deptNo为部门编号,deptName为部门号,tel为部门电话}

R2={<

deptNo,empNum>

|deptNo为部门编号,empNum为部门人数}

基本操作:

setDeptNo(intno):

设置部门的部门号为no.

getDeptNo():

返回部门的部门号。

setDeptName(Stringname):

设置部门的部门名为name.

getDeptName():

返回部门的部门号.

setEmpNum(intnum):

设置部门的员工人数为num.

getEmpNum():

返回部门的人数.

setTel(inttelephone):

设置部门的电话号码为telephone.

getTel():

返回部门的电话号码。

}ADTDepartmentBean

(2)ADTJdbc

D={dbUrl,theUser,thePsw,c,stmt,rs|dbUrl提供数据库对象,theUser,thePsw指定用户名和密码,c与数据库建立一个连接,stmt声明一条SQL语句,rs保存执行SQL语句的结果集.}

R1<

theUser,thePsw>

:

用户登陆的验证信息用户名和密码.

R2<

stmt,rs>

rs为语句stmt执行的结果集.

Jdbc():

加载数据库驱动,建立数据库连接.

executeUpdate(Stringsql):

执行SQL更新语句,成功返回TRUE,失败则返回FALSE.

executeQuery(Stringsql):

执行SQL查询语句,返回结果集rs.

close():

关闭与数据库的连接.

}ADTJdbc

4.2模块功能详细设计

4.2.1部门信息删除模块设计

(1)类图设计

图4.2.1.1部门信息删除模块类图

以下对部分类的属性和方法的说明:

DepartmentMenu类:

属性名称

属性类型

属性说明

deptMenu

JMenu

顶层菜单项

deptInqueryItem

JMenuItem

部门信息查询菜单项

deptDeleteItem

部门信息删除菜单项

deptUpdateItem

部门信息更新菜单项

User

UserBean

用户业务类

当点击各菜单项时,会弹出相应的操作界面。

DepartmentDelete类:

方法名称

返回值类型

功能说明

isDeptExist()

boolean

判断输入的部门号是否存在

isDeptEmpty()

判断输入的部门号是否为空

executeDelete()

void

执行删除操作

ShowAction类:

该类为内部类,是将各功能集成到系统的框架之中.ShowAction类的构造函数提供了一个命名菜单项的方法,主要功能引入了DepartMentDelete这个类到系统中。

通过监听器ShowAction执行actionPerformed()方法,系统就应该可以产生期望的动作。

(2)界面设计

图4.2.1.2界面设计

界面设计说明:

该文本框为单行文本框,可以输入要删除的部门号,当系统监听到文本框中选项被确定,将会自动地将该部门信息从数据库中删除。

(3)核心代码

publicclassDepartmentDelete

publicDepartmentDelete()

{

executeDelete();

}

privatebooleanisDeptExist(intdeptno)

{

ResultSetrs;

Jdbcconn=null;

booleanflag=false;

try{

conn=newJdbc();

rs=conn.executeQuery("

selectdeptnofromdepartment"

);

while(rs.next())

{

if(deptno==rs.getInt("

deptno"

))

{

flag=true;

break;

}

}

}catch(InstantiationExceptione1){

e1.printStackTrace();

}catch(IllegalAccessExceptione1){

}catch(ClassNotFoundExceptione1){

}catch(SQLExceptione1){

}

returnflag;

publicbooleanisDeptEmpty(intdeptno)

conn=newJdbc();

rs=conn.executeQuery("

selectcount(*)fromemployeewheredeptno="

+deptno);

if(rs.getInt

(1)==0)

privatevoidexecuteDelete(){

StringdeptnoStr=JOptionPane.showInputDialog(null,"

请输入待删除部门编号!

"

intdeptno=0;

booleanflag=true;

try{

deptno=Integer.parseInt(deptnoStr);

}catch(Exceptione){flag=false;

if(isDeptExist(deptno)==true)

{

if(isDeptEmpty(deptno)==false){

JOptionPane.showMessageDialog(null,"

部门中有员工存在,无法删除!

else

Jdbcconn=null;

intres=0;

try{

conn=newJdbc();

pstmt.setInt(1,deptno);

res=pstmt.executeUpdate();

if(res!

=0)

JOptionPane.showMessageDialog(null,"

成功删除部门"

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2