教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

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

来源:网络收集 时间:2026-10-02
导读: 题目12 “公司员工考勤管理系统设计” 1、问题描述 某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。 定义一个将小时换成天数的类。转换规则:8小时转换为一天,12小时转换为1

题目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_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("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 CADODataSet

{

protected:

_RecoedsetPtr m_DataSet;

CADOConnection *m_Connection

public:

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 …… 此处隐藏:5275字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于C++的企业考勤管理系统的设计代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1932880.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)