




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
甘肃政法学院本科生实验报告( 数据库编程)姓名:郭加强学院:计算机科学学院专业:计算机科学与技术班级:计算机科学与技术一班实验课程名称:面向对象程序设计实验日期:2012年6月20日指导教师及职称:金涛 老师实验成绩:开课时间:2011-2012学年第二学期甘肃政法学院实验管理中心印制实验题目ODBC数据库编程小组合作姓名郭加强班级计本班学 号201181110105一、实验目的1.学习使用VC+与数据库进行连接,创建数据库编程。2.熟悉数据库编程的作用和使用方法。二实验环境Visual C+ 6.0三、实验内容与步骤1. 创建一个基于Clistview的单文本应用程序Ex_ODBC,用来操作ODBC源“用于MFC ODBC的数据库”中指定的score表。如图1所示:图12. 对于大量数据处理,采用数据库更为安全简便。例如,对于学生成绩管理系统,常常需要处理学生的基本信息、课程成绩及与学生有关的院系、专业情况等,这些信息用数据库表的形式来描述更为清晰。四、实验过程与分析 创建工作文件夹。 并建立数据库和数据表。()启动数据库,选择新建文件,单击空数据库,弹出一个对话框,指定数据库名main.mdb。单击创建按钮。()双击“使用设计器创建表”,出现如图所示的表设计界面,其中单击数据类型框的下拉按钮,可在弹出的列表中选择合适的数据类型。()保存建立的数据库和数据表。()在数据库设计窗口中,双击score表,就可向数据表输入记录数据。如图2所示:图2()在Windows“控制面板”的“管理工具”中,找到并运行“数据库(ODBC)”组件,弹出“ODBC数据源管理器”的对话框。如图3所示:图3()加载数据库到Visual C+ 6.0联系,将实验中的main.mdb数据库导入。()一直单击确定按钮,刚才创建的用户数据源就会被添加在“ODBC数据源管理器”的“用户数据源”列表中。如图4所示:图4(1)启动Visual C+ 6.0。 (2)用MFCAppWizard创建一个基于CListView的默认单文档应用程序Ex_ODBC。在向导的第六步对话框中为Ex_ODBCView选定CListView基类。如图5所示:图5 (3)添加代码,编译并运行。得到截图如图6所示:图64 学生信息的添加、修改和删除(1)添加对话框,创建对话框类CScoreDlg。如图7所示,将添加的对话框的标题设为“课程成绩信息”,将对话框的字体改为“宋体,9号”。将“OK”和“Cancel”按钮标题分别改为“确定”和“取消”。图75 添加代码,并运行得到的截图如图8所示:图86 视图类实验代码如下:#if !defined(AFX_EX_ODBCVIEW_H_67EB9D2E_5048_4026_880E_A41624015617_INCLUDED_)#define AFX_EX_ODBCVIEW_H_67EB9D2E_5048_4026_880E_A41624015617_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000class CEx_ODBCView : public CListViewprotected: / create from serialization onlyCEx_ODBCView();DECLARE_DYNCREATE(CEx_ODBCView)/ Attributespublic:CEx_ODBCDoc* GetDocument();/ Operationspublic:/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CEx_ODBCView)public:virtual void OnDraw(CDC* pDC); / overridden to draw this viewvirtual BOOL PreCreateWindow(CREATESTRUCT& cs);protected:virtual void OnInitialUpdate(); / called first time after constructvirtual BOOL OnPreparePrinting(CPrintInfo* pInfo);virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);/AFX_VIRTUAL/ Implementationpublic:void CEx_ODBCView:UpdateListItemData();virtual CEx_ODBCView();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endifprotected:/ Generated message map functionsprotected:/AFX_MSG(CEx_ODBCView)afx_msg void OnOpAdd();afx_msg void OnOpChange();afx_msg void OnOpDel();afx_msg void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);/AFX_MSGDECLARE_MESSAGE_MAP();#ifndef _DEBUG / debug version in Ex_ODBCView.cppinline CEx_ODBCDoc* CEx_ODBCView:GetDocument() return (CEx_ODBCDoc*)m_pDocument; #endif/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_EX_ODBCVIEW_H_67EB9D2E_5048_4026_880E_A41624015617_INCLUDED_)7 资源类代码如下:/ Ex_ODBCView.cpp : implementation of the CEx_ODBCView class/#include stdafx.h#include Ex_ODBC.h#include Ex_ODBCDoc.h#include Ex_ODBCView.h#include Scoreset.h#include ScoreDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CEx_ODBCViewIMPLEMENT_DYNCREATE(CEx_ODBCView, CListView)BEGIN_MESSAGE_MAP(CEx_ODBCView, CListView)/AFX_MSG_MAP(CEx_ODBCView)ON_COMMAND(ID_OP_ADD, OnOpAdd)ON_COMMAND(ID_OP_CHANGE, OnOpChange)ON_COMMAND(ID_OP_DEL, OnOpDel)ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)/AFX_MSG_MAP/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CListView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView:OnFilePrintPreview)END_MESSAGE_MAP()/ CEx_ODBCView construction/destructionCEx_ODBCView:CEx_ODBCView()/ TODO: add construction code hereCEx_ODBCView:CEx_ODBCView()BOOL CEx_ODBCView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT cs cs.style|=LVS_REPORT;return CListView:PreCreateWindow(cs);/ CEx_ODBCView drawingvoid CEx_ODBCView:OnDraw(CDC* pDC)CEx_ODBCDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data herevoid CEx_ODBCView:OnInitialUpdate()CListView:OnInitialUpdate();CListCtrl& m_ListCtrl=GetListCtrl(); m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);/LVS_EX_GRIDLINES); CScoreSet cSet;cSet.Open();CODBCFieldInfo field; /创建列表头 for(UINT i=0;iIsKindOf(RUNTIME_CLASS(CEx_ODBCDoc);return (CEx_ODBCDoc*)m_pDocument;#endif /_DEBUG/ CEx_ODBCView message handlersvoid CEx_ODBCView:UpdateListItemData()CListCtrl&m_ListCtrl=GetListCtrl();m_ListCtrl.DeleteAllItems();CScoreSet cSet;cSet.m_strSort=studentno,courseno;cSet.Open(); /添加列表项int nItem=0;CString str;while(!cSet.IsEOF() for(UINT i=0;icSet.m_nFields;i+) cSet.GetFieldValue(i,str); if(i=0) m_ListCtrl.InsertItem(nItem,str); else m_ListCtrl.SetItemText(nItem,i,str); nItem+; cSet.MoveNext(); cSet.Close();void CEx_ODBCView:OnOpAdd() / TODO: Add your command handler code hereCScoreDlg dlg;if(dlg.DoModal()=IDOK) /先查找是否有同学号同课程的记录CScoreSet cSet;cSet.m_strFilter.Format(studentno=%sANDcourseno=%s,dlg.m_strStuNO,dlg.m_strCourseNO);cSet.Open();if(!cSet.IsEOF()MessageBox(有相同的记录存在!);cSet.Close();return;cSet.AddNew();cSet.m_studentno =dlg.m_strStuNO;cSet.m_courseno =dlg.m_strCourseNO;cSet.m_score =dlg.m_fScore;cSet.m_credit =dlg.m_fCredit;cSet.Update();cSet.Requery();cSet.Close();MessageBox(记录已添加!);UpdateListItemData();void CEx_ODBCView:OnOpChange() / TODO: Add your command handler code hereMessageBox(双击要修改的列表项即可!);void CEx_ODBCView:OnOpDel() / TODO: Add your command handler code hereCListCtrl&m_ListCtrl=GetListCtrl();POSITION pos;pos=m_ListCtrl.GetFirstSelectedItemPosition();if(pos=NULL)MessageBox(你还没有选中列表项!);return;int nItem=m_ListCtrl.GetNextSelectedItem(pos);CString strItem,str;strItem=m_ListCtrl.GetItemText(nItem,0);str.Format(你确实要删除%s列表项(记录)吗?);if(IDOK!=MessageBox(str,删除确认,MB_ICONQUESTION|MB_OKCANCEL)return;CString strStuNO =m_ListCtrl.GetItemText(nItem,0);CString strCourseNO =m_ListCtrl.GetItemText(nItem,1);CScoreSet infoSet;infoSet.m_strFilter.Format(studentno=%sANDcourseno=%s,strStuNO,strCourseNO); infoSet.Open();if(!infoSet.IsEOF()CRecordsetStatus status;infoSet.GetStatus(status);infoSet.Delete();if(status.m_lCurrentRecord=0)infoSet.MoveNext();elseinfoSet.MoveFirst();if(infoSet.IsOpen()infoSet.Close();MessageBox(当前指定的记录已删除!);UpdateListItemData();void CEx_ODBCView:OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereCListCtrl&m_ListCtrl=GetListCtrl();POSITION pos;pos=m_ListCtrl.GetFirstSelectedItemPosition();if(pos=NULL)MessageBox(应双击要修改的列表项!);return;int nItem=m_ListCtrl.GetNextSelectedItem(pos); CString strStuNO =m_ListCtrl.GetItemText(nItem,0);CString st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届江西省赣州市会昌中学高一化学第一学期期末检测模拟试题含解析
- 2026届辽宁省葫芦岛市辽宁实验中学东戴河分校高二化学第一学期期中经典模拟试题含解析
- 精 编某大学录取考试文档:面试题目及答案解析
- 药品包装生产工艺
- 疾病的分子生物学
- 双元音单词讲解
- 物理的磁效应讲解
- 安徽省怀远一中2026届化学高一第一学期期末经典试题含解析
- 视觉形成的生物机制解析
- 胸部医学影像诊断技术及应用
- 单位灭火和应急疏散预案编制
- 湿式催化氧化技术介绍
- 民族文化宫2024年度面向应届毕业生和社会人员公开招聘笔试模拟试题及参考答案详解一套
- 2025低空经济发展及关键技术概况报告
- 2025年湖北省宜昌市【辅警协警】笔试模拟考试(含答案)
- 焦虑回避型人格障碍护理课件
- 2025年我国优抚安置政策法规考试试题及答案解析
- DB11T 1076-2023 居住建筑装饰装修工程质量验收标准
- 广告效果测评整本书课件完整版电子教案全套课件最全教学教程ppt(最新)
- DB33T 2248-2020 泵站运行管理规程
- 建筑工程消防产品使用情况登记表
评论
0/150
提交评论