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

news2024/11/25 20:29:49

学习《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.coloradmin.cn/o/114308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Magic Live智慧引擎发力,荣耀吹响智慧服务变革号角

人类的不断进步,核心源自对生活的“不满足”。 就在十几年前,诺基亚、黑莓等手机还被当做走在时代前沿的产品,触屏笔等设计风靡一时。但后来人们发现,触屏笔非常不方便,于是迅速被淘汰,更为先进的触摸屏诞…

自动控制原理笔记-二阶欠阻尼系统动态性能指标计算

目录 欠阻尼二阶系统的两种表示方法: 二阶欠阻尼系统单位阶跃响应: 二阶欠阻尼系统单位指标计算: 例题: 例题: 二阶系统动态性能随极点位置分布的变化规律: 例题: 欠阻尼包括零阻尼 欠阻…

【Linux04-进程概念上】两个结构的理解带你“降维打击”进程概念!

前言 本期分享Linux超重要的知识:进程概念! 博主水平有限,不足之处望请斧正! 要学习进程,我们首先得搭建宏观的计算机和操作系统结构,从更高的视角学习。 先导 计算机体系结构 使用最多提及最多的计算…

【软件测试】从事5年资深测试的经验,少走弯路......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 小张: 工…

SSIS中刷新Power BI数据集

前面介绍过了怎么在Azure云中刷新Power BI数据集,感兴趣的可以阅读 数据工厂中刷新PowerBI数据集 数据工厂刷新PowerBI数据集2 但有很多公司可能并没有完全上云,比如某些公司还在使用SSIS调用ETL工程,那么有没有办法在本地也实现执行完SSI…

双11购物的凑单问题与财务凑数问题

📢作者: 小小明-代码实体 📢博客主页:https://blog.csdn.net/as604049322 📢欢迎点赞 👍 收藏 ⭐留言 📝 欢迎讨论! 📢本文链接:https://xxmdmst.blog.csdn.n…

Chapter3 P-N Junction

3-2 热平衡状态 电流只在一个方向很容易通过,正方向很容易通过电流,负方向很不容易 正电压加在Ptype上才会有电流 就会产生如图b的现象 electron 一定要从high concentration移动到low concentration 所以两个的移动方向如图所示 靠近junction附近&…

C#中window窗体和控件

C#中window窗体和控件 布局与事件–界面的基本问题 布局 就是拉动窗体的时候,按钮也在跟着变动。 事件 //简单的计算器 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; namespa…

Web API事件高级部分

1、注册事件&#xff08;2种方式&#xff09; 给元素添加事件&#xff0c;称为 注册事件 或者 绑定事件 注册事件有两种方式&#xff1a;传统方式 和 监听注册方式 传统注册方式&#xff1a; 利用on开头的事件 onclick<button οnclick"alert(hi~)"></b…

供应化学试剂mPEG-Biotin,甲氧基-聚乙二醇-生物素

一&#xff1a;产品描述 1、名称 英文&#xff1a;mPEG-Biotin 中文&#xff1a;甲氧基-聚乙二醇-生物素 2、CAS编号&#xff1a;N/A 3、所属分类&#xff1a;Biotin PEG Methoxy PEG 4、分子量&#xff1a;可定制1k、2k、3.4k、10k、20k、5k 5、质量控制&#xff1a;95…

shell脚本四剑客--sed的应用

sed的介绍 sed是Linux下一款功能强大的非交互流式文本编辑器&#xff0c;可以对文本文件进行增、删、改、查等操作&#xff0c;支持按行、按字段、按正则匹配文本内容&#xff0c;灵活方便&#xff0c;特别适合于大文件的编辑 sed在处理文本时是逐行读取文件内容&#xff0c;…

TCP协议中的几个核心特性

目录 引言 TCP协议 &#x1f351;TCP 与 UDP 的 区别 &#x1f351;TCP客户端和服务器建立连接的三次握手 &#x1f351;TCP客户端和服务器断开连接的四次挥手 &#x1f351;滑动窗口 &#x1f351;流量控制 &#x1f351;拥塞控制 引言 还记得那个经典的图吗&#x…

TCP最大连接数调优

文章目录1、单机最大TCP连接数1.1、如何标识一个TCP连接1.2、client最大tcp连接数1.3、server最大tcp连接数1.3.1、理论连接数1.3.2、实际连接数1.4、单台服务器支撑的最大TCP并发连接数1.4.1、进程限制句柄限制查看进程句柄数限制临时修改重启后失效的修改&#xff08;不过我在…

IIC 通信协议 (二)

目录 引言 子模块设计 思路 单字节 IIC 发送模块 思路 Verilog 源码 多字节发送控制模块 思路 Verilog 源码 仿真 思路 test bench 仿真结果 参考声明 引言 本篇博文承接前文&#xff0c;继续做 IIC 通信协议 FPGA实现相关的内容。用Verilog 编写一个 IIC 通信控…

【折腾服务器 1】妖板 Intel N5105 + i226 主板安装 ESXi 7.0 教程

Catch Up 今年年初&#xff0c;开始搭建个人服务器&#xff0c;用的是一台 Dell 7010 SFF 主机&#xff0c;在上面部署了一些应用&#xff0c;例如&#xff1a;Calibre &#xff0c;Blogs &#xff0c;Minecraft Server 等。使用的是 frp 做的网络代理&#xff0c;有一台服务器…

cubeIDE开发, UART的CubeMX及HAL库实现原理及底层分析

一、UART通信协议 UART通用异步收发器(Universal Asynchronous Receiver and Transmitter)是STM32 上常用的串行通信外设&#xff0c;可以灵活地与外部设备进行全双工数据交换&#xff0c;需要注意区别&#xff1a; 【1】USART-通用同步异步收发器(Universal Synchronous Async…

<Linux线程互斥与死锁>——《Linux》

目录 1. Linux线程互斥 进程线程间的互斥相关背景概念 互斥量mutex 互斥量的接口 初始化互斥量 销毁互斥量 互斥量加锁和解锁 互斥量实现原理探究 可重入VS线程安全 概念 常见的线程不安全的情况 常见的线程安全的情况 常见不可重入的情况 常见可重入的情况 可重…

K. Lonely Numbers(线性筛 + 差分)

Problem - 1423K - Codeforces 在数字世界中&#xff0c;如果两个不同的数字有很多共同点&#xff0c;而且每个数字都有独特的好处&#xff0c;那么它们就是朋友。 更确切地说&#xff0c;如果gcd(a,b), agcd(a,b), bgcd(a,b)能组成一个三角形的边&#xff0c;那么两个不同的数…

六、应用层(四)电子邮件

目录 4.1 电子邮件系统的组成结构 4.2 简单邮件传输协议&#xff08;SMTP&#xff09; 4.3 电子邮件格式 4.4 多用途网际邮件扩充&#xff08;MIME&#xff09; 4.5 邮局协议&#xff08;POP3&#xff09;和因特网报文存取协议&#xff08;IMAP&#xff09; 4.6 基…

小黑下午第一场面试被鸽,一切遇见随缘,继续第二场的leetcode之旅:654. 最大二叉树

小黑代码 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def constructMaximumBinaryTree(self, nums: Li…