# 引言
## 1.1课题研究主要内容
本课程设计使用 Java 语言进行应用系统界面的开发,使用 SqlServer2017 进行后台数据库管理,编写出一个小型公司的人员信息管理系统。
# 需求分析
## 2.1信息要求分析
某简单的创业公司,目前处于初步发展阶段,主要有四类人员:董事长、经理、会计员、销售员,而经理有分为管理会计员的经理和管理销售员的经理,这整个公司的结构层级图如下:

从董事长到员工,形成了一个层级结构,董事长管理经理,而经理管理各自的员工,这个公司想要设计一个人员信息管理系统,主要负责功能有:
- 员工的信息的登记、修改、删除、查询;
- 员工的工资结算;
- 生成员工信息报表。
## 2.2处理要求分析
员工到了月底的时候就要进行登记员工信息,从而根据各个员工的信息计算出每个员工的这个月的工资,员工的信息登记后被保存到数据库,可以通过查询公司的数据库得到所有员工的信息显示到屏幕上,除此之外,还可以对员工信息进行增删改, 员工也可以通过 ID 自己查询自己的信息,这整个过程的数据流图如下:

公司员工进行个人信息登记,保存到数据库,在登记时还会根据员工的不同职位做出不同的处理,登记到不同的表中,相关部门根据员工信息结算工资给员工,可以从数据库中查询员工信息显示到电脑上。
## 2.3数据字典分析
数据从程序内部分离出来,形成独立的外部数据文件,外部数据文件存放方式转为数据库存放方式,将以前程序中静态数据对动态数据加工的某些控制关系抽象为关系表的形式,对于不同关系表的数据字典描述如下:
> 名字:个人信息
>
> 别名:员工信息
>
> 描述:描述一个员工的基本信息
>
> 定义:个人信息 = ID + 姓名 + 年龄 + 职位 + [管理方向|出勤天数|销售额]
>
> 位置:数据库
> 名字:职位
>
> 别名:pos
>
> 描述:描述一个员工的在公司中的身份
>
> 定义:职位 = [经理|销售员|会计员]
>
> 位置:个人信息
> 名字:经理信息
>
> 别名:
>
> 描述:描述一个经理的基本信息
>
> 定义:经理信息 = ID + 管理方向
>
> 位置:数据库
>名字:会计员信息
>
>别名:
>
>描述:描述一个会计员的基本信息
>
>定义:会计员信息 = ID + 出勤天数
>
>位置:数据库
> 名字:销售员信息
>
> 别名:
>
> 描述:描述一个销售员的基本信息
>
> 定义:会计员信息 = ID + 销售额
>
> 位置:数据库
# 概念结构设计
## 3.1UML 图
所以为了代表公司的四类人物:董事长、经理、会计员、销售员,我设计了 5 个类,分别为 Employee.java、CEO.java、Manager.java、Accountant.java、Seller.java, 其中 Employee.java 是 CEO、Manager、Accountant、Seller 的共同父类,代表了它们的共同属性,它们之间的关系即 UML 图如下:

## 3.2数据实体描述
- Employee类:从UML图可以看出,公司中四类人的共同的父类是Employee类,它的属性有: id(员工ID)、 name(姓名)、age(年龄)、pos(职位),其中id是每个员工的唯一编号,我使用了系统的时间的16进制作为员工的唯一编号,这样保证每一个员工之间的id是不重复的,Employee类中有一个getSalary方法,它用来计算每个员工的工资,每个员工的基本工资是3000人民币,经理的工资是固定工资18000,会计的工资 = 基本工资 + 这个月的出勤天数 * 100,销售人员的工资 = 基本工资 + 它销售额的30%;
- Manager 类:代表着公司的经理,拥有一个 manage 属性,代表经理的管理方向,有两个取值,分别为销售和会计方向;
- Accountant 类:代表着公司的会计员,拥有一个 workDays 属性,代表这个会计员的这个月的出勤天数;
- Seller 类:代表着公司的销售员,拥有一个 saleNums 属性,代表这个销售员的这个月的销售额;
- CEO 类:代表着公司的老板,管理这间公司。
# 系统概要设计
## 4.1数据库逻辑结构设计
所以根据 UML 图,我建立了一个数据库名为 company,里面保存着四个表,分别名为:dbo.employee、dbo.accountant、dbo.manager、dbo.seller, 其中 dbo.employee 代表着所有的员工信息,dbo.accountant 代表着 Accountant 类,dbo.manager 代表着 Manager 类,dbo.seller 代表着 Seller 类,它们表与表之间的联系如下:

employee 表,accountant 表、manager 表,seller 表的主码都是 id,而 accountant 表、manager 表和 seller 表的主码都参照 employee 表的主码,即 accountant 表、manager 表和 seller 表的 id 既是主码也是外码。
## 4.2系统总体框架
整个程序的总体框架如下:

大概分为四个模块:登记员工信息模块、删除员工信息模块、修改员工信息模块和查询员工信息模块,下面分别介绍.
- 登记员工信息模块: 当你打开程序,会有一个面板让你输入员工的姓名、年龄、选择的职位,如果选择的职位是经理,你还需要选择你管理的方向,如果选择的职位是会计员,你还需要输入你这个月的出勤天数,如果选择的职位是销售员,你还需要输入你这个月的销售额,然后点击登记按钮,程序内部会把这个员工的信息保存到数据库,然后提示你是否登记成功,最后更新显示区域;
- 删除员工信息模块: 当你打开程序,会有一个面板让你输入员工的 ID,点击删除按钮,程序内部会把这个员工的信息从数据库删除,还有一个删除所有按钮,单击删除所有按钮,程序内部会把所有员工的信息从数据库删除,然后提示你是否删除成功,最后更新显示区域;
- 修改员工信息模块: 当你打开程序,会有一个面板让你输入员工的 ID,选择要修改的员工信息,然后输入修改值,点击修改按钮,程序内部把这个员工信息更新到数据库,然后提示你是否修改成功,最后更新显示区域;
- 查询员工信息模块: 当你打开程序,会有一个面板让你输入员工的姓名、相应职位,然后点击查询按钮,程序内部会从数据库查询这个员工的信息,并自动计算员工的工资,和员工的信息一并显示出来,还有一个查询所有按钮,单击查询所有按钮,程序内部会把所有员工的信息从数据库查询出来,然后更新显示区域;
# 系统详细设计
## 5.1数据库实施
本次课程设计我使用 SqlServer 数据库,通过 Java 代码进行连接,下面是数据库建表过程:
DDL 语句编写 employee 表:
```c++
create table employee(
id varchar(30) primary key,
name varchar(10),
age int check(age > 0),
pos varchar(10)
)
```
DDL 语句编写 accountant 表:
```c++
create table accountant(
id varchar(30) primary key,
workDays int check(workDays > 0)
)
```
DDL 语句编写 manager 表:
```c++
create table manager(
id varchar(30) primary key,

神仙别闹
- 粉丝: 4806
- 资源: 7605
最新资源
- [AB PLC例程源码][MMS_054307]ME Faceplates for E1 Plus Overload Relay on DeviceNet.zip
- [AB PLC例程源码][MMS_054308]SE Faceplates for E1 Plus Overload Relays on DeviceNet.zip
- [AB PLC例程源码][MMS_054334]Logix-PanelView Plus Calculator Tool.zip
- [AB PLC例程源码][MMS_054314]FactoryTalk Historian Tag Toggler.zip
- [AB PLC例程源码][MMS_054397]Bi-Direction 2 Sensor L-Type Muting w-3rdEnable Building Block.zip
- [AB PLC例程源码][MMS_054400]Pump Control Building Block.zip
- [AB PLC例程源码][MMS_054402]Single Direction 2 Sensor L-Type Muting Building Block.zip
- [AB PLC例程源码][MMS_054399]Bi-Direction 4 Sensor T-Type Muting Building Block.zip
- [AB PLC例程源码][MMS_054465]Change HMI screens.zip
- [AB PLC例程源码][MMS_054467]Convert Hours, min, sec to millisec.zip
- [AB PLC例程源码][MMS_054466]Convert milliseconds H_M_S.zip
- [AB PLC例程源码][MMS_054468]Periodic timer H-M-S.zip
- [AB PLC例程源码][MMS_054470]Cycle Linear.zip
- [AB PLC例程源码][MMS_054469]Cycle Circular.zip
- [AB PLC例程源码][MMS_054473]Full Voltage Reversing Starter Control.zip
- [AB PLC例程源码][MMS_054493]GuardLogix and POINT Guard on DeviceNet.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


