ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:1.97MB ,
资源ID:12877382      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12877382.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库综合实验讲义.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库综合实验讲义.docx

1、数据库综合实验讲义数据库综合实验讲义学 院:电气工程教研室:自动化教 师:2012.03.201、建立工程打开vc+6.0,点击“file-new-mfc appwizard(exe)”,项目名为:manager,单击“OK”,选择单文档程序,然后点击“下一步”,建立工程。单击“finish”按钮,并调试运行,生成如下界面2.修改单文档界面的标题“南通大学电气工程学院”按照下图,在CLASSVIEW选项卡单击“CManagerApp”添加代码:m_pMainWnd-SetWindowText(管理信息系统南通大学电气工程学院);然后,调试,运行,看调试结果,如下:3.为单文档界面添加图画: 复

2、制位图文件,到res文件夹,重新命名为“bg.bmp”,然后单击“resourceview”选项卡,右键单击“manager resources”,如下图 单击“insert”按钮,点击“Bitmap”,并单击“import”选项并在res文件夹下,选中“bg.bmp”,然后单击“import”。同时按住“ctrl+w”键,在“Class name”,选择“CManagerView”下选中“WM_PAINT”单击“Add function”,在单击“Edit Code”,在添加如下代码:CPaintDC* pDC=new CPaintDC(this); / device context for

3、 painting CBitmap bmp; RECT Rect; RECT RectView; POINT ptSize; CDC dcmem; BITMAP bm; int b = bmp.LoadBitmap(IDB_BITMAP_BG); /将位图取出; dcmem.CreateCompatibleDC(pDC); /创建兼容设备上下文。 dcmem.SelectObject(&bmp); /用设备上下文选择位图; dcmem.SetMapMode(pDC-GetMapMode(); /设置映射方式; GetObject(bmp.m_hObject, sizeof(BITMAP), (

4、LPSTR)&bm); /映射位图; GetClientRect(&Rect); ptSize.x=bm.bmWidth; ptSize.y=bm.bmHeight; pDC-DPtoLP(LPPOINT)&ptSize,1);/设备单元to逻辑单元; GetClientRect(&RectView); CRect RectBmp = RectView; if(RectView.right - RectView.left) bm.bmWidth) /位图宽度容纳不下; RectBmp.left = RectView.left + (RectView.right - RectView.left

5、- bm.bmWidth) / 2; RectBmp.right = bm.bmWidth; else RectBmp.left = RectView.left; RectBmp.right = RectView.right - RectBmp.left; if(RectView.bottom - RectView.top) bm.bmHeight) RectBmp.top = RectView.top + (RectView.bottom - RectView.top - bm.bmHeight) / 2; RectBmp.bottom = bm.bmHeight; else RectBmp

6、.top = RectView.top; RectBmp.bottom = RectView.bottom - RectBmp.top; pDC-StretchBlt(RectBmp.left, RectBmp.top, RectBmp.right, RectBmp.bottom, &dcmem, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY); dcmem.DeleteDC();调试,并运行后如下图:4.添加登录管理界面4.1单击“ResourceView”选项卡,右键单击“Dialog”,单击“insert”,插入一个对话框文档, 并进行如下设置 4.2插入

7、位图:复制位图文件,到res文件夹,重新命名为“0003.bmp”,右键点击“Bitmap”,并单击“import”选项,并在res文件夹下,选中“0003.bmp”,然后单击“import”。并修改位图属性IDB_BITMAP_LOGIN如下: 拖动picture控件至对话框,设置picture控件的属性Type:BitmapImage: IDB_BITMAP_LOGIN如下图:显示如下: 4.3设置密码登陆: 在对话框上设置文本文件“static”,并对按钮进行设置: 拖动“Combo Box”控件至对话框,设置属性为:IDC_COMBO1拖动“Edit Box” 控件至对话框,设置属性:

8、IDC_EDIT1,并修改“Styles”选项卡,勾住“Password”选项,如下图 4.4显示登录对话框 同时按住“Ctrl+W”键,创建一个新类,类的名字“CLoginDlg”,单击“ok”按钮,生产如下图:在CManagerApp中双击InitInstance函数 添加如下代码: CLoginDlg loginDlg; if(loginDlg.DoModal()!=IDOK) return FALSE;代码加载的位置一定在 CSingleDocTemplate* pDocTemplate;之前,切记,同时要添加头文件#include LoginDlg.h 单击“登录”或者“退出”按钮后

9、,4.5.登录界面与数据库相连同时按住“Ctrl+W”键,创建一个新类,类的名字“CPassWord”,基于数据库“CRecorset”类,如下图单击“OK”,选中ODBC,点击“OK”,到所在目标下选中数据库。“manager”文件夹,点击“OK”,到所在目标下选中数据库。(例程给出manager.mdb数据库),然后选中password表。单击“OK”.Password表设置如下:其中,passwd为要设置的密码。对登录对话框设置变量,同时按住“Ctrl+W”键,进行如下设置,在“MemberVariable”选项卡进行设置变量,注意ID号,每一个ID分别设置2个变量,一个CString类

10、型,一个Control类型 设置好变量后,为CLoginDlg添加函数,同时按住“Ctrl+W”键,按照下图进行设置:在OnInitDialog()函数里加进如下代码:用于数据库的打开 CPassWord recordset ; CString strSQL; UpdateData(TRUE); /strSQL.Format(select * from password where user=%s AND passwd=%s,m_strUser,m_strPass); strSQL=select * from password; if(!recordset.Open(AFX_DB_USE_DE

11、FAULT_TYPE,strSQL) MessageBox(打开数据库失败!,数据库错误,MB_OK); return FALSE; while(!recordset.IsEOF() m_ctrUser.AddString(recordset.m_user); recordset.MoveNext(); recordset.Close();同时在StdAfx.h头文件里包含如下的头文件代码,如下图#include /ODBC数据库API头文件#include 同时按住“Ctrl+W”键,进行如下设置,单击“Edit Code”,在void CLoginDlg:OnOK()函数里添加如下代码:C

12、PassWord recordset; CString strSQL; CManagerApp* ptheApp = (CManagerApp *) AfxGetApp(); UpdateData(TRUE); /检查用户名是否输入 if(m_strUser.IsEmpty() AfxMessageBox(请输入用户名!); m_ctrUser.SetFocus(); return; if(m_strPass.IsEmpty() AfxMessageBox(请输入密码!); m_ctrPass.SetFocus(); return; /从用户表中检查用户名密码是否正确 strSQL.Forma

13、t(select * from password where user=%s AND passwd=%s,m_strUser,m_strPass); if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL) MessageBox(打开数据库失败!,数据库错误,MB_OK); return ; if(recordset.GetRecordCount()=0) /密码错误处理 recordset.Close(); MessageBox(密码错误,请重新输入!); m_strPass=; m_ctrPass.SetFocus(); UpdateData(F

14、ALSE); else /分配用户权限 ptheApp-m_bIsAdmin = recordset.m_isadmin; recordset.Close(); CDialog:OnOK(); 运行后如下图: 在密码框里输入密码“1”,则可以进入界面程序了。5.添加“用户管理”设置单击“ResourceView”选项卡,右键单击“Dialog”,单击“insert”,插入一个对话框文档,设置对话框的属性为IDD_DIALOG_USER 5.1设置对话框:添加“列表”(list control)控件:设置为:IDC_LIST_USERNAME“新增”按钮:IDC_BUTTON_NEW“删除”按钮

15、:IDC_BUTTON_DELETE“退出”按钮:IDCANCEL“保存”按钮:IDOK“取消”按钮:ID_BUTTON_CANCEL“是否管理员”:check Box选框对三个编辑框按照下图设置:用户名:IDC_EDIT1选中“Disabled”密码:IDC_EDIT2,选中“password”确认密码:IDC_EDIT3,选中“password”5.2 创建新类同时按住“Ctrl+W”键,创建一个新类,类的名字“CUserDlg”,单击“ok”按钮,5.3 设置菜单 用户设置:ID_SYS_USER 5.4显示“用户设置”对话框同时按住“CTRL+W”键,按下图设置:在OnSysUser(

16、)函数里添加如下代码:并添加头文件#include UserDlg.h CUserDlg UserDlg; UserDlg.DoModal(); 调试后单击“用户设置”菜单,界面运行如下:5.4区分用户的等级管理功能添加如下代码: CManagerApp* ptheApp = (CManagerApp *) AfxGetApp(); pCmdUI-Enable(ptheApp-m_bIsAdmin);5.5为用户列表显示数据同时按住“CTRL+W”键,添加变量m_ctrList同时,为userdlg添加OnInitDialog()函数同时,为userdlg添加RefreshData()函数,按

17、照下图,单击Add Member Function添加变量:按照下图设置函数,并单击“OK”按钮添加变量: CPassWord m_recordset;在RefreshData()函数添加如下代码 m_ctrList.SetFocus(); /清空用户列表 m_ctrList.DeleteAllItems(); m_ctrList.SetRedraw(FALSE); CString strSQL; UpdateData(TRUE); /打开记录集 strSQL=select * from password; if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYP

18、E,strSQL) MessageBox(打开数据库失败!,数据库错误,MB_OK); return ; /添加用户名到用户列表中 int i=0; while(!m_recordset.IsEOF() m_ctrList.InsertItem(i+,m_recordset.m_user); m_recordset.MoveNext(); m_recordset.Close(); m_ctrList.SetRedraw(TRUE);调试后,结果如下: 5.6设置变量,按照下图设置 依次如下设置5.7为“新增”按钮添加代码:进行如下设置: 在函数中添加如下代码: /清空用户资料 m_strUse

19、r = ; m_strPass = ; m_strRePass = ; m_bIsAdmin = FALSE; /设置用户名编辑框为可用 m_ctrUser.EnableWindow(TRUE); m_ctrUser.SetFocus(); /更新数据到界面 UpdateData(FALSE);5.8为“保存”按钮添加功能UpdateData(); if(m_ctrUser.IsWindowEnabled() /增加新用户的输入检查 if(m_strUser=) MessageBox(请填写用户名!); m_ctrUser.SetFocus(); return; else /修改用户信息的输入

20、检查 if(m_strUser=) MessageBox(请选择一个用户!); return; /限制密码不能为空 if(m_strPass=) MessageBox(密码不能为空,请输入密码!); m_ctrPass.SetFocus(); return; /验证密码与确认密码是否一致 if(m_strPass!=m_strRePass) MessageBox(两次输入地密码不一致,请重新输入密码!); m_ctrPass.SetFocus(); m_strPass = ; m_strRePass = ; UpdateData(FALSE); return; /打开记录集 CString s

21、trSQL; strSQL.Format(select * from password where user=%s,m_strUser); if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL) MessageBox(打开数据库失败!,数据库错误,MB_OK); return ; if(m_ctrUser.IsWindowEnabled() /增加新用户 /判断用户是否已经存在 if(m_recordset.GetRecordCount()!=0) m_recordset.Close(); MessageBox(该用户已经存在!); retur

22、n; m_recordset.AddNew(); m_recordset.m_user = m_strUser; m_recordset.m_passwd = m_strPass; m_recordset.m_isadmin = m_bIsAdmin; m_recordset.Update(); MessageBox(用户添加成功!请记住用户名和密码!); m_recordset.Close(); else /修改用户信息 /判断用户是否不存在 if(m_recordset.GetRecordCount()=0) m_recordset.Close(); MessageBox(该用户不存在!请更新数据库); return; m_recordset.Edit(); m_recordset.m_user = m_strUser; m_recordset.m_passwd = m_strPass; m_recordset.m_isadmin = m_bIsAdmin; m_recordset.Update(); MessageBox(用户修改成功!请记住用户名和密码!); m_recordset.Close(); m_ctrUser.EnableWindow(FALSE); /更新用户列表 RefreshData();5.9添加“删除”按钮功能5.10为“取消”按钮添加功能

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

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