前不久本科的毕业论文,马马虎虎的答辩了一番。数据库和程序是自己写的,我文采不好,文字的部分参考了其他论文,粘贴在此供分享,转载请注明出处,谢谢。
摘 要
以C#技术、SQLServer技术为基础的公司人事管理系统将帮助企业科学、正规且高效运转。使用“三层架构”的整体概念设计的企业人事管理系统,包含人事管理、工资管理、综合管理、系统管理、用户管理等功能。
关键字:C#,SQL Server 2005,软件工程
Abstract
A C-sharp and SQL Server technology-based personnel management system will help the company run their business in a scientific, formal and effective way.
The 3-tier architecture build system including personnel management, payroll management, general management, system management, user management and many other functions.
Key words: C# , SQL Server 2005 , software engineering
目 录
第一章 绪 言… 1
第一节 项目开发的背景… 1
第二节 项目开发的目的… 1
第三节 项目提出的意义… 1
第四节 可行性分析… 1
一、经济上可行性… 1
二、技术上可行性… 2
三、时机上可行性… 2
四、管理上的可行性… 2
第二章 开发工具… 3
第一节 C#语言简介… 3
第二节 .NET简介… 3
第三节 SQLSever 数据库简介… 4
第三章 数据流程… 5
第一节 数据流程图… 5
第二节 数据字典… 5
一、职员信息表… 5
二、职员薪资表… 6
三、职务变更表… 6
四、职务名称表… 6
五、职员职位表… 7
六、考勤记录表… 7
七、部门名称表… 7
八、考评记录表… 7
第四章 项目实施… 9
第一节 系统总体结构设计… 9
一、人事工作流程… 9
二、系统设计思想… 9
三、功能分析… 9
第二节 代码设计… 9
一、编码简述… 9
二、详细编码… 10
结束语… 12
谢词… 13
参考文献… 14
第一章 绪 言
第一节 项目开发的背景
近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了信息时代,也有人称为数字化时代,在这数字化的时代里,企业的人事需要高效率的管理。信息技术持续迅猛的发展,给传统的人事管理提出了更高的要求。怎样让繁杂的人事管理变得轻松?如何应对人事变动频繁的挑战?
以C#技术、SQLServer技术为基础的公司人事管理系统就是一个很好的解决方案,它们将帮助这个企业科学、正规且高效运转。
第二节 项目开发的目的
使用“三层架构”的整体概念来设计企业的人事管理系统。在这个概念下,开发出来的系统功能包括人事管理、工资管理、综合管理、系统管理、用户管理。
在此开发的公司人事管理系统,旨在适应信息时代,提高企业人事管理的效率,帮助企业科学正规运转,减轻管理者的压力和负担,企业的管理人员无需经过特殊的训练就可以使用这个系统,降低管理成本,最大程度的满足企业人事管理需求。
升级、改造现有的纸质档案,重建员工档案,以符合数字化的标准。
第三节 项目提出的意义
企业在人事管理中实现数字化、信息化、智能化,和传统的纸质档案管理相比,是一个全新的革命,能够给企业带来先进的现代化的人事管理思想方法和模式,提高管理的有效性。
数字化的人事管理系统有助于促进人事管理正规化,而且还大大降低了管理的成本。
第四节 可行性分析
一、经济上可行性
现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发。为企业的工作和经济效率带来了一个质的飞跃,主要表现有以下几个方面:
第一、本系统的运行可以代替人工进行许多繁杂的劳动;
第二、本系统的运行可以节省许多资源,例如纸质和笔墨;
第三、本系统的运行可以大大的提高企业的工作效率;
所以,本系统在经济上是可行的。
二、技术上可行性
技术上的可行性分析,主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该管理系统采用了当前流行的Client/Server模式进行开发,引入了数据访问层、业务逻辑层、表现层——三层的架构体系,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。数据库服务器选用微软的SQLServer数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。
三、时机上可行性
目前,企业内部大多都实现了数字化办公,办公室的有线无线网路覆盖了情况也相当理想,企业良好的硬件设施为公司人事管理系统提供了坚实的基础。
四、管理上的可行性
企业的管理人员是否支持数字化管理,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等问题,需要企业高层人员作出进一步肯定。规章制度和管理方法是该系统的制度保障。
综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。
第二章 开发工具
第一节 C#语言简介
C#(读作“c-sharp”)作为微软的下一代面向对象的语言产品,能够让开发人员在.NET平台上快速地建立大量的应用程序。按照微软给出的定义,C#是一种源自于C和C++的,简单的、现代的、面向对象的和类型安全的程序设计语言。C#为程序员提供了开发飞速发展的Web应用程序所需的强大而灵活的功能。C#和Java的核心与C++比较有着相同的优势和局限,比起C++,C#将更容易被人们理解和接受,未来大量.NET平台的应用将由 C#开发。
例如,我们可以使用C#开发任何古典风格的Windows程序。不仅如此,不管是控制序、图形程序、NT服务程序,还是普通组件,乃至Web页面,都可以用C#开发出来。可以相信,不论是企业的决策者、管理者或员工,都将欣赏C#为企业所带来的一切。
C#语言需要.NET框架的支持。我们所说的很多C#语言的新特点和功能,如类型安全、垃圾收集、版本制、兼容性以及跨语言的异常处理和继承,这些都是依赖于底层的.NET框架来完成的。
第二节 .NET简介
.NET是Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。
.NET的最终目的就是让用户在任何地方、任何时间,以及利用任何设备都能访问他们所需要的信息、文件和程序。而用户不需要知道这些东西存在什么地方,甚至连如何获得等具体细节都不知道。他们只需发出请求,然后只管接收就是了,而所有后台的复杂性是完全屏蔽起来的。所以对于企业的IT人员来说,他们也不需要管理复杂的平台以及各种分布应用之间的工作是如何协调的。
.NET包括4个重要特点,一是软件变服务,二是基于XML的共同语言,三是融合多种设备和平台,四是新一代的人机界面。这四个特点基本上覆盖了.NET的技术特征。
融合多种设备和平台,随着Internet逐渐成为一个信息和数据的中心,各种设备和服务已经或正在接入和融入Internet,成为其中的一部分。.NET谋求与各种Internet接入设备和平台的一体化,主要关注在无线设备和家庭网络设备及相关软件、平台方面。
新一代的人机界面,新一代人机界面主要体现在“智能与互动”两个方面。.NET包括通过自然语音、视觉、手写等多种模式的输入和表现方法;基于XML的可编辑复合信息架构——通用画布;个性化的信息代理服务;使机器能够更好地进行自动处理的智能标记等技术。
第三节 SQLSever 数据库简介
Microsoft SQL Server 2000 是Microsoft 公司继SQL Server 6.5和SQL Server 7.0以后,在新千年推出的又一改进的新版关系型数据管理系统。它能使用户快捷地管理数据库和开发应用程序。SQL Server 2000 使用了了先进的数据库结构,与Windows DNA紧密集成,具有强大的Web 功能,它可以利用高端硬件平台以及最新网络和 存储技术,可以为最大的Web站点和企业应用提供优良的扩展性和可靠性,使用户能够在Internet 领域快速建立服务系统,为占领市场赢得宝贵的时间。同时,SQL Server 2000 还为用户提供了重要的安全性功能的增强,为用户的数据安全提供了可靠的保证。另外,SQL Server 2000还为用户提供了重要的安全性功能的增强,为用户的数据安全提供了可靠的保证。另外,SQL Server 2000 在数据库服务器自动管理技术方面处于数据库领域的领先地位,它可以使用户免去繁琐复杂的工作量,从而有精力处理更重要的问题,使用系统在商业战略上占得先机。
关系型数据库系统是当前最流行的数据库软件系统。它是一个非常复杂的软件系统,对数据库的所有操作,包括定义、查询、更新和各种运行控制最终都通过它来实现的,因它是使数据库系统具有资料共享、并发访问、资料独立等特性的根本保证。
就关系数据库管理系统(RDBMS)而言,它是位于用与操作系统之间的一层数据管理软件,它主要负责强化数据库的结构,简单来说包括如下功能:
1.维持数据库中资料的关系。
2.保障资料的正确存储,即保障定义资料之间的关系的种种规则不会被违背。
3.在系统出错时,把资料恢复到一个能保证一致性的状态。
第三章 数据流程
第一节 数据流程图
图1.数据流程图
第二节 数据字典
一、职员信息表
| 列名 | 说明 | 数据类型 | 可为空值 |
| user_id | 用户ID | int | 否(主键) |
| user_pass | 密码 | nchar(10) | 否 |
| user_privilege | 权限级别 | nchar(10) | 否 |
| user_name | 用户名 | nchar(10) | 否 |
| user_sex | 性别 | nchar(10) | 是 |
| birthplace | 出生地 | nchar(10) | 是 |
| birthday | 生日 | datetime | 是 |
| education | 教育程度 | nchar(10) | 是 |
| professional | 专业 | nchar(10) | 是 |
| idcard | 身份证 | nchar(19) | 是 |
| marriage | 婚姻状况 | nchar(10) | 是 |
| political | 政治面貌 | nchar(10) | 是 |
| tel | 电话 | nchar(13) | 是 |
| zip_code | 邮编 | nchar(6) | 是 |
| nchar(20) | 是 | ||
| home_place | 住址 | nchar(30) | 是 |
| date_in | 入公司时间 | datetime | 是 |
| date_salary | 起薪时间 | datetime | 是 |
| depart_id | 所在部门 | int | 是 |
| work_title | 职称 | nchar(10) | 是 |
| old_identity | 原身份 | nchar(10) | 是 |
| old_job | 原职务 | nchar(10) | 是 |
| old_company | 原工作单位 | nchar(10) | 是 |
| date_beginwork | 入职时间 | datetime | 是 |
| exp | 工作经验 | varchar(50) | 是 |
| job_id | 职位 | int | 否 |
| etc | 备注 | varchar(50) | 是 |
| avatar | 头像 | image | 是 |
图2.职员信息表
二、职员薪资表
| 列名 | 说明 | 数据类型 | 可为空值 |
| salary_id | 薪水流水ID | int | 否(主键) |
| user_id | 用户 | int | 否(外键) |
| base_sa | 底薪 | smallmoney | 是 |
| overtime | 加班费 | smallmoney | 是 |
| subsidy | 补贴 | smallmoney | 是 |
| housing | 房贴 | smallmoney | 是 |
| bonus | 奖金 | smallmoney | 是 |
| other | 其他 | smallmoney | 是 |
| pension | 养老金 | smallmoney | 是 |
| health | 医疗保险 | smallmoney | 是 |
| actual | 实际发放工资 | smallmoney | 否 |
| post_datetime | 计发时间 | datetime | 是 |
图3.职员薪资表
三、职务变更表
| 列名 | 说明 | 数据类型 | 可为空值 |
| move_id | 调令ID | int | 否(主键) |
| user_id | 用户 | int | 否(外键) |
| depart_old | 旧部门 | int | 否(外键) |
| depart_new | 新部门 | int | 否(外键) |
| job_old | 旧职务 | int | 否(外键) |
| job_new | 新职务 | int | 否(外键) |
| time_checkout | 调出时间 | datetime | 是 |
| time_checkin | 调入时间 | datetime | 是 |
| etc | 备注 | varchar(50) | 是 |
图4.职务变更表
四、职务名称表
| 列名 | 说明 | 数据类型 | 可为空值 |
| job_id | 职务ID | int | 否(主键) |
| job_name | 职务名称 | nchar(10) | 否 |
图5.职务名称表
五、职员职位表
| 列名 | 说明 | 数据类型 | 可为空值 |
| job_id | 职务ID | int | 否(主键)(外键) |
| user_id | 用户 | int | 否(主键)(外键) |
图6.职员职位表
六、考勤记录表
| 列名 | 说明 | 数据类型 | 可为空值 |
| att_id | 考勤记录ID | int | 否(主键) |
| user_id | 用户 | int | 否(外键) |
| depart_id | 部门 | int | 是(外键) |
| days_all | 全勤天数 | int | 是 |
| days_should | 应出勤天数 | int | 是 |
| years | 年度 | int | 是 |
| months | 月份 | int | 是 |
| datetime_begin | 起始日期 | datetime | 是 |
| datetime_end | 截止日期 | datetime | 是 |
图7.考勤记录表
七、部门名称表
| 列名 | 说明 | 数据类型 | 可为空值 |
| depart_id | 部门ID | int | 否(主键) |
| depart_name | 部门名称 | nchar(10) | 否 |
图8.部门名称表
八、考评记录表
| 列名 | 说明 | 数据类型 | 可为空值 |
| evaluate_id | 考评流水ID | int | 否(主键) |
| user_id | 用户 | int | 否(外键) |
| depart_id | 部门 | int | 是(外键) |
| evaluate_date | 评价日期 | datetime | 是 |
| results | 业绩 | varchar(20) | 是 |
| results_desc | 业绩说明 | varchar(50) | 是 |
| attitude | 工作态度 | varchar(20) | 是 |
| attitude_desc | 工作态度详情 | varchar(50) | 是 |
| lev | 工作水平 | varchar(20) | 是 |
| lev_desc | 工作水平详情 | varchar(50) | 是 |
| etc | 备注 | varchar(50) | 是 |
图9.考评记录表
第四章 项目实施
第一节 系统总体结构设计
一、人事工作流程
企业人事管理部门在此系统中完成各项管理事务。
由档案管理人员录入初始信息,包括职务名称、部门名称、员工的资料,生产基本工资信息。
当职位变动时,由人事主管修改相关信息,并重新生成基本工资信息。
每日考勤情、病休假等情况记录在案,月末录入考勤与评价情况,自动计算出该月工资。
二、系统设计思想
利用企业现有的计算机平台资源,减少消耗人力、物力、财力,提高企业人事管理水平。最大程度满足企业的人事管理需求,轻松应对人事变动频繁的挑战,更方便快捷的查找、更新、删除人事资料。
三、功能分析
(一)人事管理:人事档案管理、考勤管理、考核管理、调动管理、职称评定、奖惩管理和人事统计。
(二)工资管理:职务设定、基本工资设定、工资表生成、工资表查询、工资奖惩、月末工资处理。
(三)综合管理:部门管理、假期与出差管理、员工聘用合同与通知。
(四)系统管理:数据备份与还原、系统初始化。
(五)用户管理:用户管理、权限设置。
第二节 代码设计
一、编码简述
(一)为了代码的规范要求代码风格统一,这具有重要的意义:
1.增加开发过程代码的强壮性、可读性、易维护性。
2.减少有经验和无经验开发人员编程所需的脑力工作。
3.为软件的良好维护性打下好的基础。
4.通过人为以及自动的方式对最终软件应用质量标准。
5.使新的开发人员快速适应项目氛围。
6.支持项目资源的复用:允许开发人员从一个项目区域(或子项目团队)移动到另一个,而不需要重新适应新的子项目团队的氛围。
(二)代码优化的意义:
1.仅仅对符合功能说明书的要求、能正确运行的代码进行优化是有意义的。
2.代码优化能减少冗余代码的数量,用更少的代码来实现同样的功能。
3.提高代码的内聚程度,减少耦合程度。
4.对代码的抽象能提高代码的重用度,对今后其他项目的进度有非常重要的意义。
二、详细编码
(一)数据访问层(DAL)
数据访问层(Data Access Layer)简称为DAL,它是程序中和数据库进行交互的层。该层直接操作数据库,针对数据的增添、删除、修改、更新、查找等。对每一个数据表,都有一个类来完成一些方法,以满足对数据表的各种操作。
一个名为DbHelperSQL的类用于维护与SQLServer数据库的连接、可调用存储过程,所有的T-SQL查询语句均由这个类来执行,最后将数据集返回给业务逻辑层。
(二)业务逻辑层(BLL)
业务逻辑层(Business Logic Layer)是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计。
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。
数据的有效性验证的工作在这个层完成,以更好的保证程序运行的健壮性。如不允许将必填的选项留空、数据格式是否正确以及数据类型验证、用户权限的合法性判断等。通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。
(三)表示层(UI)
表示层位于最外层(User Interface),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。合理的摆放各类控件,整齐的排列,给用户以良好的视觉体验。
(四)Model层
Model层里面的一个类对应数据库里面的一张表,类里面的每一个属性对应表里面的一个字段,每个属性都有自己的GET和SET方法,项目中的数据存取都要依靠GET和SET方法来实现。它不属于纵向的某一个层,而是所有层都要用到的业务实体层。
结束语
在本系统的开发过程中,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对企业人事管理的整个流程不够熟悉,在做需求分析的时候可能没有完全满足用户的需求。
尽管本管理系统存在着很多漏洞,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点,仍不失为企业人事管理的一个强大工具。通过开发这个系统,我掌握了软件开发的流程,巩固了基本知识,让我更熟练的使用Visual Studio 2005开发软件。在这次毕业设计论文中的收获并不仅仅是掌握开发工具的应用,更是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
经过长时间的构思与设计,在指导老师的精心指导和安排下,本系统已经设计完毕。其使用功能基本符合公司在实际工作的需要,具有一定的实用性。但是由于时间比较仓促,加上本人软件设计经验的不足。因此,在分析问题、解决问题时显得不够严密、完善,还需要在以后的工作中不断地改进和完善。
在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。
谢词(略)
参考文献
[1] 程志云,张帆,崔翔,《数据库原理与SQL Server 2005》,机械工业出版社,2009
[2] 崔淼,陈明非,《Visual C# 2005程序设计教程》,机械工业出版社,2008
附图:





能把你的作品借我用用吗,谢谢您了!
源代码已经找不到哦~主要就是用三层架构,可以请指导老师给一些代码。
能教下你的论文怎么写的都需要什么吗
需要的任何东西都可以问论文指导老师……