实验报告5管理信息系统.docx
《实验报告5管理信息系统.docx》由会员分享,可在线阅读,更多相关《实验报告5管理信息系统.docx(20页珍藏版)》请在冰豆网上搜索。
![实验报告5管理信息系统.docx](https://file1.bdocx.com/fileroot1/2022-11/24/ab885f15-6d3c-4297-a3e7-6068928a7dfe/ab885f15-6d3c-4297-a3e7-6068928a7dfe1.gif)
实验报告5管理信息系统
管理信息系统课程实验报告
实验名称:
_实验5综合性实验任课教师:
高川翔__
专业:
___信息与计算科学__班级:
___071姓名:
__陈钰阶____
学号:
_200711314117___评 分:
_____ ____
一、实验目的:
联系所学的管理信息系统开发的原理、技术、方法、工具和步骤,以及在各个阶段上应该完成的工作内容等理论知识,亲身体会开发一个管理信息系统的全过程及其工作内容,训练独立从事开发管理信息系统的能力。
二、实验内容:
根据以下提示信息进行一个实际管理系统的系统分析、系统设计和系统实施。
ZHK大学共有教职员工3758人。
学校下设教务处、财务处和房产处等二十六处室,还设有计算机系、自动控制系和管理工程系等十八个教学系,此外还附设一个机械工厂、一个电子厂和一所校医院。
该校财务处负责全校教职工的工资管理工作,其工资管理业务情况如下:
每月25日至28日,房产处将本月职工住房的房费和水电费扣款清单报送财务处,总务处将托儿费扣款和通勤职工的交通补贴费清单报送财务处。
财务处按期列出一份职工借支应扣款清单。
所有这些清单的格式如表SJ-l和表SJ-2所示。
表SJ-1 ( )月份职工( )项扣款清单
职工号
姓名
扣款金额(元)
备注
制表人:
日期:
表SJ-2 ( )月份职工交通补贴清单
职工号
姓名
补贴金额(元)
备注
制表人:
日期:
此外,学校人事部门及时向财务处提供下列信息:
1)若有职工在学校内部各部门之间调动工作情况发生,则提供这些职工的姓名、由何部门调至何部门工作、工资发放变动情况等。
2)若有校外人员调入学校工作,则应提供调入者的职工号、姓名、调入校内何部门、以及有关调入者工资方面的数据,还有他们的工资开始发放的月份,据此,财务处的工资管理会计员建立调入者的职工工资台帐帐页。
3)若有职工调离学校,则要提供调出人员的姓名、所在单位和终止发放本人工资的月份。
4)若调整工资,则应提供全校教职工工资调整变动情况清单和调整后工资从哪个月份开始发放。
当财务处收到各部门报送来的扣款单、补贴清单和其它有关职工工资变动通知单后,财务处的工资管理会计就可以依据上个月份的职工工资台帐制做本月职工工资台帐。
职工工资台帐格式如表SJ-3所示,每名职工全年工资信息占据台帐的一页。
表SJ-3 某大学职工工资台帐帐页 第 页
职工号:
姓名:
部门代号:
部门名称:
月份
基本
工资
工龄
工资
副食
补贴
煤粮
补贴
交通
补贴
备补
1
备补
2
应发
工资
房
费
水电
费
托儿
费
借支
扣款
其它
扣款
扣款
合计
实发
工资
一月
二月
三月
四月
五月
六月
七月
八月
九月
十月
十一月
十二月
表SJ-4 某大学一月份职工工资发放单
部门名称:
姓名
基本
工资
工龄
工资
副食
补贴
煤粮
补贴
交通
补贴
备补
1
备补
2
应发
工资
房
费
水电
费
托儿
费
借支
扣款
其它
扣款
扣款
合计
实发
工资
汪大伟
……
李 俊
合计
工资管理会计员依据工资汇总表上的全校“实发工资”合计数字,从银行提回现金,并于下月的5号将本月份职工工资发至职工手中。
职工工资计算处理中的几项说明:
.工龄工资每人每年增加50元。
.应发工资=基本工资+工龄工资+各项补贴之和。
.扣款合计=房费+水电费+托儿费+借支扣款+其它扣款。
.实发工资=应发工资-扣款合计。
从上面的描述不难看出,该所大学现行职工工资管理业务工作量特别大,同时还时常出现差错现象。
有关人员迫切要求早日开发出全校职工工资管理信息系统,用计算机代替手工记帐、计算和制作报表工作。
学校主管领导也十分支持这项工作,已批准投资10万元人民币用于购置设备和软件开发。
同时,学校还拥有雄厚的技术力量。
三、分析设计
(要求:
严格按照结构化系统分析方法,完成以下各项工作:
1)业务流程图
2)数据字典
实体
数据项名
说明
类型(长度)
注释&内容
部门
Department
DepartmentNo
部门编号
char(3)
唯一标识一个部门
DepartmentName
部门名称
varchar2(20)
公司各部门的名称
Telphone
联系电话
varchar2(14)
14位电话号码
UpperDepartmentNo
上级部门编号
char(3)
上级部门编号
岗位DCPost
PostNo
岗位编号
char(3)
唯一标识一个岗位
PostName
岗位名称
varchar2(20)
公司所设岗位的名称
员工Employee
EmployeeNo
员工编号
char(8)
唯一标识一个员工
EmployeeName
员工名称
varchar2(20)
员工的名称
Sex
性别
char
(2)
只能为‘男’、‘女’
DepartmentNo
部门编号
char(3)
参照完整性
PostNo
岗位编号
char(3)
参照完整性
WorkDate
工作日期
date
员工参加工作的日期
Id
身份证号
varchar2(18)
18位身份证号
BankNo
银行帐号
varchar2(19)
19位银行帐号
Birthday
生日
date
日期类型
Telphone
联系电话
varchar2(14)
14位电话号码
工资
Salary
EmployeeNo
员工编号
char(5)
参照员工表
BalanceDate
结算时间
date
员工工资结算的时间
RealWage
实发工资
number
员工实际领取的工资
IsBalance
是否结算
number
只能在0和1之间取值
工资项
SalItem
SalItemNo
工资项编号
char(5)
惟一标识工资项
SalItemName
工资项名称
number
工资项名称
SalItemType
工资项类型
number
只能在1和-1之间取值
工资明细
SalDetail
EmployeeNo
员工编号
char(5)
参照完整性
BalanceDate
结算时间
date
员工工资结算的时间
SalItemNo
工资项编号
char(5)
参照完整性
SalItemWage
工资项金额
number
工资项金额数量
SalItemType
工资项类型
number
只能在1和-1之间取值
加班记录
OvertimeRecord
EmployeeNo
员工编号
char(5)
参照完整性
OvertimeDate
加班时间
date
员工加班发生的时间
OTLength
加班时长
number
员工加班小时数
VerifyPerson
审核人编号
varchar2(20)
审核加班处理人
Desrciption
备注
varchar2(30)
备注记录
考勤记录AttendanceRecord
EmployeeNo
员工编号
char(5)
参照完整性
AttendDate
考勤时间
date
考勤发生的时间
AttendType
考勤类型
number
只能在0-2之间取值
AttendPerson
审核人编号
varchar2(20)
审核考勤处理人
Desrciption
备注
varchar2(30)
备注记录
数据项条目
名称:
职工编号总编号:
0001-3758
别名:
无编号:
3758
说明:
高校职工工资管理系统职工的编号
类型:
字符
长度:
20
有关数据结构:
职工基本信息表
数据项条目
名称:
职工姓名总编号:
0001-3758
别名:
无编号:
3758
说明:
高校职工工资管理系统职工的姓名
类型:
字符
长度:
20
有关数据结构:
职工基本信息表
数据项条目
名称:
职工工资名称总编号:
001-200
别名:
无编号:
200
说明:
高校职工工资管理系统职工的工资名称
类型:
字符
长度:
20
有关数据结构:
职工工资明细表
数据项条目
名称:
职工工资金额总编号:
001-200
别名:
无编号:
200
说明:
高校职工工资管理系统职工的工资金额
类型:
字符
长度:
20
有关数据结构:
职工工资明细表
严格按照结构化系统设计方法,完成以下各项工作:
1)功能结构图设计
2)存储文件格式设计(数据库结构设计)
1、层次数据库结构
层次数据库结构将数据通过一对多或父结点对子结点的方式组织起来。
一个层次数据库中,根表或父表位于一个类似于树形结构的最上方,它的子表中包含相关数据。
层次数据库模型的结构就像是一棵倒转的树。
优点:
快速的数据查询
便于管理数据的完整性
缺点:
用户必须十分熟悉数据库结构
需要存储冗余数据
2、网状数据库结构
网状数据库结构是用连接指令或指针来组织数据的方式。
数据间为多对多的关系。
矢量数据描述时多用这种数据结构。
优点:
快速的数据访问
用户可以从任何表开始访问其他表数据
便于开发更复杂的查询来检索数据
缺点:
不便于数据库结构的修改
数据库结构的修改将直接影响访问数据库的应用程序
用户必须掌握数据库结构
3、关系数据库结构
这就目前最流行的数据库结构了。
数据存储的主要载体是表,或相关数据组。
有一对一、一对多、多对多三种表关系。
表关联是通过引用完整性定义的,这是通过主码和外码(主键或外键)约束条件实现的。
优点:
数据访问非常快
便于修改数据库结构
逻辑化表示数据,因此用户不需要知道数据是如何存储的
容易设计复杂的数据查询来检索数据
容易实现数据完整性
数据通常具有更高的准确性
支持标准SQL语言
缺点:
很多情况下,必须将多个表的不同数据关联起来实现数据查询
用户必须熟悉表之间的关联关系
用户必须掌握SQL语言
4、面向对象数据库结构
它允许用对象的概念来定义与关系数据库交互。
值得注意的是面向对象数据库设计思想与面向对象数据库管理系统理论不能混为一谈。
前者是数据库用户定义数据库模式的思路,后者是数据库管理程序的思路。
面向对象数据库中有两个基本的结构:
对象和字面量。
对象是一种具有标识的数据结构,这些数据结构可以用来标识对象之间的相互关系。
字面量是与对象相关的值,它没有标识符。
优点:
程序员只需要掌握面向对象的概念,而不要掌握与面向对象概念以及关系数据库有关的存储
对象具有继承性,可以从其他对象继承属性集
大量应用软件的处理工作可以自动完成
从理论上说,更容易管理对象
面向对象数据模型与面向对象编程工具更兼容
缺点:
由于面向对象数据库不支持传统的编程方法,所以用户必须理解面向对象概念
目前面向对象数据库模型还没有统一的标准
由于面向对象数据库出现的时间还不长,稳定性还是一个值得关注的焦点
5、另外
还有两种:
古老的平面文件数据库结构和较新的对象关系数据库结构。
当然现在还有人用纯XML文档作数据库。
两层C/S结构
由服务器、客户机在局部范围内建立局域网,数据库设置在服务器中,客户机中可存放其备份或临时表,就构成所谓两层C/S结构,如图7.6所示。
图7.6C/S结构图
服务器中数据被众多客户机程序所共享,它们可以同时读或写服务器中的数据,如有多台客户机中程序对同一数据做读写操作,就可能发生冲突。
这一问题我们已在并发控制中作了说明。
在设计时,对数据可能有如下不同处理形式。
在处理时,客户机先向服务器索取数据,然后释放数据库,在客户机端处理数据,最后将结果送回服务器。
这种处理方式对服务器、通信线路利用效率较高,但要注意防止并发操作错误。
在处理时,客户机接受用户要求,并发给服务器,在服务器端处理,最后将结果传回客户机显示或打印。
这种处理方式网络通信量较小、能防止并发操作错误,但服务器的CPU特别繁忙,反应速度较低,且容易出现死锁或活锁。
三层C/S结构(B/S结构)
在Internet网络支持下,系统可更大规模扩大,出现了三层客户/服务器体系结构,即Browser/server模式,其拓扑结构如图7.7所示。
图7.7三层C/S网络结构
这种结构使系统从封闭的集中式主机向开放的与平台无关的环境过渡,服务器端可以不只一台主机,可采用主机的群集技术构成,客户端程序极大简化。
在客户端借助Web游览器可以处理简单的客户端处理请求,显示用户界面及服务器端运行结果,Web服务器负责接收远程或本地的数据查询请求,然后运行服务器脚本,借助于中间件把数据通过ODBC发送到数据库服务器上以获取相关数据,再把结果数据传回客户的Browser。
数据库服务器端负责管理数据库,处理数据更新及完成查询要求,运行存储过程。
这种方式使应用面极大扩展,而安全问题也变得更加令人重视。
表3-1部门表Department
数据项名
类型(长度)
是否为空
约束说明
说明
DepartmentNo
char(3)
notnull
主键约束:
Department_PK
部门编号
DepartmentName
varchar2(20)
notnull
名称唯一
部门名称
UpperDepartmentNo
char(3)
null
外键/触发器
上级部门编号
Telphone
varchar2(12)
notnull
部门联系电话
表3-3职工表Employee
数据项名
类型(长度)
是否为空
约束说明
说明
EmployeeNo
char(8)
notnull
主键约束:
Employee_PK
员工编号,唯一标识一个员工
EmployeeName
varchar2(30)
notnull
员工名称
Sex
char
(2)
notnull
Check约束:
“F”表示为女性,“M”表示为男性
员工性别
DepartmentNo
char(3)
notnull
外键约束:
EmployeeDepartment_FK
所属部门编号,参照部门表
PostNo
char(3)
notnull
EmployeeDCPost_FK
职位编号,参照岗位表
Workdate
date
null
Likeyyyy-mm-dd
参加工作日期
Id
varchar2(18)
notnull
18位身份证号
BankNo
varchar2(19)
notnull
19位银行帐号
Birthday
date
null
Likeyyyy-mm-dd
员工出生年月
Telphone
varchar2(12)
null
12位联系电话
表3-4工资表Salary
数据项名
类型(长度)
是否为空
约束说明
说明
EmployeeNo
char(8)
notnull
主键约束:
Salary_PK
外键约束:
SalaryEmployee_FK
员工编号
BalanceDate
date
notnull
员工工资结算日期
RealWage
number
null
员工实发工资
IsBalance
number
notnull
Check约束,0表示未结算,1表示已结算
工资是否已结算
表3-5工资项表SalItem
数据项名
类型(长度)
是否为空
约束说明
说明
SalItemNo
char(5)
notnull
主键约束:
SalItem_PK
工资项编号
SalItemName
varchar2(20)
notnull
工资项名称
SalItemType
number
notnull
Check约束:
1表示为增加工资项,-1表示为扣罚工资项
工资项的类型
表3-6工资明细表SalDetail
数据项名
类型(长度)
是否为空
约束说明
说明
EmployeeNo
char(8)
notnull
主键约束:
SalDetail_PK
SalItemNo参照工作项表
员工编号
BalanceDate
date
notnull
结算时间
SalItemNo
char(5)
notnull
工资项编号
SalItemWage
number
notnull
工资项金额
SalItemType
number
notnull
Checkin‘-1’or’1’
工资项类型
表3-8考勤记录表AttendanceRecord
数据项名
类型(长度)
是否为空
约束说明
说明
EmployeeNo
char(8)
notnull
主键约束:
AttendanceRecord_PK
员工编号
AttendDate
date
notnull
考勤时间
AttendType
number
notnull
Check约束:
用0表示早退,用1表示迟到,用2表示缺勤
考勤类型
AttendPerson
Char(8)
notnull
外键,参照员工表的员工编号
审核人编号
Desrciption
varchar2(30)
null
备注记录
备注
表3-9用户表SUsers
数据项名
类型(长度)
是否为空
约束说明
说明
UserNo
char(8)
notnull
主键约束
用户编号
UserName
varchar2(20)
notnull
用户名称
UserPassword
Varchar2(20)
notnull
用户密码
UserType
number
notnull
Check约束:
0表示系统管理员,1表示财务人员,2表示员工,3表示人事部员工
用户类型
UsertypeName
varchar2(20)
notnull
用户类型名称
严格按照结构化程序设计方法,完成以下各项工作:
1)程序框图
2)部分源程序)
/*
*JavaApp.java
*/
packagejava;
importorg.jdesktop.application.Application;
importorg.jdesktop.application.SingleFrameApplication;
/**
*Themainclassoftheapplication.
*/
publicclassJavaAppextendsSingleFrameApplication{
/**
*Atstartupcreateandshowthemainframeoftheapplication.
*/
@Overrideprotectedvoidstartup(){
show(newJavaView(this));
}
/**
*Thismethodistoinitializeth