| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1444 人关注过本帖
标题:[开源]动物园管理系统
只看楼主 加入收藏
zhangzujin
Rank: 1
等 级:新手上路
帖 子:276
专家分:0
注 册:2005-5-9
收藏
 问题点数:0 回复次数:0 
[开源]动物园管理系统

动物园管理系统

1. 准备工作

建立Access数据库zoo.mdb, 于中建表animal,字段如下:

2. 建立基本框架

Visual C++.Net中建立单文档、不支持文件的数据库视图、ODBC的客户端类型的MFC应用程序。建立数据源zoo,连接表animal.添加控件如图:

在类视图中添加如下代码进行数据库和界面之间的交互作用

void CZooManageView::DoDataExchange(CDataExchange* pDX)

{

CRecordView::DoDataExchange(pDX);

DDX_FieldText(pDX,IDC_idedit,m_pSet->m_id,m_pSet);

DDX_FieldText(pDX,IDC_nameedit,m_pSet->m_name,m_pSet);

DDX_FieldText(pDX,IDC_kindedit,m_pSet->m_kind,m_pSet);

DDX_FieldText(pDX,IDC_ageedit,m_pSet->m_age,m_pSet);

DDX_FieldText(pDX,IDC_sexedit,m_pSet->m_sex,m_pSet);

DDX_FieldText(pDX,IDC_placeedit,m_pSet->m_place,m_pSet);

DDX_FieldText(pDX,IDC_inforedit,m_pSet->m_infor,m_pSet);

}

3. 实现添加,修改,删除和查找功能

为实现添加、修改功能,添加对话框,定义类CaddDelete,添加控件如下图,分别将主控页的button控件的IDRecord菜单的子菜单的ID设为相同,从而可以只在一个地点编程而更加轻松。

现在编写程序了:

添加:

void CZooManageView::OnAdd()

{

CAddDelete dlg; // 创建CAddDelete的对象dlg

if(dlg.DoModal( )==IDOK) // 打开对话框

{

if(m_pSet->CanAppend( )) // 可以添加

{

m_pSet->AddNew( ); // 确认添加

// 设置各项

m_pSet->m_id=dlg.m_id;

m_pSet->m_name=dlg.m_name;

m_pSet->m_kind=dlg.m_kind;

m_pSet->m_sex=dlg.m_sex;

m_pSet->m_age=dlg.m_age;

m_pSet->m_place=dlg.m_place;

m_pSet->m_infor=dlg.m_infor;

m_pSet->Update( ); // 提交

AfxMessageBox("恭喜你,添加成功!"); // 弹出确认信息

UpdateData(false); // 更新浏览界面

}

else

AfxMessageBox("对不起,添加记录产生错误,请检查!");

}

}

修改:

void CZooManageView::OnModify()

{

CAddDelete dlg; // 创建CAddDelete的对象dlg

// 初始化对话框

dlg.m_id=m_pSet->m_id;

dlg.m_name=m_pSet->m_name;

dlg.m_kind=m_pSet->m_kind;

dlg.m_sex=m_pSet->m_sex;

dlg.m_age=m_pSet->m_age;

dlg.m_place=m_pSet->m_place;

dlg.m_infor=m_pSet->m_infor;

if(dlg.DoModal( )==IDOK) // 打开对话框

{

if(m_pSet->CanUpdate( )) // 确认能否修改

{

m_pSet->Edit( ); // 置数据库修改状态

// 修改各个属性

m_pSet->m_id=dlg.m_id;

m_pSet->m_name=dlg.m_name;

m_pSet->m_kind=dlg.m_kind;

m_pSet->m_sex=dlg.m_sex;

m_pSet->m_age=dlg.m_age;

m_pSet->m_place=dlg.m_place;

m_pSet->m_infor=dlg.m_infor;

m_pSet->Update( ); // 提交数据库

AfxMessageBox("恭喜你,修改成功!");

UpdateData(false); // 更新浏览界面

}

else

AfxMessageBox("修改失败!");

}

}

删除:

void CZooManageView::OnDelete()

{

if(AfxMessageBox("真的要删除么?",MB_YESNO)==IDYES) // 确认是否真的删除

{

if(m_pSet->CanUpdate( ))

m_pSet->Delete( );

m_pSet->MoveNext( );

// 异常处理

if(m_pSet->IsEOF( ))

m_pSet->MoveLast( );

if(m_pSet->IsBOF( ))

m_pSet->SetFieldNull(NULL);

UpdateData(false);

}

}

查询:

void CZooManageView::OnQuery()

{

CQuery dlg;

if(dlg.DoModal( )==IDOK)

{

if(dlg.m_name.GetLength( )==0) // 判断查询值是否为空

{

AfxMessageBox("请输入查询值!");

return;

}

m_pSet->MoveFirst( ); // 数据指针移动到第一个记录

while(!m_pSet->IsEOF( ))

{

if(m_pSet->m_name==dlg.m_name) // 找到了,赫赫,可以结束查询

{

AfxMessageBox("恭喜你,查找成功!");

UpdateData(false);

return;

}

m_pSet->MoveNext( );

}

AfxMessageBox("对不起,没有找到你要查找的动物!"); // 太可惜了,没找到

return;

}

}

4. 展示整体界面

搜索更多相关主题的帖子: 动物园 系统 开源 管理 
2005-12-30 00:02
快速回复:[开源]动物园管理系统
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021524 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved