C#项目实战——【实例】企业人事管理系统(一):1、系统分析;2、系统设计;3、系统运行环境;

news/2024/12/2 21:26:36/

学习《C#从入门到精通》,边学边练记录实现过程。

1、系统分析

1.1、需求分析

基于其他企业人事管理软件的不足,要求能够制作一个可以方便、快捷地对职工信息进行添加、修改、删除的操作,并且可以在数据库中存储相应职工的照片。为了能够更好地存储职工信息,可以将职工信息添加到Word文档或者Excel表格,这样,不但便于保存,还可以通过Word文档或者Excel进行打印。

1.2、可行性分析

根据《GB8567-88计算机软件产品开发文件编制指南》中可行性分析的要求,指定可行性研究报告如下。

1.2.1、引言

(1)编写目的
为了给软件开发企业的决策层提供是否进行项目实施的参考依据,现以文件的形式分析项目的风险、项目需要的投资与效益。
(2)背景
xxx科技有限公司是一家以计算机软件技术为核心的高科技型企业,为了更好地对公司内部的人员进行管理,现需要委托其他公司开发一个人事管理相关的软件,项目名称为“企业人事管理系统”。

1.2.2、可行性研究的前提

(1)要求
☑ 可以真正地实现对企业人事的管理。
☑ 系统的功能要符合本企业的实际情况。
☑ 系统的功能操作要方便、易懂,不要有多余或复杂的操作。
☑ 可以方便地对人事信息进行输出打印。
(2)目标
方便对企业内部的人事档案及岗位调动等进行管理。
(3)交付时间
项目需要在两个月内交付用户使用,系统分析人员需要3天内到位,用户需要5天时间确认需求分析文档,去除其中可能出现的问题。例如用户可能临时有事,占用7天的时间确认需求分析。那么程序开发人员需要在50天的时间内进行系统设计、程序编码、系统测试、程序调试和系统打包部署工作,其间,还包括了员工每周的休息时间。

1.2.3、投资及效益分析

(1)支出
根据预算,公司计划投入8个人,为此需要支付9万元的工资及各种福利待遇。项目的安装、调试及用户培训、员工出差等费用支出需要2.5万元。在项目后期维护阶段预计需要投入3万元的资金,累计项目投入需要14.5万元资金。
(2)收益
客户提供项目开发资金30万元,对于项目后期进行的改动,采取协商的原则,根据改动规模额外提供资金。因此,从投资与收益的效益比上,公司大致可以获得15.5万元的利润。
项目完成后,会给公司提供资源储备,包括技术、经验的积累。

1.2.4、结论

根据上面的分析,在技术上不会存在问题,因此项目延期的可能性很小。在效益上,公司投入8个人、两个月的时间获利15.5万元,比较可观。另外公司还可以储备项目开发的经验和资源。因此,认为该项目可以开发。

1.3、编写项目计划书

根据《GB8567-88计算机软件产品开发文件编制指南》中的项目开发计划要求,结合单位实际情况,设计项目计划书如下。

1.3.1、引言

(1)编写目的
为了能使项目按照合理的顺序开展,并保证按时、高质量的完成,现拟定项目计划书,将项目开发生命周期中的任务范围、团队组织结构、团队成员的工作任务、团队内外沟通协助方式、开发进度、检查项目工作等内容描述出来,作为项目相关人员之间的共识、约定以及项目生命周期内的所有项目活动的行动基础。
(2)背景
企业人事管理系统是本公司与xxx 科技有限公司签订的待开发项目,项目性质为人事管理类型,可以方便企业管理者对企业内部的人事变更、调动等管理,项目周期为两个月。项目背景规划如下表所示。
项目背景规划

1.3.2、概述

(1)项目目标
项目应符合SMART原则,把项目要完成的工作用清晰的语言描述出来。企业人事管理系统的主要目标是为企业的管理者提供一套能够方便地对企业内部人员的变更及调动等进行管理的软件。
(2)应交付成果
项目开发完成后,交付的内容如下:
☑ 以光盘的形式提供企业人事管理系统的源程序、系统数据库文件、系统打包文件和系统使用说明书。
☑ 系统发布后,进行无偿维护和服务6个月,超过6个月进行系统有偿维护与服务。
(3)项目开发环境
开发本项目所用的操作系统可以是Window10,开发工具为Visual Studio 2019,数据库采用SQL Server 2008 。
(4)项目验收方式与依据
项目验收分为内部验收和外部验收两种方式。项目开发完成后,首先进行内部验收,由测试人员根据用户需求和项目目标进行验收。项目在通过内部验收后,然后交给客户进行外部验收,验收的主要依据为需求规格说明书。

1.3.3、项目团队组织

(1)组织结构
本公司针对该项目组建了一个由公司副经理、项目经理、系统分析员、软件工程师、界面设计师和测试人员构成的开发团队,团队结构如下图:
项目开发团队结构
(2)人员分工
为了明确项目团队中每个人的任务分工,现制定人员分工表:
人员分工表

2、系统设计

2.1、系统目标

根据企业对人事管理的要求,制定企业人事管理系统目标如下。
1、操作简单方便、界面简洁美观。
2、在查看员工信息时,可以对当前员工的家庭情况、培训情况进行添加、修改、删除操作。
3、方便快捷地全方位数据查询。
4、按照指定的条件对员工进行统计。
5、可以将员工信息以表格的形式导出到Word文档中以便进行打印
6、灵活的数据备份、还原及清空功能。
7、由于该系统的使用对象较多,所以要有较好的权限管理。
8、能够在当前运行的系统中重新进行登录
9、系统运行稳定、安全可靠。

2.2、系统功能结构

企业人事管理系统的功能结构如下图:
企业人事系统功能结构

2.3、系统业务流程图

企业人事管理系统的业务流程图:
企业人事管理系统的业务流程
注意: 在制作项目前,必须根据其实现目标制作业务流程图。

2.4、系统编码规范

开发程序时,往往会有多人参与,为了使程序的结构与代码风格标准化,以便于使每个参与开发的人员尽可能直观地查看和理解其他人编写的代码,需要在编码之前制定一套统一的编码规范。

2.4.1、数据库命名规范

(1)数据库
数据库命名以字母db开头(小写),后面加数据库相关英文单词或缩写。下面将举例进行说明:
数据库命名
(2)数据表
数据表以字母tb开头(小写),后面加数据表相关英文单词或缩写。例如;
数据表命名
(3)字段
字段一律采用英文单词或词组,例如:
字段命名
(4)视图
视图命名以字母view开头(小写),后面加表示该视图作用的相关英文单词或缩写。例如:
视图命名
(5)存储过程
存储过程命名以字母proc开头(小写),后面加表示该存储过程作用的相关英文单词或缩写。例如:
存储过程命名
(6)触发器
触发器命名以字母trig 开头(小写),后面加表示该触发器作用的相关英文单词或缩写。例如:
触发器命名
说明: 在数据库中使用命名规范,有助于其他用户更好地理解数据表及表中各字段的内容。

2.4.2、程序代码命名规范

(1)变量及对象名称定义规则
根据不同的程序需要,编写代码时都需要定义一定的变量或常量。下面介绍一种常见的变量及常量命名规则,例如:
变量及常量命名规则
(2)数据类型简写规则
程序中定义常量、变量或方法等内容时,常常需要指定类型。下面介绍一种常见的数据类型简写规则,例如:
数据类型简写规则
(3)控件命名规则
所有的对象名称都为自然名称的拼音简写,出现冲突可采用不同的简写规则。另外,在编码过程中涉及不到编码的控件,其名称可以取默认名称。例如:
控件命名规则
上面介绍的是一套C#中常用的编码规范,下面对本系统中比较特殊的编码规范进行说明。
(1)窗体命名规范
在创建一个窗体时,首先对窗体的ID进行命名,本系统中统一命名为“F_+窗体名称”,其中窗体名称最好是英文形式的窗体说明,便于开发者通过窗体ID就能知道该窗体的作用。例如登录窗体,ID名为F_Login。
在窗体中调用其他窗体时,必须对调用窗体进行引用,其引用的变量名为“Frm+窗体名称”,如登录窗体的引用名为FrmLogin。
(2)添加、修改操作中各控件的命名规范
在对数据进行编辑时,如果数据表中的字段过多,很难将窗体中对应的控件值组合成SQL语句。为了便于对数据库中的信息进行添加、修改操作,各字段所对应的控件命名为“表明(或部分表名)_数字”,这里的数字是根据数据表中相应字段的顺序进行编号的。例如将一个控件与 tb_WorkResume(工作简历表)数据表中的第3个字段建立关系,应将其Name属性设置为Word_2。
(3)查询操作中各控件的命名规范
当使用多字段对数据表中的数据进行查询时,将窗体中相应的控件值组合成查询语句是非常麻烦的,为了能够快速组合查询条件,可将设置查询条件的控件命名为“表名_相应字段名”。当查询条件需要逻辑运算符时,将记录逻辑运算符的控件命名为“相应字段名 _+Sign”。这样即可通过字段名来组合查询条件。例如查询年龄大于30的职工,年龄的字段名为Age,条件控件名为Find_Age,逻辑控件名为Age_Sign,通过条件控件和逻辑控件即可组合成查询条件。

说明:在项目中使用良好的命名规则,有助于开发者快速了解对编写后的变量、方法、类、窗体以及各控件的用处。

3、系统运行环境

本系统的程序运行环境具体如下。
(1)、系统开发平台:Microsoft Visual Studio 2010。
(2)、系统开发语言:C#。
(3)、数据库管理软件:Microsoft SQL Server 2008。
(4)、运行平台:Windows XP(SP2)/Windows 2000(SP4)/Windows Server 2003 (SP1)。
(5)、运行环境:Microsoft .NET Framework SDK v4.0 。
(6)、分辨率:最佳效果1024X768像素。

4、数据库与数据表设计

5、创建项目

6、公共类设计

7、登录模块设计

8、系统主窗体设计

9、人事档案管理模块设计

10、人事资料查询模块设计

11、通讯模块设计

12、用户设置模块设计

13、数据库维护模块设计


http://www.ppmy.cn/news/6711.html

相关文章

【C++初阶】list的模拟实现

文章目录list的介绍list的模拟实现成员变量Member functionsconstructordestructoroperatorIterators正向迭代器反向迭代器beginendrbeginrendModifierspush_frontpop_frontpush_backpop_backinserteraseclear完整版代码list.hreverse_iterator.htest.cpplist的介绍 list是STL…

力扣:两数之和

原题链接:https://leetcode.cn/problems/two-sum/description/ 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&…

numpy数组,numpy索引,numpy中nan和常用方法

一:【numpy数组】 1.1为什么要学习numpy 1.快速 2.方便 3.科学计算的基础库 1.2什么是numpy 一个python中做科学计算的基础库,重在数值计算,也是大部分python科学计算库的基础库,多用于在大型,多维数组上执行数组运…

如何定制化Spring Boot Starter,这次我终于学会了

文章目录什么是Spring Boot Starter实现步骤启动器自动配置包总结自定义Starter的实现逻辑Spring Boot Starter官网描述:Spring Boot Starter官方介绍 什么是Spring Boot Starter Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包&…

shell脚本四剑客之awk详解

文章目录awk的介绍awk能够干什么awk的格式工作原理:记录和域内建变量的用法1. FS2. OFS3.RS4. ORS5. NF6. NRBEGIN 和END语句块常见案例1. 使用NR行号提取ip2. 打印UID小于10的账号名称和UID信息3. 数学运算4. AWK打印硬盘设备名称,默认以空格为分割&…

买不到的数目(蓝桥杯C/C++A组真题详解)

题目详细: 题目思路: 对于这个题有一个定理 如果 a,b 均是正整数且互质,那么由 axby,x≥0,y≥0 不能凑出的最大数是 : a*b-a-b 具体的证明过程这里就不赘述 感兴趣的同学可以自行查找 这里就提供一种思…

Python常见问题整理

Python常见问题整理   日常使用python时,经常遇到的各种解决不了、头疼的问题,都可以记录到这里,大家群策群力,积极补充~  序号问题标题问题现象原因解决方法参考文章添加人报错截图0ModuleNotFoundError代码运行报错ModuleNot…

IMX6ULL学习笔记(15)——GPIO输出接口使用【官方SDK方式】

一、GPIO简介 i.MX6ULL 芯片的 GPIO 被分成 5 组,并且每组 GPIO 的数量不尽相同,例如 GPIO1 拥有 32 个引脚, GPIO2 拥有 22 个引脚, 其他 GPIO 分组的数量以及每个 GPIO 的功能请参考 《i.MX 6UltraLite Applications Processor Reference M…