c++课程设计2Word格式文档下载.docx
- 文档编号:20526976
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:16
- 大小:185.25KB
c++课程设计2Word格式文档下载.docx
《c++课程设计2Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c++课程设计2Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
1.查询时可实现模糊查询,查询结果以表格的形式显现给用户。
如果没有满足条件的图书,则应给出提示,提示可使用消息框的形式。
2.模糊查询:
只要输入查询条件的部分内容,即可查询所有包含该条件的图书。
VC中界面的操作与管理
1.启动VC6.0
使用基于对话框的开发模式,出现下面的对话框:
2.先删除无用的出事空间,然后再空间工具栏中选择相应的空间添加到对话框的面板上,并对这些按钮、编辑栏等进行布局。
3,设计界面,添加类向导,在每个类中添加OnInitDialog()函数
设置登陆的类位CPengDlg
在主程序中peng.cpp判断登录条件代码如下:
BOOLCPengApp:
:
InitInstance()
{
AfxEnableControlContainer();
ADOConnm_adoconn;
CPengDlgdlg;
//inti=0;
if(dlg.DoModal()==IDOK)
{
CStringsqlstr;
try
{
sqlstr.Format("
select*fromMANAGERwhereMPASSWORD='
%s'
andMID='
"
dlg.m_password,dlg.m_id);
_RecordsetPtrm_pRs;
m_pRs=m_adoconn.GetRecordSet((_bstr_t)sqlstr);
//执行查询
CStringstr1,str2;
str1=(LPCTSTR)(_bstr_t)(m_pRs->
GetCollect("
MPASSWORD"
));
str2=(LPCTSTR)(_bstr_t)(m_pRs->
MID"
str1.TrimRight();
//去掉空字符
str2.TrimRight();
if(str2==dlg.m_id||str1==dlg.m_password)
{
//AfxMessageBox("
登陆成功"
);
CSUCCESSDlgdlg;
dlg.m_id=str2;
dlg.m_name=(LPCTSTR)(_bstr_t)(m_pRs->
MNAME"
dlg.DoModal();
}
else
{
AfxMessageBox("
登陆失败"
returnfalse;
}
}
catch(...)//异常处理
ID或密码输入错误!
}
returntrue;
}
如果上述验证成功转到登录成功界面如下:
显示相关信息,然后点击确定登录到主界面:
点击相关按钮可以跳转到不同的界面
一.点击查询显示页面如下(类名为CLOOKDlg):
实现查询功能代码如下:
voidCLOOKDlg:
DoDataExchange(CDataExchange*pDX)
CDialog:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLOOKDlg)
DDX_Control(pDX,IDC_LIST1,m_resultlist1);
DDX_Text(pDX,IDC_CONDITION,m_condition);
DDX_CBString(pDX,IDC_COMBO1,m_combo);
//}}AFX_DATA_MAP
BEGIN_MESSAGE_MAP(CLOOKDlg,CDialog)
//{{AFX_MSG_MAP(CLOOKDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CLOOKDlgmessagehandlers
BOOLCLOOKDlg:
OnInitDialog()
OnInitDialog();
inti=0;
m_resultlist1.ModifyStyle(0,LVS_REPORT);
m_resultlist1.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES);
m_resultlist1.InsertColumn(0,"
书号"
0,100);
m_resultlist1.InsertColumn(1,"
书名"
m_resultlist1.InsertColumn(2,"
作者"
m_resultlist1.InsertColumn(3,"
出版社"
m_resultlist1.InsertColumn(4,"
借阅状态"
CComboBox*pComb=(CComboBox*)GetDlgItem(IDC_COMBO1);
pComb->
AddString("
SetCurSel(0);
ADOConnado;
_RecordsetPtrm_recordset;
CStringsql="
select*frombook"
;
m_recordset=ado.GetRecordSet((_bstr_t)sql);
ado.OnInitADOConn();
while(!
m_recordset->
adoEOF)
CStringc1=(LPCTSTR)(_bstr_t)m_recordset->
BNO"
CStringc2=(LPCTSTR)(_bstr_t)m_recordset->
BNAME"
CStringc3=(LPCTSTR)(_bstr_t)m_recordset->
WRITER"
CStringc4=(LPCTSTR)(_bstr_t)m_recordset->
PUBLISH"
CStringc5=(LPCTSTR)(_bstr_t)m_recordset->
REGISTER"
m_resultlist1.InsertItem(i,"
m_resultlist1.SetItemText(i,0,c1);
m_resultlist1.SetItemText(i,1,c2);
m_resultlist1.SetItemText(i,2,c3);
m_resultlist1.SetItemText(i,3,c4);
m_resultlist1.SetItemText(i,4,c5);
m_recordset->
MoveNext();
returntrue;
OnOK()
//TODO:
Addextravalidationhere
//CDialog:
OnOK();
UpdateData(TRUE);
m_resultlist1.DeleteAllItems();
CStringtemp;
CStringsqlstr;
intn=pComb->
GetCurSel();
switch(n)
case0:
temp="
break;
case1:
case2:
case3:
case4:
//if(m_condition=="
)
//{
//MessageBox("
请输入查询条件!
//return;
//}
sqlstr.Format("
select*frombookwhere%slike'
%%%s%%'
temp,m_condition);
intk=0;
intcount=0;
m_recordset=ado.GetRecordSet((_bstr_t)sqlstr);
count++;
CStringw1=(LPCTSTR)(_bstr_t)m_recordset->
CStringw2=(LPCTSTR)(_bstr_t)m_recordset->
CStringw3=(LPCTSTR)(_bstr_t)m_recordset->
CStringw4=(LPCTSTR)(_bstr_t)m_recordset->
CStringw5=(LPCTSTR)(_bstr_t)m_recordset->
m_resultlist1.SetItemText(i,0,w1);
m_resultlist1.SetItemText(i,1,w2);
m_resultlist1.SetItemText(i,2,w3);
m_resultlist1.SetItemText(i,3,w4);
m_resultlist1.SetItemText(i,4,w5);
UpdateData(FALSE);
k++;
if(count>
0)
CStringstr;
str.Format("
找到%d条记录!
count);
MessageBox(str);
else
MessageBox("
没有找到相关记录!
}数据库的管理与操作
1,表格的建立如下:
管理者的表格,
书本的表格:
3.创建代码与数据库的连接:
先导入ado的包,导入代码如下:
#import"
c:
\ProgramFiles\CommonFiles\System\ado\msado15.dll"
no_namespacerename("
EOF"
"
adoEOF"
)rename("
BOF"
adoBOF"
建立一个可以操控数据库的类(ADOConn):
其代码如下:
头文件中,定义各个函数的声明:
//ADOConn.h:
interfacefortheADOConnclass.
//
//////////////////////////////////////////////////////////////////////
#if!
defined(AFX_ADOCONN_H__C678E5FE_9EB5_41BE_9D9D_F2C100A3E559__INCLUDED_)
#defineAFX_ADOCONN_H__C678E5FE_9EB5_41BE_9D9D_F2C100A3E559__INCLUDED_
#if_MSC_VER>
1000
#pragmaonce
#endif//_MSC_VER>
classADOConn
//定义变量
public:
//添加一个指向Connection对象的指针:
_ConnectionPtrm_pConnection;
//添加一个指向Recordset对象的指针:
_RecordsetPtrm_pRecordset;
//定义方法
ADOConn();
virtual~ADOConn();
//初始化—连接数据库
voidOnInitADOConn();
//执行查询
_RecordsetPtr&
GetRecordSet(_bstr_tbstrSQL);
//执行SQL语句,InsertUpdate_variant_t
BOOLExecuteSQL(_bstr_tbstrSQL)
voidExitConnect();
};
#endif//!
在其实现方法中(ADOConn.cpp)中实现上述功能代码如下:
//ADOConn.cpp:
implementationoftheADOConnclass.
#include"
stdafx.h"
peng.h"
ADOConn.h"
#ifdef_DEBUG
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#definenewDEBUG_NEW
#endif
//Construction/Destruction
ADOConn:
ADOConn()
~ADOConn()
//初始化—连接数据库
voidADOConn:
OnInitADOConn()
//初始化OLE/COM库环境
:
CoInitialize(NULL);
try
//创建Connection对象
m_pConnection.CreateInstance("
ADODB.Connection"
//设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_tstrConnect="
Provider=SQLOLEDB;
Server=.;
Database=library;
uid=ypf;
pwd=123;
//m_pConnection->
Open(Provider=SQLOLEDB;
IntegratedSecurity=SSPI;
PersistSecurityInfo=False;
InitialCatalog=suntest;
DataSource=.;
UserId=ypf;
Password=123;
m_pConnection->
Open(strConnect,"
adModeUnknown);
//捕捉异常
catch(_com_errore)
//显示错误信息
AfxMessageBox(e.Description());
//执行查询
_RecordsetPtr&
ADOConn:
GetRecordSet(_bstr_tbstrSQL)
try
//连接数据库,如果Connection对象为空,则重新连接数据库
if(m_pConnection==NULL)
OnInitADOConn();
//创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
//取得表中的记录
m_pRecordset->
Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
//捕捉异常
//显示错误信息
AfxMessageBox(e.Description());
//返回记录集
returnm_pRecordset;
//执行SQL语句,InsertUpdate_variant_t
BOOLADOConn:
ExecuteSQL(_bstr_tbstrSQL)
//_variant_tRecordsAffected;
//是否已经连接数据库
if(m_pConnection==NULL)
//Connection对象的Execute方法:
(_bstr_tCommandText,
//VARIANT*RecordsAffected,longOptions)
//其中CommandText是命令字串,通常是SQL命令。
//参数RecordsAffected是操作完成后所影响的行数,
//参数Options表示CommandText的类型:
adCmdText-文本命令;
adCmdTable-表名
//adCmdProc-存储过程;
adCmdUnknown-未知
Execute(bstrSQL,NULL,adCmdText);
returnfalse;
voidADOConn:
ExitConnect()
//关闭记录集和连接
if(m_pRecordset!
=NULL)
Close();
//释放环境
:
CoUninitialize();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计