计算机科学与技术《Vc 程序设计》实验指导书-07计(7)

2025-05-02

strType nOpen nHours fCredit

= type; = term; = hours; = credit;

}

void CCourseInfo::Display(int y, CDC *pDC) {

CString str;

str.Format(\ %s %s %s %d %d %4.1f\ strSpecial, strType, nOpen, nHours, fCredit); pDC->TextOut(0, y, str);

}

IMPLEMENT_SERIAL(CCourseInfo, CObject, 1) // 序列化实现 void CCourseInfo::Serialize(CArchive &ar) { }

if (ar.IsStoring())

ar<

ar>>strNO>>strName>>strSpecial>>strType>>nOpen>>nHours>>fCredit;

⑤ 编译。

7.实现课程信息文档序列化

① 在Ex_MDIDoc.h文件的class CEx_MDIDoc前面,添加包含CCourseInfo类的头 文件。

#include \

② 为CEx_MDIDoc类添加下列成员变量,用来保存添加的CCourseInfo类对象数据:

public: CObArray m_courseObArray;

// 对象集合类对象

③ 为CEx_MDIDoc类添加成员函数CCourseInfo* GetCourseInfoAt(int nIndex),用来获取m_courseObArray中指定索引号的CCourseInfo类指针,其代码如下:

CCourseInfo* CEx_MDIDoc::GetCourseInfoAt(int nIndex) { }

if ((nIndex < 0) || nIndex > m_courseObArray.GetUpperBound()) return NULL; // 超界处理 return (CCourseInfo *)m_courseObArray.GetAt(nIndex);

④ 为CEx_MDIDoc类添加成员函数int GetCourseRecNum(void),用于获取集合类中对象的个数其代码如下:

int CEx_MDIDoc::GetCourseRecNum() { }

return m_courseObArray.GetSize();

⑤ 在CEx_MDIDoc类析构函数~CEx_MDIDoc添加下列删除并释放对象的代码:

CEx_MDIDoc::~CEx_MDIDoc()

30

{ }

int nIndex = GetCourseRecNum(); while (nIndex--) delete m_courseObArray.GetAt(nIndex); m_courseObArray.RemoveAll();

// 删除并释放对象的内存空间

⑥ 在CEx_StudentDoc::Serialize函数中添加下列代码:

void CEx_MDIDoc::Serialize(CArchive& ar) { }

if (ar.IsStoring()) {

m_courseObArray.Serialize(ar); } else {

m_courseObArray.Serialize(ar); }

⑦ 在Ex_MDIDoc.cpp文件的开始处,添加包含CCourseDlg类的头文件包含:

#include \#include \

⑧ 在菜单资源IDR_EX_MDITYPE中添加顶层菜单项“课程信息(&S)”,在该顶层菜单项中添加子菜单“添加(&A)”(ID_COURSEINFO_ADD)。

⑨ 用MFC ClassWizard为CEx_MDIDoc类添加处理菜单项ID_COURSEINFO_ADD的COMMAND消息,并添加下列代码:

void CEx_MDIDoc::OnCourseinfoAdd() { }

CCourseDlg dlg;

if (dlg.DoModal() != IDOK) return; // 添加记录

CCourseInfo *pCourse = new CCourseInfo(dlg.m_strNO, dlg.m_strName,

dlg.m_strSpecial, dlg.m_strType, dlg.m_nOpen, dlg.m_nHours, dlg.m_fCredit); m_courseObArray.Add(pCourse); SetModifiedFlag(); // 设置文档更改标志 UpdateAllViews(NULL);

// 更新视图

⑩ 修改CEx_MDIView::OnDraw代码,用来将所有的课程信息记录显示在视图中:

void CEx_MDIView::OnDraw(CDC* pDC) { }

CEx_MDIDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc); int y = 0;

for (int nIndex = 0; nIndex < pDoc->GetCourseRecNum(); nIndex++) { }

pDoc->GetCourseInfoAt(nIndex)->Display(y, pDC); y += 16;

编译并运行。

31

六、实验运行结果

写出程序的运行结果。

实验十二:图形和文本

一、实验目的与要求

1、编写一个画直线程序。要求在坐标为(300,50)的位置显示文字\画线\。在坐标为(12,20)到(100,120)的位置画一条红色、线的宽度为4的实线。画完后恢复原来的画笔。

2、编写使用纯绿色画刷绘制矩形和显示文字的程序。矩形的左上角坐标为(100,30),右下脚坐标为(230,130)。在坐标为(20,50)的位置显示文字\画矩形\。

3、编写使用红色画刷画圆形和显示文字的程序。圆心(50,50),半径为40.在坐标为(100,60)的位置显示文字\\画红色圆形\\。 二、实验类型

验证型

三、实验原理及说明

掌握文本输出和图形函数的使用方法。

四、实验仪器

序 号 1 名 称 计算机 主要用途 编写程序 五、实验内容和步骤

1.启动Visual C++ 6.0

打开计算机,启动Visual C++ 6.0系统。 2.创建一个单文档应用程序 3.编写代码。

(1)void CYutuView::OnDraw(CDC* pDC) {

CPen *pPenOld, PenNew;

PenNew.CreatePen(PS_SOLID,4,RGB(255,0,0)); pPenOld=pDC->SelectObject(&PenNew); pDC->TextOut(300,50,\画线\ pDC->MoveTo(12,20); pDC->LineTo(200,120);

pDC->SelectObject(pPenOld); PenNew.DeleteObject(); }

(2)void CDrawpictView::OnDraw(CDC* pDC)

32

{

CBrush *pold, brushnew(RGB(0,255,0));

pold=(CBrush*)pDC->SelectObject(&brushnew); pDC->Rectangle(100,30,230,130); pDC->TextOut(10,50,\画绿色矩形\brushnew.DeleteObject(); pDC->SelectObject(pold); }

(3)void CDrawpictView::OnDraw(CDC* pDC) {

CDrawpictDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);

CBrush *pold, brushnew(RGB(255,0,0)); pold=(CBrush*)pDC->SelectObject(&brushnew); pDC->Ellipse(10,10,90,90);

pDC->TextOut(100,60,\画红色圆形\brushnew.DeleteObject(); pDC->SelectObject(pold); }

4. 编译运行。

六、实验运行结果

写出程序的运行结果。

实验十三:数据库(1)

一、实验目的与要求

本实验要求创建一个数据库及数据表,完成记录的显示及查找功能。

二、实验类型

设计型

三、实验原理及说明

掌握创建数据库和数据表的方法和ODBC编程方法。

四、实验仪器

序 号 名 称 主要用途 33

1 计算机 编写程序 五、实验内容和步骤(下面以学生管理为例)

1.创建数据库和数据表

这里以Microsoft Access 2003为例说明数据库和数据表的创建过程。 ① 启动Microsoft Access 2003。

② 选择“文件”→“新建”菜单,在右边任务窗格中单击“空数据库”,弹出一个对话框,指定数据库名main.mdb。单击“创建”按钮,出现如图13.2所示的数据库设计窗口。

图13.2 数据库设计窗口

③ 双击“使用设计器创建表”,出现如图13.3所示的表设计界面。其中,单击数据类型框的下拉按钮,可在弹出的列表中选择适当的数据类型。在下方的常规页面中可以设置字段大小、格式等内容。

图13.3 表设计界面

④ 按表13.1添加字段名和数据类型,关闭表设计界面,弹出一个消息对话框,询问是否保存刚才设计的数据表,单击“是(Y)”按钮,出现如图13.4所示的对话框,在表名称中输入score,单击““确定”按钮。此时出现一个消息对话框,用来询问是否要为表创建主关键词,单击[否(N)”按钮。注意:若单击“是(Y)”按钮,则系统会自动为表添加另一个字段ID。

表13.1 学生课程成绩表(score)结构

序 号 1 字 段 名 称 studentno 数 据 类 型 文本 字 段 大 小 8 小 数 位 字 段 含 义 学号 34


计算机科学与技术《Vc 程序设计》实验指导书-07计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学生恋爱弊大于利反方四辩

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219