学生信息管理C++连接ODBC与ACCESS.docx

上传人:b****1 文档编号:2091535 上传时间:2022-10-26 格式:DOCX 页数:12 大小:234.32KB
下载 相关 举报
学生信息管理C++连接ODBC与ACCESS.docx_第1页
第1页 / 共12页
学生信息管理C++连接ODBC与ACCESS.docx_第2页
第2页 / 共12页
学生信息管理C++连接ODBC与ACCESS.docx_第3页
第3页 / 共12页
学生信息管理C++连接ODBC与ACCESS.docx_第4页
第4页 / 共12页
学生信息管理C++连接ODBC与ACCESS.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

学生信息管理C++连接ODBC与ACCESS.docx

《学生信息管理C++连接ODBC与ACCESS.docx》由会员分享,可在线阅读,更多相关《学生信息管理C++连接ODBC与ACCESS.docx(12页珍藏版)》请在冰豆网上搜索。

学生信息管理C++连接ODBC与ACCESS.docx

学生信息管理C++连接ODBC与ACCESS

学生信息管理

1设计要求

(1)建立一个单文档数据库应用项目(项目名称为姓名拼音首字母缩写)。

(2)在菜单中增加“学生信息输入”、“学生信息查询”、“学生信息修改”、“学生信息删除”等菜单项。

(3)使用MFCODBC数据库编程。

(4)实现以学号为关键字对学生信息进行输入、查询、修改、删除等功能。

2数据库设计

2.1概念设计

根据设计要求,学生有五个元素,分别为学号,姓名,性别,年龄,性别和系别,其中学号是主键。

由以上分析可以得该系统的E-R关系图:

学生

姓名

学号

性别

年龄

系别

 

图1E-R关系图

2.2物理结构的设计

根据概念设计中的E-R图,可设计出如下表:

在ACCESS中定义表的物理结构如下:

图2学生信息表物理结构

2.3数据库的输入

在ACCESS中定义好物理结构后就可以输入数据,具体数据如下:

图3学生信息表

3程序设计

根据设计要求,本系统是利用VC来开发可视化界面,因此要将程序和数据库进行连接,这要使用ODBC工具将数据库设置数据源,在建立工程时选择数据库查看使用文件支持,在选择数据源时选择自己设置的数据源即可。

在主页面,连接学生信息表,在主页面对学生信息表操作就非常方便。

主页面如下:

图4主页面

3.1查询操作

查询操作的功能是输入学号,点击查询按钮,就可以显示出学生的基本信息。

图5查询操作

查询代码如下:

voidCScore_managementView:

:

OnBUTTONQuery()

{

intflag=1,t=0;

m_pSet->MoveFirst();

UpdateData(TRUE);

if(m_Sno.IsEmpty()){MessageBox("学号不能为空","学生管理系统",0);flag=0;}

while(flag==1)

{

CStringinfo="\0";

info="学号:

\t"+m_pSet->m_sno+"\n";

info+="姓名:

\t"+m_pSet->m_sn+"\n";

info+="性别:

\t"+m_pSet->m_sex+"\n";

info+="年龄:

\t"+m_pSet->m_age+"\n";

info+="系别:

\t"+m_pSet->m_dept+"\n";

if(m_Sno==m_pSet->m_sno)

{MessageBox(info,"查询到的记录如下:

",100);

flag=0;t=0;

}

else{t=1;}

m_pSet->MoveNext();

if(m_pSet->IsEOF()){flag=0;}

}

if(t==1){MessageBox("你输入的学号不存在","学生管理系统",0);}

}

3.2添加操作

添加操作是在点击添加按钮后,添加记录窗口跳出,在新窗口输入要添加的记录,点击确定按钮后,如果该学生的信息已存在(以学号判断),则提醒该学生信息已存在,如果添加成功,则跳出添加成功提示。

如图:

图6添加操作

添加代码如下:

voidCScore_managementView:

:

OnBUTTONAdd()

{CDlg1dlg;

if(dlg.DoModal()==IDOK)

{//按IDD_DIALOG1的"OK"按钮返回之后:

intflag=0;

m_pSet->MoveFirst();

UpdateData(TRUE);

while(!

m_pSet->IsEOF())

{if(dlg.m_AddSno==m_pSet->m_sno)

{flag=1;

MessageBox("该学生信息已存在","管理系统",0);

}

m_pSet->MoveNext();

}

if(flag==0)

{

m_pSet->AddNew();//先执行追加新记录的功能函数AddNew()

m_pSet->m_sno=dlg.m_AddSno;//给学号、姓名字段赋值:

m_pSet->m_sn=dlg.m_AddSn;

m_pSet->m_sex=dlg.m_AddSex;

m_pSet->m_age=dlg.m_AddAge;

m_pSet->m_dept=dlg.m_AddDept;

m_pSet->Update();//新记录写入数据库的数据表

m_pSet->Requery();//刷新记录集。

这将改动"物理"数据库。

MessageBox("添加成功","学生管理系统",0);

}

}

}

3.3删除操作

删除操作是点击删除按钮后,跳出删除窗口,在删除窗口中输入要删除学生信息的学号以及管理员密码,在多种提示后确认无误后删除,删除后会显示已删除提醒。

如图:

图7删除操作

图8学生信息提示图9确认操作提示

在删除操作中,必须输入密码才能进行删除操作,否则提示密码不正确,密码是唯一的,在本系统中,所有密码都是1234。

删除代码如下:

voidCScore_managementView:

:

OnBUTTONDelete()

{

CDlg2dlg;

if(dlg.DoModal()==IDOK)

{

intflag=1,t=0,flag1=0,flag2=0;

m_pSet->MoveFirst();

UpdateData(TRUE);

while(flag==1){

CStringinfo="\0";

info="学号:

\t"+m_pSet->m_sno+"\n";

info+="姓名:

\t"+m_pSet->m_sn+"\n";

info+="性别:

\t"+m_pSet->m_sex+"\n";

info+="年龄:

\t"+m_pSet->m_age+"\n";

info+="系别:

\t"+m_pSet->m_dept+"\n";

if(dlg.m_DleSno==m_pSet->m_sno)

{flag1=MessageBox(info,"请确认删除的学生信息:

",100);

flag=0;

t=0;}

else{t=1;}

m_pSet->MoveNext();

if(m_pSet->IsEOF()){flag=0;}

}

if(dlg.m_Code=="1234"){

if(t==1){MessageBox("你输入的学号不存在","学生管理系统",0);}

if(flag1==6){flag2=MessageBox("确定删除?

","学生管理系统",100);}

if(flag2==6){m_pSet->MovePrev();

m_pSet->Delete();

m_pSet->Requery();

MessageBox("已删除","学生管理系统",0);}

}

else{MessageBox("密码不正确","提示",0);}

}

}

3.4修改操作

修改操作是在主页面输入要修改的学生信息的学号(在查询条件处输入),点击修改按钮,跳出修改窗口,在窗口中会显示该学生现有的信息,将其修改后点击确定按钮,同样要输入管理员密码,否则提示密码不正确。

在修改后会提示以修改。

如图:

图10确认修改操作图11修改操作

修改代码如下:

voidCScore_managementView:

:

OnBUTTONModify()

{

intflag=1,t=0,tag=0;

m_pSet->MoveFirst();

UpdateData(TRUE);

m_Sno.TrimLeft();

if(m_Sno.IsEmpty())

MessageBox("学号不能为空","提示");

else

while(flag==1)

{

CStringinfo="\0";

info="学号:

\t"+m_pSet->m_sno+"\n";

info+="姓名:

\t"+m_pSet->m_sn+"\n";

info+="性别:

\t"+m_pSet->m_sex+"\n";

info+="年龄:

\t"+m_pSet->m_age+"\n";

info+="系别:

\t"+m_pSet->m_dept+"\n";

if(m_Sno==m_pSet->m_sno)

{tag=MessageBox(info,"要修改如下记录:

",100);

flag=0;

t=0;}

else{t=1;}

m_pSet->MoveNext();

if(m_pSet->IsEOF()){flag=0;}

};

if(t==1){MessageBox("你输入的学号不存在","学生管理系统",0);}

m_pSet->MovePrev();

CDlg3dlg;//工作对话框开始的程序:

if(tag==6)

{//

(1)将当前记录的各字段值拷贝到对话框的对应成员变量上:

UpdateData(TRUE);//激活对话框控件

dlg.m_CSno=m_pSet->m_sno;

dlg.m_CSn=m_pSet->m_sn;

dlg.m_CSex=m_pSet->m_sex;

dlg.m_CAge=m_pSet->m_age;

dlg.m_CDept=m_pSet->m_dept;

UpdateData(FALSE);//控件上的改变显示出来

//

(2)按对话框的"OK"按钮时返回,返回之后重置数据库该记录的修改值:

UpdateData(TRUE);

dlg.DoModal();

if(dlg.m_Code=="1234"){

m_pSet->Edit();

m_pSet->m_sno=dlg.m_CSno;

m_pSet->m_sn=dlg.m_CSn;

m_pSet->m_sex=dlg.m_CSex;

m_pSet->m_age=dlg.m_CAge;

m_pSet->m_dept=dlg.m_CDept;

m_pSet->Update();

m_pSet->Requery();

MessageBox("修改成功","学生管理系统",0);}

else{MessageBox("密码不正确","学生管理系统",0);}

}

}

3.5学生信息浏览

在主页面,我添加了一个学生信息浏览按钮,点击该按钮会在跳出的窗口中显示学生信息表,该表与数据库中的学生信息表连接,这样可以通过浏览该表来查看自己的删除,修改和添加等操作是否完成,同时可以通过它查看自己不熟悉学号的学生信息。

如图:

图12学生信息表

这个操作应用了RemoteData控件和DataGrid控件,通过RemoteData控件连接数据表,DataGrid控件连接RemoteData控件后显示数

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

当前位置:首页 > 自然科学 > 数学

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

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