基于C的企业考勤管理系统的设计代码.docx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 企业 考勤 管理 系统 设计 代码
- 资源描述:
-
题目12“企业员工考勤管理系统设计” 1、问题描述 某企业需要存储雇员 编号、姓名、性别、所在部门,级别,并进行工资 计算。其中,雇员分为经理、技术人员、销售人员和销售经理。 定义一种将小时换整天数 类。转换规则:8小时转换为一天,12小时转换为1.5天。可进行天数加、减。 定义一种统计员工生病、休假时间类。其中涉及:员工生病没工作天数、生病能够不工作 最多天数、员工已经带薪休假 天数、员工能够带薪休假 天数。企业要求带薪休假不能超出二十四小时。生病能够不工作 最多不能超出16小时。 设计一程序能够对企业人员 休假情况进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件 输入/输出等内容。 2、功能要求 (1) 添加功能:程序能够任意添加上述四类人员 统计,可提供选择界面供顾客选择所要添加 人员类别,要求员工 编号要唯一,假如添加了反复编号 统计时,则提醒数据添加反复并取消 添加。还能够添加带薪休假和生病休假 统计,每条统计中必须涉及员工编号和姓名。 (2) 查询功能:可根据编号、姓名等信息对已添加 员工信息和休假信息进行查询,假如未找 到,给出相应 提醒信息,假如找到,则显示相应 统计信息; (3) 显示功能:可显示目前系统中全部统计,每条统计占据一行。 (4) 编辑功能:可根据查询成果对相应 统计进行修改,修改时注意编号 唯一性。 (5) 删除功能:主要实现对已添加 人员统计和休假统计进行删除。假如目前系统中没有相应 人员统计,则提醒“统计为空!”并返回操作。 (6) 统计功能:能根据多种参数进行人员 统计。例如,统计四类人员数量以及总数, 统计任一员工休假天数等信息。 (7) 保存功能:可将目前系统中各类人员统计和休假统计存入文件中,存入方式任意。 (8) 读取功能:可将保存在文件中 信息读入到目前系统中,供顾客进行使用。 3、问题处理方案 根据系统功能要求,能够将问题处理分为如下环节: (1) 应用系统分析,建立该系统 功能模块框图以及界面 组织和设计; (2) 分析系统中 各个实体及它们之间 关系; (3) 根据问题描述,设计系统 类层次; (4) 完毕类层次中各个类 描述; (5) 完毕类中各个组员函数定义; (6) 完毕系统应用模块; (7) 功能调试; (8) 完毕系统总结报告。 #import"msado15.dll" no_namespace rename("EOF,"adoEOF") class CADOConnection { private: 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(); Virtual CADOConnection(); }; 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(叩rovider = 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 CADODataSet { protected: _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(); else return 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一AFXDLL Enable3dControls(); #else Enable3dControlsStatic(); #endif LoadSkin(); BOOLbCon= ,"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 < count;i++) { m_UserList.AddString((_bstr_t)m_DataSet.GetFields()->Item[L"User Name"]->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(); } else AfxMessageBox; void CUserManage::UpdateGrid() m_DataSet.Open("Select *From tab_User"); m_grid.DeleteAllItems(); for(int = 0;i < m_DataSet.GetRecordCount();i++) {m_grid.InsertItem(i,(_bstr_t)m_DataSet.GetFields()->Item [L"UserName"]->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 (顾客名"); 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)useredit.name); m_DataSet.Save(); UpdateGrid(); } } void CUserManage::OnEdit() { CUserEdit useredit; int no = m_grid.GetItemData(m_grid.GetSelectionMark()); m_DataSet.move(no-1); useredit.name=(char *)(_bstr_t)m_DataSet.GetFields()->Item[L"UserName"]->Value; if (useredit.DoModal() == IDOK) { m_DataSet.SetFieldValue("UserName",(_bstr_t)useredit.name); 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("Selec*t From tab_Dept where pid = %d,nPid "); DataSet.Open(str); int count = DataSet.GetRecordCount(); int ID; _variant_t value; for(int i = 0;i < count;i++) { node= m_tree.InsertItem((bstr_t)DataSet.GetFields()->Item["DeptName"]->Value,pNode); value = (_vaiant_t)DataSet.GetFields()->Item["ID"]->Value; ID = value.intVal; 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;i<count;i++) { node= m_tree.InsertItem((_bstr_t)DataSet.GetFields()->Item["DeptName"]->Value,pNode); value = (_variant_t)DataSet.GetFields()->Item["ID"]->Value; ID = value.intVal; 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; else pID = m_tree.GetItemData(pNode); CADODataSet dataset; dataset.SetConnection(::GetConnection()); dataset.Open("Select top 1 * From tab_Dept"); dataset.AddNew(); dataset.SetFieldValue("DeptName",(_variant_t)deptedit.name); dataset.SetFieldValue("memo",(_variant_t)deptedit.memo); dataset.SetFieldValue(叩ID",(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); deptedit.name = (char *)(_bstr_t)dataset.GetFields()->Item[L"DeptName"]->Value; deptedit.memo = (char *)(_bstr_t)dataset.GetFields()->Item["memo"]->Value; if (deptedit.DoModal() == IDOK){ dataset.SetFieldValue("DeptName",(_variant_t)deptedit.name); 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"); else str.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;i<count;i++) { int index = 1; m_list.InsertItem(n,(_bstr_t)DataSet.GetFields()->Item[" Emp_Id"]->Value); value = DataSet.GetFields()->Item["AutoID"]->Value; m_list.SetItemData(n,value,lVal); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Emp_NAME"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Sex"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Nationality"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Birth"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item[叩olitical_Party"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Culture_Level"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Marital_Condition"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Id_Card"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Office_phone"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Mobile"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["HireDate"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Duty"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Memo"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Files_Keep_Org"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Hukou"]->Value); m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields( )->Item["Family_Place"]->Value); n ++; DataSet.Next(); } } BOOL CPersonManage::OnInitDialog() { CDialog::OnInitDialog(); m_DeptID = -1; UpdateDept(); int i = 0; m_list.InsertColumn 人,员编号"); m_list.SetColumnWidth(i++,80); m_list.InsertColumn 人员名称"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn 性别"); m_list.SetColumnWidth(i++,50); m_list.InsertColumn 民族"); m_list.SetColumnWidth(i++,50); m_list.InsertColumn出生日期"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn 政治面貌"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn 文化程度"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn 婚姻情况"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn 身份证号"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn 办公""); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i," "); m_list.SetColumnWidth(i++,1); m_list.InsertColumn到岗日期"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn 职务""); m_list.SetColumnWidth(i++,1); m_list.InsertColumn 备注"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn 家庭住址"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn 档案所在地"); m_list.SetColumnWidth(i++,1); m_list.InsertColumnH, 所在地"); m_list.SetColumnWidth(i++,1); 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++,1); 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++,1); m_list.InsertColumn(i,"政治面貌"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,"文化程度"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,"婚姻情况"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,"身份证号"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,"办公 "); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,"到岗日期"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,"职务"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,"备注"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,"家庭住址"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,"档案所在地"); m_list.SetColumnWidth(i++,1); m_list.InsertColumn(i,"户所在地”);m_list.SetColumnWidth(i++,1); 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()->Item["Emp_Id"]->Value; personedit.m_name=(char *)(_bstr_t)dataset.GetFields()->Item["Emp_NAME"]->Value; personedit.m_sex=(char *)(_bstr_t)dataset.GetFields()->Item["Sex"]->Value; personedit.m_nationality=(char *)(_bstr_t)dataset.GetFields()->Item["Nationality"]->Value; CStringbirth=(char *)(_bstr_t)dataset.GetFields()->Item["Birth"]->Value;展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




基于C的企业考勤管理系统的设计代码.docx



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/10211368.html