《数据库原理》课程设计报告综合人事管理系统 .doc

上传人:文库蛋蛋多 文档编号:2395121 上传时间:2023-02-17 格式:DOC 页数:59 大小:709.50KB
返回 下载 相关 举报
《数据库原理》课程设计报告综合人事管理系统 .doc_第1页
第1页 / 共59页
《数据库原理》课程设计报告综合人事管理系统 .doc_第2页
第2页 / 共59页
《数据库原理》课程设计报告综合人事管理系统 .doc_第3页
第3页 / 共59页
《数据库原理》课程设计报告综合人事管理系统 .doc_第4页
第4页 / 共59页
《数据库原理》课程设计报告综合人事管理系统 .doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《《数据库原理》课程设计报告综合人事管理系统 .doc》由会员分享,可在线阅读,更多相关《《数据库原理》课程设计报告综合人事管理系统 .doc(59页珍藏版)》请在三一办公上搜索。

1、数据库原理课程设计报告课程设计题目:综合人事管理系统学 院:计算机与电子信息学院专 业:计算机与科学技术年 级:计科072姓 名:指导教师:2010 年1月 目 录第一节相关技术介绍3第二节需求分析3数据字典31)数据库内含下列表32)数据库表详细设计33)安全性和完整性要求3第三节概念结构设计3E-R图3第四节逻辑结构设计3系统总体设计3第五节代码设计3第六节数据库实施55第七节参考文献55第八节附录56第一节相关技术介绍本程序使用VC+6.0和SQLserver2000结合编写的。 Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C

2、+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。在实际应用中,是以Visual C+6.0为平台。 Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。SQL Server 2000 是Microsoft 公

3、司推出的SQL Server 数据库管理系统。该版本,具有使用方便,可伸缩性好与相关软件集成程度高等优点,是开发数据库应用程序不错的选择。程序编写环境:数据管理系统:Microsoft SQL Server 2000程序编写平台:Microsoft Visual C+ 6.0操作系统:Microsoft XP SP3测试用帐号及密码:普通员工:QQ学生密码:000000超级管理员帐号:admin管理员密码:1第二节需求分析数据字典数据库名:HrSys.mdb1)数据库内含下列表Departments (部门表)Employees (职员表)Family (家庭成员表)Checkin (员工考勤

4、表)Evaluation (员工考评表)Users (用户表)2)数据库表详细设计Departments,部门表字段名称数据类型说明长度Dep_idInt部门编号4Dep_nameVarchar部门名称40DescribeVarchar部门职能描述400UpperIdInt上级部门编号4Employees,职员表字段名称数据类型说明长度Emp_idInt员工编号4Emp_nameVarchar员工姓名50SexChar性别2NationalityVarchar民族40BirthVarchar生日20Political_pratyVarchar政治面貌40Culture_levelVarchar

5、文化程度40Family_placeVarchar籍贯60Marital_conditionVarchar婚姻状况20Id_cardVarchar身份证号20BadgeIdVarchar工作证号40Office_phoneVarchar办公电话30MobileVarchar手机号码30Files_keep_orgVarchar档案存放地100HukouVarchar户口所在地100HireDataVarchar到岗日期20Dep_idInt所在部门编号4PositionVarchar工作岗位40TitleVarchar职位20StateTinyint员工状态1UpperIdInt上级员工编号4

6、Contract_durationVarchar合同有效期20MemoVarchar备注30Fillin_personVarchar 填表用户30Fillin_timeVarchar填表日期和时间20Family,员工家庭成员记录表字段名称数据类型说明长度idTinyint编号1Emp_nameVarchar员工名字50Emp_idInt员工编号4SexTinyint年龄1RelationshipVarchar与本人关系20WorkingOrg Varchar工作单位40Checkin,员工考勤表字段名称数据类型说明长度CheckDateChar考勤月份10Emp_idInt 员工编号4qqD

7、aysDecimal(4,1)全勤天数5ccDaysDecimal(4,1)出差天数5bjDaysDecimal(4,1)病假天数5sjDaysDecimal(4,1)事假天数5kgDaysDecimal(4,1)旷工天数5fdxjDaysDecimal(4,1)法定休假天数5nxjDaysDecimal(4,1)年休假天数5dxjDaysDecimal(4,1)倒休假天数5cdMinutesDecimal(4,1)Tinyint1ztMinutesDecimal(4,1)Tinyint1Ot1Decimal(4,1)一类加班天数5Ot2Decimal(4,1)二类加班天数5Ot3Decima

8、l(4,1)三类加班天数5MemoVarchar备注200Evaluation,员工考评表字段名称数据类型说明长度EvaMonthChar考评月份10Emp_idInt员工编号4ztEvaVarchar总体评价200jlReasonVarchar奖励事由200jlAmountSmallint奖励金额2cfReasonVarchar处罚事由200cfAmountSmallint处罚金额2Memo Varchar 备注200Users,用户信息表字段名称数据类型说明长度UserNameVarchar用户名40PwdVarchar密码40User_typeTinyint用户类型13)安全性和完整性要

9、求本程序实现普通员工与系统管理员的权限分离,同时实现管理员对职员有全面的资料管理功能。系统管理员拥有全部的权限,可以实现诸如添加、删除、修改等功能,而将普通员工只有查看权限。第三节概念结构设计E-R图第四节逻辑结构设计系统总体设计包括两大系统:一、普通员工系统查看其他员工信息和修改自己登录密码。二、管理员系统包括:1) 用户管理系统:(1) Admin 用户可以创建管理员或普通用户、复位用户密码、删除系统管理员或普通用户,也可以修改自身密码(admin用户不能被删除);(2) 管理员可以创建普通用户、对普通用户的密码进行复位、删除普通用户,也可以修改自身密码;(3) 普通用户只能修改自身密码;

10、2)部门管理(1)系统管理员可以添加、修改、删除和查看部门记录;(2)普通用户只能查看部门数据;3)员工基本管理管理(1)系统管理员可以添加、修改、删除、查看员工记录;(2)普通用户只能查看员工数据;4)家庭成员管理(1)添加、修改、删除和查看家庭成员信息(只用管理员才有的权限);5)员工考勤管理(1)系统管理员可以创建、修改、删除和查看考勤记录;(2)普通用户只能查看考勤数据;6)员工考评管理(1)系统管理员可以创建、修改、删除和查看考评记录;(2)普通用户只能查看考评记录数据。流程图:开始用户登录读取用户类型1. 管理自己的用户信息2. 管理普通系统用户的信息3. 管理普通用户的用户信息1

11、. 管理普通系统管理员的用户信息2. 管理普通用户的用户信息管理自己的用户信息拥有所有的权限只有查询的权限失败重试Admin用户系统管理员用户普通用户用户管理模块人事管理模块第五节主要源代码(因为员工是数据库的核心,很多内容都和员工有关系,所以当我们删除了一 个员工时,会删除和这个员工有联系的所有数据库内容,在此我用代码来具体 实现)连接数据库的类:/ ADOConn.h: interface for the ADOConn class./#import c:Program FilesCommon FilesSystemadomsado15.dll no_namespace rename(EO

12、F,adoEOF) rename(BOF,adoBOF)#if !defined(AFX_ADOCONN_H_6ACC7E6F_4312_448E_9F6A_D0D17599FE61_INCLUDED_)#define AFX_ADOCONN_H_6ACC7E6F_4312_448E_9F6A_D0D17599FE61_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000class ADOConn public:_ConnectionPtr m_pConnection;_RecordsetPtr m_pRecordset;pu

13、blic:ADOConn();virtual ADOConn();void OnInitADOConn();_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);BOOL ExecuteSQL(_bstr_t bstrSQL);void ExitConnect();#endif / !defined(AFX_ADOCONN_H_6ACC7E6F_4312_448E_9F6A_D0D17599FE61_INCLUDED_)/ ADOConn.cpp: implementation of the ADOConn class./#include stdafx.h#

14、include ADOConn.h#include ADOConn.h#include _Recordset.h#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE=_FILE_;#define new DEBUG_NEW#endif/ Construction/Destruction/ADOConn:ADOConn()ADOConn:ADOConn()void ADOConn:OnInitADOConn():CoInitialize(NULL);trym_pConnection.CreateInstance(ADODB.Connection);

15、 /m_pConnection.CreateInstance(ADOCB.Recordset);/_bstr_t strConnect=Provider=SQLOLEDB;Server=FREESKYC-F4975D;Database=Mrman;/_bstr_t strConnection=Provider=SQLOLEDB.1;Data Source=FREESKYC-F4975D;Initial Catalog=MrMan;_bstr_t strConnection=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security

16、 Info=False;Initial Catalog=HrSys;Data Source=FREESKYC-F4975D;UserId=sa;Password=;/CString str;/str.Format(Provider=sqloledb;Network Library=DBMSSOCN;Initial Catalog=MrMan;User ID=;Password=;Data Source=MrMan);m_pConnection-Open(strConnection,adModeUnknown);catch(_com_error e)AfxMessageBox(e.Descrip

17、tion();_RecordsetPtr& ADOConn:GetRecordSet(_bstr_t bstrSQL)tryif(m_pConnection=NULL)OnInitADOConn;m_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset-Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);catch(_com_error e)AfxMessageBox(e.Description();return

18、 m_pRecordset;BOOL ADOConn:ExecuteSQL(_bstr_t bstrSQL)tryif(m_pConnection=NULL)OnInitADOConn();m_pConnection-Execute(bstrSQL,NULL,adCmdText);return true;catch(_com_error e)AfxMessageBox(e.Description();return false;void ADOConn:ExitConnect()if(m_pRecordset!=NULL)m_pRecordset-Close();m_pConnection-Cl

19、ose();:CoUninitialize();在这个程序中因为登录的用户在各个模块中都有用到,所以我单独写了个用户 类,并且定义了一个全局变量Users:class CUsers private:CString UserName;CString Pwd;int User_type;public:CUsers();virtual CUsers();CString GetUserName();void SetUserName(CString cUserName);CString GetPwd();void SetPwd(CString cPwd);int GetUser_type();void

20、SetUser_type(int iUser_type);void sql_insert();void sql_updatePwd(CString cUserName);void sql_delete(CString cUserName);void GetData(CString cUserName);int HaveName(CString cUserName);CUsers:CUsers()UserName=;Pwd=;User_type=0;CUsers:CUsers()CString CUsers:GetUserName()return UserName;void CUsers:Set

21、UserName(CString cUserName)UserName=cUserName;CString CUsers:GetPwd()return Pwd;void CUsers:SetPwd(CString cPwd)Pwd=cPwd;int CUsers:GetUser_type()return User_type;void CUsers:SetUser_type(int cUser_type)User_type=cUser_type;void CUsers:sql_insert()ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();CString

22、strType;strType.Format(%d,User_type);_bstr_t vSQL;vSQL=insert into Users values(+UserName+,+Pwd+,+strType+);m_AdoConn.ExecuteSQL(vSQL);m_AdoConn.ExitConnect();void CUsers:sql_updatePwd(CString cUserName)ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();CString strType;strType.Format(%d,User_type);_bstr_t

23、vSQL;vSQL=Update Users set Pwd=+Pwd+where UserName=+cUserName+;m_AdoConn.ExecuteSQL(vSQL);m_AdoConn.ExitConnect();void CUsers:sql_delete(CString cUserName)ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();_bstr_t vSQL;vSQL=delete from Users where UserName=+cUserName+;m_AdoConn.ExecuteSQL(vSQL);m_AdoConn.E

24、xitConnect();void CUsers:GetData(CString cUserName)ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();_bstr_t vSQL;vSQL=select *from Users where UserName=+cUserName+;_RecordsetPtr m_pRecordset;m_pRecordset=m_AdoConn.GetRecordSet(vSQL);if(m_pRecordset-adoEOF)CUsers:CUsers();elseUserName=cUserName;Pwd=(LPCTS

25、TR)(_bstr_t)m_pRecordset-GetCollect(Pwd);User_type=atoi(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(User_type);m_AdoConn.ExitConnect ();int CUsers:HaveName(CString cUserName)ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();_bstr_t vSQL;vSQL=select * from Users where UserName=+cUserName+;_RecordsetPtr m_pRec

26、ordset;m_pRecordset=m_AdoConn.GetRecordSet(vSQL);if(m_pRecordset-adoEOF)return -1;elsereturn 1;m_AdoConn.ExitConnect();return 1;登录对话框:void CLoginDlg:OnOK() / TODO: Add extra validation hereUpdateData(TRUE);if(m_UserName=)MessageBox(请输入用户名);return;if(m_Pwd=)MessageBox(请输入密码);return;CUsers user;user.G

27、etData(m_UserName);if(user.GetPwd()!=m_Pwd)MessageBox(不存在帐号或密码,请重试!);return;CDialog:OnOK();部门对话框:class CDepartments private:int Dep_id;CString Dep_name;CString Describe;int UpperId;public:CStringArray a_DepName;CStringArray a_DepId;CStringArray a_UpperId;CDepartments();virtual CDepartments();int Get

28、Dep_id();void SetDep_id(int iDep_id);CString GetDep_name();void SetDep_name(CString cDep_name);CString GetDescribe();void SetDescribe(CString cDescribe);int GetUpperId();void SetUpperId(int iUpperId);int HaveName(CString cDep_name);int HaveSon(CString cDep_id);int HaveEmp(CString cDep_id);void Load_

29、dep(CString cname,int all);long sql_insert();void sql_update(CString cDepId);void sql_delete(CString cDepId);void GetData(CString cDepId);long CDepartments:sql_insert()ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();CString strUpperId;strUpperId.Format(%d,UpperId);_bstr_t vSQL;vSQL=insert into Departmen

30、ts(Dep_name,Describe,UpperId)values(+Dep_name+,+Describe+,+strUpperId+);m_AdoConn.ExecuteSQL(vSQL);long lDepId;vSQL=select max(Dep_id)as MaxId from Departments;_RecordsetPtr m_pRecordset;m_pRecordset=m_AdoConn.GetRecordSet(vSQL);if(m_pRecordset-adoEOF)lDepId=0;elselDepId=atol(LPCTSTR)(_bstr_t)m_pRec

31、ordset-GetCollect(MaxId);m_AdoConn.ExitConnect();return lDepId;void CDepartments:sql_update(CString cDepId)ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();_bstr_t vSQL;vSQL=update Departments set Dep_name=+Dep_name+,Describe=+Describe+where Dep_id=+cDepId;m_AdoConn.ExecuteSQL(vSQL);m_AdoConn.ExitConnect

32、();void CDepartments:sql_delete(CString cDepId)ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();_bstr_t vSQL;vSQL=delete from Departments where Dep_id=+cDepId;m_AdoConn.ExecuteSQL(vSQL);m_AdoConn.ExitConnect();void CDepartments:GetData(CString cDepId)ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();_bstr_t vS

33、QL;vSQL=select * from Departments where Dep_id=+cDepId;_RecordsetPtr m_pRecordset;m_pRecordset=m_AdoConn.GetRecordSet(vSQL);if(m_pRecordset-adoEOF)CDepartments();elseDep_id=atoi(cDepId);Dep_name=(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(Dep_name);Describe=(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(De

34、scribe);UpperId=atoi(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(UpperId);m_AdoConn.ExitConnect();部门添加功能(其他类似):void CDepManDlg:OnAddButton1() / TODO: Add your control notification handler code hereHTREEITEM node;node=m_tree.GetSelectedItem();CDepEditDlg dlg;dlg.m_Upper=m_tree.GetItemText(node);dlg.Uppe

35、rId=m_tree.GetItemData(node);dlg.DepId=0;if(dlg.DoModal()=IDOK)HTREEITEM child;child=m_tree.InsertItem(dlg.m_DepName,node);m_tree.SetItemData(child,dlg.DepId);m_tree.Expand(node,TVE_EXPAND);选择部门对话框:void CDepSelDlg:AddtoTree(HTREEITEM m_node,int UpperId)int i;HTREEITEM m_child;for(i=0;idep.a_UpperId.

36、GetSize();i+)if (UpperId = atoi(dep.a_UpperId.GetAt(i)m_child = m_tree.InsertItem(dep.a_DepName.GetAt(i), m_node);m_tree.SetItemData(m_child, atol(dep.a_DepId.GetAt(i);AddtoTree(m_child, atoi(dep.a_DepId.GetAt(i);void CDepSelDlg:OnOK() / TODO: Add extra validation hereHTREEITEM node;node=m_tree.GetS

37、electedItem();if(m_tree.GetItemData(node)=0)MessageBox(请选择部门!);return;DepId=m_tree.GetItemData(node);DepName=m_tree.GetItemText(node);CDialog:OnOK();BOOL CDepSelDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization here/装入部门信息dep.Load_dep(,1);/添加根节点m_treeImageList.Create(16,16,F

38、ALSE,1,0); /创建CImageList控件/装入ICON资源HICON hIcon = :LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON1);m_treeImageList.Add(hIcon); /将ICON资源添加到CImageList控件中/将CImageList控件与Tree控件相关联m_tree.SetImageList(&m_treeImageList, LVSIL_NORMAL);m_root = m_tree.InsertItem(部门信息); /添加根节点/调用AddtoTree() 函数,将所有部

39、门信息添加到Tree控件中AddtoTree(m_root, 0);m_tree.Expand(m_root, TVE_EXPAND); /展开根节点return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE/*void CDepSelDlg:OnCancel() / TODO: Add extra cleanup hereDepId = 0;DepName = ;CDialog:OnCancel();*/void CDe

40、pSelDlg:OnCancel() / TODO: Add extra cleanup hereCDialog:OnCancel();职员类:class CEmployees private:int Emp_id;CString Emp_name;CString Sex;CString Nationality;CString Birth;CString Political_party;CString Culture_level;CString Marital_condition;CString Family_place;CString Id_card;CString BadgeId;CString Office_phone;CString Mobile;CString Files_keep_org;CSt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号