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

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

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

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

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

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

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

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

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

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

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_tr

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

当前位置:首页 > PPT模板 > 图表模板

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

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