您的位置:首页 > 其它

用户界面与业务逻辑的分离

2012-03-07 16:04 357 查看
摘自《Visual C++视频技术方案宝典》1.1.1
class CStuff
{
public:
CStuff();
virtual ~CStuff();
private:
int     ID;          //工号
CString Name;        //名称
CString Sex;         //性别
CString Knowledge;   //学历
float   Wage;        //工资
public:
int GetID() const
{
return ID;
}
CString GetName() const
{
return Name;
}
CString GetSex() const
{
return Sex;
}
CString GetKnowledge() const
{
return Knowledge;
}
float GetWage() const
{
return Wage;
}

void SetID(int uID)
{
ID = uID;
}
void SetName(CString strName)
{
Name = strName;
}
void SetSex(CString strSex)
{
Sex = strSex;
}
void SetKnowledge(CString strKnowledge)
{
Knowledge = strKnowledge;
}
void SetWage(float fWage)
{
Wage = fWage;
}

};
class CStuffManage
{
public:
void SelectStuff(_RecordsetPtr pRecord);
BOOL DeleteStuff(CStuff& stuff);
BOOL UpdateStuff(CStuff& stuff,CStuff &oldstuff);
void IniStuff(CStuff& stuff);
BOOL AddStuff(CStuff& stuff);
BOOL ValidCheck(CStuff& stuff);
CStuffManage();
virtual ~CStuffManage();
};

//合法性检查
BOOL CStuffManage::ValidCheck(CStuff &stuff)
{
if (stuff.GetKnowledge().IsEmpty() || stuff.GetSex().IsEmpty()
|| stuff.GetName().IsEmpty()||stuff.GetWage()<0)
return FALSE;
else
return TRUE;
}

//添加员工信息
BOOL CStuffManage::AddStuff(CStuff &stuff)
{
CString sql;
sql.Format("insert into tb_StuffInfo values (%i, '%s','%s','%s',%f)",stuff.GetID(),stuff.GetName(),
stuff.GetSex(),stuff.GetKnowledge(),stuff.GetWage());
try
{
m_DataManage.ExecOpt(sql);
return TRUE;
}
catch(...)
{
return FALSE;
}
}
//初始化员工信息
void CStuffManage::IniStuff(CStuff &stuff)
{
stuff.SetID(0);
stuff.SetName("");
stuff.SetKnowledge("");
stuff.SetSex("");
stuff.SetWage(0.0);
}

//修改员工信息
BOOL CStuffManage::UpdateStuff(CStuff &stuff,CStuff &oldstuff)
{
CString sql;
sql.Format("update tb_StuffInfo set id = %i, name = '%s',sex = '%s', knowledge = '%s',wage = %f where id = '%s'",stuff.GetID(),stuff.GetName(),
stuff.GetSex(),stuff.GetKnowledge(),stuff.GetWage(),oldstuff.GetID());
try
{
m_DataManage.ExecOpt(sql);
return TRUE;
}
catch(...)
{
return FALSE;
}
}

//删除员工信息
BOOL CStuffManage::DeleteStuff(CStuff &stuff)
{
CString sql;
sql.Format("delete  tb_StuffInfo  where id = '%s'",stuff.GetID());
try
{
m_DataManage.ExecOpt(sql);
return TRUE;
}
catch(...)
{
return FALSE;
}
}

//查询员工信息
void CStuffManage::SelectStuff(_RecordsetPtr pRecord)
{
pRecord = m_DataManage.ExecSelect("select * from tb_StuffInfo");
}
void CStuffSysDlg::OnSavefinfo()
{
//提供员工信息
UpdateData();

m_Stuff.SetID(m_StuffID);

m_Stuff.SetName(m_StuffName);

CString sex;
m_StuffSex.GetWindowText(sex);
m_Stuff.SetSex(sex);

CString knowledge;
m_StuffKnowledge.GetWindowText(knowledge);

m_Stuff.SetKnowledge(knowledge);

m_Stuff.SetWage(m_StuffWage);

//检查员工信息的合法性
if (m_StuffManage.ValidCheck(m_Stuff))
{
//添加员工信息
if (m_StuffManage.AddStuff(m_Stuff))
MessageBox("员工信息添加成功");
else
MessageBox("员工信息添加失败");
OnClearinfo() ;
}
else
MessageBox("员工信息非法!");
}

  

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: