当前位置:文档之家› Windows编程基础-期末考试试卷头期末-A卷答案

Windows编程基础-期末考试试卷头期末-A卷答案

北华航天工业学院2013—2014学年第二学期Windows编程基础课程考试卷(A、B)考核形式:开卷闭卷班级:姓名:学号:一、填空题(每空1分,共10分)1. 用户可以通过项目工作区窗口的ResourceView 视图来查看资源。

2. 一个单文档的MFC 应用程序框架一般包括5个类:应用程序类、框架窗口类、视图类、文档类和文档模板类。

3. 改变菜单项文本是使用CCmdUI 类的SetText 成员函数。

4. 滚动条类CScrollBar的成员函数规定了滚动条的操作。

设置滚动条的范围使用SetRange 函数,设置滚动块的位置使用SetScrollPos 函数,获取滚动块的当前位置使用GetScrollPos 函数。

5. 对话框默认标识符前缀是IDD 。

二、选择题(每空2分,共40分)1.MFC类库中的类按层次关系可知,CStatic的直接父类为(B )。

A、CObjectB、CWndC、CCmdTargetD、CFrameWnd2. 以下控件中,( C )没有Caption属性。

A、按钮B、群组框C、编辑控件D、静态控件3. 列表框ClistBox类的成员函数( A )用来向列表框增加列表项,成员函数( C )用来清除列表项所有项目,成员函数( F )用来返回列表框的列表项的总数。

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

A、2B、3C、4D、55.在类外定义类的成员函数时,应当使用( B )来标识该函数为特定类的成员。

A、:B、::C、-> D、this6. 在面向对象编程中,对象的抽象集合称为( C )。

A、对象B、集合C、类D、实例7.下面(A )是函数重载。

A、void play(int) 和void play(float)B、play( ) 和~play( )C、void play(int) 和int play(int)D、void play( ) 和int play( )8. Windows应用程序中的消息主要有以下三种类型:(B )、控件通知消息和命令消息。

A、系统消息B、窗口消息C、事件通知消息D、自定义消息9. 要将模式对话框在屏幕上显示需要用到(B )。

A、CreateB、DoModalC、OnOKD、构造函数10. 在编辑某菜单项时,若要指明该菜单项是一个弹出式子菜单,必须选择属性对话框中的( B )。

A、SeparatorB、Pop-upC、InactiveD、Grayed11. 利用ClassWizard 不能(D )。

A、建立新类B、进行消息映射C、增加类的成员变量D、插入资源12. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送( C )消息。

A、WM_CHARB、WM_HSCROLLC、WM_VSCROLLD、WM_CHANGE13. 希望菜单无效,应该用CCmdUI 类的(A )成员函数。

A、EnableB、SetRadioC、SetCheckD、SetText14. 希望菜单前出现一个√,应该用CCmdUI 类的( C )成员函数。

A、EnableB、SetRadioC、SetCheckD、SetText15. 如果类中的成员只能被本类的成员函数和友元函数访问,则这些成员的访问权限为( B ),如果类中的成员能够被类外的函数访问,则这些成员的访问权限为( C )。

A、protectedB、privateC、publicD、static16. 在MFC中,当在应用程中添加一个图标资源后,可使用(D )函数将其调入并返回一个图标句柄。

A、CWinApp::GetIconB、CWinApp::InitIconC、CWinApp::TrackPopupIconD、CWinApp::LoadIcon17. 设置编辑控件的文本内容,可使用函数( A )。

A、SetWindowText( )B、SetSel( )C、ReplaceSel( )D、GetWindowText( )三、判断题(正确请打√,错误请打×,每空1分,共10分)1. 打开一个项目,只需打开对应的项目工作区文件。

(√)2. 给菜单项定义快捷键,只需在菜单项属性设置对话框的Caption文本框中说明即可。

(×)3. 状态栏的功能有CToolBar类实现。

(×)4. UpdateData(true)函数完成控件外部的输入值传递给内部成员变量的操作。

(√)5. 所有的Windows应用程序都是消息驱动的。

(√)6. 同一项目中,Visual C++在内部用来标识资源的资源符号不能重复。

(√)7. 一个旋转按钮控件通常是和一个相伴的控件一起使用的,该控件的Tab键次序大于旋转按钮。

(×)8. 每个控件最多只能关联Control和Value类型成员变量各1个。

(√)9. MFC的CProgressCtrl类封装了进度条控件的各种操作,该类的成员函数SetRange用来设置进度条的范围。

(√)10. 无模式对话框被弹出后,用户必须在对话框中做出相应的操作,在退出对话框之前,对话框所在应用程序的其他操作不能继续执行。

(×)四、程序设计题(共40分)1. 设计一个基于对话框的应用程序,如下图所示。

要求:单击Path按钮,能弹出通用文件对话框选取文件,并在文件路径编辑框中显示该文件的路径(10分)。

已知:编辑框的ID为:IDC_DISPLAY。

写出Path按钮的BN_CLICKED消息处理函数。

void CXT6_4Dlg::OnColor( ){CString filter;filter="文本文件(*.txt)|*.txt|C++文件(*.h,*.cpp)|*.h;*.cpp||";CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,filter);if(dlg.DoModal ()==IDOK){CString str=dlg.GetPathName ();GetDlgItem(IDC_EDIT1)->SetWindowText(str);}}2. 在一个对话框中,设置三个编辑框,前两个用于输入被除数和除数,点击“除法”按钮后,将前两个数的商输出到第三个编辑框中。

(10分)各控件对应的成员变量见下表。

(1)且使“除法”按钮变得不可用,请写出“除法”按钮的BN_CLICKED消息处理函数。

void CdivDlg::OnDiv( ){}(2) 当第二个编辑框的内容发生变化,使“除法”按钮变得可用,并且判断该编辑框的值,如果为0,则弹出对话框提示“除数不能为0!”,并且将光标放在编辑框内。

V oid CdivDlg::OnChangeNum2( ){}3. 该应用有4个命令按钮,作为增加项目、删除项目和全部删除项目以及退出程序的按键。

另外,还有一个编辑框作为新项目名称输入框IDC_NAME_EDIT,对应控件变量为m_Name(类型为CString),1个静态文本用于显示项目数目,列表框用于项目列表,对应控件变量为m_List1,1个静态文本用于显示标题。

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

BOOL CEx6_3Dlg::OnInitDialog( ){m_List1.AddString("China");m_List1.AddString("Germany");UpdateData(FALSE);return TURE;}(2) “增加”命令按钮的单击消息处理函数OnAdd( ) 将新项目名称输入框的内容增加到列表框中。

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)“删除”按钮的单击消息处理函数OnDel( ) 将当前列表框中选中的项删除。

void CEx6_3Dlg::OnDel( ){int nIndex=m_List1.GetCurSel();if(nIndex!=LB_ERR){ m_List1.DeleteString(nIndex); }elseMessageBox("当前没有选择项或列表框操作失败");UpdateData(FALSE);}。

相关主题