Visual C++程序设计与应用教程试题+答案(mfc的应用)(4)

2019-08-17 12:53

行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后, [8]B 把来自键盘的命令翻译成WM_XXX消息命令形式。 [9]E 函数通知Windows把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。

A、GetMessage( ) B、translateMessage( ) C、PostMessage( ) D、SendMessage( ) E、DispatchMessage( )

4、常用的CButton类的成员函数中: [10]A 获得一个按钮控件的选中、选择和 聚焦状态; [11] D 得到一个按钮的选中状态; [12] C 设置一个按钮的选中状态。

A、GetState( ) B、SetState( ) C、SetCheck( ) D、GetCheck( ) E、GetButtonStyle( )

5、滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用 [13]C 函数,设置滚动块的位置使用 [14] E 函数,获取滚动块的当前位置使用 [15] F 函数。

A、SetPos B、SetRange C、SetScrollRange D、GetPos E、SetScrollPos F、GetScrollPos G、 GetScrollRange

6、在进行绘图时, [16]A 用于指定图形的填充样式,___[17]_B__用于指定图形的边框样式。

A、画笔 B、画刷 C、区域 D、位图 7、列表框ClistBox类的成员函数___[18]A__用来向列表框增加列表项,成员函数___[19]C__用来清除列表项所有项目,成员函数___[20]F__用来返回列表框的列表项的总数。

A、AddString B、DeleteString C、ResetContent D、FindString E、GetCurSel F、GetCount

三、程序设计题(共60分)

1、(10分)已知点类的定义如下: class Point{

?? private:

double x,y; };

分别用成员函数和友元函数实现计算两点间的距离,函数名为distance。 用成员函数实现(5分)

double Point::distance( const Point &a ) { double dx,dy;

dx = x-a.x; dy = y-a.y;

return sqrt( dx*dx + dy*dy ); }

用友元函数实现(5分)

double distance( const Point &a, const Point &b ) { double dx,dy;

dx = a.x-b.x; dy = a.y-b.y;

return sqrt( dx*dx + dy*dy ); }

2、(15分)要求计算立方体和圆柱2个几何体的表面积和体积。可以抽象出一个公共的基类Base,把它作为抽象类,在该类内定义求表面积和体积的纯虚函数(抽象类本身是没有表面积和体积可言的)。由这个抽象类派生出描述立方体和圆柱的2个具体类,在这2个类中都有计算表面积和体积的函数的自己版本。请用C++语言定义上述类等级。

const double PI=3.14159; class Base{ public:

virtual double area() const=0; virtual double volume() const=0; };

class Cube:public Base{ public:

Cube(double l=10)

{ length=l>0 ? l : 10; } double area() const

{ return 6*length*length; } double volume() const

{ return length*length*length; } private:

double length; };

class Cylinder:public Base{ public:

Cylinder(double r=10, double h=5) { radius=r>0 ? r : 10; height=h>0 ? h : 5; }

double area() const

{ return 2*PI*radius*radius+2*PI*radius*height; } double volume() const

{ return PI*radius*radius*height; } private:

double radius; double height; }; 3、(10分)简单计算程序界面如下图所示,x对应编辑框控件的ID为 IDC_EDIT1,

对应值类型的成员变量m_x(double);y对应编辑框控件的ID为IDC_EDIT2,对应值类型的成员变量m_y(double);z对应的编辑框控件的ID 为IDC_EDIT3,对应值类型的成员变量m_z(double)。乘法按钮的功能是将x,y相乘,除法按钮的功能是将x,y相除,并将结果在z对应的编辑框IDC_EDIT3显示出来。写出乘法按钮和除法按钮对应的代码。(10分)

void CExDlg::OnButtonMul( ) // 乘法按钮

{ UpdateDate(TRUE); m_z = m_x * m_y; UpdateDate(FALSE); }

void CExDlg::OnButtondIV( ) // 除法按钮 {

UpdateDate(TRUE); if ( m_y == 0 )

{ MessageBox( “除数不能为0!”); return; }

m_z = m_x / m_y;

UpdateDate(FALSE); 4、(10分)设计一个基于对话框的应用程序,如下图所示。要求:单击Color按钮,能弹出通用颜色对话框选取颜色,并用该颜色显示:This is a color example。

已知:Example组合框的ID为:IDC_DISPLAY。 写出Color按钮的BN_CLICKED消息处理函数。 void CXT6_4Dlg::OnColor() {

// TODO: Add your control notification handler code here COLORREF m_cTextColor; CColorDialog Dlg;

if ( Dlg.DoModal()==IDOK )

{

m_cTextColor=Dlg.GetColor();

CWnd * pWnd=GetDlgItem(IDC_DISPLAY); CDC * pDC=pWnd->GetDC(); CRect rcDisplay;

pWnd->GetClientRect(rcDisplay); pDC->SetTextColor(m_cTextColor);

CString s=\

DC->TextOut(rcDisplay.right/2-80,rcDisplay.bottom/2-5,s); } }

5、(10分)为学员信息设计一个类CStudent,包含:学号、姓名、出生日期、家庭住址、班级,并使该类可以实现串行化。请写出可以实现要求的CStudent.h和CStudent.cpp文件的内容。

//CStudent.h

class CStudent :public CObject { 1分 public:

CString Num; CString Name; CTime Birth; CString Address;

CString Grade; 2分

DECLARE_SERIAL(CStudent) // 使对象可串行化 1分 virtual void Serialize( CArchive & ar ); //重载串行化函数 1分

};

CStudent.cppIMPLEMENT_SERIAL(CStudent ,CObject, 0) 1分 void CStudent:Serialize(CArchive & ar)

{ CObject::Serialize(ar); 1分 if ( ar.IsStoring() ) 1分 { ar<Num>>Name>> Birth >>Address>>Grade; 1分 } }

6、如何定义ODBC的数据源?试叙述其过程。(5分)

打开控制面板,双击ODBC图标,进入ODBC数据源管理器。定义用户DSN的步骤如下:

(1) 单击【添加】按钮,弹出“创建新数据源”对话框。

(2) 为新的数据源选择数据库驱动程序。并单击【完成】按钮。

(3) 在“ODBC Microsoft Access 97 安装”对话框中,应为该数据源起一个简短的

名称。并在下一个编辑框中输入对该数据库的说明。

(4) 指定数据库的位置。单击【选取】按钮,然后指定所创建的Access数据库。 (5) 单击【确定】按钮,刚才创建的用户数据源被添加在“ODBC数据源管理器”

的“用户数据源”列表中。

《VC程序设计》试卷4

一、单项选择题(每小题1分,共20分)

1、假定AB为一个类,则执行“”AB a(4),b(3),*p[2];”语句时,自动调用该类构造函数的次数为( )

A、2 B、3 C、4 D、5

2、对于结构中定义的成员,其隐含访问权限为( ) A、protected B、private C、public D、 static 3、在面向对象编程中,对象的抽象集合称为( )。 A、对象 B、集合 C、类 D、实例 4、下面说法正确的是( )

A、构造函数可以重载,析构函数不能重载。 B、构造函数不能重载,析构函数可以重载。 C、构造函数可以重载,析构函数也可以重载。 D、构造函数和析构函数都不可以重载。

5、实现运行时的多态性,必须通过( )来完成。

A、虚函数 B、重载函数 C、构造函数 D、析构函数 6、类CNum的缺省构造函数和析构函数是( )

A、CNum ( )和~CNum ( ) B、CNum (int)和~CNum( ) C、CNum ( )和~CNum (delete ) D、CNum ( )和int~CNum ( )

7、在类外定义类的成员函数时,应当使用( )来标识该函数为特定类的成员。

A、 : B、 :: C、-> D、this

8、已知类A是类B的友元,类B是类C的友元,则( ) A、类A一定是类C的友元 B、类C一定是类A的友元

C、类C的成员函数可以访问类B的对象的任何成员 D、类A的成员函数可以访问类B的对象的任何成员 9、下面( )是函数重载。

A、void play(int) 和void play(float) B、play( ) 和 ~play()

C、void play(int) 和int play(int) D、void play( ) 和int play( )


Visual C++程序设计与应用教程试题+答案(mfc的应用)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:定积分与微积分的基本定理练习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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