C#课程设计+员工管理系统.doc
《C#课程设计+员工管理系统.doc》由会员分享,可在线阅读,更多相关《C#课程设计+员工管理系统.doc(18页珍藏版)》请在冰豆网上搜索。
河南理工大学《C#程序设计》实训报告
河南理工大学
计算机科学与技术学院
课程设计
2011—2012学年第二学期
课程名称C#Windows程序设计课设
设计题目人事管理系统
学生姓名
学号
专业班级软件工程.net
指导教师
2012年6月7日
目录
封面...........................1
目录...........................2
1.设计任务书.......................4
1.1题目与要求.....................4
1.2本系统涉及的知识点.................4
2.功能设计........................4
3.数据库设计.......................5
3.1数据库概念设计(E-R图)...............5
3.2数据库逻辑结构设计.................6
3.3数据库物理设计...................6
4.系统实现........................6
4.1界面设计及实现...................6
4.2部门信息管理设计及实现...............11
4.2.1添加部门信息...................11
4.2.2浏览部门信息...................13
4.2.3修改部门信息...................14
4.2.4删除部门信息...................16
5.总结..........................18
致谢...........................18
参考文献.........................18
1设计任务书
1.1题目与要求
本人计划(与XXX、XXX合作)编写一个员工管理系统,主要用来管理员工基本信息。
此系统使得管理人员对公司的工种进行分类,进而确定各个工种所对应的部门信息,在已有部门信息的基础上能够对所有的员工信息进行分类管理。
本系统的特点是可以对员工的个人信息、所属部门进行全方位的管理,可以实现工种的浏览、添加、删除和修改等操作,同时界面设计简单、操作方便。
其具体要求如下:
1、工种种类设置。
・添加工种:
添加公司的各种工种信息,包括工种编号、工种名称、工种描述。
・浏览工种:
能够按照列表方式快速浏览公司的各种工种。
・修改工种:
能够对工种的信息进行修改。
・删除工种:
能够对于全部工种的信息进行删除。
2、员工个人信息管理。
・添加员工:
添加一个员工的基本信息,包括姓名、性别、专业、籍贯、职称、所在工种、所在部门、学历、员工编号。
・浏览员工:
能够对一个职员的信息进行删除按姓名进行删除。
・修改员工:
对职员的信息进行修改。
・删除员工:
能够对于全部职员的信息进行删除。
3、员工所属部门信息管理。
・添加部门:
添加一个部门的基本信息,包括部门编号、部门名称、部门描述。
・浏览部门:
能够按照列表方式快速浏览公司所有的部门。
・修改部门:
能够对部门的信息进行修改。
・删除部门:
能够对于全部部门的信息进行删除。
根据分工,本人的主要工作是完成第三模块,即员工所属部门信息管理,包括添加部门、浏览部门、修改部门、删除部门四个部分。
同时,需要对主界面进行设计及实现。
1.2本系统涉及的知识点
WinForm常用控件、属性、方法,ADO.NET技术。
2功能设计
本系统选用C#作为开发语言,采用结合后台SQLServer数据库的C/S结构开发模式,优化了程序代码及结构,提高了程序的运行效率。
系统在.NET环境中进行开发,该环境提供了大量可选择的数据对象,可以很方便地建立与数据库之间的连接,并在此连接的基础上利用各种常用数据库组件对数据库进行操作。
在本系统中,采用SqlConnection对象与后台数据库创建连接,所有针对数据库的操作都需要利用这个对象作为数据库连接对象。
在系统功能分析的基础上,考虑MicrosoftVisualStudio2008程序编制的特点,得到如图2-1所示的系统功能模块图。
员工信息管理系统
部门信息管理
工种种类管理
员工信息管理
浏览部门
添加部门
修改部门
删除部门
浏览员工
添加员工
修改员工
删除员工
删除工种
修改工种
添加工种
浏览工种
图2-1功能模块图
3数据库设计
3.1数据库概念设计(E—R图)
根据本系统的需要,可以归纳出一下实体:
工种信息实体、部门信息实体、员工信息实体。
为了更好地理解各个实体及其含义,用E-R图,即实体关系图对实体进行描述。
根据分工,本人任务模块部门信息实体如图3-1所示:
部门描述
部门编号
部门名称
部门
图3-1部门信息实体图
3.2数据库逻辑结构设计
系统数据库名称为db_Person,数据库中包括:
1.工种信息表(tb_JobInfo);2.部门信息表(tb_DepartInfo);3.员工信息表(tb_PersonInfo)。
下面列出部门信息表的数据结构,如表3-2所示。
表3-2部门信息表(tb_DepartInfo)的数据结构
DID
int
部门编号(主键,自动编号)
Dname
varchar
部门名称
Dleader
varchar
部门领导
Remark
varchar
描述
图3-2部门信息表的数据结构
3.3数据库物理设计
数据库物理设计,即设置表与表之间的关系。
员工信息表中的“部门”来源于部门信息表中现有的部门,员工信息表中的“工种”来源于公众信息表中现有的工种。
如果数据库中的信息不能满足正常的依赖关系就会破坏数据的完整性和一致性。
根据本系统需要,由E-R图模型进行分析,从而确定出哪些表之间的字段需要进行关联分析如下:
1、员工信息表中的工种字段来源于工种信息表;
2、员工信息表中的部门字段来源于部门信息表;
根据本系统特点,需要依次设置员工信息表与工种信息表、员工信息表与部门信息表之间的关系。
4系统实现
4.1界面设计及实现
该界面提供的主菜单,用户可以分别实现对工种信息、员工信息、部门信息等功能的管理。
图4-1为员工管理系统的应用程序主界面。
图4-1员工管理系统主界面
此界面用于对各模块进行查询及编辑。
程序代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingPersonMIS.JobManage;//导入用于工种设置的命名空间
usingPersonMIS.DepartManage;//导入用于部门设置的命名空间
usingPersonMIS.IncomeManage;//导入用于员工收入的命名空间
usingPersonMIS.PersonManage;//导入用于员工个人信息的命名空间
namespacePersonMIS
{
publicpartialclassfrmMain:
Form
{
publicfrmMain()
{
InitializeComponent();
}
AddJobfrmAddJob;
privatevoidmeneAddJob_Click(objectsender,EventArgse)
{
if(frmAddJob==null||frmAddJob.IsDisposed)
{
frmAddJob=newAddJob();
for(intx=0;x{
FormtempChild=(Form)this.MdiChildren[x];
tempChild.Close();
}
frmAddJob.MdiParent=this;
frmAddJob.Show();
}
}
AddDepartfrmAddDepart;
privatevoidmenuAddDepart_Click(objectsender,EventArgse)
{
if(frmAddDepart==null||frmAddDepart.IsDisposed)
{
frmAddDepart=newAddDepart();
for(intx=0;x{
FormtempChild=(Form)this.MdiChildren[x];
tempChild.Close();
}
frmAddDepart.MdiParent=this;
frmAddDepart.Show();
}
}
AddDepartfrmAddPerson;
privatevoidmenuAddPerson_Click(objectsender,EventArgse)
{
if(frmAddPerson==null||frmAddPerson.IsDisposed)
{
frmAddPerson=newAddPerson();
for(intx=0;x{
FormtempChild=(Form)this.MdiChildren[x];
tempChild.Close();
}
frmAddPerson.MdiParent=this;
frmAddPerson.Show();
}
}
AddDepartfrmAddIncome;
privatevoidmenuAddIncome_Click(objectsender,EventArgse)
{
if(frmAddIncome==null||frmAddIncome.IsDisposed)
{
frmAddIncome=newAddIncome();
for(intx=0;x{
FormtempChild=(Form)this.MdiChildren[x];
tempChild.Close();
}
frmAddIncome.MdiParent=this;
frmAddIncome.Show();
}
}
BrowseJobfrmBrowseJob;
privatevoidmenuBrowseJob_Click(objectsender,EventArgse)
{
if(frmBrowseJob==null||frmBrowseJob.IsDisposed)
{
frmBrowseJob=newBrowseJob();
for(intx=0;x{
FormtempChild=(Form)this.MdiChildren[x];
tempChild.Close();
}
frmBrowseJob.MdiParent=this;
frmBrowseJob.Show();
}
}
BrowseDepartfrmBrowseDepart;
privatevoidmenuBrowseDepart_Click(objectsender,EventArgse)
{
if(frmBrowseDepart==null||frmBrowseDepart.IsDisposed)
{
frmBrowseDepart=newBrowseDepart();
for(intx=0;x{
FormtempChild=(Form)this.MdiChildren[x];
tempChild.Close();
}
frmBrowseDepart.MdiParent=this;
frmBrowseDepart.Show();
}
}
BrowsePersonfrmBrowsePerson;
privatevoidmenuBrowsePerson_Click(objectsender,EventArgse)
{
if(frmBrowsePerson==null||frmBrowsePerson.IsDisposed)
{
frmBrowsePerson=newBrowsePerson();
for(intx=0;x{
FormtempChild=(Form)this.MdiChildren[x];
tempChild.Close();
}
frmBrowsePerson.MdiParent=this;
frmBrowsePerson.Show();
}
}
BrowseIncomefrmBrowseIncome;
privatevoidmenuBrowseIncome_Click(objectsender,EventArgse)
{
if(frmBrowseIncome==null||frmBrowseIncome.IsDisposed)
{
frmBrowseIncome=newBrowseIncome();
for(intx=0;x{
FormtempChild=(Form)this.MdiChildren[x];
tempChild.Close();
}
frmBrowseIncome.MdiParent=this;
frmBrowseIncome.Show();
}
}
privatevoidmenuExitSystem_Click(objectsender,EventArgse)
{
Application.Exit();
}
AboutfrmAbout;
privatevoidmenuAbout_Click(objectsender,EventArgse)
{
if(frmAbout==null||frmAbout.IsDisposed)
{
frmAbout=newAbout();
for(intx=0;x{
FormtempChild=(Form)this.MdiChildren[x];
tempChild.Close();
}
frmAbout.MdiParent=this;
frmAbout.Show();
}
}
privatevoidtimer1_Tick(objectsender,EventArgse)
{
this.ttsTime.Text="时间为:
"+Datatime.Now.ToString();
}
}
}
4.2部门信息管理设计及实现
4.2.1添加部门信息
添加部门信息界面用于部门基本信息的录入,包括部门名称、部门领导和备注。
该界面如图4-2所示。
图4-2添加部门信息界面
添加部门信息的代码如下:
添加部门信息窗口程序AddDepart.cs
publicstaticstringstrConn="DataSource=(local);InitialCatalog=db_Person;IntegratedSecurity=ture";
privatevoidbtnOk_Click(objectsender,EventArgse)
{
if(this.txtDepName.Text.Trim()==""||this.txtDepLeader.Text.Trim()=="")
MessageBox.Show("请输入完整信息!
","提示",0);
else
{
using(SqlConnectioncon=newSqlConnection(strConn))
{
if(con.State==ConnectionState.Closed)
{
con.Open();
};
try
{
SqlCommandcmd=newSqlCommand(select*fromtb_DepartInfowhereDName='"+txtDepName.Text.Trim()+"'",con);
if(cmd.ExecuteScalar()!
=null)
MessageBox.Show