信息系统开发方法设计.docx

上传人:b****3 文档编号:4631215 上传时间:2023-05-07 格式:DOCX 页数:37 大小:494.70KB
下载 相关 举报
信息系统开发方法设计.docx_第1页
第1页 / 共37页
信息系统开发方法设计.docx_第2页
第2页 / 共37页
信息系统开发方法设计.docx_第3页
第3页 / 共37页
信息系统开发方法设计.docx_第4页
第4页 / 共37页
信息系统开发方法设计.docx_第5页
第5页 / 共37页
信息系统开发方法设计.docx_第6页
第6页 / 共37页
信息系统开发方法设计.docx_第7页
第7页 / 共37页
信息系统开发方法设计.docx_第8页
第8页 / 共37页
信息系统开发方法设计.docx_第9页
第9页 / 共37页
信息系统开发方法设计.docx_第10页
第10页 / 共37页
信息系统开发方法设计.docx_第11页
第11页 / 共37页
信息系统开发方法设计.docx_第12页
第12页 / 共37页
信息系统开发方法设计.docx_第13页
第13页 / 共37页
信息系统开发方法设计.docx_第14页
第14页 / 共37页
信息系统开发方法设计.docx_第15页
第15页 / 共37页
信息系统开发方法设计.docx_第16页
第16页 / 共37页
信息系统开发方法设计.docx_第17页
第17页 / 共37页
信息系统开发方法设计.docx_第18页
第18页 / 共37页
信息系统开发方法设计.docx_第19页
第19页 / 共37页
信息系统开发方法设计.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

信息系统开发方法设计.docx

《信息系统开发方法设计.docx》由会员分享,可在线阅读,更多相关《信息系统开发方法设计.docx(37页珍藏版)》请在冰点文库上搜索。

信息系统开发方法设计.docx

信息系统开发方法设计

 

《信息系统开发方法》

 

工资管理系统

 

姓名杜彦

班级信息管理与信息系统0102

学号27

指导教师张志霞

 

第一章需求分析

1.1总体需求调查

1.1.1组织结构图

组织结构图如下

1.1.2系统目标

采用现有的软硬件软件及科学的管理系统开发方案,建立人事工资管理系统,实现移动人事工资管理的计算机自动化。

系统应符合人事、工资管理制度,并达到操作直观、方便、实用、安全等要求。

1.1.3应用现状调查

目前,使用的人事工资管理系统采用的是DOS环境下的Foxbase数据库,界面不友好,不能适应发展的需要。

1.1.4业务总体流程调查

 

维护员工基本信息:

人事管理主要负责人员基本信息的维护,包括新进员工档案的建立,员工信息的修改。

工资管理基本流程如下:

数据来源:

将各部门送达的员工工资信息包括基本工资、奖金、水电费等作为数据来源,分为新增员工工资数据和老员工每月修改数据。

数据的输入:

由工作人员通过新员工本月工资增加和老员工上月工资表修改完成。

数据的统计:

由工作人员通过对修改后的上月工资表进行计算得到每个人的实发工资以及总金额。

表格的制作:

由工作人员以修改、计算后的在上月工资表为蓝本生成与银行进行数据交换的软件即出盘。

同时可打印工资报表。

1.2系统功能调查

整个系统从总体上分为人事管理、工资管理、系统维护三大部分,每一部分应实现的功能如下:

1.2.1人事管理功能

Ø新员工档案的输入:

Ø员工基本信息维护:

包括修改、删除(删除员工只是将该员工登记为无效,并不要求从表中删除).

Ø员工基本信息查看:

Ø员工基本信息查询:

支持多条件查询,可以选择某一部门、某一职位、某一职称、学历、性别等进行查询,也可以组合查询。

Ø人事状况曲线:

Ø企业员工花名册:

1.2.2工资管理功能

Ø新员工工资新增:

Ø员工工资修改:

Ø出盘:

按所规定的格式生成与银行进行数据交换的软件,一般为文本文件

Ø出盘出错回滚:

Ø工资短信:

将员工本月工资信息通过短信发出,并通知领工资时间。

1.2.3系统维护功能

Ø部门信息维护:

实现灵活的增减部门信息

Ø职务信息维护:

实现灵活的增减职务信息

Ø职称信息维护:

实现灵活的增减职称信息

Ø工资账目维护:

能够灵活的改变员工的薪水账目。

Ø

用户管理:

包括新增用户、删除用户、修改用户密码等。

1.3系统功能模块图

 

 

第二章概要设计

2.1概念设计

概要设计基础是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是与DBMS无关的、面向现实世界的、易如理解的数据模型,其独立于计算机的数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。

概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。

这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解的直观的数据库结构模式。

同时也是一种相对稳定统一的数据模式,一般情况下很少变动。

概念性数据在用户和设计者之间建立了桥梁。

是设计数据库结构的基础。

概念设计中自顶向下的实体分析方法,即常用的实体联系模型(简称E-R模型),对具体数据进行抽象加工,将实体集合抽象成实体类型。

用实体间联系反映现实世界事物间的内在联系。

E-R模型是建立概念性数据模型的有力工具。

通过对企业员工管理内容、工资管理内容和过程的分析,本系统应设计的实体和属性如下:

员工(包括员工工号、员工姓名、学历、性别、政治面貌、出生日期、所属部门、职称、职务、入职时间、身份证号、联系电话、家庭住址、手机号码、Email、有效标志)

部门(部门代号、部门名称)

职务(职务代号、职务名称)

职称(职称代号、职称名称)

薪金结构(月份、员工工号、薪水帐目、数目)

薪水帐目(薪水帐目代号、薪水帐目名称)

 

 

实体和实体之间的关系E-R图如下:

 

2.2数据库设计

作为Borland的桌面数据库,Paradox在Delphi中的应用非常广泛,为此我选用Paradox数据库来进行数据库的逻辑设计。

根据前面定义的实体及实休之间的关系,形成数据库的表格以及各个表之间的关系。

为了减少数据冗余度,将职称实体、部门实体、职务实体、薪水帐目实体放在同一个表里,以一个类型字段加以区分。

对个关系选择主健,按照关系模式的规范化进行规范,消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的’分离’。

2.2.1ygzlb(员工资料表)

序号

域名

域中文名

域类型

备注

1

Ygh

员工工号

Alpha(6)

主键

2

Xm

员工姓名

Alpha(12)

3

Xb

性别

Alpha

(2)

4

Zzmm

政治面貌

Alpha(4)

5

Xl

学历

Alpha(12)

6

Qsrq

出生日期

Alpha(19)

7

Ssbm

所属部门

Alpha(30)

8

Zc

职称

Alpha(30)

9

Zw

职务

Alpha(30)

10

Rzsj

入职时间

Alpha(19)

11

Sfzh

身份证号

Alpha(20)

12

Gdlxdh

联系电话

Alpha(16)

13

Jtzz

家庭住址

Alpha(60)

14

Sjhm

手机号码

Alpha(12)

15

Email

Email

Alpha(20)

16

Yxbz

有效标志

Short

1代表有效员工;9代表无效员工

17

Czy

操作员

Alpha(20)

18

Czrq

操作时间

Alpha(19)

 

说明:

员工基本信息表用于存储员工基本信息,为保证数据的一致和历史资料的完整,表的记录在一般的情况不能被删除,如果发生员工离职,只更改其有效标志为9。

2.2.2Yhklb用户口令表

序号

域名

域中文名

域类型

备注

1

Dlgh

登录工号

Alpha(20)

主键

2

Pswd

口令

Alpha(10)

说明:

为了便于多个用户管理该系统,建立此表,记录用户的登录工号和口令

2.2.3Ygxjjgb员工薪金结构表

序号

域名

域中文名

域类型

备注

1

Yf

月份

Alpha(6)

主键

2

Ygh

员工工号

Alpha(6)

主键

3

Xszmid

薪水帐目ID

Short

主键

4

Sm

数目

Money

5

Czy

操作员

Alpha(6)

6

Czsj

操作时间

Alpha(19)

 

说明:

员工薪金结构表采用竖表结构,便于以后薪水帐目的新增,利于系统保持较长时间的适用。

同时该表采用月帐的形式,便于历史资料的稳定查询,和统计,同时也能做到出盘发生错误时,进行回滚。

在准备当前月份的数据的时候,将同时校验该员工的有效性。

如果是无效员工,则系统将不会显示该员工的资料。

但在历史月份还是将体现该员工的资料。

系统将根据基本参数表中的工资帐目的费用影响关系(1或-1)来形成员工的应发工资和实发工资。

2.2.4Kjcsb控制参数表

序号

域名

域中文名

域类型

备注

1

Yf

序列

Short

主键

2

Csdm

参数代码

Alpha(20)

3

Csmc

参数名称

Alpha(40)

4

Czy

操作员

Alpha(6)

5

Czsj

操作时间

Alpha(19)

说明:

控制参数表用于控制出盘,在每次出盘成功后,会在该表中插入一条记录,以记录该月是否已经出盘;在需要再次出盘的时候,系统将会首先判断该月的出盘标志,如果已经出盘,则对数据库不做操作,仅仅在界面上进行出盘,生成TXT文本文件,如果未出盘则需要对数据库进行操作(将该月的数据重新插入数据库,作为下个月出盘的初始数据)

2.2.5Jbcsb基本参数表

序号

域名

域中文名

域类型

备注

1

ID

ID

Short

主键

2

Lx

参数类型

Short

1:

薪水帐目;2:

部门代码;3:

职务代码;4:

职称代码

3

Mc

参数名称

Alpha(30)

4

Czy

操作员

Alpha(20)

5

Czsj

操作时间

Alpha(19)

6

Rela

费用影响关系

Short

-1代表该项目对实发工资是负的影响;

1代表该项目对实发工资是正的影响;

第三章详细设计

根据需求分析、概要设计的结果,采用Delphi做为开发工具,实现人事工资管理各模块的功能。

3.2登录窗口设计

3.2.1功能说明

控制员工登录,防止非法用户闯入本系统,保证系统的安全,输入口令时屏幕显示为“*”以利保密。

3.2.2屏幕格式设计

登录界面

3.2.3源程序分析

procedureTFrm_dl.Button1Click(Sender:

TObject);

begin

ifedit2.text=''then//判断密码是否输入为空

begin

Application.MessageBox('密码不能为空,请重新输入!

','系统提示',mb_IconInformation+mb_OK);

Edit2.SetFocus;

Exit;

end;

query1.sql.clear;

query1.sql.add('selectpswdfromyhklbwheredlyh='+''''+trim(edit1.text)+'''');

ifquery1.Activethen

query1.close;

query1.open;//根据用户名从用户口令表中取出用户口令

ifedit2.text<>query1.fieldbyname('pswd').asstring

then

begin

iferr_cou=2then//判断是否三次输入错误

begin

application.messagebox('三次登录的用户名或密码错误','系统退出',mb_IconInformation+mb_OK);

frm_main.close;//关闭主窗口,退出系统

end;

Application.MessageBox('密码或工号不正确','请重新输入!

',mb_IconInformation+mb_OK);//若密码输入错误,提示重新输入

Edit2.SetFocus;

err_cou:

=err_cou+1;//输入次数加1

exit;

end;

dluser:

=edit1.text;//给变量赋值,记录登录用户,供其它程序使用

Close;

end;

3.3主窗口设计

3.3.1功能说明

界面采用MDI方式,可同时打开几处子窗口体,在界面上放置了菜单栏和工具栏、状态栏;菜单栏集中了系统操作的入口,各功能模块的执行从此进入;工具框显示了系统菜单中常用项目的快键图标,使用户只需点击相应图标即可进入相应功能模块,当鼠标移动到相应图标时,系统会出现提示信息。

状态栏主要是用于显示日期时钟信息,以及系统操作过程中的信息。

3.3.2屏幕格式设计

系统主界面

3.3.3源程序分析

procedureTFrm_main.N20Click(Sender:

TObject);//菜单关闭事件

begin

close;

end;

procedureTFrm_main.N_shutdownClick(Sender:

TObject);件

begin//菜单退出系统并关机事件

ifmessagedlg('是否退出并关闭计算机?

',mtinformation,[mbyes,mbno],1)=mryesthen

begin

close;

ExitWindowsEx(EWX_FORCEorEWX_SHUTDOWN,0);//调用API函数

end;

end;

procedureTFrm_main.N_closeClick(Sender:

TObject);

begin

close;

end;

procedureTFrm_main.N_bmcxwhClick(Sender:

TObject);//打开部门参数维护窗口

begin

Application.CreateForm(TFrm_bmxg,Frm_bmxg);

iffrm_bmxg.query1.activethenfrm_bmxg.query1.close;//判断Query是否打开

frm_bmxg.query1.open;//打开Query

end;

procedureTFrm_main.N_zwwhClick(Sender:

TObject);//打开职务参数维护窗口

begin

Application.CreateForm(TFrm_zwxg,Frm_zwxg);

iffrm_zwxg.query1.activethenfrm_zwxg.query1.close;

frm_zwxg.query1.open;

end;

procedureTFrm_main.N_ygjbxxsrClick(Sender:

TObject);//打开新增员工信息窗口

begin

Application.CreateForm(Tfrm_ygzbxxsr,frm_ygzbxxsr);

end;

procedureTFrm_main.N_yhwhClick(Sender:

TObject);//打开用户维护窗口

begin

Application.CreateForm(TFrm_yhgl,Frm_yhgl);

iffrm_yhgl.query1.activethenfrm_yhgl.query1.close;

frm_yhgl.query1.open;

end;

procedureTFrm_main.Timer1Timer(Sender:

TObject);

vary,m,d:

word;//在状态栏上显示日期时间星期

begin

decodedate(now,y,m,d);

statusbar1.Panels[1].text:

=concat('【',inttostr(y),'年',inttostr(m),'月',inttostr(d),'日',formatdatetime('hh:

nn:

ssAM/PM',now),f_get_week,'】');//调用函数f_get_week

end;

procedureTFrm_main.N_zcwhClick(Sender:

TObject);//打开职称维护窗口

begin

Application.CreateForm(TFrm_zcxg,Frm_zcxg);

iffrm_zcxg.query1.activethenfrm_zcxg.query1.close;

frm_zcxg.query1.open;

end;

procedureTFrm_main.N_ygzbxxwhClick(Sender:

TObject);//打开员工信息维护窗口

begin

Application.CreateForm(Tfrm_ygzbxxwh,frm_ygzbxxwh);

end;

procedureTFrm_main.N_zbxxckClick(Sender:

TObject);//打开员工信息查看窗口

begin

Application.CreateForm(Tfrm_llygzbxx,frm_llygzbxx);

end;

procedureTFrm_main.N_tjcxClick(Sender:

TObject);//打开员工信息条件查询窗口

begin

Application.CreateForm(Tfrm_ygzlcx,frm_ygzlcx);

end;

procedureTFrm_main.N_gzzmwhClick(Sender:

TObject);//打开薪水帐目维护窗口

begin

Application.CreateForm(TFrm_gzzmwh,Frm_gzzmwh);

ifFrm_gzzmwh.query1.activethenFrm_gzzmwh.query1.close;

Frm_gzzmwh.query1.open;

end;

procedureTFrm_main.N_cpClick(Sender:

TObject);//打开出盘窗口

begin

Application.CreateForm(Tfrm_cp,frm_cp);

end;

procedureTFrm_main.N_gzdxClick(Sender:

TObject);//打开工资短信窗口

begin

frm_gzdx:

=Tfrm_gzdx.create(application);

frm_gzdx.showmodal;

frm_gzdx.free;

end;

procedureTFrm_main.N_jsbClick(Sender:

TObject);//打开写字板

begin

ShellExecute(handle,'open','notepad.exe',nil,nil,SW_ShowNormal);//调用API函数

end;

procedureTFrm_main.N_jsqClick(Sender:

TObject);//打开计算器

begin

ShellExecute(handle,'open','calc.exe',nil,nil,SW_ShowNormal);

end;

procedureTFrm_main.N_ppClick(Sender:

TObject);//实现窗口平铺

begin

TileMode:

=tbVertical;

Tile;

end;

procedureTFrm_main.N_cdClick(Sender:

TObject);//实现窗口层叠

begin

Cascade;

end;

procedureTFrm_main.N_jxhClick(Sender:

TObject);//实现窗口极小化

vari:

integer;

begin

withfrm_maindo

begin

fori:

=MDIchildcount-1downto0do

MDIChildren[i].Windowstate:

=wsMinimized;

end;

end;

procedureTFrm_main.N_aboutClick(Sender:

TObject);//打开关于本系统窗口

begin

Application.CreateForm(Tfrm_about,frm_about);

end;

functionTfrm_main.f_get_week:

string;//获取星期函数

var

days:

array[1..7]ofstring;

begin

days[1]:

='星期日';

days[2]:

='星期一';

days[3]:

='星期二';

days[4]:

='星期三';

days[5]:

='星期四';

days[6]:

='星期五';

days[7]:

='星期六';

result:

=days[DayOfWeek(now)];

end;

procedureTFrm_main.N_ygzlbbClick(Sender:

TObject);//生成企业员工花名册

begin

frm_ygbb:

=Tfrm_ygbb.create(application);

iffrm_ygbb.Query1.activethenfrm_ygbb.Query1.close;

frm_ygbb.Query1.open;

frm_ygbb.QuickRep1.Prepare;

frm_ygbb.QuickRep1.Preview;

frm_ygbb.Free;

end;

procedureTFrm_main.N_rsqxfxClick(Sender:

TObject);

begin//打开人事状况曲线分析窗口

Application.CreateForm(Tfrm_rsqkqxfs,frm_rsqkqxfs);

iffrm_rsqkqxfs.Query1.Activethenfrm_rsqkqxfs.Query1.Close;

frm_rsqkqxfs.Query1.open;

end;

end.

3.4人事管理模块的实现

3.4.1员工基本信息输入

3.3.1.1功能说明

完成新员工人事档案的建立,初始状态下所有输入和选择框框均无效,只有点新增按钮后才可用,同时提交按钮变成有效。

3.3.1.2屏幕格式说明

新员工资料录入界面

3.3.1.3源程序分析

//增加按钮事件,只是将各输入框和提交按钮置为可用。

procedureTfrm_ygzbxxsr.Button3Click(Sender:

TObject);//提交按钮事件

varSql:

String;

qsrq,rzsj,czdate:

String;

begin

qsrq:

=FormatDatetime('YYYY-MM-DD',datetimepicker1.Datetime);//出生日期

rzsj:

=FormatDatetime('YYYY-MM-DD',datetimepicker2.Datetime);//入职时间

czdate:

=FormatDatetime('YYYY-MM-DDHH:

MM:

SS',Now);//操作时间

ifApplication.MessageBox('您确认要提交吗?

','系统提示',mb_IconInformation+mb_OK+mb_OKCancel)=IDCancelthenExit;

begin

if(Edit1.text='')or(Edit2.text='')then

begin

Application.MessageBox('姓名不能为空或员工号不能为空!

','系统提示',mb_IconInformation+mb_OK);

Exit;

end;

iftrim(DBLookupComboBox1.Text)=''thenbeginshowmessage('请选择部门');exit;end;

iftrim(DBLookupComboBox2.Text)=''thenbeginshow

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

当前位置:首页 > 法律文书 > 调解书

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

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