收藏 分销(赏)

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

上传人:人****来 文档编号:10211368 上传时间:2025-04-27 格式:DOCX 页数:79 大小:32.52KB
下载 相关 举报
基于C的企业考勤管理系统的设计代码.docx_第1页
第1页 / 共79页
基于C的企业考勤管理系统的设计代码.docx_第2页
第2页 / 共79页
点击查看更多>>
资源描述
题目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;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服