湖南农业大学东方科技学院VC++期末复习
更新时间:2024-05-03 20:54:01 阅读量: 综合文库 文档下载
一、选择和填空题
1) 基类中采用virtual说明一个虚函数后,派生类中定义相同原型的虚函数时,可不必加virtual说明 2) 运算符的重载不能改变操作数的个数,也不能改变运算符的优先级和结合性
3) int a=5; int arr[a]语句错误,因为静态声明时,数组的大小必需明确给出,不能用变量的值定大小。 4) short int a=0,b=0;则表达式sizeof(a+b)的值是4,因为表达式的结果还是个shor int类型。 5) switch()语句中的括号内必需是整型数值,不能出现带小数点的值。
6) C++采用new运算符进行内存动态分配,使用delete运算符实现内存动态撤销。
7) C++的类中的数据成员一般定义为私有的,而成员函数一般定义为公有的,一般通过公有函数访问其
私有的数据成员。
8) 类的三大特性是:封装性,继承性和多态性。 9) 类的多态性是通过虚拟函数实现的。 10) 11) 12) 13) 14)
类在生成对象时会自动调用构造函数,在对象销毁时会自动调用析构函数。 构造函数和析构函数中,构造函数可以重载,析构函数不能重载。
C++语言中,函数调用的参数传递有三种方式,分别是值传递,指针传递和引用传递。 基类的私有成员以public派生方式派生到派生类中是不可见的。
单文档结构中,在视图对象中获得文档对象指针的函数是GetDocument(),文档和磁盘之间进行
数据交换的函数是Serialize()。 15) 如果基类有构造函数,则在生成派生类对象时先调用基类的构造函数。
16) 虚拟函数与函数重载的区别是:函数重载是指函数名相同,在函数调用时,根据函数参数类型或
个数的不同而调用正确的函数版本。而虚拟函数是指基类中存在,在派生类中进行重定义的函数,无论是函数名还是函数的返回值及函数的参数都完全相同。 17) Windows程序设计是消息驱动的程序设计方法。 18)
消息结构体中的三个数据成员message,wParam和lParam分别代表消息标识符,消息附加参数,
消息附加参数。 19) 几乎所有的MFC类都是从CObject类派生的。 20) 21)
简单应用程序框架由CWinApp类和CFrameWnd类搭建。
文档/视图的应用程序框架由CWinApp类,CFrameWnd类,CDocument类,CView类和
CDocTemplate类搭建。 22) 单文档应用程序框架中,主框架窗口由CMainFrame类派生,其文档模板类是CSingleDocTemplate. 23) 一般用CFileDialog类和CFile类配合完成文件的读写,其中真正实现文件读写的类是CFile类。 24) 消息WM_LBUTTONDOWN的缺省消息映射是ON_WM_LBUTTONDOWN(),其缺省的消息处
理函数是OnLButtonDown(UINT nFlags,CPoint point)。
25) 资源描述文件的后缀是.rc,随资源描述文件自动生成的文件是resource.h文件。 26) 单击菜单项会发出WM_COMMAND消息,设某菜单项的ID是ID1,其处理函数设为函数1,则
其消息映射应该为ON_COMMAND(ID1,函数1)。 27) 对话框类用DoModal()函数显示对话框,这一函数的两个可能的返回值分别为IDOK和IDCANCEL。 28) CFileDialog类用GetPathName()函数获取用户所选择的全文件名。
29) 单文档/视图结构中,主框架窗口类由CFrameWnd类来管理,客户区窗口由CView类来管理,程
序的数据一般由CDocument类来管理。 30) 31) 32)
文档/视图结构中,文档数据和磁盘数据进行交互的函数是Serialize()函数。
多文档/视图结构中,子框架窗口参与了文档/视图结构,视图位于子框架窗口内。 文档/视图结构中单击“保存”菜单项,其缺省的处理函数是CDocument基类的OnFileSave()函数。
33) VC++工作区中的三个页面分别是 ClassView,FileView和ResourceView页面 34) 设编辑控件的ID为IDC_EDIT1,与其进行数据交换的变量为int r,则其交换语句为
DDX_Text(pDX, IDC_EDIT1, r); 决定其数据交换方向的是pDX;当初始化对话框时其数据交换的方向是从r到IDC_EDIT1,当单击“确定”按钮关闭对话框时,其数据交换的方向是从IDC_EDIT1到r。
二 名词解释
1)集成开发坏境(IDE)
集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、debug功能等一体化的开发软件套
2)事件驱动机制
程序的设计围绕事件驱动来进行。当对象有相关的事件发生时(如按下鼠标键),对象产生一条特定的标识事件发生的消息,消息被送入消息队列,或不进入队列而直接发送给处理对象,主程序负责组织消息队列,将消息发送给相应的处理程序,使相应的处理程序执行相应的动作,做完相应的处理后将控制权交还给主程序。
3)句柄
一个句柄是指使用的一个唯一的整数值,是指一个四字节长的数值,用于标志应用程序中的不同对象和同类对象中的不同的实例。
4)资源
Windows资源包括加速键、位图、光标、图标、菜单栏、工具栏、字符串、对话框、版本信息、用户自定义资源。 5)视图文档结构 文档负责保存数据,视图负责显示数据。用一个文档可以有多个视图,框架负责管理多个视图,任何时刻都只有一个激活的文档。
三、简单题
1) 用框架图说明Windows程序的执行思路和Windows API 程序设计中WinMain()函数和WndProc()函
数的作用。
WM_QUIT 否 应用程序处理消息 是 程序开始执行 WinMain()函数负程序打开窗口 责 WndProc()函数负责 检测发向窗口的消息 处理消息 是否 windows默认处理 程序结束,关闭窗口 2)试说明函数Invalidate()的作用。
Invalidate()函数的调用发出WM_PAINT消息,这一消息将引发OnPaint()函数的调用,基类(CFrameWnd类)的OnPaint()函数将调用OnDraw()函数,如果派生类中没有重写基类的虚拟函数OnDraw(),则调用的是基类的OnDraw()函数,基类的OnDraw()函数承担了重新绘制窗口,清除原有窗口内容的功能。
3)简述文档/视图结构中单击“新建”菜单建立一个新文档时的函数执行流程。
4)写出对话框中构造器函数,OnInitDialog()函数和DoDataExchange()函数的执行顺序。
CMyDialog mydialog; mydialog.DoModal(); CMyDialog::CMyDialog(CWnd* pParent /*=NULL*/) :CDialog(CMyDialog::IDD, pParent) { }//构造器函数 CView::OnUpdate() OnDraw()函数通过GetDocument()函数获CMyView::OnDraw() 得文档的指针,从而获得文档的私有数据 CWinApp::OnFileNew() 在此设新文档的数据 CView::OnInitialUpdate() 新建(ID_FILE_NEW) CMyDoc::OnNewDocument() 对话框显示之前发出WM_INITDIALOG消息 BOOL CMyDialog::OnInitDialog() { CDialog::OnInitDialog(); pEdit=(CEdit*)GetDlgItem(IDC_EDIT1); return TRUE; void CMyDialog::DoDataExchange(CDataExchange* pDX) {CDialog::DoDataExchange(pDX); DDX_Control(pDX,IDC_EDIT2, m_edit2); } }
5)UpdateData()函数决定了控件和对话框中的数据成员的数据交换方向,分别用TRUE和FALSE这两个参数调用此函数,结果是什么?
当用TRUE调用UpdateData()函数时,数据从控件传给对话框中的数据成员,当用FALSE调用UpdateData()函数时,数据从对话框中的数据成员传给控件。 6)简述函数重载和虚拟函数的区别
函数重载是指函数名相同,在函数调用时,根据函数参数类型或个数的不同而调用正确的函数版本。而虚拟函数是指在基类中存在,在派生类中进行重定义的函数,无论是函数名还是函数的返回值及函数的参数都完全相同
五、程序设计题
1)编写函数OnSelectFile(),其功能是生成并显示一个文件打开对话框,当单击对话框的OK按钮关闭对话框后,能获得打开的文件的路径,并将它存放在CString类型的私有成员变量m_FilePath中。
void CMainWnd:: OnSelectFile () {
CString FilePathName;
CFileDialog dlg(TRUE,NULL,NULL,0,\if(dlg.DoModal()==IDOK)
m_FilePath=dlg.GetPathName();
}
2) 编制程序,要实现的功能是:在单文档结构的视图中,当依次按下键盘上的a,b,c键时,在窗口的
(20,20)位置分别显示a,b,c字符。请编写WM_CHAR的映射函数OnChar()。 void CMyView::OnChar(UINT nChar,UINT nRepCnt,UINT nFlags)
{
CDC*pDC=GetDC();//获得系统设备环境dc Invalidate(); UpdateWindow(); 请填写核心代码
。。。。。。 。。。。。。
CFrameWnd::OnChar(nChar,nRepCnt,nFlags); }
3) 如下所示有基类student和派生类stud,改正派生类的构造函数
#include
protected:
int num;
char name[10];
char sex; public:
student(int n,char*na,char s) {
num=n; strcpy(name,na); sex=s; } };
class stud:public student {
private: int age; public: stud(int n,char*na,char s,int a) {
num=n;
strcpy(name,na); sex=s; age=a; }
正确写法
stud(int n,char*na,char s,int a):student(n,na,s) { age=a; } };
正在阅读:
湖南农业大学东方科技学院VC++期末复习05-03
监理理论试题11-04
初二下悦读联播-module1204-10
知名地产公司标准化的销售业务流程图05-16
南华大学局部解剖学课程考试试卷(AB)10-06
街头见闻作文500字07-08
大气污染控制工程期末试题及答案04-13
深圳红树林水质调查报告04-21
09年教师资格认定教育心理学考试试卷05-29
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 湖南农业大学
- 期末
- 复习
- 东方
- 学院
- 科技
- VC