MFC学生信息管理完整_第1页
MFC学生信息管理完整_第2页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、:数据结构的实例教案_二叉树在信息加密中的应用课程题目解读甘肃政法学院本科生实验报告(数据库编程)姓名:郭加强学院:计算机科学学院专业:计算机科学与技术班级: :计算机科学与技术一班实验课程名称:面向对象程序设计实验日期:2012:2012 年 6 6 月 2020 日指导教师及职称:金涛老师实验成绩:开课时间:2011-2012:2011-2012 学年第二学期甘肃政法学院实验管理中心印制实验题目ODBC数据库编程小组合作姓名郭加强班级计本班学号201181110105一、实验目的1.学习使用VC+与数据库进行连接,创建数据库编程。2 .熟悉数据库编程的作用和使用方法。二. 实验环境Visu

2、al C+ 6.0三、 实验内容与步骤1.创建一个基于Clistview的单文本应用程序Ex_ODBC,用来操作ODBC源“用于MFC ODBC的数据库”中指定的score表。如图1所示:图12.对于大量数据处理,采用数据库更为安全简便。例如,对于学生 成绩管理系统,常常需要处理学生的基本信息、课程成绩及与学 生有关的院系、专业情况等,这些信息用数据库表的形式来描述 更为清晰。四、 实验过程与分析1.创建工作文件夹。2.并建立数据库和数据表。(1)启动数据库,选择新建文件,单击空数据库,弹出一个对 话框,指定数据库名main.mdbb单击创建按钮。(2)双击“使用设计器创建表”,出现如图所示的

3、表设计界 面,其中单击数据类型框的下拉按钮,可在弹出的列表中选择合适 的数据类型。(3)保存建立的数据库和数据表。(4)在数据库设计窗口中,双击score表,就可向数据表输入记 录数据。如图2所示:图2(5)在Windows“控制面板”的“管理工具”中,找到并运行 “数据库(ODBC)”组件,弹出“ODBC数据源管理器”的对话框。如图3所示:图3(6)加载数据库到Visual C+ 6.0联系,将实验中的ma in .mdb数据库导入。(7)一直单击确定按钮,刚才创建的用户数据源就会被添加在“ODBC数据源管理器”的“用户数据源”列表中。如图4所示:图43.( 1)启动Visual C+ 6.

4、0。(2)用MFC AppWizard创建一个基于CListView的默认单文档 应用程序Ex_ODBC。在向导的第六步对话框中为C Ex_ODBCView选定CListView基类。如图5所示:图5(3)添加代码,编译并运行。得到截图如图6所示:图64.学生信息的添加、修改和删除(1)添加对话框,创建对话框类CScoreDIg如图7所示,将添加 的对话框的标题设为“课程成绩信息”, 将对话框的字体改为“宋 体,9号”。 将“OK”和“Cance”按钮标题分别改为“确定”和“取消”图75.添加代码,并运行得到的截图如图8所示:图86.视图类实验代码如下:#if !defi ned(AFX_EX

5、_ODBCVIEW_H_67EB9D2E_5048_4026_880E_A41624015617_INCLUDED_)#defi neAFX_EX_ODBCVIEW_H_67EB9D2E_5048_4026_880E_A41624015617_INCLUDED_ #if_MSC_VER 1000#pragma once#en dif / _MSC_VER 1000class CEx_ODBCView : public CListViewprotected: / create from serializati on onlyCEx_ODBCView。)DECLARE_DYNCREATE(CEx_

6、ODBCView)/ Attributespublic:CEx_ODBCDoc* GetDocume nt。)/ Operati onspublic:/ Overrides/ ClassWizard gen erated virtual fun cti on overrides AFX_VIRTUAL(CEx_ODBCView)public:virtual void OnDraw(CDC*pDC)。/ overridden to draw thisviewvirtual BOOL PreCreateWi ndow(CREATESTRUCT & cs)。 protected:virtua

7、l void Onln itialUpdate() 。/ called first time aftercon structvirtual BOOL On PreparePri ntin g(CPri ntlnfo* plnfo)。virtual void On Begi nPrintin g(CDC* pDC, CPri ntlnfo* plnfo)。virtual void OnEn dPri ntin g(CDC* pDC, CPri ntlnfo* pl nfo)。/AFX_VIRTUAL/ Impleme ntatio npublic:void CEx_ODBCView:Update

8、ListltemData()。virtual CEx ODBCViewO。#ifdef _DEBUGvirtual void AssertValid() const。virtual void Dump(CDumpC on text & dc) const。#en difprotected:/ Gen erated message map fun cti onsprotected:AFX_MSG(CEx_ODBCView)afx_msg void OnOpAdd()。afx_msg void OnOpChange()。afx_msg void OnOpDel()。afx_msg void

9、 OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)。 /AFX_MSGDECLARE_MESSAGE_MAP()。#ifndef _DEBUG / debug version in Ex_ODBCView.cppinline CEx_ODBCDoc* CEx_ODBCView:GetDocume nt() return (CEx_ODBCDoc*)m_pDocument。#en dif/AFX_INSERT_LOCATION/ Microsoft Visual C+ willin sertadditi onaldeclarati onsimmediately

10、before the previous line.#en dif/ !defi ned(AFX_EX_ODBCVIEW_H_67EB9D2E_5048_4026_880E_A41624015617.INCLUDED_)7.资源类代码如下:/ Ex_ODBCView.cpp : impleme ntati on of the CEx_ODBCView class/#in clude stdafx.h#i nclude Ex_ODBC.h#i nclude Ex_ODBCDoc.h#i nclude Ex_ODBCView.h#in clude Scoreset.h#i nclude ScoreD

11、lg.h#ifdef _DEBUG#defi ne new DEBUG_NEW#un def THIS_FILEstatic char THIS_FILE = _FILE_。#en dif/ CEx ODBCViewIMPLEMENT_DYNCREATE(CEx_ODBCView, CListView)BEGIN_MESSAGE_MAP(CEx_ODBCView, CListView)AFX_MSG_MAP(CEx_ODBCView) ON_COMMAND(ID_OP_ADD, On OpAdd)ON_COMMAND(ID_OP_CHANGE, On OpCha nge) ON_COMMAND

12、(ID_OP_DEL, OnOpDel) ON_NOTIFY_REFLECT(NM_DBLCLK, On Dblclk) /AFX_MSG_MAP/ Stan dard prin ti ng comma nds ON_COMMAND(ID_FILE_PRINT, CListView:。nFilePri nt) ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView:O nF ilePri nt)ON_COMMAND(ID_FILE_PRINT_PREVIEW,CListView:O nFilePri ntPreview) END_MESSAGE_MAP()/ CE

13、x_ODBCView con structio n/destructio n CEx_ODBCView:CEx_ODBCView()/ TODO: add con struct ion code hereCEx_ODBCView:CEx_ODBCView()BOOL CEx_ODBCView:PreCreateWi ndow(CREATESTRUCT & cs)/ TODO: Modify the Win dow class or styles here by modifyi ng/ the CREATESTRUCT cscs.style|=LVS_REPORT。return CLis

14、tView:PreCreateWi ndow(cs)。/ CEx_ODBCView drawi ngvoid CEx_ODBCView:O nDraw(CDC* pDC) _CEx_ODBCDoc* pDoc = GetDocume nt() ASSERT_VALID(pDoc)/ TODO: add draw code for n ative data herevoid CEx_ODBCView:O nlni tialUpdate() _CListView:O nln itialUpdate() 。 CListCtrl& m ListCtrl=GetListCtrl()。m_List

15、Ctrl.SetExte ndedStyle(LVS_EX_FULLROWSELECT) LVS_EX_GRIDLINES)CScoreSet cSet 。cSet.Open()。CODBCFieldI nfo field 。/仓 U 建列表头for(UINT i=0。ilsKi ndOf(RUNTIME_CLASS(CEx_ODBCDoc) return(CEx_ODBCDoc*)m_pDocume nt一 一#en dif_DEBUG/ CEx_ODBCView message han dlersvoid CEx_ODBCView:UpdateListltemData() _CListCt

16、rl&m_ListCtrl=GetListCtrl()。m_ListCtrl.DeleteAllltems()。CScoreSet cSet。cSet.m_strSort=stude ntn o,course no。cSet.Open()。/添加列表项int n ltem=0 。CStri ng str。while(!cSet.lsEOF() for(UINT i=0。icSet.m_nFields。i+) _cSet.GetFieldValue(i,str)。if(i=0)m_ListCtrl .Insertltem( nltem,str)。elsem_ListCtrl.Setlte

17、mText( nltem,i,str)。 _n ltem+。cSet.MoveNext()。cSet.Close()。void CEx_ODBCView:O nOpAdd() _/ TODO: Add your comma nd han dler code here CScoreDlg dlg。if(dlg.DoModal()=IDOK)/先查找是否有同学号同课程的记录CScoreSet cSet0cSet.m_strFilter.Format(stude ntno=%sANDcourse no=%s,dlg.m_strStuNO,dlg.m_strCourseNO)。cSet.Open()。

18、if(!cSet.lsEOF()MessageBox(有相同的记录存在! cSet.Close()。return 。 cSet.AddNew()。cSet.m_stude ntnocSet.m_course nocSet.m_scorecSet.m_credit cSet.Update()。cSet.Requery()。 cSet.Close()。MessageBox(记录已添加! UpdateListltemData() void CEx_ODBCView:O nOpCha nge() / TODO: Add your comma nd han dler code here MessageB

19、ox(双击要修改的列表项即可! ) void CEx_ODBCView:O nOpDel() _/ TODO: Add your comma nd han dler code here CListCtrl&m_ListCtrl=GetListCtrl() POSITION pos pos=m_ListCtrl.GetFirstSelectedltemPositio n() if(pos=NULL)MessageBox(你还没有选中列表项! ) return int n ltem=m_ListCtrl.GetNextSelectedltem(pos) CStri ng strltem,s

20、trstrltem=m_ListCtrl.GetltemText( nltem,0)str.Format(你确实要删除s 列表项(记录)吗? ) if(IDOK!=MessageBox(str,删除确,MBCONQUESTION|MB_OKCANCEL)return =dlg.m_strStuNO=dlg.m_strCourseNO=dlg.m_fScore=dlg.m_fCreditCStri ng strStuNO=m_ListCtrl.GetltemText( nltem,0)CStri ng strCourseNO=m_ListCtrl.GetltemText( nltem,1)CSc

21、oreSet infoSet 。in foSet.m_strFilter.Format(stude ntn o=%sANDcourse no=%s,strStuNO,strCourseNO)。in foSet.Ope n()。if(!i nfoSet.lsEOF()CRecordsetStatus status 。in foSet.GetStatus(status)。in foSet.Delete()。if(status. m_l Curre ntRecord=0)in foSet.MoveNext()。elsein foSet.MoveFirst()。if(i nfoSet.lsOpe n(

22、)in foSet.Close()。MessageBox(当前指定的记录已删除!)。UpdateListltemData()。void CEx_ODBCView:O nDblclk(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your con trol no tificati on han dler code hereCListCtrl&m_ListCtrl=GetListCtrl()。POSITION pos pos=m_ListCtrl.GetFirstSelectedltemPositio n()。if(pos=NULL)MessageBox(应双击要修改的列表项!)。 return。int n ltem=m_ListCtrl.GetNextSelectedltem(pos) 。CStri ng s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论