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

下载本文档

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

文档简介

题目12 “公司员工考勤管理系统设计”1、问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。定义一个将小时换成天数的类。转换规则:8小时转换为一天,12小时转换为1.5天。可进行天数的加、减。定义一个记录员工生病、休假时间的类。其中包括:员工生病没工作的天数、生病可以不工作的最多天数、员工已经带薪休假的天数、员工可以带薪休假的天数。公司规定带薪休假不能超过24小时。生病可以不工作的最多不能超过16小时。设计一程序能够对公司人员的休假情况进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。2、功能要求(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。还可以添加带薪休假和生病休假的记录,每条记录中必须包含员工编号和姓名。(2)查询功能:可根据编号、姓名等信息对已添加的员工信息和休假信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录和休假记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,统计任一员工的休假天数等信息。(7)保存功能:可将当前系统中各类人员记录和休假记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。3、问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。#importmsado15.dll no_namespace rename(EOF,adoEOF)class CADOConnectionprivate:Static void InitADO();Static void UnInitADO();protected:_ConnectionPtr m_Connection;public:BOOL IsOpen();_ConnectionPtr GetConnection();Cstring GetSQLConstr(CString IP,CString DBName);BOOL Open(CString ConStr);CADOConnection();VirtualCADOConnection();CADOConnection*GetConnection();Int ConCount = 0;CADOConnection g_Connection;CADOConnection*GetConnection()Return & g_Connection;CADOConnection:CADOConnection()InitADO();m_Connection.CreateInstance(ADODB.Connection);CADOConnection:CADOConnection()If(IsOpen();m_Connection-Close();m_Connection = NULL;UnInitADO();Void CADOConnection:InitADO()If(ConCount + = 0)CoInitialize(NULL);void CADOConnection:UnInitADO()if(ConCount = 0)CoUninitialize();BOOL CADOConnection:Open(CString ConStr)if(IsOpen()m_Connection-Close();m_Connection-Open(_bstr_t)ConStr,adModeUnknown);return IsOpen();CString CADOConnection:GetSQLConStr(CString IP,CString DBName)CString Str;Str.Format(Provider = SQLOLEDB.1;Persist Security Info = False;User ID = sa;Initial Catalog = %s;Data Source = %s,DBName,IP);return Str;_ConnectionPtr CADOConnection:GetConnection()return m_Connection:BOOL CADOConnection:IsOpen()long State;m_Connection-get_State(&State);if(State = adStateOpen)return true;return false;class CADODataSetprotected:_RecoedsetPtr m_DataSet;CADOConnection *m_Connectionpublic:void Delete();int GetRecordNo();void move(int nIndex);void Save();void SetFieldValue(CString FieldName,_variant_t Value);void AddNew();BOOL Next();FieldsPtr GetFields();int GetRecordCount();void SetConnetion(CADOConnection *pCon);BOOL Open(CString SQLStr);CADODataSet();virtual CADODataSet();private:BOOL IsOpen();CADODataSet:CADODataSet()m_DataSet.CreateInstance(ADODB.Recordset);CADODataSet:CADODataSet()if(IsOpen()m_DataSet-Close();m_DataSet = NULL;m_Connection = NULL;void CADODataSet:SetConnection(CADOConnection *pCon)m_Connection = pCon;int CADODataSet:GetRecordCount()if(IsOpen()return m_DataSet-GetRecordCount();elsereturn 0;BOOL CADODataSet:Open(CString SQLStr)if(IsOpen)m_DataSet-Close();BOOL CADODataSet:IsOpen()long State;m_DataSet-get_State(&State);if(State = adStateOpen)return true;return false;FieldsPtr CADODataSet:GetFields()return m_DataSet-GetFields();BOOL CADODataSet:Next()if(m_DataSet-adoEOF)retuen false;m_DataSet-MoveNext();return true;void CADODataSet:AddNew()m_DataSet-AddNew();void CADODataSet:SetFieldValue(CString FieldName,_variant_t Value0)m_DataSet-PutCollect(_bstr_t)FieldName,Value);void CADODataSet:Save()m_DataSet-Upsate();void CADODataSet:Move(int nIndex)m_DataSet-MoveFirst();m_DataSet-Move(nIndex);int CADODataSet:GetRecordNO()return m_DataSet-AbsolutePositon;void CADODataSet:Delete()m_DateSet-Delete(adAffectCurent);BOOL CPersonApp:InitInstance()AfxEnableControlContainer();#ifdef_AFXDLLEnable3dControls();#elseEnable3dControlsStatic(); #endifLoadSkin();BOOLbCon=GetConnection()-Open(GetConnection()-GetSQLConStr(,tb_person);CLoginDialog logindlg;if(logindlg.DoModal()! = IDOK)return false;CPersonDlg dlg;m_pMainWnd =& dlg;int nResponse = dlg.DoModal();if(nResponse = IDOK)else if(nResponse = IDCANCEL)return FALSE; BOOL CLoginDialog:OnInitDialog()CDialog:OnInitDialog();m_DataSet.SetConnection(GetConnection();m_DataSet.Open(Select * From Tab_User);int count = m_DataSet.GetRecordCount();for(int i = 0;i ItemLUserName-Value);m_DataSet.Next();m_UserList.SetCurSel(0);return TRUE;void CLoginDialog:OnLogin()CString sql,user,pass;m_UserList.GetWindowText(user);m_passWord.GetWindowText(pass);sql.Format(Select * From tab_user Where UserName = %s and PassWord = %s,user,pass);m_DataSet.Open(sql);if(m_DataSet.GetRecordCount() = 1):SetUserName(user);this-OnOk(); elseAfxMessageBox;void CUserManage:UpdateGrid() m_DataSet.Open(Select * From tab_User); m_grid.DeleteAllItems(); for(int = 0;i ItemLUserName-Value);int no = m_DataSet.GetRecordNo();m_grid.SetItemData(i,no);m_DataSet.Next(); BOOL CUserManage:OnInitDialog() CDialog:OnInitDialog();m_grid.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_grid.InsertColumn(0,用户名);m_grid.SetColumnWidth(0,150);m_DataSet.SetConnection(:GetConnection();UpdateGrid();return TRUE; void CUserManage:OnAppend() CUserEdit useredit;if (useredit.DoModal() = IDOK)m_DataSet.AddNew();m_DataSet.SetFieldValue(UserName,(_bstr_t));m_DataSet.Save();UpdateGrid();void CUserManage:OnEdit() CUserEdit useredit;int no = m_grid.GetItemData(m_grid.GetSelectionMark();m_DataSet.move(no-1); = (char *)(_bstr_t)m_DataSet.GetFields()-ItemLUserName-Value;if (useredit.DoModal() = IDOK)m_DataSet.SetFieldValue(UserName,(_bstr_t));m_DataSet.Save();UpdateGrid();void CUserManage:OnDelete() if (MessageBox(是否删除此记录!,提示,MB_YESNO|MB_ICONWARNING) = IDYES)int no = m_grid.GetItemData(m_grid.GetSelectionMark();m_DataSet.move(no-1);m_DataSet.Delete();m_DataSet.Save();UpdateGrid();void CDeptManage:GetNode(HTREEITEM pNode,int nPid)HTREEITEM node;CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where pid = %d,nPid );DataSet.Open(str);int count = DataSet.GetRecordCount();int ID;_variant_t value;for(int i = 0;i ItemDeptName-Value,pNode);value = (_vaiant_t)DataSet.GetFields()-ItemID-Value;ID = Val;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next();void CDeptManage:UpdateDept()m_tree.DeleteAllItems();GetNode(TVI_ROOT,0);void CDeptManage:GetNode(HTREEITEM pNode,int nPid)HTREEITEM node;CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where pid = %d,nPid);DataSet.Open(str);int count = DataSet.GetRecordCount();int ID;_variant_t value;for (int i = 0;iItemDeptName-Value,pNode);value = (_variant_t)DataSet.GetFields()-ItemID-Value;ID = Val;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next();void CDeptManage:OnAdd() CDeptEdit deptedit;if (deptedit.DoModal() = IDOK)HTREEITEM pNode = m_tree.GetSelectedItem();int pID;if (deptedit.isroot)pID = 0;elsepID = m_tree.GetItemData(pNode);CADODataSet dataset;dataset.SetConnection(:GetConnection();dataset.Open(Select top 1 * From tab_Dept);dataset.AddNew();dataset.SetFieldValue(DeptName,(_variant_t));dataset.SetFieldValue(memo,(_variant_t)deptedit.memo);dataset.SetFieldValue(PID,(long)pID);dataset.Save();UpdateDept();void CDeptManage:OnEdit() CDeptEdit deptedit;deptedit.visible = false;HTREEITEM pNode = m_tree.GetSelectedItem();if (pNode = 0)return;int pID = m_tree.GetItemData(pNode);CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where id = %d,pID);dataset.Open(str); = (char *)(_bstr_t)dataset.GetFields()-ItemLDeptName-Value;deptedit.memo = (char *)(_bstr_t)dataset.GetFields()-Itemmemo-Value;if (deptedit.DoModal() = IDOK)dataset.SetFieldValue(DeptName,(_variant_t));dataset.SetFieldValue(memo,(_variant_t)deptedit.memo);dataset.Save();UpdateDept();void CDeptManage:OnDelete() HTREEITEM pNode = m_tree.GetSelectedItem();if (pNode = 0)return;if (MessageBox(是否删除此记录!,提示,MB_YESNO|MB_ICONWARNING) = IDYES)int pID = m_tree.GetItemData(pNode);CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where id = %d,pID);dataset.Open(str);dataset.Delete();dataset.Save();UpdateDept();void CPersonManage:OnSelchangedTreedept(NMHDR * pNMHDR,LRESULT * pResult)NM_TREEVIEW * pNMTreeView = (NM_TREEVIEW*)pNMHDR;m_DeptID = m_tree.GetItemData(pNMTreeView-itemNew.hItem);UpdatePerson();*pResult = 0;void CPersonManage:UpdatePerson()m_list.DeleteAllItems();CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;if(m_DeptID = -1)str.Format(Select * From tab_Employees);elsestr.Format(Select * From tab_Employees where Dept = %d,m_DeptID); DataSet.Open(str);int count = DataSet.GetRecordCount();int n = 0;_variant_t value;for(int i = 0;iItemEmp_Id-Value);value = DataSet.GetFields()-ItemAutoID-Value;m_list.SetItemData(n,value,lVal);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemEmp_NAME-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemSex-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemNationality-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemBirth-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemPolitical_Party-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemCulture_Level-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemMarital_Condition-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemId_Card-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemOffice_phone-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemMobile-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemHireDate-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemDuty-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemMemo-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemFiles_Keep_Org-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemHukou-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemFamily_Place-Value);n +;DataSet.Next();BOOL CPersonManage:OnInitDialog() CDialog:OnInitDialog();m_DeptID = -1;UpdateDept();int i = 0;m_list.InsertColumn(i,人员编号);m_list.SetColumnWidth(i+,80);m_list.InsertColumn(i,人员名称);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,性别);m_list.SetColumnWidth(i+,50);m_list.InsertColumn(i,民族);m_list.SetColumnWidth(i+,50);m_list.InsertColumn(i,出生日期);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,政治面貌);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,文化程度);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,婚姻状况);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,身份证号);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,办公电话);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,手机电话);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,到岗日期);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,职务);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,备注);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,家庭住址);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,档案所在地);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,户口所在地);m_list.SetColumnWidth(i+,100);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);UpdatePerson();return TRUE; BOOL CPersonManage:OnInitDialog() CDialog:OnInitDialog();m_DeptID = -1;UpdateDept();int i = 0;m_list.InsertColumn(i,人员编号);m_list.SetColumnWidth(i+,80);m_list.InsertColumn(i,人员名称);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,性别);m_list.SetColumnWidth(i+,50);m_list.InsertColumn(i,民族);m_list.SetColumnWidth(i+,50);m_list.InsertColumn(i,出生日期);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,政治面貌);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,文化程度);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,婚姻状况);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,身份证号);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,办公电话);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,手机电话);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,到岗日期);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,职务);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,备注);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,家庭住址);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,档案所在地);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,户口所在地);m_list.SetColumnWidth(i+,100);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);UpdatePerson();return TRUE; void CPersonManage:OnEdit() if (m_list.GetSelectionMark() = -1)return;int id = m_list.GetItemData(m_list.GetSelectionMark();CPersonEdit personedit;CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str;str.Format(select * from tab_Employees where autoid = %d,id);dataset.Open(str);personedit.m_id = (char *)(_bstr_t)dataset.GetFields()-ItemEmp_Id-Value;personedit.m_name = (char *)(_bstr_t)dataset.GetFields()-ItemEmp_NAME-Value;personedit.m_sex = (char *)(_bstr_t)dataset.GetFields()-ItemSex-Value;personedit.m_nationality = (char *)(_bstr_t)dataset.GetFields()-ItemNationality-Value;CString birth = (char *)(_bstr_t)dataset.GetFields()-ItemBirth-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);personedit.m_birth = tbirth;personedit.m_farty = (char *)(_bstr_t)dataset.GetFields()-ItemPolitical_Party-Value;personedit.m_culture = (char *)(_bstr_t)dataset.GetFields()-ItemCulture_Level-Value;personedit.m_marital = (char *)(_bstr_t)dataset.GetFields()-ItemMarital_Condition-Value;personedit.m_card = (char *)(_bstr_t)dataset.GetFields()-ItemId_Card-Value;personedit.m_office = (char *)(_bstr_t)dataset.GetFields()-ItemOffice_phone-Value;personedit.m_mobile = (char *)(_bstr_t)dataset.GetFields()-ItemMobile-Value;CString hire = (char *)(_bstr_t)dataset.GetFields()-ItemHireDate-Value;if (!hire.IsEmpty()/设置日期数据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);personedit.m_hire = thire;personedit.m_duty = (char *)(_bstr_t)dataset.GetFields()-ItemDuty-Value;personedit.m_memo = (char *)(_bstr_t)dataset.GetFields()-ItemMemo-Value;personedit.m_files = (char *)(_bstr_t)dataset.GetFields()-ItemFiles_Keep_Org-Value;personedit.m_hukou = (char *)(_bstr_t)dataset.GetFields()-ItemHukou-Value;personedit.m_family = (char *)(_bstr_t)dataset.GetFields()-ItemFamily_Place-Value;personedit.m_DeptData= dataset.GetFields()-ItemDept-Value;if (personedit.DoModal() = IDOK)dataset.SetFieldValue(Emp_Id,(_bstr_t)personedit.m_id);dataset.SetFieldValue(Emp_NAME,(_bstr_t)personedit.m_name);dataset.SetFieldValue(Sex,(_bstr_t)personedit.m_sex);dataset.SetFieldValue(Nationality,(_bstr_t)personedit.m_nationality);dataset.SetFieldValue(Birth,(_bstr_t)personedit.m_birth.Format(%Y-%m-%d);dataset.SetFieldValue(Political_Party,(_bstr_t)personedit.m_farty);dataset.SetFieldValue(Culture_Level,(_bstr_t)personedit.m_culture);dataset.SetFieldValue(Marital_Condition,(_bstr_t)personedit.m_marital);dataset.SetFieldValue(Id_Card,(_bstr_t)personedit.m_card);dataset.SetFieldValue(Office_phone,(_bstr_t)personedit.m_office);dataset.SetF

温馨提示

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

评论

0/150

提交评论