软件课程设计——人事管理系统.doc
南京理工大学紫金学院课程设计说明书作 者:学 号:学院(系):计算机系专 业:计算机科学与技术专业题 目:人事管理系统2015年 4 月目录一、概述 ··········································3二、需求分析······································4三、系统设计······································13四、系统实施······································19五、系统测试·····································26六、收获和体会 ··································27七、参考文献······································27一、概述1、项目背景:在竞争越来越激烈的社会里,企业人事管理就越显示出其不可缺性,成为企业一个非常重要的模块。随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件;计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。不同的企业具有不同的人事管理制度,这就决定了不同的企业需要不同的人事管理系统。2、编写目的:人事管理系统在当今社会中是一个不可或缺的、必备的工具软件。然而,一个好的高质量的软件还是少之又少的。并未根本的实现智能化。亦不利于实现科学的管理、体现领导者的决策作用。因此,在本软件设计中心准备开发一个功能完善的人事管理系统。人事管理系统是一个公司不可缺少的部分,它的内容对于公司的决策者和管理者来说都至关重要, 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。3、软件定义:本软件准备开发一个功能完善的人事管理系统,能够实现人事管理、基础信息设置,备忘管理,工具管理,系统管理等功能模块,并且添加权限设置,能够提高系统安全性,防止非法人员查看人事档案。4、开发环境:(1)设备:至少具有奔腾III800,128兆内存配置的计算机Microsoft鼠标或其他兼容鼠标最少500MB的硬盘空间最少32MB的RAM存储器 (2)支持软件:操作系统:Microsoft Windows 7/8编译程序:Microsoft Visual Studio 2012执行程序:Microsoft Visual Studio 2012数据库:Microsoft SQL 2008二、需求分析1、问题的提出:当企业职工达到上万人,人工管理似乎不可想象,如果我们要找某一份档案,还要去一个个翻资料吗,当人员分配不均匀,我们如何对人员分配进行管理,所以,怎样可以做出一套便于企业管理的人事管理系统?2、系统的业务功能分析: 一个最基本的人事管理系统应该提供基本信息管理、人事管理、备忘记录、管理工具、系统管理等功能。人事管理系统基本信息管理基础数据员工提示信息人事管理人事档案浏览备忘记录日常记事管理工具记事本计算器系统管理重新登录用户设置系统退出民族类别设置职工类别设置政治面貌设置部门类别设置工资类别设置职务类别设置职称类别设置文化程度设置奖惩类别设置记事本类别设置员工生日提示员工合同提示帮助系统帮助 企业人事管理系统功能结构图3、需完成的功能:1) 基础数据的设置功能。对民族、职工、文化、政治、部门、工资、职务、职称、奖惩、记事本等类别设置,并且对这些信息进行添加、修改、删除及查看操作。2) 员工生日,合同提示功能。可以设置提醒时间,到了指定时间,并弹出提醒框。3) 人事档案管理功能。可对职工基本信息、工作简历、家庭关系、培训记录、奖惩记录和个人简历等信息进行添加、修改、删除及查询操作。4) 日常记事功能。对日常记事信息进行添加、修改、删除及查询操作。5) 计算机,记事本功能调用系统的快捷方式。6) 重新登录,系统退出功能7) 用户设置功能。对用户进行添加、修改、删除以及权限设置。(超级用户的不能被修改、删除、权限设置,其他的普通用户如果设置了访问权限,则只能访问那些被允许的权限的功能)8) 系统帮助功能。能直接调用帮助文件。5、数据流图: (1) 人事管理系统的顶层数据流图:人事管理系统其他用户超级用户增删改查基本信息增删改查奖惩记录增删改查家庭关系增删改查培训记录增删改查工作简历超级用户信息增删改查权限根据权限进行访问根据权限进行被访问(2)人事管理系统第0层数据流图:补充调用3、基础数据增删改查民族/文凭/部门等信息4.员工信息提醒增删改查信息提醒对用户进行认证修改用户名,密码,权限用户登录/权限表职工基本信息5、用户设置拥有权限的用户用户名,密码不匹配用户名,密码1、用户登录2.员工管理 (3)人事管理系统第1层数据流图:职工编号员工信息员工信息员工信息员工信息职工基本信息2.3添加员工2.2添加员工2.1添加员工员工基本信息管理:6、数据字典数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据本身将存放在物理数据库中,由数据库管理系统管理。数据字典有助于这些数据的进一步管理和控制,为设计实现和运行阶段控制有关数据提供依据。1)数据流名称:职工基本信息 位置:员工>P1 定义:职工基本信息=职工编号+职工姓名+民族+出生日期+年龄+文化程度+婚姻+性别+政治面貌+身份证号+单位工作时间+工龄+职工类型+职务类型+工资类别+部门类别+职称类别+电话+手机+毕业学校+主修专业+毕业时间+家庭地址+个人照片+省+市+月工资+银行账号+合同起始日期+合同结束日期+合同年限。 数据流量:根据公司的员工个人自身情况来确定。说明:要对每一位新员工进行唯一职工编号。2)数据流名称:工作简历位置:P2>员工定义:工作简历=编号+职工编号+开始时间+结束时间+工作单位+部门+职位数据流量:根据公司的员工个人自身情况来确定。 说明:要对每一份工作简历进行唯一编号。3)数据流名称:家庭情况 位置:P3>员工 定义:家庭关系表=编号+说明+职工编号+家庭成员名称+与本人的关系+出生日期+工作单位+职务+政治面貌+电话。 数据流量:根据员工自身具体情况来确定。 说明:要对每一个家庭关系进行唯一编号。4)数据流名称:培训情况 位置:P4>员工 定义:培训情况=编号+职工编号+培训方式+培训开始时间+培训结束时间+培训专业+培训单位+培训内容+费用+效果。 数据流量:根据员工自身情况来确定。 说明:要对每一个培训情况进行唯一编号。5)数据流名称:奖惩情况 位置:P5>员工 定义:奖惩情况=编号+职工编号+奖惩种类+奖惩时间+批准人+撤销时间+撤销原因。 数据流量:根据员工个人工作情况来确定。 说明:要对每一个奖惩情况进行唯一编号。6)数据流名称:部门类别设置位置:P6>公司定义:工作简历=编号+部门名称。数据流量:根据公司的具体情况来确定。 说明:要对每一个部门进行唯一编号。7)数据流名称:登录表位置:P7>用户定义:登录表=操作员编号+用户名+密码。数据流量:根据公司高层管理员来确定。 说明:要对每一个用户进行唯一操作员编号。三、系统设计1、E/R图用户权限表自动编号操作员编号权限名称权限标识职工基本信息表职工编号职工姓名民族出生日期学历婚姻年龄文化程度家庭关系表编号职工编号电话政治面貌家庭成员名称与本人的关系出生日期工作单位职务工作简历表职务职工姓名开始时间部门工作单位结束时间编号奖惩表编号职工编号奖惩种类撤销原因撤销时间批准人奖惩时间培训记录表编号职工编号培训方式培训开始时间培训结束时间费用效果培训专业培训内容培训单位职工管理关联管理管理关联管理关联管理工作简历奖惩关联奖惩类别编号员工提示信息编号编号编号培训编号管理个人简历编号管理家庭关系编号职工编号用户登录密码操作员编号用户名用户权限编号权限模块编号民族、文化程度、政治面貌、部门、职位、职称、职务、工资类别信息编号nnnnnnn11111111n11nn2、数据表:(1)、数据库的关系模式: 登录表(操作员编号,用户名,密码)用户权限表(自动编号,操作员编号,权限名称,权限标识)职工基本信息表(职工编号,职工姓名,民族,出生日期,年龄,文化程度,婚姻,性别,政治面貌,身份证号,单位工作时间,工龄,职工类型,职务类型,工资类别,部门类别,职称类别,电话,手机,毕业学校,主修专业,毕业时间,家庭地址,个人照片,省,市,月工资,银行账号,合同起始日期,合同结束日期,合同年限)家庭关系表(编号,说明,职工编号,家庭成员名称,与本人的关系,出生日期,工作单位,职务,政治面貌,电话)工作简历表(编号,职工编号,开始时间,结束时间,工作单位,部门,职位)奖惩表(编号,职工编号,奖惩种类,奖惩时间,批准人,撤销时间,撤销原因)培训记录表(编号,职工编号,培训方式,培训开始时间,培训结束时间,培训专业,培训单位,培训内容,费用,效果) (2)、表的物理设计:1. tb_Login(登录表):用于保存用户的登录信息2. 表1.用户权限表字段名称数据类型字段大小是否主键是否为空说明IDint4是否操作员编号Namevarchar20否是用户名Passvarchar20否是密码3. tb_UserPope(用户权限表):用于保存用户使用程序的相关权限表1.用户权限表字段名称数据类型字段大小是否主键是否为空说明AutoIDint4是否自动编号IDvarchar5否是操作员编号PopeNamevarchar50否是权限名称Popeint4否是权限标识4. tb_Stuffbusic(职工基本信息表):用于保存职工的基本信息表2.职工基本信息表字段名称数据类型字段大小是否主键是否为空说明IDvarchar5是否职工编号StuffNamevarchar20否是职工姓名Folkvarchar20否是民族Birthdaydatetime8否是出生日期Ageint4否是年龄Kulturvarchar14否是文化程度Marriagevarchar4否是婚姻Sexvarchar4否是性别Visagevarchar4否是政治面貌IDCardvarchar20否是身份证号Workdatedatetime8否是单位工作时间WorkLengthint4否是工龄Employeevarchar20否是职工类型Businessvarchar10否是职务类型Laboragevarchar10否是工资类别Branchvarchar14否是部门类别Duthcallvarchar14否是职称类别Phonevarchar14否是电话Handsetvarchar11否是手机Schoolvarchar24否是毕业学校Specialityvarchar20否是主修专业GraduateDatedatetime8否是毕业时间Addressvarchar50否是家庭地址Photoimage16否是个人照片BeAwarevarchar30否是省Cityvarchar30否是市M_Payfloat8否是月工资Bankvarchar20否是银行账号Pact_Bdatetime8否是合同起始日期Pact_Edatetime8否是合同结束日期Pact_Yfloat8否是合同年限5. tb_Family(家庭关系表):用于保存家庭关系的相关信息表3.家庭关系表字段名称数据类型字段大小是否主键是否为空说明IDvarchar5是否编号Sut_IDvarchar5否是职工编号LeaguerNamevarchar20否是家庭成员名称Nexusvarchar10否是与本人的关系BirthDatedatetime8否是出生日期WordUnitvarchar24否是工作单位Businessvarchar10否是职务Visagevarchar10否是政治面貌phonevarchar14否是电话6. tb_WordResume(工作简历表):用于保存工作简历的相关信息表4.工作简历表字段名称数据类型字段大小是否主键是否为空说明IDvarchar5是否编号Sut_IDvarchar5否是职工编号BeginDatedatetime8否是开始时间EndDatedatetime8否是结束时间WordUnitvarchar 24否是工作单位Branchvarchar14否是部门Businessvarchar14否是职务7. tb_RANDP(奖惩表):用于保存职工奖惩记录的信息表5.奖惩表字段名称数据类型字段大小是否主键是否为空说明IDvarchar5是否编号Sut_IDvarchar5否是职工编号RPKindvarchar20否是奖惩种类RPDatedatetime8否是奖惩时间SealManvarchar10否是批准人QuashDatedatetime8否是撤销时间QuashWhysvarchar50否是撤销原因8. tb_TrainNote(培训记录表):用于保存职员培训记录的相关信息表6.培训记录表字段名称数据类型字段大小是否主键是否为空说明IDvarchar5是否编号Sut_IDvarchar5否是职工编号TrainFashionvarchar20否是培训方式BeginDatedatetime8否是培训开始时间EndDatedatetime8否是培训结束时间Specialityvarchar20否是培训专业TrainUnitvarchar30否是培训单位KulterMemovarchar50否是培训内容Chargefloat8否是费用Effectvarchar20否是效果3、软件功能设计(1)、系统的流程图登录验证用户及密码Y根据用户权限设置模块是否可用人事管理系统主界面基本信息管理人事管理职工基本信息备忘记录管理工具系统管理重新登录用户设置工作简历家庭关系培训记录奖惩记录个人简历N错误提示信息退出登录退出系统Y退出登录窗体退出重新登录N指向职工信息(2)、功能描述:1)基础数据的设置功能。对民族、职工、文化、政治、部门、工资、职务、职称、奖惩、记事本等类别设置,并且对这些信息进行添加、修改、删除及查看操作。2)员工生日,合同提示功能。可以设置提醒时间,并弹出提醒框。3)人事档案管理功能。可对职工基本信息、工作简历、家庭关系、培训记录、奖惩记录和个人简历等信息进行添加、修改、删除及查询操作。4)日常记事功能。对日常记事信息进行添加、修改、删除及查询操作。5)计算机,记事本功能6)重新登录,系统退出功能7)用户设置功能。对用户进行添加、修改、删除以及权限设置。8)系统帮助功能。能直接调用帮助文件。四、系统实施(1)、系统的界面设计:1. 登录窗体用户输入用户名、密码后进行登录,如果用户名或者密码错误,会给出提示框。2. 系统主窗体系统主窗体包括以下6个主菜单(1)基础信息管理菜单,包含基础数据,员工提示信息基础信息包括对民族、职工、文化、政治、部门、工资、职务、职称、奖惩、记事本等类别设置,并且对这些信息进行添加、修改、删除及查看操作。员工提示信息包括员工生日提示,员工合同提示。可以设置提醒时间,并弹出提醒框。(2)人事管理菜单,包含人事档案管理人事档案管理,通过该窗体,可对职工基本信息、工作简历、家庭关系、培训记录、奖惩记录和个人简历等信息进行添加、修改、删除及查询操作。(3)备忘记录菜单,包含日常记事日常记事,对日常记事信息进行添加、修改、删除及查询操作。(4)工具管理菜单,包含计算机,记事本可直接调用计算器和记事本的快捷方式。(5)系统管理菜单,包含重新登录,用户设置,系统退出可对本系统进行重新登录、用户设置、及系统退系统操作。用户设置,对用户进行添加、修改、删除以及权限设置。(6)帮助菜单,包含系统帮助直接调用帮助文件。3. 基础信息设置这里只给出了民族类别设置,其余类别设置方法相似。管理员用户可以对信息进行添加、修改、删除等操作。4. 员工信息提醒功能和员工生日提示一样,通过该窗体,可设置提醒时间,选择是否需要弹出提醒框。5. 人事档案管理通过该窗体,可对职工基本信息、工作简历、家庭关系、培训记录、奖惩记录和个人简历等信息进行添加、修改、删除、保存及查询操作。6. 日常记事通过该窗体,对日常记事信息进行添加、修改、删除及查询操作。7. 计算器、记事本直接调用系统的计算器和记事本的快捷方式。进行一些简单的操作。8. 用户设置通过该窗体,对用户进行添加、修改、删除以及权限设置。(编号为0001的超级用户,通过窗体无法对其进行修改、删除、权限设置操作)9. 用户添加系统会自动分配编号,所以只需要填写用户名和密码10. 用户权限设置对用户的权限进行设置,当该用户登录时,只有授予权限的功能才可以被访问,其余功能不可以被访问,这样就保证了系统的安全性。(2)、主要代码描述:1)数据库连接public static SqlConnection My_con; /定义一个SqlConnection类型的公共变量My_con,用于判断数据库是否连接成功 public static string M_str_sqlcon = "Data Source=THINKPAD-PC;Database=db_PWMS;User id=sa;PWD=" /public static string M_str_sqlcon = "Data Source=THINKPAD-PC;Initial Catalog=db_PWMS;Integrated Security=True" /建立数据库连接 public static SqlConnection getcon() My_con = new SqlConnection(M_str_sqlcon); /用SqlConnection对象与指定的数据库相连接 My_con.Open(); /打开数据库连接 return My_con; /返回SqlConnection对象的信息 2)登录模块(单击“登录”按钮进行登录)private void butLogin_Click(object sender, EventArgs e) if (textName.Text != "" & textPass.Text != "") SqlDataReader temDR = MyClass.getcom("select * from tb_Login where Name='" + textName.Text.Trim() + "' and Pass='" + textPass.Text.Trim() + "'"); bool ifcom = temDR.Read(); if (ifcom) DataClass.MyMeans.Login_Name = textName.Text.Trim(); DataClass.MyMeans.Login_ID = temDR.GetString(0); DataClass.MyMeans.My_con.Close(); DataClass.MyMeans.My_con.Dispose(); DataClass.MyMeans.Login_n = (int)(this.Tag); this.Close(); else MessageBox.Show("用户名或密码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); textName.Text = "" textPass.Text = "" MyClass.con_close(); else MessageBox.Show("请将登录信息添写完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 3)主窗体(对主窗体进行初始化)private void Preen_Main() statusStrip1.Items2.Text = DataClass.MyMeans.Login_Name; /在状态栏显示当前登录的用户名 treeView1.Nodes.Clear(); MyMenu.GetMenu(treeView1, menuStrip1); /调用公共类MyModule下的GetMenu()方法,将menuStrip1控件的子菜单添加到treeView1控件中 MyMenu.MainMenuF(menuStrip1); /将菜单栏中的各子菜单项设为不可用状态 MyMenu.MainPope(menuStrip1, DataClass.MyMeans.Login_Name); /根据权限设置相应子菜单的可用状态 4)自动编号 public String GetAutocoding(string TableName, string ID) /查找指定表中ID号为最大的记录 SqlDataReader MyDR = MyDataClass.getcom("select max(" + ID + ") NID from " + TableName); int Num = 0; if (MyDR.HasRows) /当查找到记录时 MyDR.Read(); /读取当前记录 if (MyDR0.ToString() = "") return "0001" Num = Convert.ToInt32(MyDR0.ToString(); /将当前找到的最大编号转换成整数 +Num; /最大编号加1 string s = string.Format("0:0000", Num); /将整数值转换成指定格式的字符串 return s; /返回自动生成的编号 else return "0001" /当数据表没有记录时,返回0001 5)添加操作 private void Sut_Add_Click(object sender, EventArgs e) MyMC.Clear_Control(tabControl1.TabPages0.Controls); /清空职工基本信息的相应文本框 S_0.Text = MyMC.GetAutocoding("tb_Stuffbusic", "ID"); /自动添加编号 hold_n = 1; /用于记录添加操作的标识 MyMC.Ena_Button(Sut_Add, Sut_Amend, Sut_Cancel, Sut_Save, 0, 0, 1, 1); groupBox5.Text = "当前正在添加信息" Img_Clear.Enabled = true; /使图片选择按钮为可用状态 Img_Save.Enabled = true; 五、系统测试(1)、给出单元/系统测试的测试用例:超级用户登录1)登录模块 A、用户名:abc 密码:1234 测试结果:用户名或密码错误 B、用户名:abc 密码: 测试结果:将登录信息填写完整 C、用户名:abc 密码:123456 测试结果:登陆成功2)用户设置模块A、对编号为0001的用户进行修改、删除、权限设置 测试结果:不能修改/删除超级用户 B、对其他用户进行修改、删除、权限设置 测试结果:修改/删除/权限设置成功 添加用户A、用户名:abc 密码:(任意) 测试结果:当前用户名已存在,请重新输入 B、用户名:11 密码:123测试结果:添加成功3)人事档案管理模块A、编辑查询条件 测试结果:只能以选择方式查询B、通过下拉列表形式设置查询条件 测试结果:成功其他普通用户登录 登录模块与超级用户没有区别 选择没有被授予权限的功能时,会弹出“当前用户无权限调用”的窗体六、收获和体会在这次课程设计中我们不仅完成了老师交给的各项任务,还增加了很多知识,通过设计让我了解了现在企业的管理模型,与信息系统的初步功能,让我认识到了信息时代的方便与快捷, 和学好管理信息的重要性。虽然这个设计也许不够完善,但是人生有数,学无止境,学习生活是无穷尽的,只有掌握更多的、更新的知识才能使自己始终立于不败之地。如果只为现在所取得的成绩而沉浸于喜悦、骄傲之中的话,那么,我想我不会前进,只能停留在原来的地方踏步,甚至还会倒退。所以从这次课程设计所暴露出的问题入手,不断完善自己的欠缺和不足。为了达到自己的目标,我们会继续努力学习,向更高更远的方向前进。我们相信我们会走得更远,走得更好!七、参考文献 1 明日科技王小科、赵会东等.实战突击C#.电子工业出版社,2011. 2 赵松涛.SQL Sever 2000应用及实例集锦M. 北京:人民邮电出版社,2002. 3 周绪、管丽娜、白海波.SQL Server 2000 入门与提高M.清华大学出版社,2001. 4 杜军平、黄杰.SQL Server 2000数据库开发M.机械工业出版社,2001. 5 吴绍兴、刘岩、明廷堂等.亮剑C#项目开发.电子工业出版社,2012.