C#人事管理系统.docx
《C#人事管理系统.docx》由会员分享,可在线阅读,更多相关《C#人事管理系统.docx(10页珍藏版)》请在冰豆网上搜索。
C#人事管理系统
C#课程设计指导书
适用专业:
计算机应用技术专业
2018年11月一、设计目的
1/11
1、掌握面向对象的程序设计思路。
2、掌握SQLServer相关知识。
3、掌握C#中的一些常用组件的运用。
4、掌握C#中SQL组件或对象的运用。
5、掌握常用类的应用并能自定义类。
6、综合运用所学C#知识编写小型数据库应用程序。
7、了解如何实现三层架构。
二、设计要求
运用C#编写人事管理系统<员工基本信息处理)。
●单机版具体实现基本要求:
<1)功能设计
1、登录功能:
完成操作员的登录。
实现管理员通过帐号和密码登录服务器,并能根据需要进行密码的修改。
2、输入功能:
输入员工的基本信息。
输入员工的姓名、性别、出生日期、婚否、部门等信息<最少11个字段,根据
字段的实际定义不同的类型,如出生日期-日期型,工资-数值型),其中用户
的工号自动生成<或者按一定规律组合而成,类似学号,格式为部门编号+员
工编号,如:
1000210-人事部002-员工在该部门的编号)。
b5E2RGbCAP
3、查询功能:
输入需查询的姓名或工号等相关条件,显示相关的员工信息。
4、浏览功能:
显示所有员工相关信息,及根据部门显示相关部门的员工信
息,并能显示员工通讯录<电话、邮件)。
p1EanqFDPw
5、修改功能:
对已录入的记录进行修改操作。
6、删除功能:
根据操作员的选择删除指定的单条记录。
7、期初设置:
部门信息、职务信息、职称信息等的录入、修改。
2/11
<2)数据表设计
员工信息表/操作员登录信息表/部门表;以及一些相关的初始表设计<如学历
表、职务表、职称表等,这些表主要让用户操作方便)。
DXDiTa9E3d
<3)界面设计
采用MDI窗体/树形结构+选项卡实现。
●网络版设计要求:
<1)功能设计
登录时按不同用户登录操作,可分为3类操作员、部门经理、员工。
其中登录时的用户名采用员工工号,并将操作权限与用户名联系,初始密码可
指定。
实现基本的录入/修改/删除/查询等外,还应有以下的设计内容:
1、考勤信息操作:
见部门经理操作权限。
2、每月工资收入<基本工资+绩效工资+考勤金,如迟到一次扣20,旷工一次
扣50等,金额用户可以修改,基本工资人事部门录入修改,绩效工资、考勤金部门经理录入修改)<可选做)RTCrpUDGiT
分权限操作:
1.操作员可以实现所有的功能。
2.部门经理只能查看本部门的所有员工基本信息,但员工的个人信息<婚
否、家庭住址等)不能查看。
并实现本部门的员工进行考核奖惩或日常考勤。
5PCzVD7HxA
3.员工可以查看自己的所有信息。
但只能对个人的通讯方式、家庭地址等进
行修改,但基本信息表<即该员工在单位的信息,如部门、职务等)不能
修改。
jLBHrnAILg
3/11
4.考勤汇总:
部门经理和操作员可以查看员工的考勤汇总信息<汇总信息分
按月及按年汇总显示)。
<2)数据表设计
在单机版表设计的基础上应增加如:
奖惩表,考勤表,工资表等。
表设计时必须充分考虑信息的访问权限、表间的关联及程序的扩展性。
<3)界面设计
采用MDI窗体设计,运用子窗体完成功能。
三、课程设计时间及课时分配
课程设计时间为二周<2学分),在学习完《C#程序设计》课程后进行。
课程
设计讲授学时含在实训中进行。
序号
任
务
课时
1
任务布置及讲解、学生查阅相关资料
5
2
总体规划
2
3
表设计/功能数据视图设计
8
4
MDI窗体设计及调试
3
5
输入模块设计及调试
7
6
显示模块设计及调试
5
7
修改模块设计及调试
3
8
删除模块设计及调试
2
4/11
9
查询模块设计及调试
6
10
汇总分析设计及调试
5
11
整体程序调试
4
12
编写课程设计说明书
4
13
答辩
6
总
计
60
四、课程设计说明书的编写规范
课程设计说明书的字数在1500字左右,画出总体设计模块图。
说明书具体应有的内容为:
设计目的、设计要求、总体设计模块图、模块具体
功能说明、表设计、分模块设计中的关键代码说明<可在源代码中写出)、源
代码<刻光盘上交)、课程设计总结、参考资料。
xHAQX74J0X
五、课程设计的考核与成绩评定
成绩评定实行优秀、良好、中等、及格和不及格五个等级。
要获得良好和优秀者必须实现高级要求。
考勤占20%,旷课或请假时间超过20学时<每天按6学时记,迟到或早退1次记1学时),该课即以不及格处理。
LDAYtRyKfE
设计工作态度分20%,根据学生设计时的态度给定。
5/11
<在设计期间玩游戏与做和实训无关的事,每次总分扣10分,三次按不及格
处理)
程序功能和资料书写占20%。
答辩分占40%,根据学生具体完成的情况和答辩中的情况给定。
从表设计、程序模块划分、程序功能实现、容错、界面美观、使用方便评定程
序情况。
采用三层架构实现所有功能,整体起评分提高10分。
Zzz6ZB2Ltk
从对程序的解释、对错误的修改、根据要求对程序修改评定答辩分。
对于抄袭他人的程序者该课程设计将按不及格处理。
六、参考资料
VisualStudio.NETMSDN
下载一些人事管理系统,查看他们的功能和设计界面。
七、设计基本知识
以下是一些基本的介绍,具体实现代码可以看上课的PPT。
1、数据库操作对象
数据库操作对象:
Sqlconnection/SqlCommand/SqlDataAdapter/DataTable
Sqlconnection用于创建与sqlserver的连接,连接字符串包含服务器、数据库
名、登录数据库名、登录密码。
创建对象后连接数据库可以用:
对象
名.open(>。
关闭用对象名.close(>。
dvzfvkwMI1
SqlCommand为向远程数据库发送sql命令,命令字符串包含sql命令串和连接
对象。
执行命令采用ExecuteNonQuery方法。
rqyn14ZNXI
6/11
SqlDataAdapter为数据适配器,作用是将用户发出的select命令所得到符合条
件的记录填充到指定的数据表。
填充时采用的是fill方法。
EmxvxOtOco
DataTable为数据表,可在用户计算机的内存中产生一张虚拟的数据表,用户
可以在其中存放查询命令得到的结果。
SixE2yXPq5
2、设计中的常见问题及解决思路
连接数据库后,根据要求发出sql命令,如果是select命令则填充到数据表
中,然后根据数据表进行相关操作。
6ewMyirQFL
A、select命令填充后,需要得到指定记录的字段内容可采用以下方法:
数据表.Rows[i]["字段名"]。
i代表数据表中的第i+1条记录<0为第一条记录),"字段名"为该条记录的指
定字段。
通过类型的转换得到该内容。
kavU42VRUs
B、insert/update/delete命令,需要通过组合字符串得到sql命令串<组合时经常
会出现错误,在执行后可以将组合的结果放入到查询分析器中运行)。
y6v3ALoS89
C、部分容错问题
信息的及时更新:
当数据库的信息被更新后(insert/update/delete命令执行后>,
当前的信息未被更新是因为当前的显示信息是从虚拟表的,两者不同步,需要做的是当更新时,有两种方法:
1、先删除当前的表信
息,然后重新填充记录。
2、若采用绑定的方式可以直接修改虚拟表的数据<
建议)。
3、若未采用绑定的方式,直接采用循环将虚拟表中的数据写入到
DataGridView控件中的,可以采用修改指定单元格内容的方法,如:
dgvXXXX.Rows[i].Cells[“字段名”].Value=XXXXX。
删除记录的话,用
dgvXXXX.Rows[i].Delete(>。
M2ub6vSTnP
一般在操作时,我们能采用组合框下拉的尽量采用下拉选择,用户输入的越少
错误就越少。
7/11
在用户操作界面中,除主键码外不能出现外键码,外键码必须用真实信息代
替。
部分输入不合要求时,一般是给出提示,然后用foucs方法定位到该组件中。
对于非编程出现的错误,需要采用try-catch语句去捕捉,注意在提示出错后需
要添加return退出当前的事件。
0YujCfmUCw
D、显示问题
采用DataGridView组件显示时,组件中字段名应显示为中文。
ID<编号)是数据库各表中用于建立关联所设置的,除必须外一般情况下不显
示。
E、合理性问题
用户在录入数据时,部分数据必须输入,否则插入的记录就不合理,如只插入
了一个ID号,而无其它任何信息。
F、退出正在执行的方法
return可以退出正在执行的方法。
3、命令的执行顺序
在定义完数据库操作对象和填充的数据表对象后,执行命令的顺序如下:
eUts8ZQVRd
获取窗体的数据,组合命令字符
根据数据库字段的类型,添加相应的参数<无参数该步骤可以省略)
执行sql命令
若是select命令,将结果填充到数据表中<若数据表中已有数据需先清空数据表)
将数据表对象中的数据显示到窗体中<绑定显示或相应数据表单元内容送控件中)
8/11
因数据库操作时大量的代码会重复<数据库操作),而其中不同的就是命令字符串和sql命令的条件参数不同,所以我们可以将sql命令单独写成一个数据库访问类,而命令字符串和sql命令的条件参数可以做为命令的参数传递
过去,执行完后可以将数据表对象做为参数或返回值送给调用的方法<详细可
以参阅NorthWind程序)。
sQsAEJkW5T
在一个窗体中可以根据需要创建多个表对象,分别填充不同的内容,这些表对象可以显示在窗体中,也可以不显示。
不显示并不表示该表不存在!
当同时有多个命令需要执行时,必须每个命令单独执行。
GMsIasNXkA
当我们需要从数据库的多个表中获取相应的信息时,可以先设计视图<联合查询),视图只是虚拟表,只能用于显示查看不能进行插入、修改等操作!
若要执行插入、修改等命令只能对数据库中的表进行操作,并且不同的表也必
须单独进行操作!
TIrRGchYzg
4、关于常用的显示控件属性
用于显示数据库表的所有记录的控件—DataGridView
该控件用于显示数据库表对象中的全部记录,执行的方式为:
DataGridView对象.DataSource=数据库表对象。
该方法称为绑定,当数据库表对象中的记录发生变化时,显示的内容也会
随之变化,不需要去手动修改。
但有时为防止在用户直接在DataGridView对
象中修改数据<因为是绑定的,修改数据后数据表对象的数据也会随之变化,
当改的类型与数据表冲突时程序会崩溃),一般设置其ReadOnly属性为
True。
7EqZcWLZNX
还有一些如去除添加行、禁止点标题栏后的排序、将数据表中的部分字段
不显示等可以参见上课的案例lzq7IGf02E
9/11
用于便捷操作的组合框,一般情况下组合框会绑定到数据库表中的某些字
段中,特别是当我们操作的表中有外键,就需要绑定。
绑定方式如下:
zvpgeqJ1hk
先将主键表中的主键码字段和内容字段用select命令填充到数据表对象中,然后执行以下步骤:
组合框对象.DataSource=数据库表对象。
组合框对象.DisplayMember="内容字段"。
组合框对象.ValueMember="主键码字段"。
当用户在组合框中选择好内容后,其主键码就在组合框的SelectedValue属性中。
注意绑定后需要设置组合框为只能下拉选择!
NrpoJac3v1
其它的控件使用一般是将数据表中指定记录的字段内容显示出来,详细参见上课的案例1nowfTG4KI
各种便捷技巧可以参考上课案例。
5、关于网络查询时关键字的选择问题
很多同学当发现问题时,往往不知道该怎么查询错误及解决,而使用网络
搜索引擎可以很便捷的查找到解决的方法,但问题是当出现问题后,很多同学
都是直接复制代码去查询,这样很难找到相关内容。
fjnFLDa5Zo
例假如错误的语句为:
dgvSaleProdcuts.Rows[intCount].Cells["UnitPrice"].Value
=txbUnitPrice.Text。
tfnNhnE6e5
如何选择关键字?
这是一个DataGridView对象的指定单元格赋值问题,其中有很多都是自
定义的,除对象外,变量、字段等自己定义的不能出现,所以关键字为:
HbmVN777sL
10/11
RowsCellsValueText外加对象的类:
DataGridViewTextBox
最后加上错误提示,最后按内容的先后顺序,中间加空格,结果如下:
DataGridViewRowsCellsValueTextBoxText类型错误
11/11