实验41.docx
- 文档编号:11773867
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:10
- 大小:361.27KB
实验41.docx
《实验41.docx》由会员分享,可在线阅读,更多相关《实验41.docx(10页珍藏版)》请在冰点文库上搜索。
实验41
甘肃政法学院
本科生实验报告
(四)
姓名:
黄志强
学院:
计算机科学学院
专业:
计算机科学与技术专业
班级:
计本
(一)班
实验课程名称:
面向对象程序设计
实验日期:
2012年6月15日
指导教师及职称:
金涛
实验成绩:
开课时间:
2011-2012学年02学期
甘肃政法学院实验管理中心印制
实验题目
数据库编程
小组合作
无
姓名
黄志强
班级
计本
(一)班
学号
201181110110
一、实验目的
1.熟悉VisualC++6.0的编程环境。
2.掌握单文档应用程序的结构,熟悉多文档和基于对话框的的编程方法。
3.掌握对话框,常用控件和Active控件的使用方法。
4.熟悉文档视图结构,掌握文档和视图,试图和视图之间的数据传递技巧。
5.熟悉切分窗口及一档多视的编程方法。
6.熟悉在视图和对话框等窗口中绘制图形的方法。
7.掌握MFC编写ODBC或ADO数据应用程序的方法和技巧。
二.实验环境
1.VisualC++6.0编程环境
2.MicosoftAccess2003数据库环境。
三.实验内容与步骤
1.数据库的设计:
用MicosoftAccess2003创建一个数据库student.mdb,包含用于描述学生信息,课程信息的数据表student,score,course。
其表如下图所示:
2.程序框架及其添加的类。
(1)为上述数据库添加并创建一个ODBC的数据源:
操作:
“开始/控制面板/性能和维护/管理工具/ODBC数据源”,则弹出“ODBC数据源管理器”对话框。
先选择“用户DSN”,再按“添加(D)…”按钮:
按“添加”按钮之后,又弹出下面“创建新数据源”对话框:
取数据源的驱动程序“MicrosoftAccessDriver(*.mdb)”之后,按“完成”按钮。
当按“完成”按钮之后,系统回到第2步,弹出下面“ODBCMicrosoftAccess安装”对话框。
在此,完成将已经设计的ACCESS系统的数据库送入系统ODBC并且命名(数据源(N):
处填写)。
例如,将“学生成绩管理.mdb”数据库,送入系统数据源ODBC中并且命名为StudentAndJava:
(2)用MFCt类向导创建一个基于单文档的应用程序Student在第二步选中Headerfiles,在向道第六步选择基类为CListView,这样应用程序可以使用MFC类,但又没有默认的数据库程序代码框架。
(3)在应用程序项目中用类向导ClassWizard为数据表student,score,course创建并添加CRecordSet的派生类:
CStudent,CScoreSet,CCourseset
(4)添加对话框资源:
设计菜单项和工具栏:
设计菜单项和工具栏:
四、实验过程与分析
1.添加代码如下所示;
voidCEx_StudentView:
:
DispAll(CStringtablename,CStringstrField)
{
CListCtrl&m_ListCtrl=GetListCtrl();
m_ListCtrl.DeleteAllItems();
intnColumnCount=m_ListCtrl.GetHeaderCtrl()->GetItemCount();
for(inti=0;i m_ListCtrl.DeleteColumn(0); _CommandPtrpCmd; pCmd.CreateInstance(_uuidof(Command)); pCmd->ActiveConnection=m_pConnection; CStringstrText; strField.TrimLeft(); if(strField.IsEmpty()) strText.Format("SELECT*FROM%s",tablename); else strText.Format("SELECT*FROM%sORDERBY%s",tablename,strField); pCmd->CommandText=_bstr_t(strText); _RecordsetPtrpSet; pSet.CreateInstance(_uuidof(Recordset)); pSet=pCmd->Execute(NULL,NULL,adCmdText); FieldsPtrflds=pSet->GetFields(); _variant_tIndex; Index.vt=VT_I2; m_ListCtrl.InsertColumn(0,"序号",LVCFMT_LEFT,40); for(i=0;i<(int)flds->GetCount();i++) { Index.iVal=i; intnWidth=flds->GetItem(Index)->GetDefinedSize()*9; if(nWidth<40)nWidth=40; m_ListCtrl.InsertColumn(i+1,(LPSTR)flds->GetItem(Index)->GetName(),LVCFMT_LEFT,nWidth); } _bstr_tstr,value; intnItem=0; CStringstrItem; while(! pSet->adoEOF) { strItem.Format("%d",nItem+1); m_ListCtrl.InsertItem(nItem,strItem); for(i=0;i<(int)flds->GetCount();i++) { Index.iVal=i; str=flds->GetItem(Index)->GetName(); value=pSet->GetCollect(str); m_ListCtrl.SetItemText(nItem,i+1,(LPCSTR)value); } pSet->MoveNext(); nItem++; } pSet->Close(); } 4.在对话框中绘制课程成绩的分布图: 代码如下: 1.classCGraph: publicCObject { public: CGraph: : CGraph(); CGraph: : CGraph(CRectrcDraw); CGraph: : CGraph(CRectrcDraw,intnMode); voidSetDrawRect(CRectrcDraw); voidSetDrawMode(intnMode); voidAddData(unsignedintdata); voidDraw(CDC*pDC,boolisDispData=FALSE); private: CRectm_rectDraw; intm_nMode; CUIntArraym_uDataArray; LOGFONTm_IfData; voidDrawBar(CDC*pDC,boolisDispData); voidDrawPie(CDC*pDC); voidInitGraph(CRectrcDraw,intnMode); }; 2.CDrawDlg: : CDrawDlg(CWnd*pParent/*=NULL*/) : CDialog(CDrawDlg: : IDD,pParent) { //{{AFX_DATA_INIT(CDrawDlg) //NOTE: theClassWizardwilladdmemberinitializationhere //}}AFX_DATA_INIT m_strTitle="成绩分布图"; m_nMode=0; } 3.#include"Graph.h" CGraphtheGraph; BOOLCDrawDlg: : OnInitDialog() { CDialog: : OnInitDialog(); SetWindowText(m_strTitle); for(inti=0;i theGraph.AddData(m_uData[i]); theGraph.SetDrawMode(m_n,ode); returnTRUE; } voidCDrawDlg: : OnPaint() { CpaintDCdc(this); UpdateWindow(); CRectrc; GetClientRect(rc); theGraph.SetDraw(rc); theGraph.Draw(&dc,TRUE); DonotcallCDialog: : OnPaint()forpaintingmessages } CDrawDlgdlg; dlg.m_nMode=1; dlg.m_strTitle="示例: 这是一个圆饼图"; dlg.m_uData.Add (2);dlg.m_uData.Add (1); dlg.m_uData.Add(11);dlg.m_uData.Add(15); dlg.m_uData.Add(24);dlg.m_uData.Add(6); dlg.DoModal(); 5.运行结果如下: 五、实验总结 1.通过实验使我更加的熟悉了Visual6.0编程环境。 2.在掌握单文档应用程序的结构同时又熟悉多文档和基于对话框的的编程方法。 3.掌握对话框,常用控件和Active控件的使用方法。 4.熟悉文档视图结构,掌握文档和视图,试图和视图之间的数据传递技巧。 5.熟悉在视图和对话框等窗口中绘制图形的方法。 6.掌握MFC编写ODBC或ADO数据应用程序的方法和技巧.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 41