综合设计实验成语词典查询系统设计.docx

上传人:b****8 文档编号:10756347 上传时间:2023-02-22 格式:DOCX 页数:56 大小:85.18KB
下载 相关 举报
综合设计实验成语词典查询系统设计.docx_第1页
第1页 / 共56页
综合设计实验成语词典查询系统设计.docx_第2页
第2页 / 共56页
综合设计实验成语词典查询系统设计.docx_第3页
第3页 / 共56页
综合设计实验成语词典查询系统设计.docx_第4页
第4页 / 共56页
综合设计实验成语词典查询系统设计.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

综合设计实验成语词典查询系统设计.docx

《综合设计实验成语词典查询系统设计.docx》由会员分享,可在线阅读,更多相关《综合设计实验成语词典查询系统设计.docx(56页珍藏版)》请在冰豆网上搜索。

综合设计实验成语词典查询系统设计.docx

综合设计实验成语词典查询系统设计

综合设计实验成语词典查询系统设计

一、实验目的

1.了解SQL语言各语句的语法与使用方法;

2.掌握DataProvider和DataSet两个核心组件的常用属性、方法的含义及使用方法;

3.掌握利用DataProvider和DataSet两个核心组件实现数据库记录的插入、修改、删除的方法;

4.使学生能够通过老师讲过的内容灵活运用多种控件,实现对简单数据库的维护,能够自行调试,显示或保存实验结果。

并使学生更深入的掌握面向对象程序设计这门课程。

二、基本要求

(1)创建成语词典查询系统所需的表(成语词典表),并能连接上数据库。

(2)完成对所建成语词典表的插入、修改、删除功能

(3)完成对成语的精确和模糊查询

(4)完成对成语词典查询结果保存为Word文档及其导入成语词典。

(5)为完成上述功能,还需运用菜单、工具条等多种控件

三、实验步骤:

1.创建数据库:

打开SQLServerManagementStudio,创建数据库”成语字典库“然后新建一个名为成语字典表的表,如图1所示。

图1

2.创建项目:

在MicrosoftVisualStudio2010中创建一个名为“成语字典应用”的Windows窗体应用程序项目。

3.设计界面:

在空白窗体中添加菜单Button、Label、TextBox、ComboBox、RichTextBox、DataGridView、MenuStrip、SqlConnection、SqlDataAdapter、SqlCommand、SaveFileDialog、OpenFileDialog控件,对控件的属性进行修改,如表1所示。

并且对菜单栏上的选项设置快捷键和访问键。

控件名称

属性

属性值

MenuStrip

Items

浏览(查看所有、保存结果、退出)、查询(精确查询、模糊查询)、添加、删除、修改、退出

Label1

Text

选择查询方式:

GroupBox1

Text

操作界面

Label2

Text

设置查询值:

Label3

Text

显示界面:

Label4

Text

拼音:

Label5

Text

成语:

Label6

Text

备注:

Label7

Text

拼音简写:

Label8

Text

label8

button1

Text

精确查询

button2

Text

模糊查询

button3

Text

添加

button4

Text

修改

button5

Text

删除

button6

Text

导出到Word文件

Button7

Text

从Word文件中导入

comboBox1

Items

拼音、成语、备注、拼音简写

表1控件属性及属性值

图二

图二为进行整体布局后窗体效果图。

4.在Form1.h编写菜单、按钮、标签的事件(单击事件)。

(1)在窗体的头文件中引用System:

:

Data:

:

SqlClient命名空间后,才可以使用该命名空间内定义的如SqlConnection等类的对象。

因此需要在窗体的头文件中添加如下语句:

usingnamespaceSystem:

:

Data:

:

SqlClient;

因为要有文件的导出和导入所以要在命名空间部分加上:

usingnamespaceSystem:

:

IO;

并且在窗体类中要定义一个SqlConnection^类型的对象con,并在Form1类的构造函数中进行初始化。

代码如下所示。

Form1(void)

{

InitializeComponent();

//

//TODO:

在此处添加构造函数代码

//

con=gcnewSqlConnection();

con->ConnectionString=L"DataSource=.;InitialCatalog=成语字典库;IntegratedSecurity=True";//用Connection控件链接到服务器名为”.“数据库名为“成语字典库“,用windows身份验证方式登陆

}

SqlConnection^con;//在窗体的头文件中定义一个con

(2)在视图设计器下点击菜单栏“浏览”双击“查看所有”便进入此按键的单击事件函数下编写代码。

private:

System:

:

Void查看所有ToolStripMenuItem_Click(System:

:

Object^sender,System:

:

EventArgs^e)

{

String^sql="select*from成语字典表";//定义了sql字符串,其内容为sqlsever数据库的查询语句

DataSet^ds=gcnewDataSet();//定义了数据集的对象ds

SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con);

try//后面写可能发生的异常事件

{

ourda->Fill(ds,"zd");

this->dataGridView1->DataSource=ds->Tables["zd"];//dataGridView1中显示表中的内容

con->Open();;

if(con->State==ConnectionState:

:

Open)

{

String^sql="selectcount(*)from成语字典表";

SqlCommand^cmd=gcnewSqlCommand(sql,con);

String^myinformation="表中成语的总数是:

"+cmd->ExecuteScalar()->ToString()+"条";

label8->Text=myinformation;//label8显示表中成语的总数

if(con->State==ConnectionState:

:

Open)

con->Close();

}

}

catch(System:

:

Data:

:

SqlClient:

:

SqlException^ex)//显示异常信息

{

MessageBox:

:

Show("数据的异常信息是:

"+ex->Message,"提示信息");

}

}

(3)在视图设计器下点击菜单栏“查询”双击“精确查询”便进入此按键的单击事件函数下编写代码。

private:

System:

:

Void精确查询ToolStripMenuItem_Click(System:

:

Object^sender,System:

:

EventArgs^e)

{

String^sql="select*from成语字典表where"+comboBox1->Text+"='"+textBox1->Text+"'";

MessageBox:

:

Show(sql);//显示sql语句

DataTable^ourtable=gcnewDataTable();

SqlDataReader^rd;

SqlCommand^cmd=gcnewSqlCommand(sql,con);

SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con);

if(textBox1->Text=="")

{

MessageBox:

:

Show("请输入要查找成语的相关信息");

return;

}

Try//将查询到的数据添加到富文本框中为导出做准备

{con->Open();

rd=cmd->ExecuteReader();

if(rd->Read())

{

richTextBox1->Text+=rd["拼音"]->ToString()+"\t";

richTextBox1->Text+=rd["成语"]->ToString()+"\t";

richTextBox1->Text+=rd["备注"]->ToString()+"\t";

richTextBox1->Text+=rd["拼音简写"]->ToString()+"\n";

}

}

catch(System:

:

Data:

:

SqlClient:

:

SqlException^ex)

{

MessageBox:

:

Show("数据异常信息是:

"+ex->Errors,"提示信息");

return;

}

finally

{

rd->Close();

if(con->State==ConnectionState:

:

Open)

con->Close();

}

try

{

ourda->Fill(ourtable);

this->dataGridView1->DataSource=ourtable;

}

catch(System:

:

Data:

:

SqlClient:

:

SqlException^ex)

{MessageBox:

:

Show("数据异常信息是:

"+ex->Errors,"提示信息");}

}

(4)在视图设计器下点击菜单栏“查询”双击“模糊查询”便进入此按键的单击事件函数下编写代码。

模糊查询的代码只需将sql查询语句变为String^sql="select*from成语字典表where"+comboBox1->Text+"like'%"+textBox1->Text+"%'";

(5)在视图设计器下双击菜单栏里“添加”项便进入此按键的单击事件函数下编写代码。

private:

System:

:

Void添加ToolStripMenuItem_Click(System:

:

Object^sender,System:

:

EventArgs^e)

{

if(textBox3->Text=="")

{

MessageBox:

:

Show("添加的对象内容不能为空");

return;

}

try

{con->Open();

if(con->State==ConnectionState:

:

Open)

{

String^sql="insertinto成语字典表(拼音,成语,备注,拼音简写)values('"+textBox2->Text+"','"+textBox3->Text+"','"+textBox4->Text+"','"+textBox5->Text+"')";

MessageBox:

:

Show(sql);

SqlCommand^cmd=gcnewSqlCommand(sql,con);

cmd->ExecuteNonQuery();

MessageBox:

:

Show("添加成功记录");

}

}

catch(SqlException^ex)

{

MessageBox:

:

Show("数据的异常信息是:

"+ex->Message,"提示信息");

}

finally

{

if(con->State==ConnectionState:

:

Open)

con->Close();

}

}

(6)在视图设计器下双击菜单栏里“修改”项便进入此按键的单击事件函数下编写代码。

private:

System:

:

Void修改ToolStripMenuItem_Click(System:

:

Object^sender,System:

:

EventArgs^e)

{

String^sql="update成语字典表set"+comboBox1->Text+"='"+textBox2->Text+"'where"+comboBox1->Text+"='"+textBox1->Text+"'";;

MessageBox:

:

Show(sql);

DataTable^ourtable=gcnewDataTable();

SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con);

try

{ourda->Fill(ourtable);}

catch(System:

:

Data:

:

SqlClient:

:

SqlException^ex)

{MessageBox:

:

Show("数据的异常信息是:

"+ex->Message,"提示信息");}

}

(7)在视图设计器下双击菜单栏里“删除”项便进入此按键的单击事件函数下编写代码。

private:

System:

:

Void删除ToolStripMenuItem_Click(System:

:

Object^sender,System:

:

EventArgs^e)

{

if(comboBox1->Text==""||textBox1->Text=="")//选择删除方式和设置删除值不能为空

{

MessageBox:

:

Show("删除对象的内容不能为空");

return;

}

if(Windows:

:

Forms:

:

DialogResult:

:

OK!

=MessageBox:

:

Show("确定要删除记录吗?

","删除",MessageBoxButtons:

:

OKCancel))

{

return;//如果点击取消则返回

}

try

{con->Open();;

if(con->State==ConnectionState:

:

Open)

{

String^sql="deletefrom成语字典表where"+comboBox1->Text+"='"+textBox1->Text+"'";

MessageBox:

:

Show(sql);

SqlCommand^cmd=gcnewSqlCommand(sql,con);

cmd->ExecuteNonQuery();

MessageBox:

:

Show("您已经成功删除"+comboBox1->Text+"='"+textBox1->Text+"'"+"的记录");

}

}

catch(SqlException^ex)

{MessageBox:

:

Show("数据的异常信息是:

"+ex->Message,"提示信息");}

finally

{

if(con->State==ConnectionState:

:

Open)

con->Close();

}

}

(8)在视图设计器下双击菜单栏里“退出”项便进入此按键的单击事件函数下编写代码。

private:

System:

:

Void退出ToolStripMenuItem_Click(System:

:

Object^sender,System:

:

EventArgs^e)

{

this->Close();

}

(9)在视图设计器下双击“导出到Word文件”按钮便进入此按键的单击事件函数下编写代码,思路是将富文本框中的内容导出到word。

private:

System:

:

Voidbutton6_Click(System:

:

Object^sender,System:

:

EventArgs^e)

{

if(saveFileDialog1->ShowDialog()==Windows:

:

Forms:

:

DialogResult:

:

OK)

{

StreamWriter^str=File:

:

CreateText(saveFileDialog1->FileName);

str->Write(richTextBox1->Text);//内容从richTextBox1写入到word

str->Close();

}

}

(10)在视图设计器下双击“从Word文件中导入”按钮便进入此按键的单击事件函数下编写代码。

private:

System:

:

Voidbutton7_Click(System:

:

Object^sender,System:

:

EventArgs^e)

{

openFileDialog1->InitialDirectory="E:

\\";//设置了起始目录

openFileDialog1->Filter="富文本文件(*.rtf)|*.rtf|文本文件(*.doc)|*.doc";//选择文件类型

if(System:

:

Windows:

:

Forms:

:

DialogResult:

:

OK==openFileDialog1->ShowDialog())

{

srtFileName=openFileDialog1->FileName;

StreamReader^sd=File:

:

OpenText(srtFileName);

this->richTextBox1->Text="";

this->richTextBox1->Text=sd->ReadToEnd();//内容添加到richTextBox1中

sd->Close();

}

}

四.窗体运行和调试

按下启动调试(F5)编译成功,如果有错误则应根据错误信息和位置找到错误并改正。

也可以利用设置断点的方式来进行排错。

我在程序调试过程中就遇到以下问题:

控件忘记添加,数据库的链接失败,对象引用有错误等。

在编写从word中导入的功能时遇到导入的内容如果是汉字就有错误,我就改用数据流的方式成功解决问题。

界面上的所有功能都可以使用达到了实验要求。

五.实验小结

本次实验的内容是在学习完C++与Windows窗体应用程序的基础知识数据库SQLServer之后一次各知识点结合的综合性实验。

本次实验运用所学知识对一些概念,一些知识点的理解更进一步加深。

能够通过老师讲的内容灵活运用多种控件,实现对简单数据库的维护,能够自行调试,显或保存实验结果。

对更深入的掌握面向对象程序设计这门课程有很大的帮助。

六.代码清单

Form1.h

#pragmaonce

namespace成语字典应用{

usingnamespaceSystem;

usingnamespaceSystem:

:

ComponentModel;

usingnamespaceSystem:

:

Collections;

usingnamespaceSystem:

:

Windows:

:

Forms;

usingnamespaceSystem:

:

Data;

usingnamespaceSystem:

:

Data:

:

SqlClient;

usingnamespaceSystem:

:

Drawing;

usingnamespaceSystem:

:

IO;

///

///Form1摘要

///

publicrefclassForm1:

publicSystem:

:

Windows:

:

Forms:

:

Form

{

public:

String^srtFileName;

Form1(void)

{

InitializeComponent();

//

//TODO:

在此处添加构造函数代码

//

con=gcnewSqlConnection();

con->ConnectionString=L"DataSource=.;InitialCatalog=成语字典库;IntegratedSecurity=True";

}

SqlConnection^con;

private:

System:

:

Data:

:

SqlClient:

:

SqlConnection^sqlConnection1;

public:

private:

System:

:

Data:

:

SqlClient:

:

SqlCommand^sqlSelectCommand1;

private:

System:

:

Data:

:

SqlClient:

:

SqlCommand^sqlInsertCommand1;

private:

System:

:

Data:

:

SqlClient:

:

SqlCommand^sqlUpdateCommand1;

private:

System:

:

Data:

:

SqlClient:

:

SqlCommand^sqlDeleteCommand1;

private:

System:

:

Data:

:

SqlClient:

:

SqlDataAdapter^sqlDataAdapter1;

private:

System:

:

Data:

:

SqlClient:

:

SqlCommand^sqlCommand1;

private:

System:

:

Windows:

:

Forms:

:

Label^label8;

private:

System:

:

Windows:

:

Forms:

:

Label^label6;

private:

System:

:

Windows:

:

Forms:

:

Label^label5;

private:

System:

:

Windows:

:

Forms:

:

Label^label4;

private:

System:

:

Windows:

:

Forms:

:

Button^button3;

private:

System:

:

Windows:

:

Forms:

:

Button^button4;

private:

System:

:

Windows:

:

Forms:

:

Button^button5;

private:

System:

:

Windows:

:

Forms:

:

Button^button6;

private:

System:

:

Windows:

:

Forms:

:

TextBox^textBox3;

private:

System:

:

Windows:

:

Forms:

:

Label^label7;

private:

System:

:

Windows:

:

Forms:

:

TextBox^textBox5;

private:

System:

:

Windows:

:

Forms:

:

TextBox^textBox2;

private:

System:

:

Windows:

:

Forms:

:

TextBox^textBo

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

当前位置:首页 > PPT模板 > 其它模板

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

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