数据库课程设计报告人事管理系统1.docx
《数据库课程设计报告人事管理系统1.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告人事管理系统1.docx(19页珍藏版)》请在冰点文库上搜索。
数据库课程设计报告人事管理系统1
课程设计报告书
专业:
信息管理与信息系统
课程设计名称:
《数据库原理及应用》
题目:
人事管理系统
班级:
XXXXXXX
设计者:
XXX
完成时间:
2010-06-18
一:
需求分析
通过实际调查,要求本系统具有以下功能:
1)良好的人机界面
2)要求实现一定的权限管理
3)方便的数据查询功能
4)方便的添加,删除和修改数据功能
二:
开发工具选择
本系统采用SQLServer2005创建后台数据库,前台开发工具利用VisualStudio2005进行开发,同时运用一定C#语言的辅助
三:
系统功能设计
要设计一个完备的企业人事管理系统,需涉及大量的信息,因目前还未涉及C#语言的学习,只能简化系统设计,只选取与企业基本信息紧密相关的部门信息,员工信息以及考勤信息等进行管理。
具体规划的模块如下:
1)部门信息管理:
包括部门信息的查询,修改,添加,删除等功能
2)员工信息管理:
包括员工基本信息的查询,修改,添加,删除等功能
3)考勤信息管理:
包括考勤信息的录入,查看等功能
四:
系统功能设计
根据功能的关联关系,将功能细化为下图所示的功能结构图(图1),其业务流程如图
(2)所示。
登
录
图
(1)
部门,员工,考勤信息的查看
图
(2)
五:
系统数据库设计
1:
实体E-R图
根据人事管理系统的系统分析与功能设计,人事管理系统中主要包括部门信息实体,员工信息实体,职位信息实体,考勤信息实体等,下面为它们的E-R图:
p
实体E-R图
p
2:
由实体E-R图得到的关系模式如下:
员工表(员工编号姓名性别职位学历所属部门联系电话出生年月政治面貌婚姻状况)
部门表(部门编号部门名称负责人办公室)
考勤表(员工编号考勤编号考勤月份出差天数病假天数事假天数)
职位表(职位编号职位名称所属部门)
婚姻表(员工编号婚姻状况)
政治面貌表(员工编号政治面貌)
(说明:
以上关系模式达到第三范式)
3数据库关系图:
六:
前台界面设计
1创建项目
启动程序“MicrosoftVisualStudio2005”,创建项目,创建文件夹。
2模板页设计
添加新项——选择母版页,命名为MasterPage.master,添加一行两列的table,将模板编辑区拖入右边单元格中,在左侧单元格中
添加treeciew控件,建立如图所示的目录树
再创建一模板页保存为MasterPage2.master,雷同上述操作建立如下图所示的母版页:
3.查看部门信息窗体
添加一应用模板一的web窗体,命名为ckbm.aspx,在编辑区中输入相应文本,配置数据源,并添加gridview和detailsview控件,建立如下图所示窗体,实现部门信息的查看:
4.修改部门信息窗体
添加一应用模板一的wen窗体,命名为xgbm.aspx,在编辑区内输入相应文本,配置数据源,并设置其select查询属性,添加gridview控件,再配置数据源,设置其delect查询属性和updata查询属性,建立如下图所示的窗体,实现管理员对部门信息的编辑,更改,删除操作:
5.添加部门信息窗体
添加一应用模板一得web窗体,命名为tjbm.aspx,在编辑区内输入相应文本,配置数据源,添加一十行两列的table,分别添加相应的label控件和textbox,最后添加两个button控件,分别将其text文本改为“确定”“取消”,配置数据源,并设置其insert查询属性,建立如下图所示的窗体,实现部门信息的录入:
以上为部门信息管理模块部分的窗体设计过程和示例,员工信息管理模块和考勤信息管理模块均与其类似,应用模板一实现的均是系统管理员的权限,可以对系统内部信息添加,删除,修改,查看,下面为应用模板二的普通用户的权限实现页面,实现过程与以上页面均为相似,以查看考勤信息页面为例:
6母版页导航的实现
各个具体功能页面建好之后,回到模板页,将建好的目录树与相应的具体共能页面之间建立联系,实现
导航的功能,使得用户使用时方便在各个页面之间进行转换。
分别应用模板页建立管理员和普通用户登录时的欢迎界面
7登录窗体设计
添加新项——选择web窗体,命名为dl1.aspx,单击确定。
在页面中输入相关文本,然后添加两个hiperlink控件,并将其text
文本改为“管理员”“普通用户”,将其NavigateUrl设置为“gly.aspx”“ptyh.aspx”
将图中的“管理员”和“普通用户”分别与建好的管理员登录欢迎界面和普通用户欢迎界面链接在一起,方便用户实现自己权限范围内
的访问和操作。
七:
代码部分
在设计过程中运用到的代码,下面以几个页面源代码作为示例
(1)添加部门信息
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
publicpartialclasstjbm:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
SqlDataSource1.Insert();
Label5.Text="插入成功";
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
TextBox1.Text="";
TextBox2.Text="";
TextBox3.Text="";
TextBox4.Text="";
Label5.Text="";
}
}
(2)录入考勤信息
<%@PageLanguage="C#"MasterPageFile="~/MasterPage.master"AutoEventWireup="true"CodeFile="lrkq.aspx.cs"Inherits="lrkq"Title="UntitledPage"%>
ContentID="Content1"ContentPlaceHolderID="ContentPlaceHolder1"Runat="Server">
录入考勤信息
400px;height:
350px">
400px;height:
300px">
100px">
LabelID="Label1"runat="server"Text="员工编号:
">
Label>
100px">
TextBoxID="TextBox1"runat="server">
TextBox>
|
100px">
LabelID="Label2"runat="server"Text="考勤编号:
">
Label>
100px">
TextBoxID="TextBox2"runat="server">
TextBox>
|
|
100px">
LabelID="Label3"runat="server"Text="考勤月份:
">
Label>
100px">
TextBoxID="TextBox3"runat="server">
TextBox>
|
100px">
LabelID="Label4"runat="server"Text="出差天数:
">
Label>
100px">
TextBoxID="TextBox4"runat="server">
TextBox>
|
100px">
LabelID="Label5"runat="server"Text="病假天数:
">
Label>
100px">
TextBoxID="TextBox5"runat="server">
TextBox>
|
100px">
LabelID="Label6"runat="server"Text="事假天数:
">
Label>
100px">
TextBoxID="TextBox6"runat="server">
TextBox>
|
100px">
ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="确定"/>
100px">
ButtonID="Button2"runat="server"OnClick="Button2_Click"Text="取消"/>
|
LabelID="Label7"runat="server">
Label>
SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ConnectionStrings:
sqlshejiConnectionString8%>"
InsertCommand="INSERTINTO考勤表(员工编号,考勤编号,考勤月份,出差天数,病假天数,事假天数)VALUES(@员工编号,@考勤编号,@考勤月份,@出差天数,@病假天数,@事假天数)"
SelectCommand="SELECT*FROM[考勤表]">
ControlParameterControlID="TextBox1"Name="员工编号"PropertyName="Text"/>
ControlParameterControlID="TextBox2"Name="考勤编号"PropertyName="Text"/>
ControlParameterControlID="TextBox3"Name="考勤月份"PropertyName="Text"/>
ControlParameterControlID="TextBox4"Name="出差天数"PropertyName="Text"/>
ControlParameterControlID="TextBox5"Name="病假天数"PropertyName="Text"/>
ControlParameterControlID="TextBox6"Name="事假天数"PropertyName="Text"/>
SqlDataSource>
HyperLinkID="HyperLink1"runat="server"NavigateUrl="~/dl1.aspx">退出
HyperLink>
Content>
(3)修改员工信息:
<%@PageLanguage="C#"MasterPageFile="~/MasterPage.master"AutoEventWireup="true"CodeFile="ygxg.aspx.cs"Inherits="ygxg"Title="UntitledPage"%>
ContentID="Content1"ContentPlaceHolderID="ContentPlaceHolder1"Runat="Server">
修改员工信息
SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ConnectionStrings:
sqlshejiConnectionString20%>"
DeleteCommand="DELETEFROM员工表WHERE(员工编号=@员工编号)"SelectCommand="SELECT*FROM[员工表]"
UpdateCommand="UPDATE员工表SET员工编号=@员工编号,姓名=@姓名,性别=@性别,职位=@职位,学历=@学历,所属部门=@所属部门,出生年月=@出生年月,联系电话=@联系电话,政治面貌=@政治面貌,婚姻状况=@婚姻状况WHERE(员工编号=@员工编号)">
ControlParameterControlID="GridView1"Name="员工编号"PropertyName="SelectedValue"/>
ControlParameterControlID="GridView1"Name="员工编号"PropertyName="SelectedValue"/>
ControlParameterControlID="GridView1"Name="姓名"PropertyName="SelectedValue"/>
ControlParameterControlID="GridView1"Name="性别"PropertyName="SelectedValue"/>
ControlParameterControlID="GridView1"Name="职位"PropertyName="SelectedValue"/>
ControlParameterControlID="GridView1"Name="学历"PropertyName="SelectedValue"/>
ControlParameterControlID="GridView1"Name="所属部门"PropertyName="SelectedValue"/>
ControlParameterControlID="GridView1"Name="出生年月"PropertyName="SelectedValue"/>
ControlParameterControlID="GridView1"Name="联系电话"PropertyName="SelectedValue"/>
ControlParameterControlID="GridView1"Name="政治面貌"PropertyName="SelectedValue"/>
ControlParameterControlID="GridView1"Name="婚姻状况"PropertyName="SelectedValue"/>
SqlDataSource>
GridViewID="GridView1"runat="server"AutoGenerateColumns="False"DataKeyNames="员工编号"
DataSourceID="SqlDataSource1"BackColor="White"BorderColor="White"BorderStyle="Ridge"BorderWidth="2px"CellPadding="3"CellSpacing="1"GridLines="None">
CommandFieldShowEditButton="True"/>
BoundFieldDataField="员工编号"HeaderText="员工编号"ReadOnly="True"SortExpression="员工编号"/>
BoundFieldDataField="姓名"HeaderText="姓名"SortExpression="姓名"/>
BoundFieldDataField="性别"HeaderText="性别"SortExpression="性别"/>
BoundFieldDataField="职位"HeaderText="职位"SortExpression="职位"/>
BoundFieldDataField="学历"HeaderText="学历"SortExpression="学历"/>
BoundFieldDataField="所属部门"HeaderText="所属部门"SortExpression="所属部门"/>
BoundFieldDataField="出生年月"HeaderText="出生年月"SortExpression="出生年月"/>
BoundFieldDataField="联系电话"HeaderText="联系电话"SortExpression="联系电话"/>
BoundFieldDataField="政治面貌"HeaderText="政治面貌"SortExpression="政治面貌"/>
BoundFieldDataField="婚姻状况"HeaderText="婚姻状况"SortExpression="婚姻状况"/>
CommandFieldShowDeleteButton="True"/>
GridView>
HyperLinkID="HyperLink1"runat="server"NavigateUrl="~/dl.aspx">退出
HyperLink>
Content>
八:
心得体会
在此次为期一周的数据库课程设计过程中,我感受到了合作的重要性,感觉整个系统的设计过程就是一个逐步完善的过程,必须要不停地思考不停地探索。
刚开始的两天其实基本上毫无头绪,去图书馆去网上都差了资料,在脑海中先形成大致模块和思路,建立数据库的过程看似简单,实则不然。
要考虑到实体间的逻辑关系和数据关系模式的完整性问题,努力使之达到第三范式;然后就是前台界面的设计了,其中,数据源属性配置的过程中出现的问题是最多的,可能是平时学的知识不够牢固,在对数据源的select,update,delect,查询属性进行配置的过程中,反反复复,不能确定,最后,只得静下心来,一步一步一点一点的配置,修改,最后终于全部成功,在这个反复的过程当中已将这些今本知识印于脑海之中,巩固了平时所学,顿时觉得有了成就感,也感受到了数据库知识的强大功能和作用。
虽然此学期学的关于.NET平台应用的只是并不多,但是还是运用老师所讲的实用性很强的基本知识成功设计出了一个完整的系统实现的此次课程设计要求实现的功能,其实心里想要的实现的功能更多,但是所学知识有限,只能暂时这样,通过此次课程设计加深了我对数据库,实体逻辑关系的理解,加深了我对.NET平台的了解,熟练了很多应用方法,更正了很多习惯性错误使用方法,激起了我对.NET平台更加熟练使用和C#语言的求知欲望,想尽快学习到更多的数据库设计方面的知识,设计出更加完善实用性更强的系统。