《數(shù)據(jù)庫原理》課程設(shè)計(jì)報(bào)告綜合人事管理系統(tǒng)_第1頁
《數(shù)據(jù)庫原理》課程設(shè)計(jì)報(bào)告綜合人事管理系統(tǒng)_第2頁
《數(shù)據(jù)庫原理》課程設(shè)計(jì)報(bào)告綜合人事管理系統(tǒng)_第3頁
《數(shù)據(jù)庫原理》課程設(shè)計(jì)報(bào)告綜合人事管理系統(tǒng)_第4頁
《數(shù)據(jù)庫原理》課程設(shè)計(jì)報(bào)告綜合人事管理系統(tǒng)_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)庫原理課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目:綜合人事管理系統(tǒng)學(xué) 院:計(jì)算機(jī)與電子信息學(xué)院專 業(yè):計(jì)算機(jī)與科學(xué)技術(shù)年 級:計(jì)科072姓 名:指導(dǎo)教師:2010 年1月 目 錄第一節(jié)相關(guān)技術(shù)介紹3第二節(jié)需求分析3數(shù)據(jù)字典31)數(shù)據(jù)庫內(nèi)含下列表32)數(shù)據(jù)庫表詳細(xì)設(shè)計(jì)33)安全性和完整性要求3第三節(jié)概念結(jié)構(gòu)設(shè)計(jì)3e-r圖3第四節(jié)邏輯結(jié)構(gòu)設(shè)計(jì)3系統(tǒng)總體設(shè)計(jì)3第五節(jié)代碼設(shè)計(jì)3第六節(jié)數(shù)據(jù)庫實(shí)施55第七節(jié)參考文獻(xiàn)55第八節(jié)附錄56第一節(jié)相關(guān)技術(shù)介紹本程序使用vc+6.0和sqlserver2000結(jié)合編寫的。 visual c+是一個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年microsoft公司推出visual c

2、+1.0后,隨著其新版本的不斷問世,visual c+已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。在實(shí)際應(yīng)用中,是以visual c+6.0為平臺。 visual c+6.0不僅是一個(gè)c+編譯器,而且是一個(gè)基于windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment,ide)。visual c+6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppwizard、類向?qū)lass wizard等開發(fā)工具。 這些組件通過一個(gè)名為developer studio的組件集成為和諧的開發(fā)環(huán)境。sql server 2000 是microsoft 公

3、司推出的sql server 數(shù)據(jù)庫管理系統(tǒng)。該版本,具有使用方便,可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),是開發(fā)數(shù)據(jù)庫應(yīng)用程序不錯(cuò)的選擇。程序編寫環(huán)境:數(shù)據(jù)管理系統(tǒng):microsoft sql server 2000程序編寫平臺:microsoft visual c+ 6.0操作系統(tǒng):microsoft xp sp3測試用帳號及密碼:普通員工:qq學(xué)生密碼:000000超級管理員帳號:admin管理員密碼:1第二節(jié)需求分析數(shù)據(jù)字典數(shù)據(jù)庫名:hrsys.mdb1)數(shù)據(jù)庫內(nèi)含下列表departments (部門表)employees (職員表)family (家庭成員表)checkin (員工考勤

4、表)evaluation (員工考評表)users (用戶表)2)數(shù)據(jù)庫表詳細(xì)設(shè)計(jì)departments,部門表字段名稱數(shù)據(jù)類型說明長度dep_idint部門編號4dep_namevarchar部門名稱40describevarchar部門職能描述400upperidint上級部門編號4employees,職員表字段名稱數(shù)據(jù)類型說明長度emp_idint員工編號4emp_namevarchar員工姓名50sexchar性別2nationalityvarchar民族40birthvarchar生日20political_pratyvarchar政治面貌40culture_levelvarchar

5、文化程度40family_placevarchar籍貫60marital_conditionvarchar婚姻狀況20id_cardvarchar身份證號20badgeidvarchar工作證號40office_phonevarchar辦公電話30mobilevarchar手機(jī)號碼30files_keep_orgvarchar檔案存放地100hukouvarchar戶口所在地100hiredatavarchar到崗日期20dep_idint所在部門編號4positionvarchar工作崗位40titlevarchar職位20statetinyint員工狀態(tài)1upperidint上級員工編號4

6、contract_durationvarchar合同有效期20memovarchar備注30fillin_personvarchar 填表用戶30fillin_timevarchar填表日期和時(shí)間20family,員工家庭成員記錄表字段名稱數(shù)據(jù)類型說明長度idtinyint編號1emp_namevarchar員工名字50emp_idint員工編號4sextinyint年齡1relationshipvarchar與本人關(guān)系20workingorg varchar工作單位40checkin,員工考勤表字段名稱數(shù)據(jù)類型說明長度checkdatechar考勤月份10emp_idint 員工編號4qqd

7、aysdecimal(4,1)全勤天數(shù)5ccdaysdecimal(4,1)出差天數(shù)5bjdaysdecimal(4,1)病假天數(shù)5sjdaysdecimal(4,1)事假天數(shù)5kgdaysdecimal(4,1)曠工天數(shù)5fdxjdaysdecimal(4,1)法定休假天數(shù)5nxjdaysdecimal(4,1)年休假天數(shù)5dxjdaysdecimal(4,1)倒休假天數(shù)5cdminutesdecimal(4,1)tinyint1ztminutesdecimal(4,1)tinyint1ot1decimal(4,1)一類加班天數(shù)5ot2decimal(4,1)二類加班天數(shù)5ot3decima

8、l(4,1)三類加班天數(shù)5memovarchar備注200evaluation,員工考評表字段名稱數(shù)據(jù)類型說明長度evamonthchar考評月份10emp_idint員工編號4ztevavarchar總體評價(jià)200jlreasonvarchar獎(jiǎng)勵(lì)事由200jlamountsmallint獎(jiǎng)勵(lì)金額2cfreasonvarchar處罰事由200cfamountsmallint處罰金額2memo varchar 備注200users,用戶信息表字段名稱數(shù)據(jù)類型說明長度usernamevarchar用戶名40pwdvarchar密碼40user_typetinyint用戶類型13)安全性和完整性要

9、求本程序?qū)崿F(xiàn)普通員工與系統(tǒng)管理員的權(quán)限分離,同時(shí)實(shí)現(xiàn)管理員對職員有全面的資料管理功能。系統(tǒng)管理員擁有全部的權(quán)限,可以實(shí)現(xiàn)諸如添加、刪除、修改等功能,而將普通員工只有查看權(quán)限。第三節(jié)概念結(jié)構(gòu)設(shè)計(jì)e-r圖第四節(jié)邏輯結(jié)構(gòu)設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)包括兩大系統(tǒng):一、普通員工系統(tǒng)查看其他員工信息和修改自己登錄密碼。二、管理員系統(tǒng)包括:1) 用戶管理系統(tǒng):(1) admin 用戶可以創(chuàng)建管理員或普通用戶、復(fù)位用戶密碼、刪除系統(tǒng)管理員或普通用戶,也可以修改自身密碼(admin用戶不能被刪除);(2) 管理員可以創(chuàng)建普通用戶、對普通用戶的密碼進(jìn)行復(fù)位、刪除普通用戶,也可以修改自身密碼;(3) 普通用戶只能修改自身密碼;

10、2)部門管理(1)系統(tǒng)管理員可以添加、修改、刪除和查看部門記錄;(2)普通用戶只能查看部門數(shù)據(jù);3)員工基本管理管理(1)系統(tǒng)管理員可以添加、修改、刪除、查看員工記錄;(2)普通用戶只能查看員工數(shù)據(jù);4)家庭成員管理(1)添加、修改、刪除和查看家庭成員信息(只用管理員才有的權(quán)限);5)員工考勤管理(1)系統(tǒng)管理員可以創(chuàng)建、修改、刪除和查看考勤記錄;(2)普通用戶只能查看考勤數(shù)據(jù);6)員工考評管理(1)系統(tǒng)管理員可以創(chuàng)建、修改、刪除和查看考評記錄;(2)普通用戶只能查看考評記錄數(shù)據(jù)。流程圖:開始用戶登錄讀取用戶類型1. 管理自己的用戶信息2. 管理普通系統(tǒng)用戶的信息3. 管理普通用戶的用戶信息1

11、. 管理普通系統(tǒng)管理員的用戶信息2. 管理普通用戶的用戶信息管理自己的用戶信息擁有所有的權(quán)限只有查詢的權(quán)限失敗重試admin用戶系統(tǒng)管理員用戶普通用戶用戶管理模塊人事管理模塊第五節(jié)主要源代碼(因?yàn)閱T工是數(shù)據(jù)庫的核心,很多內(nèi)容都和員工有關(guān)系,所以當(dāng)我們刪除了一 個(gè)員工時(shí),會刪除和這個(gè)員工有聯(lián)系的所有數(shù)據(jù)庫內(nèi)容,在此我用代碼來具體 實(shí)現(xiàn))連接數(shù)據(jù)庫的類:/ 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();在這個(gè)程序中因?yàn)榈卿浀挠脩粼诟鱾€(gè)模塊中都有用到,所以我單獨(dú)寫了個(gè)用戶 類,并且定義了一個(gè)全局變量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;iadoeof)/return

36、 ;return -1;else return 1;/return(lpctstr)(_bstr_t)m_precordset-getcollect(emp_name);m_adoconn.exitconnect();cstring cemployees:getname(cstring cemp_id)adoconn m_adoconn;m_adoconn.oninitadoconn();_bstr_t vsql;vsql=select emp_name from employees where emp_id=+cemp_id;_recordsetptr m_precordset;m_prec

37、ordset=m_adoconn.getrecordset(vsql);if(m_precordset-adoeof)return -1;elsereturn (lpctstr)(_bstr_t)m_precordset-getcollect(emp_name);m_adoconn.exitconnect();void cemployees:sql_insert()adoconn m_adoconn;m_adoconn.oninitadoconn();cstring strdep_id;strdep_id.format(%d,dep_id);cstring strstate;strstate.

38、format(%d,state);cstring strupperid;strupperid.format(%d,upperid);_bstr_t vsql;vsql=insert into employees(emp_name,sex,nationality,birth,political_party,;vsql=vsql+culture_level,marital_condition,family_place,id_card,badgeid,office_phone,;vsql=vsql+mobile,files_keep_org,hukou,hiredate,dep_id,position,title,stat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論