用户界面与业务逻辑的分离
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("员工信息非法!"); }
相关文章推荐
- 用户界面与业务逻辑的分离
- 第十五课、用户界面与业务逻辑的分离------------------狄泰软件学院
- 界面层与业务逻辑分离
- 简单设计模式实现业务逻辑与流程逻辑的分离
- MVC 下分离业务逻辑,优化修改
- 简单设计模式实现业务逻辑与流程逻辑的分离
- MVC3中把Control中的业务逻辑层BLL单独分离出来时引用注意事项!
- EF5 操作数据库,分离数据操作与业务逻辑
- 优雅的代码:将处理用户界面和处理业务逻辑的代码分开
- 业务逻辑与界面元素分离的一次小尝试
- 做Swing桌面程序,该怎样将组件与业务逻辑分离?
- 利用模板和成员函数指针进行业务逻辑分离一例
- UI与业务逻辑分离的另一种思路
- MVP:界面与业务逻辑分离在Winform中的应用
- UI和业务逻辑分离
- 业务系统设计要考虑的问题(二)分离业务逻辑服务层
- MFC(0)关于MFC中的界面与业务逻辑的分离
- 在 Laravel 5 中使用 Repository 模式实现业务逻辑和数据访问的分离
- 做Swing桌面程序,该怎样将组件与业务逻辑分离?
- Swift之控制器与业务逻辑分离