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

2019-08-17 12:53

10、下列说法中正确的是( )

A.类定义中只能说明函数成员的函数头,不能定义函数体。 B.类中的函数成员可以在类体中定义,也可以在类体之外定义。

C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中。 D.在类体之外定义的函数成员不能操作该类的私有数据成员。

11、Windows操作系统主要基本内核元件中,_______支持与操作系统密切相关的功能:如进程加载、文本切换、文件I/O以及内存管理、线程管理等。( ) A、GDI B、KERNEL C、USER D、以上都不是。

12、一个视图对象能连接( )文档对象,一个文档对象能连接( )视图对象。

A、一个,多个 B、多个,一个 C、一个,一个 D、多个,多个

13、所有的控件都是 ( ) 类的派生类,都可以作为一个特殊的窗口来处理。 A、CView B、CWnd C、CWindow D、CDialog 14、设置编辑控件的文本内容,可使用函数 ( ) A、SetWindowText( ) B、SetSel( ) C、ReplaceSel( ) D、GetWindowText( ) 15、根据对话框的行为性质,对话框可以分为两类:( ) A、对话框资源和对话框类 B、模式对话框和非模式对话框 C、对话框资源和对话框模板 D、消息对话框和模式对话框 16、以下控件中,( )没有Caption属性。

A、按钮 B、群组框 C、编辑控件 D、静态控件 17、菜单项助记符前用( )引导。

A、% B、& C、# D、$ 18、MFC中的集合类包括( )。

A、对象、列表和映射 B、数组、列表和对象 C、数组、列表和映射 D、数组、列表和链表

19、文档负责将数据存储到永久存储介质中,通常是磁盘文件或数据库,存取过程称为( )。

A、文件访问 B、串行化 C、文件读写 D、格式化 20、下列对模板的声明,正确的是( )。

A、template B、template C、template D、template

二、选择填空题(每空1分,共20分)

1、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行 ⑴ A 的构造函数,接着执行 ⑵C 的构造函数,然后执行__ _⑶B___的构造函数,最后才执行 ⑷ D 的构造函数。 A、基类的对象成员 B、派生类的对象成员 C、基类 D、派生类

2、所有的文档类都派生于 [5] C ,所有的视图类都派生于 [6]A 。 A、CView B、CWindow C、CDocument D、CFormView

3、 [7]C 包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息; [8] D

用来与Windows的控制对象,如列表框、按钮、复选框等进行双向通信。当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。 A、系统消息 B、用户消息 C、输入消息 D、控制消息

4、使用 [9]B 获取的设备上下文在退出时,必须调用ReleaseDC( )释放设备上下文。

A、GetWindowRect( ) B、GetDC( ) C、BeginPaint() D、GetClientRect( )

5、常用的CButton类的成员函数中: ⑽A 获得一个按钮控件的选中、选择和 聚焦状态; ⑾D 得到一个按钮的选中状态; ⑿ C 设置一个按钮的选中状态。

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

6、滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用 ⒀ C 函数,设置滚动块的位置使用 ⒁ E 函数,获取滚动块的当前位置使用 ⒂ F 函数。

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

7、如果类中的成员只能被本类的成员函数和友元函数访问,则这些成员的访问权限为___[16]B _;如果类中的成员能够被类外的函数访问,则这些成员的访问权限为:___[17]C__。

A、protected B、private C、public D、static 8、列表框分为 [18] B 和 [19C] 两种, [20] B 中任一时刻只能选择一项。

A、组合框 B、单选列表框 C、多选列表框 D、编辑框

三、程序设计题(共60分) 1、下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle)、并给出具体的求面积函数。 (10分) class shape{ public:

virtual float area( )=0 };

float total(shape *s[ ],int n) { float sum=0.0;

for(int i=0; i

sum=sum+i.area( );

return sum; }

#include class triangle:public shape{ public:

virtual float area( )

{

float s=(a+b+c)/2;

return sqrt(s*(s-a)*(s-b)*(s-c)); } private:

float a,b,c; };

class rectangle:public shape{ public:

virtual float area( ) {

return a*b; } private:

float a,b; };

2、创建一个记录通讯录内容的新类Caddrlist,包含:姓名、住址、电话、出生日期,并使该类可以实现串行化。请写出可以实现要求的CAddrlist.h和CAddrlist.cpp文件的内容。(10分) //Addrlist.h文件内容: 5分

class CAddrlist : public CObject { public:

CString Name; CString Address; CString Tel; CTime Birth;

CAddrlist();

DECLARE_SERIAL(CAddrlist) // 使对象可串行化

virtual void Serialize( CArchive & ar ); //重载串行化函数 };

Addrlist.cpp文件内容: 5分IMPLEMENT_SERIAL(CAddrlist,CObject, 0) void CAddrlist::Serialize(CArchive & ar) { CObject::Serialize(ar); if ( ar.IsStoring() )

{ ar< { ar>>Name>>Tel>>Address>>Birth; } } 3、(20分)该应用有4个命令按钮,作为增加项目、删除项目和全部删除项目以及退出程序的按键。另外,还有一个编辑框作为新项目名称输入框

IDC_NAME_EDIT对应控件变量为m_Name(类型为CString),1个静态文本用于显示项目数目,列表框用于项目列表对应控件变量为m_List1,1个静态文本用于显示标题。界面下图所示。

根据要求写出代码:

(1)对话框初始化消息处理函数OnInitDialog()里,向列表框添加“China”,“Germany”两项内容。

BOOL CEx6_3Dlg::OnInitDialog() {

return TRUE; }

(2) “增加”命令按钮的单击消息处理函数OnAdd() 将新项目名称输入框的内容增加到列表框中。

void CEx6_3Dlg::OnAdd() { } (3)“删除”按钮的单击消息处理函数OnDel() 将当前列表框中选中的项删除

void CEx6_3Dlg::OnDel() { }

(1) BOOL CEx6_3Dlg::OnInitDialog( )

{ m_List1.AddString(\ m_List1.AddString(\

UpdateData(FALSE);

return TRUE;

}

(2) void CEx6_3Dlg::OnAdd()

{ if ( m_Name.IsEmpty() )

{ MessageBox(\项目名不能为空!\ return; }

m_Name.TrimLeft();

m_Name.TrimRight();

if ( m_List1.FindString(-1,m_Name)!=LB_ERR )

{ MessageBox(\列表框中已有相同的项目名,不能添加!\ return; }

m_List1.AddString(m_Name); UpdateData(FALSE);

}

(3) void CEx6_3Dlg::OnDel( )

{ int nIndex=m_List1.GetCurSel();

if(nIndex!=LB_ERR)

{ m_List1.DeleteString(nIndex); } else MessageBox(\当前没有选择项或列表框操作失败\

UpdateData(FALSE);

}

4、下面是一个基于对话框的应用程序,用来求解一元二次方程的根。当用户在A、B、C 三个编辑框中输入3个参数后,单击【计算】按钮,将显示出该方程的根。(10分)

各控件对应的成员变量见下表:

控件ID号 变量类型 IDC_A_Eint DIT IDC_B_Eint DIT IDC_C_Eint DIT IDC_X1_CString EDIT IDC_X2_Cstring EDIT

试写出计算按钮的单击消息处理函数。

void CEx3_4Dlg::OnButton1() {

变量名 m_a m_b m_c m_x1 m_x2


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

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

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

马上注册会员

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