




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南理工大学 C#程序设计实训报告河南理工大学计算机科学与技术学院课程设计2011 2012 学年 第二学期课程名称 C#Windows 程序设计课设设计题目 人事管理系统 学生姓名学号专业班级 软件工程 .net 指导教师2012 年 6 月 7 日目录封面 1目录 21 设计任务书 41.1 题目与要求 41.2 本系统涉及的知识点 42 功能设计 43 数据库设计 53.1 数据库概念设计 (E-R 图 ) 53.2 数据库逻辑结构设计 63.3 数据库物理设计 64 系统实现 64.1 界面设计及实现 64.2 部门信息管理设计及实现 114.2.1 添加部门信息 114.2.2 浏览
2、部门信息 134.2.3 修改部门信息 144.2.4 删除部门信息 165 总结 18致谢 18参考文献 18231 设计任务书1.1 题目与要求本人计划(与 XXX 、XXX 合作)编写一个员工管理系统,主要用来管理员工基本 信息。此系统使得管理人员对公司的工种进行分类,进而确定各个工种所对应的部门信 息,在已有部门信息的基础上能够对所有的员工信息进行分类管理。本系统的特点是可 以对员工的个人信息、所属部门进行全方位的管理,可以实现工种的浏览、添加、删除 和修改等操作,同时界面设计简单、操作方便。其具体要求如下:1、工种种类设置。? 添加工种:添加公司的各种工种信息,包括工种编号、工种名称
3、、工种描述。? 浏览工种:能够按照列表方式快速浏览公司的各种工种。? 修改工种:能够对工种的信息进行修改。? 删除工种:能够对于全部工种的信息进行删除。2、员工个人信息管理。? 添加员工:添加一个员工的基本信息,包括姓名、性别、专业、籍贯、职称、 所在工种、所在部门、学历、员工编号。? 浏览员工:能够对一个职员的信息进行删除按姓名进行删除。? 修改员工:对职员的信息进行修改。? 删除员工:能够对于全部职员的信息进行删除。3、员工所属部门信息管理。? 添加部门:添加一个部门的基本信息,包括部门编号、部门名称、部门描述。? 浏览部门:能够按照列表方式快速浏览公司所有的部门。? 修改部门:能够对部门
4、的信息进行修改。? 删除部门:能够对于全部部门的信息进行删除。 根据分工,本人的主要工作是完成第三模块,即员工所属部门信息管理,包括添加 部门、浏览部门、修改部门、 删除部门四个部分。 同时,需要对主界面进行设计及实现。1.2 本系统涉及的知识点WinForm常用控件、属性、方法, ADO.NET技术。2 功能设计本系统选用 C#作为开发语言,采用结合后台 SQLServer数据库的 C/S 结构开发模式, 优化了程序代码及结构, 提高了程序的运行效率。 系统在 .NET环境中进行开发, 该环境 提供了大量可选择的数据对象,可以很方便地建立与数据库之间的连接,并在此连接的 基础上利用各种常用数
5、据库组件对数据库进行操作。在本系统中,采用 SqlConnection 对象与后台数据库创建连接,所有针对数据库的 操作都需要利用这个对象作为数据库连接对象。在系统功能分析的基础上,考虑 Microsoft Visual Studio 2008程序编制的特点,得到如图 2-1 所示的系统功能模块图。员工信息管理系统图 2-1 功能模块图3 数据库设计3.1 数据库概念设计( ER 图) 根据本系统的需要,可以归纳出一下实体:工种信息实体、部门信息实体、员工信 息实体。为了更好地理解各个实体及其含义, 用 E-R 图,即实体关系图对实体进行描述 根据分工,本人任务模块部门信息实体如图 3-1 所
6、示:图 3-1 部门信息实体图3.2 数据库逻辑结构设计系统数据库名称为 db_Person, 数据库中包括: 1. 工种信息表( tb_JobInfo ); 2. 部门信息表( tb_DepartInfo );3. 员工信息表( tb_PersonInfo )。下面列出部门信息表的数据结构,如表 3-2 所示。表 3-2部门信息表( tb_DepartInfo )的数据结构DIDint部门编号(主键,自动编号 )Dnamevarchar部门名称Dleadervarchar部门领导Remarkvarchar描述图 3-2 部门信息表的数据结构3.3 数据库物理设计数据库物理设计,即设置表与表之
7、间的关系。员工信息表中的“部门”来源于部门 信息表中现有的部门,员工信息表中的“工种”来源于公众信息表中现有的工种。如果 数据库中的信息不能满足正常的依赖关系就会破坏数据的完整性和一致性。根据本系统需要,关联分析如下:由 E-R 图模型进行分析, 从而确定出哪些表之间的字段需要进行1、员工信息表中的工种字段来源于工种信息表;2、员工信息表中的部门字段来源于部门信息表; 根据本系统特点,需要依次设置员工信息表与工种信息表、员工信息表与部门信息 表之间的关系。4 系统实现4.1 界面设计及实现该界面提供的主菜单,用户可以分别实现对工种信息、员工信息、部门信息等功能的管理。图 4-1 为员工管理系统
8、的应用程序主界面。图 4-1 员工管理系统主界面此界面用于对各模块进行查询及编辑。程序代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;导入用于工种设置的命名空间导入用于部门设置的命名空间导入用于员工收入的命名空间 导入用于员工个人信息的命名空间using System.Windows.Forms;using PersonMIS.JobManage; / using Pers
9、onMIS.DepartManage; / using PersonMIS.IncomeManage; / using PersonMIS.PersonManage; /namespace PersonMISpublic partial class frmMain : Formpublic frmMain()InitializeComponent();AddJob frmAddJob;private void meneAddJob_Click(object sender, EventArgs e) if (frmAddJob = null | frmAddJob.IsDisposed)frmA
10、ddJob = new AddJob();for (int x = 0; x < this.MdiChildren.Length; x+) Form tempChild = (Form)this.MdiChildrenx;tempChild.Close(); frmAddJob.MdiParent = this; frmAddJob.Show();AddDepart frmAddDepart;private void menuAddDepart_Click(object sender, EventArgs e) if (frmAddDepart = null | frmAddDepart
11、.IsDisposed) frmAddDepart = new AddDepart();for (int x = 0; x < this.MdiChildren.Length; x+)Form tempChild = (Form)this.MdiChildrenx; tempChild.Close(); frmAddDepart.MdiParent = this; frmAddDepart.Show();AddDepart frmAddPerson;private void menuAddPerson_Click(object sender, EventArgs e) if (frmAd
12、dPerson = null | frmAddPerson.IsDisposed) frmAddPerson = new AddPerson();for (int x = 0; x < this.MdiChildren.Length; x+)Form tempChild = (Form)this.MdiChildrenx; tempChild.Close();frmAddPerson.MdiParent = this; frmAddPerson.Show();AddDepart frmAddIncome;private void menuAddIncome_Click(object se
13、nder, EventArgs e) if (frmAddIncome = null | frmAddIncome.IsDisposed) frmAddIncome = new AddIncome();for (int x = 0; x < this.MdiChildren.Length; x+)Form tempChild = (Form)this.MdiChildrenx; tempChild.Close();frmAddIncome.MdiParent = this; frmAddIncome.Show();BrowseJob frmBrowseJob;private void m
14、enuBrowseJob_Click(object sender, EventArgs e) if (frmBrowseJob = null | frmBrowseJob.IsDisposed)frmBrowseJob = new BrowseJob();for (int x = 0; x < this.MdiChildren.Length; x+)Form tempChild = (Form)this.MdiChildrenx; tempChild.Close(); frmBrowseJob.MdiParent = this; frmBrowseJob.Show();BrowseDep
15、art frmBrowseDepart;private void menuBrowseDepart_Click(object sender, EventArgs e) if (frmBrowseDepart = null | frmBrowseDepart.IsDisposed)frmBrowseDepart = new BrowseDepart();for (int x = 0; x < this.MdiChildren.Length; x+)Form tempChild = (Form)this.MdiChildrenx; tempChild.Close(); frmBrowseDe
16、part.MdiParent = this; frmBrowseDepart.Show();BrowsePerson frmBrowsePerson;private void menuBrowsePerson_Click(object sender, EventArgs e) if (frmBrowsePerson = null | frmBrowsePerson.IsDisposed) frmBrowsePerson = new BrowsePerson(); for (int x = 0; x < this.MdiChildren.Length; x+)Form tempChild
17、= (Form)this.MdiChildrenx; tempChild.Close(); frmBrowsePerson.MdiParent = this; frmBrowsePerson.Show();BrowseIncome frmBrowseIncome;private void menuBrowseIncome_Click(object sender, EventArgs e) if (frmBrowseIncome = null | frmBrowseIncome.IsDisposed) frmBrowseIncome = new BrowseIncome(); for (int
18、x = 0; x < this.MdiChildren.Length; x+)Form tempChild = (Form)this.MdiChildrenx; tempChild.Close(); frmBrowseIncome.MdiParent = this; frmBrowseIncome.Show();private void menuExitSystem_Click(object sender, EventArgs e)Application.Exit();About frmAbout;private void menuAbout_Click(object sender, E
19、ventArgs e)if (frmAbout = null | frmAbout.IsDisposed)frmAbout = new About();for (int x = 0; x < this.MdiChildren.Length; x+)Form tempChild = (Form)this.MdiChildrenx; tempChild.Close(); frmAbout.MdiParent = this; frmAbout.Show();private void timer1_Tick(object sender, EventArgs e) this.ttsTime.Tex
20、t = " 时间为: " + Datatime.Now.ToString();4.2 部门信息管理设计及实现4.2.1 添加部门信息 添加部门信息界面用于部门基本信息的录入,包括部门名称、部门领导和备注。该 界面如图 4-2 所示。图 4-2添加部门信息界面添加部门信息的代码如下: 添加部门信息窗口程序 AddDepart.cs public static string strConn = "Data Source = (local);Initial Catalog = db_Person;Integrated Security = ture"priva
21、te void btnOk_Click(object sender, EventArgs e)if (this.txtDepName.Text.Trim() = "" | this.txtDepLeader.Text.Trim() = "")MessageBox.Show(" 请输入完整信息! "," 提示 ",0);elseusing(SqlConnection con = new SqlConnection(strConn)if(con.State = ConnectionState.Closed)con.Op
22、en();trySqlCommand cmd = new SqlCommand(select * from tb_DepartInfo where DName = '" + txtDepName.Text.Trim() + "'",con);if(cmd.ExecuteScalar()!= null)MessageBox.Show(" 部门名称重复输入,请重新输入! "," 提示 ",0);elseString sql = "insert into tb_DepartInfo(DName, Dlea
23、der,Remark)values('" + this.txtDepName.Text.Trim() + "','" + this.txtDepLeader.Text.Trim() + "','" + this.txtRemark.Text.Trim()+ "');cmd.CommandText = sql;cmd.ExecuteNonQuery();MessageBox.Show(" 添加部门信息成功! "," 提示 ",0);this.txtD
24、epName.Clear();this.txtDepLeader.Clear();this.txtRemark.Clear();catch(Exception ex)MessageBox.Show("错误: " + ex.Message," 错误提示 ",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);finallyif(con.State = ConnectionState.Open)con.Close();con.Dispose();4.2.2 浏览部门信息 在浏览部门信息界面中,用户可以按照列表的方
25、式快速查看公司所有的部门,并可以在该界面中完成修改和删除操作。浏览部门信息界面如图 4-3 所示。图 4-3 浏览部门信息界面浏览部门信息的代码如下:浏览部门信息窗口程序 BrowseDepart.cspublic static string strConn = "Data Source = (local);Initial Catalog = db_Person;Integrated Security = ture"private void BrowseDepart_Load(object sender, EventArgs e)showinf();/<summary
26、>/ 在 DataGridView 控件上显示记录 /</summary>private void showinf() using(SqlConnection con = new SqlConnection(strConn) if(con.State = ConnectionState.Closed) con.Open();trystring sql = "select DID as编号 ,Dname as 部门名称 ,Dleader as部门领导 ,Remark as 描述 from tb_DepartInfo order by DID"SqlDataA
27、dapter adp = new SqlDataAdapter(sql,con); DataSet ds = new DataSet(); ds.Clear(); adp.Fill(ds,"Depart");this.dgvDepartInfo.DataSource = ds.Tables0.DefaultView; catch(Exception ex)MessageBox.Show("错误: " + ex.Message," 错误提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Error
28、); finally if(con.State = ConnectionState.Open) con.Close(); con.Dispose();4.2.3 修改部门信息修改部门信息界面与添加部门信息界面相似,但在实现方法上有一定的区别,并且在修改部门信息时需要避免部门名称的重复,修改部门信息界面如图 4-4 所示:图 4-4 修改部门信息界面作为 Update 语句的限定条件,程序需要确保部门名称修改后不能与现有部门名称 发生重复,如果发生此情况,弹出提示对话框,结束流程。修改部门信息的代码如下: 修改部门信息窗口程序 ModifyDepart.cs private void btnUp
29、date_Click(object sender, EventArgs e)if (this.txtDName.Text.Trim() = "" | this.txtDLeader.Text.Trim()="")MessageBox.Show(" 请输入完整信息! "," 提示 ",0); else using(SqlConnection con = new SqlConnection(strConn) if(con.State = ConnectionState.Closed)con.Open();trySqlC
30、ommandcmd = new SqlCommand(select * from tb_DepartInfowhere DName = '" + txtDepName.Text.Trim() + "'and DID<>" + this.Tag.ToString().Trim(),con);if(cmd.ExecuteScalar()!= null)MessageBox.Show(" 部门名称发生重复,请重新输入! "," 提 示");elsestring sql = "update tb
31、_DepartInfo set DName = '" + txtDName.Text.Trim() + "',Dleader = '" + txtDleader.Text.Trim() + "',Remark = '" + txtRemark.Text.Trim() + "'where DID =" + this.Tag.ToString().Trim();cmd.CommandText = sql;cmd.ExecuteNonQuery();MessageBox.Show(&
32、quot; 部门信息修改成功! "," 提示 ",0);catch(Exception ex)MessageBox.Show(" 错误: " + ex.Message," 错误提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);finallyif(con.State = ConnectionState.Open)con.Close();con.Dispose();4.2.4 删除部门信息删除部门信息之前,应该判定是否存在与当前部门相关的其他记录,如果没有则可 以删除部门信
33、息记录,否则给出提示信息。而本系统中存在部门信息表与员工信息表之 间的依赖关系,因而不能直接删除掉部门信息,需要判定员工信息表中是否有与该部门 相关的信息。修改部门信息的代码如下:修改部门信息窗口程序 ModifyDepart.csprivate void bntDelete_Click(object sender, EventArgs e)using(SqlConnection con = new SqlConnection(strConn)if(con.State = ConnectionState.Closed)con.Open();tryif(this.dgvDepartInfo.Cu
34、rrentCell ! = null)string sql = "select Dname from tb_DepartInfo where DID =" +this.dgvDepartInfo0,this.dgvDepartInfo.CurrentCell.RowIndex.Value.ToStrin g().Trim() + " and DID not in (select distinct tb_DepartInfo.DID from tb_PersonInfo inner join tb_DepartInfo on tb_PersonInfo.DID =
35、tb_DepartInfo DID)"SqlCommand cmd = new SqlCommand(sql,con); sqlDataReader dr;dr = cmd.ExecuteReader(); if(!dr.Read() MessageBox.Show("删除部门 '" +this.dgvDepartInfo0,this.dgvDepartInfo.CurrentCell.RowIndex.Value.ToStrin g().Trim() + "' 失败,请先删除与此部门相关的员工! "," 提示&quo
36、t;);dr.Close(); else dr.Close(); sql = "delete from tb_DepartInfo where DID = " + this.dgvDepartInfo0,this.dgvDepartInfo.CurrentCell.RowIndex.Value.ToStrin g().Trim() + " and DID not in (select distinct DID from tb_PersonInfo)"cmd.CommandText = sql; cmd.ExecuteNonQuery(); MessageBox.Show("删除部门 '" +this.dgvDepartInfo0,this.dgvDepartInfo.CurrentCell.RowIndex.Value.ToStrin g().Trim() +"' 成功"," 提示"); catch(Exception ex)MessageBox.Show(" 错误: " + ex.Message," 错误提示 " MessageBoxButtons.OKCancel,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 监理工程师考试实践指导试题及答案
- 科学制定预算员考试学习计划:试题及答案
- 针对性消防设施操作员试题及答案
- 水资源管理与政策考核试题及答案
- 育婴师面试题目及试题及答案
- 高中地理空间布局研究试题及答案
- 2024年互联网营销师考试预测试题及答案
- 2025年山东建筑安全员-C证考试(专职安全员)题库附答案
- 个人能力提升及时间管理策略
- 企业信息化的绩效评估与改进
- 河道清淤人员培训
- 供货调试验收方案
- 2024年江苏省盐城市中考物理真题
- 2025年计算机二级考试题库350题含答案(WPS)
- 2025年山东省烟草专卖局公司招聘笔试参考题库含答案解析
- 《光电对抗原理与应用》课件第7章
- 江苏省事业单位综合知识和能力素质真题与答案解析
- 中职心理健康心理健康与职业生涯第七课
- 品管圈PDCA改善案例-降低住院患者跌倒发生率
- 施工项目机械、办公、检测设备投入、进场计划及保证措施
- 能源公司风电场火灾事故应急预案
评论
0/150
提交评论