基于C的企业考勤管理系统的设计代码可编辑_第1页
基于C的企业考勤管理系统的设计代码可编辑_第2页
基于C的企业考勤管理系统的设计代码可编辑_第3页
基于C的企业考勤管理系统的设计代码可编辑_第4页
基于C的企业考勤管理系统的设计代码可编辑_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、题目12“公司员工考勤管理系统设计”1、问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。定义一个将小时换成天数的类。转换规则:8小时转换为一天,12小时转换为1.5天。可进行天数的加、减。定义一个记录员工生病、休假时间的类。其中包括:员工生病没工作的天数、生病可以不工作的最多天数、员工已经带薪休假的天数、员工可以带薪休假的天数。公司规定带薪休假不能超过24小时。生病可以不工作的最多不能超过16小时。设计一程序能够对公司人员的休假情况进行管理,应用到继承、抽象类、虚函数、虚基类、多 态和文件的输入/输出等内容。2、

2、功能要求(1) 添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加 的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。还可以添加带薪休假和生病休假的记录,每条记录中必须包含员工编号和姓名。(2) 查询功能:可根据编号、姓名等信息对已添加的员工信息和休假信息进行查询,如果未找 到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5) 删除功能:主要实现对已添加的人员记录和休假记录进行删除

3、。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数, 统计任一员工的休假天数等信息。(7)保存功能:可将当前系统中各类人员记录和休假记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。3、问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的

4、定义;(6) 完成系统的应用模块;(7) 功能调试;(8) 完成系统总结报告。#importmsado15.dll no_n amespace ren ame(EOF,adoEOF) class CADOCo nn ectio nprivate:Static void In itADO();Static void UnIn itADO();protected:_Conn ectio nPtr m_Conn ecti on;public:BOOL IsOpe n();_Conn ectio nPtr GetC onn ecti on();Cstri ng GetSQLC on str(CStri

5、 ng IP,CStri ng DBName);BOOL Ope n(CStri ng Co nStr);CADOCo nn ectio n();VirtualCADOCo nn ectio n();CADOCo nn ectio n*GetCo nn ectio n();Int Con Cou nt = 0;CADOC onn ectio n g_Connection;CADOCo nn ectio n*GetCo nn ectio n() Retur n & g_Conn ecti on;CADOConnection : CADOConnection()In itADO();m_Co nn

6、 ectio n.Createl nsta nce(ADODB.Co nn ectio n);CADOConnection : CADOConnection()If(IsOpe n();m_C onn ectio n-Close();m_Co nn ection = NULL;UnIn itADO();Void CADOC onn ectio n:l nitADO()If(Co nCou nt + = 0)CoI nitialize(NULL);void CADOC onn ectio n:U nln itADO()if(Co nCou nt = 0)CoU nin itialize();;B

7、OOL CADOCo nn ectio n:Ope n(CStri ng Co nStr)if(IsOpe n()m_C onn ectio n-Close();m_Co nn ectio n-Ope n(_bstr_t)Co nStr,adModeU nknown); return IsOpe n();CStri ng CADOCo nn ectio n:GetSQLCo nStr(CStri ng IP,CStri ng DBName)CStri ng Str;Str.Format(Provider = SQLOLEDB.1;Persist Security Info False;User

8、 ID = sa;I ni tial Catalog = %s;Data Source = %s,DBName,IP);return Str;_Co nn ectio nPtr CADOCo nn ectio n:GetCo nn ectio n()return m_C onn ectio n:BOOL CADOCo nn ectio n:lsOpe n()long State;m_Conn ecti on-get_State(&State);if(State = adStateOpe n)return true;return false;class CADODataSetprotected:

9、_RecoedsetPtr m_DataSet;CADOCo nn ection *m_Co nn ectio npublic:void Delete();int GetRecordNo();void move(i nt nln dex);void Save();void SetFieldValue(CStri ng FieldName,_varia nt_t Value);void AddNew();BOOL Next();FieldsPtr GetFields();int GetRecordCou nt();void SetCo nn etio n(CADOCo nn ection *pC

10、o n);BOOL Ope n(CStri ng SQLStr);CADODataSet();virtual CADODataSet();private:BOOL IsOpe n();CADODataSet: CADODataSet()m_DataSet.Create In sta nce(ADODB.Recordset);CADODataSet: CADODataSet()if(IsOpe n()m_DataSet-Close();m_DataSet = NULL;m_Co nn ection = NULL;void CADODataSet:SetCo nn ectio n(CADOCo n

11、n ection *pC on)m_Conn ecti on = pCon;if(lsOpe n()return m_DataSet-GetRecordCou nt();elsereturn 0;BOOL CADODataSet:Ope n(CStri ng SQLStr)if(IsOpe n)m_DataSet-Close();BOOL CADODataSet:IsOpe n()long State;m_DataSet-get_State(&State);if(State = adStateOpe n)return true;return false;FieldsPtr CADODataSe

12、t:GetFields()BOOL CADODataSet:Next()if(m_DataSet-adoEOF)retue n false;m_DataSet-MoveNext();return true;void CADODataSet:AddNew()m_DataSet-AddNew();void CADODataSet:SetFieldValue(CStri ng FieldName,_varia nt_t ValueO)m_DataSet-PutCollect(_bstr_t)FieldName,Value);void CADODataSet:Save()m_DataSet-Upsat

13、e();void CADODataSet:Move( int nln dex)m_DataSet-Move( nln dex);int CADODataSet:GetRecordNO()retur n m_DataSet-AbsolutePosit on;void CADODataSet:Delete()m_DateSet-Delete(adAffectCure nt);BOOL CPerso nApp:l nitln sta nce()AfxE nableCo ntrolCo ntain er();#ifdef_AFXDLLEn able3dCo ntrols();#elseEn able3

14、dCo ntrolsStatic();#en difLoadSk in();BOOLbCo n=GetCo nn ectio n()-Ope n(GetCo nn ectio n()-GetSQLCo nStr(127.0.0.1,tb_perso n);CLog in Dialog logi ndlg;if(logi ndlg.DoModal()! = IDOK)return false;CPerso nDlg dlg;m_pMai nWnd =& dlg;int n Resp onse = dlg.DoModal();if(n Respo nse = IDOK)else if(n Resp

15、o nse = IDCANCEL)return FALSE;BOOL CLogi nDialog:O nln itDialog()CDialog:O nlni tDialog();m_DataSet.Open(Select * From Tab_User);int count = m_DataSet.GetRecordCo un t();for(i nt i = 0;i ltemLUserName-Value);m_DataSet.Next();m_UserList.SetCurSel(O);return TRUE; void CLog in Dialog:。nLog in()CStri ng

16、 sql,user,pass;m_UserList.GetWi ndowText(user);m_passWord.GetWi ndowText(pass);sql.Format(Select * From tab_user Where UserName = %s and Password=%s,user,pass);if(m_DataSet.GetRecordCou nt() = 1):SetUserName(user);this- On Ok();elseAfxMessageBox; void CUserMa nage:UpdateGrid()m_DataSet.Open(Select *

17、 From tab_User);m_grid.DeleteAllltems();for(i nt = 0;i ltemLUserName-Value);int no = m_DataSet.GetRecordNo();m_grid.SetltemData(i, no);m_DataSet.Next();BOOL CUserMa nage:O nlni tDialog()CDialog:O nlni tDialog();m_grid.SetExte ndedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_grid.lnsertColumn(0,用户名

18、);m_grid.SetColu mn Width(0,150);m_DataSet.SetC onn ectio n(:GetC onn ectio n();UpdateGrid();return TRUE;void CUserMa nage:O nAppe nd()CUserEdit useredit;if (useredit.DoModal() = IDOK)m_DataSet.AddNew();m_DataSet.SetFieldValue(UserName,(_bstr_t)useredit .n ame);m_DataSet.Save();UpdateGrid();void CUs

19、erMa nage:O nEdit()CUserEdit useredit;int no = m_grid.GetltemData(m_grid.GetSelectio nMark(); m_DataSet.move( no -1);(charuseredit .n ame=*)(_bstr_t)m_DataSet.GetFields()-ltemLUserName-Value;if (useredit.DoModal() = IDOK)m_DataSet.SetFieldValue(UserName,(_bstr_t)useredit. name); m_DataSet.Save();Upd

20、ateGrid();void CUserMa nage:O nDelete()if (MessageBox(是否删除此记录!,提示,MB_YESNO|MB_ICONWARNING) = IDYES) int no = m_grid.GetltemData(m_grid.GetSelectio nM ark();m_DataSet.move( no -1);m_DataSet.Delete();m_DataSet.Save();UpdateGrid();void CDeptMa nage:GetNode(HTREEITEM pNode,i nt nPid)HTREEITEM no de;CADO

21、DataSet DataSet;DataSet.SetCo nn ectio n(:GetC onn ectio n();CStri ng str;str.Format(Select * From tab_Dept where pid = %d,nPid );DataSet.Ope n(str);in t cou nt = DataSet.GetRecordCou nt();int ID;_varia nt_t value;for(i nt i = 0;i ltemDeptName-Value,pNode);value = (_vaia nt_t)DataSet.GetFields()-lte

22、mID-Value;ID = value.i ntVal;m_tree.SetltemData( no de,ID);GetNode( node,ID);DataSet.Next();void CDeptMa nage:UpdateDept()m_tree.DeleteAllltems();GetNode(TVI_ROOT,0);void CDeptMa nage:GetNode(HTREEITEM pNode,i nt n Pid)HTREEITEM no de;CADODataSet DataSet;str.Format(Select * From tab_Dept where pid =

23、 %d, nPid);DataSet.Ope n(str);in t cou nt = DataSet.GetRecordCou nt();int ID;_varia nt_t value;for (int i = 0;iltemDeptName-Value,pNode);value = (_varia nt_t)DataSet.GetFields()-ltemID-Value;ID = value.i ntVal;m_tree.SetltemData( no de,ID);GetNode( node,ID);DataSet.Next();void CDeptMa nage: On Add()

24、CDeptEdit deptedit;if (deptedit.DoModal() = IDOK)in t pID;pID = 0;elsepID = m_tree.GetltemData(pNode);CADODataSet dataset;dataset.SetCo nn ectio n(:GetC onn ectio n();dataset.Ope n(Select top 1 * From tab_Dept);dataset.AddNew();dataset.SetFieldValue(DeptName,(_varia nt_t)deptedit .n ame); dataset.Se

25、tFieldValue(memo,(_varia nt_t)deptedit.memo); dataset.SetFieldValue(PID,(lo ng)plD);dataset.Save();UpdateDept();void CDeptMa nage:O nEdit()CDeptEdit deptedit;deptedit.visible = false;return;in t pID = m_tree.GetltemData(pNode);CADODataSet dataset;dataset.SetC onn ectio n(:GetC onn ectio n();CStri ng

26、 str;str.Format(Select * From tab_Dept where id = %d,pID);dataset.Ope n( str);deptedit. name = (char *)(_bstr_t)dataset.GetFields()-ltemLDeptName-Value; deptedit.memo = (char *)(_bstr_t)dataset.GetFields()-Itemmemo-Value;if (deptedit.DoModal() = IDOK)dataset.SetFieldValue(DeptName,(_varia nt_t)depte

27、dit .n ame);dataset.SetFieldValue(memo,(_varia nt_t)deptedit.memo);dataset.Save();UpdateDept();void CDeptMa nage:O nDelete()HTREEITEM pNode = m_tree.GetSelectedItem();if (pNode = 0)return;MB_YESNO|MB_ICONWARNING) = IDYES)in t pID = m_tree.GetltemData(pNode);CADODataSet dataset;dataset.SetCo nn ectio

28、 n(:GetC onn ectio n();CStri ng str;str.Format(Select * From tab_Dept where id = %d,pID); dataset.Ope n( str);dataset.Delete();dataset.Save();UpdateDept();voidpResult)CPersonManage:OnSelchangedTreedept(NMHDR * pNMHDR,LRESULT*NM_TREEVIEW * pNMTreeView = (NM_TREEVIEW*)pNMHDR;m_DeptlD = m_tree.GetltemD

29、ata(pNMTreeView-itemNew.hltem);UpdatePers on();pResult = 0;void CPers onMan age:UpdatePers on() mist.DeleteAllltems();CADODataSet DataSet;DataSet.SetCo nn ectio n(:GetC onn ectio n();CStri ng str;if(m_DeptlD = -1)str.Format(Select * From tab_Employees);elseDeptstr.Format(Select * From tab_Employees

30、where=%d,m_DeptID);DataSet.Ope n(str);in t cou nt = DataSet.GetRecordCou nt();int n = 0;_varia nt_t value;for(i nt i = 0;iltemEmp_ld-Value);value = DataSet.GetFields()-ltemAutolD-Value;m_list.SetltemData( n,value,IVal);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ltemEmp_NAME-Value);m

31、_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ItemSex-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ItemNatio nality-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ItemBirth-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ltemP

32、olitical_Party-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ItemCulture_Level-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ltemMarital_Co nditio n-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ItemId_Card-Value);m_list.SetltemText( n,i

33、n dex+,(_bstr_t)DataSet.GetFields( )-ltemOffice_pho ne-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ItemMobile-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ItemHireDate-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ltemDuty-Value);m_li

34、st.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ltemMemo-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ltemFiles_Keep_Org-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ltemHukou-Value);m_list.SetltemText( n,in dex+,(_bstr_t)DataSet.GetFields( )-ltemF

35、amily_Place-Value);n +;DataSet.Next();BOOL CPerso nMan age: :Onln itDialog()CDialog:O nlni tDialog();m_DeptID = -1;UpdateDept();int i = 0;m_list.lnsertColumn(i,人员名称); m_list.SetColum nWidth(i+,100);m_list.I nsertColum n( i,性别); m_list.SetColum nWidth(i+,50);m_list.InsertColumn(i,民族); m_list.SetColum

36、 nWidth(i+,50);m_list.InsertColumn(i,出生日期); m_list.SetColum nWidth(i+,100);m_list.InsertColumn(i,政治面貌); m_list.SetColum nWidth(i+,100);m_list.InsertColumn(i,文化程度);m_list.SetColum nWidth(i+,100);m_list.lnsertColumn(i,身份证号); m_list.SetColum nWidth(i+,100);m_list.InsertColumn(i,办公电话); m_list.SetColum n

37、Width(i+,100);m_list.InsertColumn(i,手机电话); m_list.SetColum nWidth(i+,100);m_list.InsertColumn(i,到岗日期); m_list.SetColum nWidth(i+,100);m_list.I nsertColum n( i,职务); m_list.SetColum nWidth(i+,100);m_list.I nsertColum n( i,备注); m_list.SetColum nWidth(i+,100);m_list.SetColum nWidth(i+,100);m_list.lnsert

38、Column(i,户口所在地);m_list.SetColum nWidth(i+,100);m_list.SetExte ndedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);UpdatePers on();return TRUE;BOOL CPerso nMan age: :Onln itDialog()CDialog:O nlni tDialog();m_DeptlD = -1;UpdateDept();int i = 0;m_list.SetColum nWidth(i+,100);m_list.l nsertColum n( i,性别);m

39、_list.SetColum nWidth(i+,50);m_list.I nsertColum n( i,民族);m_list.SetColum nWidth(i+,50);m_list.InsertColumn(i,出生日期);m_list.SetColum nWidth(i+,100);m_list.InsertColumn(i,政治面貌);m_list.SetColum nWidth(i+,100);m_list.InsertColumn(i,文化程度);m_list.SetColum nWidth(i+,100);m_list.InsertColumn(i,婚姻状况);m_list.

40、SetColum nWidth(i+,100);m_list.SetColum nWidth(i+,100);m_list.lnsertColumn(i,手机电话);m_list.SetColum nWidth(i+,100);m_list.InsertColumn(i,到岗日期);m_list.SetColum nWidth(i+,100);m_list.I nsertColum n( i,职务);m_list.SetColum nWidth(i+,100);m_list.I nsertColum n( i,备注);m_list.SetColum nWidth(i+,100);m_list.

41、InsertColumn(i,家庭住址);m_list.SetColum nWidth(i+,100);m_list.InsertColumn(i,档案所在地);m_list.SetColum nWidth(i+,100);m_list.SetExte ndedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);UpdatePers on();return TRUE;void CPerso nMan age:O nEdit()if (mist.GetSelectio nM ark() = -1)return;int id = m_list.GetltemD

42、ata(m_list.GetSelectio nMark();CPers on Edit pers on edit;CADODataSet dataset;dataset.SetC onn ectio n(:GetC onn ectio n();CStri ng str;str.Format(select * from tab_Employees where autoid = %d,id);dataset.Ope n( str);(charpers on edit.m_id(charpers on edit.m_sex=*)(_bstr_t)dataset.GetFields()-ltemSe

43、x-Value;(charpers on edit.m _n atio nality=*)(_bstr_t)dataset.GetFields()-ItemNatio nality-Value;(charCStri ngbirth=*)(_bstr_t)dataset.GetFields()-ltemBirth-Value;if (!birth.IsEmpty()/设置日期数据int yy=atoi(birth. Left(4);int mm=atoi(birth.Mid(6,2);int dd=atoi(birth.Mid(9,2);CTime tbirth(yy,mm,dd,0,0,0);

44、pers on edit.m_birth = tbirth;(charpers on edit.m_farty=*)(_bstr_t)dataset.GetFields()-ltemPolitical_Party-Value;(charpers on edit.m_culture=*)(_bstr_t)dataset.GetFields()-ItemCulture_Level-Value;(charpers on edit.m_marital=(charpers on edit.m_office=*)(_bstr_t)dataset.GetFields()-ltemOffice_pho ne-

45、Value;(charpers on edit.m_mobile=*)(_bstr_t)dataset.GetFields()-ltemMobile-Value;(charCStri nghire=*)(_bstr_t)dataset.GetFields()-ltemHireDate-Value;if (!hire.lsEmpty()/设置日期数据int yy=atoi(hire.Left(4);int mm=atoi(hire.Mid(6,2);int dd=atoi(hire.Mid(9,2);CTime thire(yy,mm,dd,0,0,0);pers on edit.m_hire

46、= thire;pers on edit.m_duty =(char *)(_bstr_t)dataset.GetFields()-ltemDuty-Value;pers on edit.m_memo =(char *)(_bstr_t)dataset.GetFields()-ltemMemo-Value;pers on edit.m_files =pers on edit.m_family =(char *)(_bstr_t)dataset.GetFields()-ltemFamily_Place-Value;perso nedit.m_DeptData= dataset.GetFields

47、()-ltemDept-Value;if (pers on edit.DoModal() = IDOK)dataset.SetFieldValue(Emp_ld,(_bstr_t)pers on edit. md);dataset.SetFieldValue(Emp_NAME,(_bstr_t)perso nedit.m_name); dataset.SetFieldValue(Sex,(_bstr_t)pers on edit.m_sex);dataset.SetFieldValue(Natio nality,(_bstr_t)pers on edit.m _n atio nality)Jd

48、ataset.SetFieldValue(Birth,(_bstr_t)perso nedit.m_birth.Format(%Y-%m-%d);dataset.SetFieldValue(Political_Party,(_bstr_t)perso nedit.m_farty);dataset.SetFieldValue(Culture_Level,(_bstr_t)pers on edit.m_culture);l);dataset.SetFieldValue(ld_Card,(_bstr_t)perso nedit.m_card);dataset.SetFieldValue(Office

49、_ph on e,(_bstr_t)pers on edit.m_office); dataset.SetFieldValue(Mobile,(_bstr_t)perso nedit.m_mobile);dataset.SetFieldValue(HireDate,(_bstr_t)perso nedit.m_hire.Format(%Y -%m-%d);dataset.SetFieldValue(Duty,(_bstr_t)perso nedit.m_duty); dataset.SetFieldValue(Memo,(_bstr_t)pers on edit.m_memo);dataset

50、.SetFieldValue(Files_Keep_Org,(_bstr_t)pers on edit.m_files); dataset.SetFieldValue(Hukou,(_bstr_t)pers on edit.m_hukou);dataset.SetFieldValue(Family_Place,(_bstr_t)pers on edit.m_family); dataset.SetFieldValue(dept,pers on edit.m_DeptData); dataset.Save();UpdatePers on();void CPerso nMan age:O nDel

51、ete()if (MessageBox(是否删除此记录!,提示,MB_YESNO|MB_ICONWARNING) = IDYES)if (mist.GetSelectio nMark() = -1)return;int id = m_list.GetltemData(m_list.GetSelectio nMark();CADODataSet dataset;dataset.SetC onn ectio n(:GetC onn ectio n();CStri ng str;str.Format(select * from tab_Employees where autoid = %d,id);dataset.Ope n( str);dataset.Delete();dataset.Save();UpdatePers on();CTime CCheckMa nage:GetTimeForStr(CStri ng timestr) int h,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论