公司职工工资管理系统设计与实现毕业设计内容摘要:

概念结构设计 根据需求分析中用户对数据的需求可知,该工资管理系统需要对 员工、部门、职务、职称、管理员、工资、报表、隶属八类 信息进行管理。 其实体及实体之间的关系图如下: 图 员工实体图 员工的属性:员工编号、姓名、性别、部门、职务、职称, 主码为员工编号 图 部门实体图 部门的属性:部门编号、部门名称、人数、联系电话, 主码为部门编号 图 职务实体图 职务的属性:职务编号、职务名称、基本工资,主码为职务编号 7 图 职称实体图 职称的属性:职称编号、职称名称、职称津贴,主码为职称编号 图 管理员实体图 管理员的属性:管理员编号、姓名、口令,主码为管理员编号 图 工资实体图 工资的属性:员工编号、姓名、基本工资、职称津贴、工龄工资、加班费、奖金、扣款、年月,主码为员工编号 图 报表实体图 8 报表的属性:部门编号、部门名称、人数、联系电话、员工编号、姓名、基本工资、职称津贴、工龄工资、加班费、奖金、扣款、年 月,主码为员工编号 图 隶属实体图 隶属的属性:部门编号、部门名称、人数、联系电话、员工编号、姓名、性别、部门、职务、职称,主码为员工编号 综合上述语义,可以得出系统的 ER图,如图 : 图 各实体关系图 9 第二节 逻辑结构设计 根据 ER图,将其转换为关系模式可得到以下 8个关系模式: 员工(员工编号,姓名,性别,部门,职务,职称) 部门(部门编号,部门名称,人数,联系电话) 职务(职务编号,职务名称,基本工资) 职称(职称编号,职称名称,职称津贴) 管理员(管理员编号,姓名,口 令) 工资(员工编号,姓名,基本工资,职称津贴,工龄工资,加班费,奖金,扣款,年月) 报表(员工编号,姓名,基本工资,职称津贴,工龄工资,加班费,奖金,扣款,部门编号,部门名称,人数,联系电话,年月) 隶属(员工编号,姓名,性别,部门,职务,职称,部门编号,部门名称,人数,联系电话) 将关系模式中每个属性的类型、大小、规则等具体化形成表结构。 各个表的结构描述如下: 表 员工表 字段名称 字段类型 是否为空 默认值 是否主键 员工编号 Varshar(12) 否 主键 姓名 Varchar(20) 否 性别 Char(2) 否 部门 Varchar(20) 否 职务 Varchar(20) 否 职称 Varchar(20) 否 表 部门表 字段名称 字段类型 是否为空 默认值 是否主键 部门编号 Varshar(12) 否 主键 部门名称 Varchar(20) 否 人数 int 否 联系电话 Varchar(11) 否 10 表 职务表 字段名称 字段类型 是否为空 默认值 是否主键 职务编号 Varshar(12) 否 主键 职 务名称 Varchar(20) 否 基本工资 float 否 表 职称表 字段名称 字段类型 是否为空 默认值 是否主键 职称编号 Varshar(12) 否 主键 职称名称 Varchar(20) 否 职称津贴 float 否 表 管理员表 字段名称 字段类型 是否为空 默认值 是否主键 管理员编号 Varshar(12) 否 主键 姓名 Varchar(20) 否 口令 Varshar(12) 否 表 工资表 字段名称 字段类 型 是否为空 默认值 是否主键 员工编号 Varshar(12) 否 主键 姓名 Varchar(20) 否 基本工资 float 否 职称津贴 float 否 工龄工资 float 否 加班费 float 否 奖金 float 否 扣款 float 否 年月 datetime 否 11 表 报表表 字段名称 字段类型 是否为空 默认值 是否主键 员工编号 Varshar(12) 否 主键 姓名 Varchar(20) 否 基本工资 float 否 职称津贴 float 否 工龄工资 float 否 加班费 float 否 奖金 float 否 扣款 float 否 部门编号 Varshar(12) 否 部门名称 Varchar(20) 否 人数 int 否 联系电话 Varchar(11) 否 年月 date 否 表 隶属表 字段名称 字段类型 是否为空 默认值 是否主键 员工编号 Varshar(12) 否 主键 姓名 Varchar(20) 否 性别 Char( 2) 否 部门 Varchar(20) 否 职务 Varchar(20) 否 职称 Varchar(20) 否 部门编号 Varchar(12) 否 部门名称 Varchar(20) 否 人数 int 否 联系电话 Varchar(20) 否 12 第四章 详细设计 第一节 用户登录验证设计 职工在如图 所示界面输入正确的数据库服务器 IP地址、端口号 、用户名与密码后,选择相应的用户类型便可登录到相应的客户端窗体(普通职工登录员工用户端需输入员工用 户名、员工用户密码并选择普通员工项后点击登陆,管理人员登录管理员用户端需输入管理员用户名、管理员用户密码并选择管理人员项后点击登陆)。 图 登陆界面 该用户登录界面主要代码如下: public class Login extends JFrame implements ActionListener { private JLabel jl=new JLabel(端 口 号 )。 //创建提示标签 private JLabel jl0=new JLabel(数据库服务器 IP)。 private JLabel jl1=new JLabel(用 户 名 )。 private JLabel jl2=new JLabel(密 码 )。 private JLabel jl3=new JLabel()。 //正在登陆提示标签 //创建主机地址、端口号、用户名和密码输入框 private JRadioButton[] jrbArray=//创建单选按钮数组 { new JRadioButton(普通员 工 ,true), new JRadioButton(管理人员 ) }。 //创建组 private ButtonGroup bg=new ButtonGroup()。 13 //创建操作按钮 private JButton jb1=new JButton(登 陆 )。 private JButton jb2=new JButton(重 置 )。 ()。 (1433)。 } //实现 ActionListener 接口中的方法 public void actionPerformed(ActionEvent e) { if(()==) {//按下登陆按钮 (正 在 验 证 , 请 稍 候 . . . . .)。 //设置提示信息 //获取用户输入的主机地址、端口号、用户名与密码 String hostadd=().trim()。 if(()){ (this,请输入主机地址 ,错误 , )。 ()。 return。 } String port=()。 if(()){ (this,请输入端口号 ,错误, )。 ()。 return。 } =hostadd+:+port。 String name=().trim()。 if(()){ (this,请输入用户名 ,错误, )。 ()。 return。 } String pwd=().trim()。 if(()){ (this,请输入密码 ,错误 , )。 ()。 return。 14 } int type=[0].isSelected()?0:1。 //获取登陆类型 try{ //初始化连接 ()。 if(type==0){//普通员工登陆 //创建 sql 语句并查询 String sql=select * from user_stu where + stu_id=39。 +name+39。 and pwd=39。 +pwd+39。 rs=(sql)。 if(()){ new StaffClient(name,host)。 //创建员工用户端窗口 ()。 //关闭登陆窗口并释放资源 } else{//弹 出错误提示窗口 (this,用户名或密码错误 ,错误 , )。 ()。 } ()。 //关闭连接,语句及结果集 } else{//管理员登陆 //创建 sql 语句并查询 String sql=select coll_id from user_Administrator where + uid=39。 +name+39。 and pwd=39。 +pwd+39。 rs=(sql)。 if(()){ String coll_id=(1)。 new AdministratorClient(coll_id,host)。 //创建管理员用户端窗口 ()。 //关闭登陆窗口并释放资源 } else{//弹出错误提示窗口 (this,用户名或密码错误 ,错误 , )。 ()。 }。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。