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

上传人:b****6 文档编号:6934023 上传时间:2023-01-12 格式:DOCX 页数:36 大小:23.60KB
下载 相关 举报
基于C++的企业考勤管理系统的设计代码.docx_第1页
第1页 / 共36页
基于C++的企业考勤管理系统的设计代码.docx_第2页
第2页 / 共36页
基于C++的企业考勤管理系统的设计代码.docx_第3页
第3页 / 共36页
基于C++的企业考勤管理系统的设计代码.docx_第4页
第4页 / 共36页
基于C++的企业考勤管理系统的设计代码.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

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

《基于C++的企业考勤管理系统的设计代码.docx》由会员分享,可在线阅读,更多相关《基于C++的企业考勤管理系统的设计代码.docx(36页珍藏版)》请在冰豆网上搜索。

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

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

题目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)完成系统总结报告。

#import"msado15.dll"no_namespacerename("EOF,"adoEOF")

classCADOConnection

{

private:

StaticvoidInitADO();

StaticvoidUnInitADO();

protected:

_ConnectionPtrm_Connection;

public:

BOOLIsOpen();

_ConnectionPtrGetConnection();

CstringGetSQLConstr(CStringIP,CStringDBName);

BOOLOpen(CStringConStr);

CADOConnection();

Virtual~CADOConnection();

};

CADOConnection*GetConnection();

IntConCount=0;

CADOConnectiong_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();

}

VoidCADOConnection:

:

InitADO()

{

If(ConCount++==0)

CoInitialize(NULL);

};

voidCADOConnection:

:

UnInitADO()

{

if(~ConCount==0)

CoUninitialize();

};

BOOLCADOConnection:

:

Open(CStringConStr)

{

if(IsOpen())

m_Connection->Close();

m_Connection->Open((_bstr_t)ConStr,","adModeUnknown);

returnIsOpen();

}

CStringCADOConnection:

:

GetSQLConStr(CStringIP,CStringDBName)

{

CStringStr;

Str.Format("Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=%s;DataSource=%s",DBName,IP);

returnStr;

}

_ConnectionPtrCADOConnection:

:

GetConnection()

{

returnm_Connection:

}

BOOLCADOConnection:

:

IsOpen()

{

longState;

m_Connection->get_State(&State);

if(State==adStateOpen)

returntrue;

returnfalse;

}

classCADODataSet

{

protected:

_RecoedsetPtrm_DataSet;

CADOConnection*m_Connection

public:

voidDelete();

intGetRecordNo();

voidmove(intnIndex);

voidSave();

voidSetFieldValue(CStringFieldName,_variant_tValue);

voidAddNew();

BOOLNext();

FieldsPtrGetFields();

intGetRecordCount();

voidSetConnetion(CADOConnection*pCon);

BOOLOpen(CStringSQLStr);

CADODataSet();

virtual~CADODataSet();

private:

BOOLIsOpen();

};

CADODataSet:

CADODataSet()

{

m_DataSet.CreateInstance("ADODB.Recordset");

}

CADODataSet:

~CADODataSet()

{

if(IsOpen())

m_DataSet->Close();

m_DataSet=NULL;

m_Connection=NULL;

}

voidCADODataSet:

:

SetConnection(CADOConnection*pCon)

{

m_Connection=pCon;

}

intCADODataSet:

:

GetRecordCount()

{

if(IsOpen())

returnm_DataSet->GetRecordCount();

else

return0;

}

BOOLCADODataSet:

:

Open(CStringSQLStr)

{

if(IsOpen)

m_DataSet->Close();

}

BOOLCADODataSet:

:

IsOpen()

{

longState;

m_DataSet->get_State(&State);

if(State==adStateOpen)

returntrue;

returnfalse;

}

FieldsPtrCADODataSet:

:

GetFields()

{

returnm_DataSet->GetFields();

}

BOOLCADODataSet:

:

Next()

{

if(m_DataSet->adoEOF)

retuenfalse;

m_DataSet->MoveNext();

returntrue;

}

voidCADODataSet:

:

AddNew()

{

m_DataSet->AddNew();

}

voidCADODataSet:

:

SetFieldValue(CStringFieldName,_variant_tValue0)

{

m_DataSet->PutCollect((_bstr_t)FieldName,Value);

}

voidCADODataSet:

:

Save()

{

m_DataSet->Upsate();

}

voidCADODataSet:

:

Move(intnIndex)

{

m_DataSet->MoveFirst();

m_DataSet->Move(nIndex);

}

intCADODataSet:

:

GetRecordNO()

{

returnm_DataSet->AbsolutePositon;

}

voidCADODataSet:

:

Delete()

{

m_DateSet->Delete(adAffectCurent);

}

BOOLCPersonApp:

:

InitInstance()

{

AfxEnableControlContainer();

#ifdef_AFXDLL

Enable3dControls();

#else

Enable3dControlsStatic();

#endif

LoadSkin();

BOOLbCon=GetConnection()->Open(GetConnection()->GetSQLConStr("127.0.0.1","tb_person"));

CLoginDialoglogindlg;

if(logindlg.DoModal()!

=IDOK)

returnfalse;

CPersonDlgdlg;

m_pMainWnd=&dlg;

intnResponse=dlg.DoModal();

if(nResponse==IDOK)

{

}

elseif(nResponse==IDCANCEL)

{

}

returnFALSE;

}

BOOLCLoginDialog:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

m_DataSet.SetConnection(GetConnection());

m_DataSet.Open("Select*FromTab_User");

intcount=m_DataSet.GetRecordCount();

for(inti=0;i

{

m_UserList.AddString((_bstr_t)m_DataSet.GetFields()->Item[L"UserName"]->Value);

m_DataSet.Next();

}

m_UserList.SetCurSel(0);

returnTRUE;

}

voidCLoginDialog:

:

OnLogin()

{

CStringsql,user,pass;

m_UserList.GetWindowText(user);

m_passWord.GetWindowText(pass);

sql.Format("Select*Fromtab_userWhereUserName='%s'andPassWord='%s'",user,pass);

m_DataSet.Open(sql);

if(m_DataSet.GetRecordCount()==1)

{

:

:

SetUserName(user);

this->OnOk();

}

else

AfxMessageBox;

}

voidCUserManage:

:

UpdateGrid()

{

m_DataSet.Open("Select*Fromtab_User");

m_grid.DeleteAllItems();

for(int=0;i

{m_grid.InsertItem(i,(_bstr_t)m_DataSet.GetFields()->Item[L"UserName"]->Value);

intno=m_DataSet.GetRecordNo();

m_grid.SetItemData(i,no);

m_DataSet.Next();

}

}

BOOLCUserManage:

:

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();

returnTRUE;

}

voidCUserManage:

:

OnAppend()

{

CUserEdituseredit;

if(useredit.DoModal()==IDOK)

{

m_DataSet.AddNew();

m_DataSet.SetFieldValue("UserName",(_bstr_t)useredit.name);

m_DataSet.Save();

UpdateGrid();

}

}

voidCUserManage:

:

OnEdit()

{

CUserEdituseredit;

intno=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();

}

}

voidCUserManage:

:

OnDelete()

{

if(MessageBox("是否删除此记录!

","提示",

MB_YESNO|MB_ICONWARNING)==IDYES)

{

intno=m_grid.GetItemData(m_grid.GetSelectionMark());

m_DataSet.move(no-1);

m_DataSet.Delete();

m_DataSet.Save();

UpdateGrid();

}

}

voidCDeptManage:

:

GetNode(HTREEITEMpNode,intnPid)

{

HTREEITEMnode;

CADODataSetDataSet;

DataSet.SetConnection(:

:

GetConnection());

CStringstr;

str.Format("Select*Fromtab_Deptwherepid=%d,nPid");

DataSet.Open(str);

intcount=DataSet.GetRecordCount();

intID;

_variant_tvalue;

for(inti=0;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();

}

}

voidCDeptManage:

:

UpdateDept()

{

m_tree.DeleteAllItems();

GetNode(TVI_ROOT,0);

}

voidCDeptManage:

:

GetNode(HTREEITEMpNode,intnPid)

{

HTREEITEMnode;

CADODataSetDataSet;

DataSet.SetConnection(:

:

GetConnection());

CStringstr;

str.Format("Select*Fromtab_Deptwherepid=%d",nPid);

DataSet.Open(str);

intcount=DataSet.GetRecordCount();

intID;

_variant_tvalue;

for(inti=0;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();

}

}

voidCDeptManage:

:

OnAdd()

{

CDeptEditdeptedit;

if(deptedit.DoModal()==IDOK)

{

HTREEITEMpNode=m_tree.GetSelectedItem();

intpID;

if(deptedit.isroot)

pID=0;

else

pID=m_tree.GetItemData(pNode);

CADODataSetdataset;

dataset.SetConnection(:

:

GetConnection());

dataset.Open("Selecttop1*Fromtab_Dept");

dataset.AddNew();

dataset.SetFieldValue("DeptName",(_variant_t)deptedit.name);

dataset.SetFieldValue("memo",(_variant_t)deptedit.memo);

dataset.SetFieldValue("PID",(long)pID);

dataset.Save();

UpdateDept();

}

}

voidCDeptManage:

:

OnEdit()

{

CDeptEditdeptedit;

deptedit.visible=false;

HTREEITEMpNode=m_tree.GetSelectedItem();

if(pNode==0)

return;

intpID=m_tree.GetItemData(pNode);

CADODataSetdataset;

dataset.SetConnection(:

:

GetConnection());

CStringstr;

str.Format("Select*Fromtab_Deptwhereid=%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();

}

}

voidCDeptManage:

:

OnDelete()

{

HTREEITEMpNode=m_tree.GetSelectedItem();

if(pNode==0)

return;

if(MessageBox("是否删除此记录!

","提示",

MB_YESNO|MB_ICONWARNING)==IDYES)

{

intpID=m_tree.GetItemData(pNode);

CADODataSetdataset;

dataset.SetConnection(:

:

GetConnection());

CStringstr;

str.Format("Select*Fromtab_Deptwhereid=%d",pID);

dataset.Open(str);

dataset.Delete();

dataset.Save();

UpdateDept();

}

}

voidCPersonManage:

:

OnSelchangedTreedept(NMHDR*pNMHDR,LRESULT*pResult)

{

NM_TREEVIEW*pNMTreeView=(NM_TREEVIEW*)pNMHDR;

m_DeptID=m

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1