西安工程大学C++程序设计.docx
- 文档编号:12679872
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:17
- 大小:610.22KB
西安工程大学C++程序设计.docx
《西安工程大学C++程序设计.docx》由会员分享,可在线阅读,更多相关《西安工程大学C++程序设计.docx(17页珍藏版)》请在冰豆网上搜索。
西安工程大学C++程序设计
《《可视化程序设计》》
——综合实验报告
题目:
(实验四)数据库应用设
一、试验目的:
熟悉数据库应用程序的开发步骤;学会运用数据库组件结构中的数据集组件、数据源组件和数据控制组件;练习使用BCBDataBaseDesktop创建数据表、编辑数据表;练习使用BDEAdministrator设置、连接、管理数据;练习使用Query组件及SQL语句完成对数据库的查询。
二、实验内容:
1.编写一个通讯录应用程序,通讯录中的信息包括姓名、性别、院系、班级、地址、邮编、电话1、电话2、E_mail地址。
2.该通讯录应用程序应具有信息的查看、编辑功能。
3.该通讯录应用程序应具有对信息的添加和删除功能。
4.该通讯录应用程序应具有如下对信息的查找功能:
1)按院系查找,用户选择一个院系后应列出该系的所有班级户选择某一班级后应列出该班的所有学生信息。
2)按姓名查找。
3)按学号查找。
4)支持模糊查询。
三、试验步骤:
1.数据库的设计与建表:
通过“程序”中的BorlandC++Builder6中的BDEAdministator选项中的
“对象”中的“新建”,出现如图对话框,如图
(1)所示,选“确定”,之后修改数据库别名为“TongXunLu”,PATH改为E:
\C++Builder6程序\我的程序,(我的程序为新建文件夹),最后在“对象”选项卡中选“应用”,修改路径后如图
(一)所示。
图
(1)
图
(一)
2..新建一个BanJiMC表:
1)创建表结构:
通过“程序”中的BorlandC++Builder6中的DatabaseDesktop选项中的“文件”中的“新建”选项卡中的“表”,出现如图对话框,如图
(2)所示,选“OK”,之后建立表结构,如图(3)所示,最后点击SaveAs选择C++Builder6中的“我的程序”,选择BanJiMC文件进行保存。
2)之后创建表:
选项中“文件”中的“打开”选项卡中的“表”,选择“我的程序”->BanJiMC表,选择“编辑”,所见表如图(4)所示。
图
(2)
3)再顺次建立相关表结构以及创建表,如图(4)图(5)所示
图(3)
图(4)
图(5)
4)相应的表结构如下:
3..界面设计如图
(二)所示
1)界面设计如下所示
注意:
后面紧接的图是在浏览状态下的相关操作。
2)运行后的界面如下所示
3)进行相关操作以后的界面如下所示
(1)按学号模糊查找的实现。
(2)按姓名模糊查找的实现。
(3)按学院查找,实现相应的班级。
(4)按班级查找,实现相应的学生信息。
(4)浏览、编辑之间的应用。
(5)对数据表的相应操作——添加、删除、查找等的验证。
上图为学号的模糊查找到精确查找的实现——模糊查找成功!
上图为姓名模糊查找到精确查找的实现——模糊查找成功!
上图为编辑状态时添加信息的实现——添加成功!
上图为在编辑状态时删除信息的实现——删除时在确定后删除成功!
按班级查找相对应的人员通信信息——操作成功!
四、组件对象属性设计,与数据源组件的连接
组件名称
属性名称
属性的取值
TForm1
Caption
通讯录应用程序界面
TSpeedButton1
Caption
浏览
TSpeedButton2
Caption
编辑
TSpeedButton3
Caption
退出
TDBNavigator1
DataSource
Name
ShowHint
DataSourceTXDA
DBNavigatorTXDA
true
TLable1
Caption
选择院系
TLable2
Caption
选择班级
TComboBox1
Name
ComboBoxZymc
TQuery1
DatabaseName
Name
SQL
TongXunLu
QueryYXMC
Select*FromYuanXiMC
TDBGrid1
DataSource
Name
DataSourceBJMC
DBGridBJMC
TQuery2
DatabaseName
Name
SQL
TongXunLu
QueryBJMC
如下图(四)
TDataSource1
DataSet
Name
QueryBJMC
DataSourceBJMC
TLable3
Caption
可如下进行信息查找
TLable4
Caption
按学号查找
TLable5
Caption
按姓名查找
TQuery3
DatabaseName
Name
SQL
TongXunLu
QueryTXDA
Select*FromTongXunDA
TEdit1
Name
Text
EditXH
清空
TEdit2
实现事件代码的共享
Name
Text
OnExit事件
OnEnter事件
EditXM
清空
选择EditXHExit
选择EditXHEnter
TDBGrid2
DataSource
Name
DataSourceTXDA
DBGridTXDA
TTable1
Active
DatabaseName
Name
TableName
False
TongXunLu
TableTXDA
TongXunDA.DB
TDataSource2
DataSet
Name
TableTXDA
DataSourceTXDA
图(四)
五.相关代码如下
在TongXunDA表显示时,表头字段显示如下:
打开TDBGridTXDA组件的列名编辑器,加入所有字段,并设置各个列的Title属性中的Caption子属性,使DBGridTXDA现实的列标题为“学号”、“姓名”“性别”、“院系名称”、“班级名称”、“地址”、“邮政编码”、“TELL1”、“TELL2”“E-Mail”。
1).窗体的初始化,初始化代码完成表的打开和初始化下拉列表框
void__fastcallTForm1:
:
FormCreate(TObject*Sender)
{
QueryYXMC->Open();//打开查询
TableTXDA->Close();
TableTXDA->ReadOnly=true;//使表处于只读状态
TableTXDA->Open();
ComboBoxZymc->Items->Clear();//清空下拉列表框
QueryYXMC->First();
if(QueryYXMC->Eof&&QueryYXMC->Bof)
return;//表为空表
while(!
QueryYXMC->Eof)//记录指针不在表尾时循环
{//将当前记录的YuanXiMingCheng字段的值加入到列表,获取院系名称ComboBoxZymc->Items->Add(QueryYXMC->FieldByName
("YuanXiMingCheng")->AsString);
QueryYXMC->Next();//记录指针下移一个记录
}
ComboBoxZymc->ItemIndex=0;//设置列表索引
ComboBoxZymcClick(Sender);
}
//---------------------------------------------------------------------------
2).设置快捷按钮的一组相关属性——将GropIndex属性均设置为1,使只有一个按钮处于按下状态
void__fastcallTForm1:
:
spbtnLLClick(TObject*Sender)
{
TableTXDA->Close();
TableTXDA->ReadOnly=true;//使表处于浏览状态
TableTXDA->Open();
}
//---------------------------------------------------------------------------
void__fastcallTForm1:
:
spbtnBJClick(TObject*Sender)
{
TableTXDA->Close();
TableTXDA->ReadOnly=false;//使表处于编辑状态
TableTXDA->Open();
}
//---------------------------------------------------------------------------
void__fastcallTForm1:
:
spbtnExitClick(TObject*Sender)
{
Close();
}
//---------------------------------------------------------------------------
3).用ComboBoxZymc的OnClick事件实现选择院系时,表格中出现相应的班级信息,注意此处选择SQL属性的动态传参来实现
void__fastcallTForm1:
:
ComboBoxZymcClick(TObject*Sender)
{//显示所选院系相应的班级信息,设置QuerBJMC的ParamByName属性实现相应班级的出现
QueryBJMC->Close();//准备给动态参数赋值QueryBJMC->ParamByName("YXMC")->AsString=ComboBoxZymc->Text;
QueryBJMC->Open();//执行查询
}
//---------------------------------------------------------------------------
4).在选择班级时,显示对应人员信息
void__fastcallTForm1:
:
QueryBJMCAfterScroll(TDataSet*DataSet)
{//改变QueryBJBM的记录位置时,使用过滤功能更新TableTXDA中的显示的信息
TableTXDA->Close();
if(QueryBJMC->Eof&&QueryBJMC->Bof)//表为空表
TableTXDA->Filtered=false;//不显示任何信息
else
{TableTXDA->Filter="BanJiMingCheng="+QueryBJMC->
FieldByName("BanJiMingCheng")->AsString;
//在TongXunDA中显示与BanJiMC中BanJiMingCheng字段的相同的信息
TableTXDA->Filtered=true;
}
TableTXDA->Open();
}
//---------------------------------------------------------------------------
5).在EditXH组件的OnEnter事件中实现模糊查找时数据集的重新赋值
void__fastcallTForm1:
:
EditXHEnter(TObject*Sender)
{//按学号模糊查找的实现
//进入编辑栏时
TableTXDA->Close();//关闭TableTXDA衔接的TXDA数据表
DataSourceTXDA->DataSet=QueryTXDA;
//修改DataSet给TableTXDA,以实现SQL的模糊查询语句
TableTXDA->Open();
}
//---------------------------------------------------------------------------
6).在EditXH组件的OnChange事件中实现模糊查找——学号、姓名
void__fastcallTForm1:
:
EditXHChange(TObject*Sender)
{//编辑栏每次被修改时
QueryTXDA->Close();//关闭数据表
QueryTXDA->SQL->Clear();//清空SQL语句
QueryTXDA->SQL->Add("Select*FromTongXunDAwhereXueHaolike'%"+EditXH->Text+"%'");//添加模糊查询语句
QueryTXDA->Open();//执行查询
}
//---------------------------------------------------------------------------
void__fastcallTForm1:
:
EditXMEnter(TObject*Sender)
{//按姓名模糊查找的实现
//实现代码的共享
}
//---------------------------------------------------------------------------
void__fastcallTForm1:
:
EditXMChange(TObject*Sender)
{
QueryTXDA->Close();//关闭数据表
QueryTXDA->SQL->Clear();//清空SQL语句
QueryTXDA->SQL->Add("Select*FromTongXunDAwhereXingMinglike'%"+EditXM->Text+"%'");//添加模糊查询语句
QueryTXDA->Open();//执行查询
}
//---------------------------------------------------------------------------
void__fastcallTForm1:
:
EditXMExit(TObject*Sender)
{//离开编辑栏时
//实现代码的共享
}
//---------------------------------------------------------------------------
void__fastcallTForm1:
:
EditXHExit(TObject*Sender)
{//离开编辑栏时
TableTXDA->Close();//关闭QueryTXDA衔接的TXDA数据表
DataSourceTXDA->DataSet=TableTXDA;//恢复DataSet
TableTXDA->Open();
}
//---------------------------------------------------------------------------
六.运行结果及分析
1).按姓名查找可以实现。
2).按学号查找可以实现。
3).按学号查找和按姓名查找均支持模糊查找。
4).实现了浏览状态和编辑状态的改变——此两种状态作用均可实现。
5).当状态出于编辑状态时,察看、添加和删除功能均可实现。
6).选择院系时,没有实现相应班级的显示,但是,当选择相应的班级时,可以实现相应人员信息的显示。
七.个人对此作业的评价——非常满意!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西安 工程 大学 C+ 程序设计