《面向对象程序设计》考核大纲_第1页
《面向对象程序设计》考核大纲_第2页
《面向对象程序设计》考核大纲_第3页
《面向对象程序设计》考核大纲_第4页
《面向对象程序设计》考核大纲_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计课程考核大纲一、适应对象修读完本课程规定内容的信息与通信工程学院信息工程专业学生;提出并获准免修本课程、申请进行课程水平考核的信息与通信工程学院学生;二、考核目的本课程是以实用为最终目的,主要考核学生对C+语言的掌握程度和对解决一般问题的程序设计能力。不要死记硬背,注重理解和运用。考核分为以下几个层次:理解:要求学生理解面向过程和面向对象程序设计的基本思想和方法,理解C+语言程序的基本结构,理解各种C+语法成分定义、表示和作用。应用:要求学生能够根据所学的C+语言知识和程序设计知识,分析和理解一般的程序或函数模块或类模块,能够根据处理简单问题的要求编写出较规范的并且可读性好的面

2、向过程或面向对象的函数模块或程序。综合应用:要求学生能够综合运用多个知识点进行比较复杂的程序(函数模块)分析和设计,考察学生综合运用知识的能力和实际解决问题的能力。三、考核形式与方法期末考核为试卷考查或其它相应考查方式 四、课程考核成绩构成总成绩 = 平时成绩(40%)+ 期终成绩(60%)平时成绩 = 考勤(5%) + 作业(10%) + 实验(25%) 五、考核内容与要求专题1: C+入门【考核内容】C+语言发展的历史;结构化程序设计与面向对象程序设计;面向对象程序设计的基本思想及基本概念;面向对象的基本特性;面向对象的系统开发方法;上机输入、编辑、连接、运行一个C+程序的过程。【考核要求

3、】理解:C+语言的发展历史、面向对象与面向过程编程的区别、面向对象的基本特性、程序结构、数据类型的分类与作用等内容。应用:能够编写简单的程序,能完成简单数据和表达式的输入和输出,能利用变量存放输入数据、临时数据和计算结果,能利用符号常量存放固定数据,能根据数值计算和数据处理的要求选择合适的常量或变量表示,能利用运算符进行算术、比较(即关系)和逻辑运算,能把一般数学算式、不等式或条件表示成相应的C+表达式。专题2: C+语言对C语言的扩充【考核内容】使用new及delete进行动态内存分配与释放;作用域运算符的概念及使用方法;引用的概念及使用;const常量的概念及使用;内联函数的概念使用方法;

4、带默认参数的函数的使用方法;函数重载的概念及应用;函数模板的概念及应有用。【考核要求】理解:动态内存分配的概念、使用new及delete进行动态内存分配与释放。引用的概念、引用作为函数参数进行传递。(3)函数的定义格式与声明格式,函数调用表达式的格式及执行过程,带默认值参数的含义与用法。(4) 内联函数的定义与声明格式,重载函数的作用。(5) 函数重载的概念、应用函数重载实现编译时多态。(6) 函数模板以及模板函数的概念、应用函数模板实现编译时多态。应用:(1) 能够分析已知函数,给出所能实现的功能或运行结果。(2) 能够根据处理问题的需要合理地设置函数参数、函数的返回值类型以及编写出函数体。

5、(3) 能够使用引用类型作为函数的参数类型和返回值类型。(4) 利用函数重载来优化程序设计。专题3: 类与对象【考核内容】面向对象程序设计的概念;类的定义,类与结构的区别和联系;类成员的访问控制与访问方式;内联与非内联成员函数的声明与定义;对象的生成和初始化;类的作用域;类的构造函数与析构函数;类的拷贝构造函数和赋值重载函数;静态数据成员和静态成员函数;对象成员和一般成员的初始化方式;友元函数与友元类;this指针。【考核要求】理解:(1) 面向对象程序设计的有关概念。(2) 类的定义,类成员的访问权限,构造函数与析构函数的定义格式及作用。(3) 静态数据成员定义、初始化与作用,静态函数成员的

6、定义格式与特性。(4) 友元函数和友元类的声明与作用。应用:能够分析和设计含有简单类定义的程序。综合应用:(1) 能够根据程序要求构造满足要求的类。在构造过程中充分考虑构造函数和析构函数的使用、成员访问控制的运用、内联函数的运用、静态成员的选用。(2) 能够根据要求构造多个类完成所要求的程序设计任务,多个类之间可以发生一定的关系,如一个类作为另一个类的成员或友元、一个类使用另一个类的服务等。专题4: 友元【考核内容】友元的概念和定义;友元函数的概念及应用;友元成员的概念及应用;友元类的概念及应用;【考核要求】理解:(1) 友元对封装的打破。(2) 友元函数的基本概念、语法和使用。(3) 友元成

7、员的基本概念、语法实现和使用。(4) 友元类的基本概念、语法实现和使用。应用:能够利用友元函数、友元成员、友元类等友元的形态完成对类的封装的打破。专题5: 继承与多态性【考核内容】结构化程序设计和面向对象程序设计思想的不同;继承(单继承与多继承)的含义,派生类的定义和使用;派生类中构造函数和析构函数的执行过程;对派生类和基类中同名成员的访问方式;静态联编与动态联编的各自的含义和区别;静态联编与函数重载,动态联编与虚函数,多态性;虚基类,抽象类,具体类,纯虚函数。【考核要求】理解:(1) 类继承的概念和作用,派生类的定义格式。(2) 派生类对基类的继承方式,派生类对基类成员的访问权限。(3) 静

8、态联编和动态联编的含义,函数重载和虚函数的作用。应用:(1) 能分析含有派生类的程序。(2) 能够根据要求构造类的继承层次,并完成一定的程序设计。综合应用:能够利用继承、虚函数、动态联编(即多态性)等机制完成面向对象的程序设计。专题6: 多态性和虚函数【考核内容】运算符重载的概念与函数定义格式;一般函数的运算符重载和成员函数的运算符重载;引用在运算符重载中的作用;单目和双目算术运算符的重载;为什么要引入虚函数;虚函数的定义和使用;纯虚函数的概念;抽象类的概念。【考核要求】理解:(1) 运算符重载的概念及作用。(2) 引用在运算符重载中的作用。(3) 运算符重载作为一般函数和成员函数在参数上的区

9、别。(4) 在继承体系中的向上转型。(5) 虚函数在C+多态中的作用。(6) 纯虚函数的概念及定义方式。(7) 抽象类的概念及其应用方式。应用:能够分析和设计带有运算符重载的函数或类。能够应用封装、继承、多态机制完成面向对象程序设计的应用。专题7: C+语言的输入输出流库【考核内容】C+语言输入输出流库简介;C+语言格式化输入输出;用户自定义数据类型的I/O流;文件I/O流;文件的打开与关闭;文件的读写操作。【考核要求】理解:(1) 使用C+流库对程序输入输出进行格式化调置。(2) 重载输入运算符和输出运算符实现用户自定义的I/O流。(3) C+各种流类的功能。(4) 使用C+流类库对文件读写

10、的基本步骤。(5) C+对文件的读写、对文本文件的读写、对二进制文件的读写。应用: 利用C+流类库对各种类型的文件进行读写操作。专题8: 异常【考核内容】异常处理概述;异常处理的实现;重新抛出异常和异常规范;C+标准库中的异常。【考核要求】理解:(1) 编译时异常和运行时异常。(2) 利用try、throw、catch进行异常处理。(3) 多重catch块。(4) 用户自定义异常的定义及使用。应用: 利用C+异常处理对运行时异常进行基本处理。专题9: Windows编程基础和MFC编程基础【考核内容】1、 Windows编程基础;2、 MFC编程概述;3、 MFC的类层次;4、 常用的MFC类

11、;5、 MFC应用程序的消息映射;6、 典型的Windows应用程序。【考核要求】理解:(1) Windows编程的基本概念和思想、Windows应用程序的消息来源和事件驱动。(2) Windows API编程。(3) MFC的类层次结构以及常用的MFC类。(4) MFC应用程序的消息映射机制。应用: 利用Windows API进行简单程序开发、利用AppWizard开发简单MFC应用程序、使用基本的MFC类。专题十 对话框和控件【考核内容】1、 对话框和控件的基本概念;2、 生成基于对话框的MFC的应用程序框架;3、 AppWizard向导自动生成的文件;4、 按钮控件、编辑框控件、静态控件

12、、列表框控件、滚动条控件、组合框控件;5、 CColorDialog类、CFileDialog类、CFindReplaceDialog类、CFontDialog类、CPrintDialog类。【考核要求】理解:(1) 对话框和控件的基本概念。(2) 生成基于对话框的MFC的应用程序框架中资源文件的理解。(3) 按钮控件、编辑框控件、静态控件、列表框控件、滚动条控件、组合框控件的应用。(4) CColorDialog类、CFileDialog类、CFindReplaceDialog类、CFontDialog类、CPrintDialog类的应用。应用: 利用AppWizard开发简单MFC应用程序

13、、利用各种基本控件的使用和通用对话框的使用使应用程序功能更加完善。六、样卷时量: 120 分钟 总分 100 分一、单项选择:(30分,共10小题,每小题3分)1在C+中有下列4条语句:int ival = 10;int &ri = ival;ival = ival + 10;coutri,ivalendl;执行这4条语句后输出为( )(A)10,10(B)10,20(C)20,20(D)20,102下列语句中,正确的是( )已知:const int m = 10;(A)int *p1 = &m;(B)int &r1 = m;(C)int * const p2 = &m;(D)const in

14、t &r2 = m;3采用函数重载的目的在于( )(A)实现共享(B)减少空间(C)提高速度(D)使用方便,提高可读性4在C+中,关于下列设置参数默认值的描述中,正确的是( )(A)不允许设置参数的默认值(B)设置参数的默认值只能在定义函数时设置(C)设置参数默认值时,应该是先设置右边的再设置左边的(D)设置参数默认值时,应该全部参数都设置5下面( )不能作为类的成员(A)自身类对象的指针(B)自身类对象的引用(C)自身类的对象(D)另一个类的对象6下面叙述中,( )不是构造函数的特征(A)构造函数的函数名与类名相同(B)构造函数可以重载(C)构造函数必须指定返回类型(D)构造函数可以设置默认

15、参数7下面有关析构函数的说法正确的是( )(A)一个类中只能定义一个析构函数(B)析构函数名与类名不同(C)析构函数的定义只能在类体内(D)析构函数可以有参数8友元的作用是( )(A)提高程序的运行效率(B)加强类的封装性(C)实现数据的隐藏性(D)增加成员函数的种类9关于成员函数的描述中,错误的是( )(A)成员函数可以重载(B)成员函数一定是内联函数(C)成员函数可以设置参数的默认值(D)成员函数可以是静态的10可以用p.a的形式访问派生类对象p的基类成员a ,其中a是( )(A)私有继承的公有成员(B)公有继承的公有成员(C)公有继承的保护成员(D)公有继承的私有成员二、程序阅读(30分

16、,共6小题,每小题5分)1写出下面程序的输出结果#include void main()int m=5,n=10,*pm=&m,*pn=&n;int *&r=pm;cout+*rendl;r=pn;cout*r+endl;2写出下面程序的输出结果#include #include class Demopublic:Demo(const char *str) strcpy(name,str);coutConstruct nameendl; Demo() coutDestruct nameendl; private:char name20;Demo go(GlobalObj);void fun()

17、Demo lo1(LocalObj1);static Demo slo(StaticLocalObj);void main()Demo *p=new Demo(HeapObj);fun();Demo lo2(LocalObj2);delete p;3写出下面程序的输出结果#include class Cowpublic:Cow()num+;Cow(int a)age=a;num+;static int get();private:static int num;int age;int Cow:num=0;int Cow:get()return num;void main()Cow one5;fo

18、r(int i=0;i5;i+)onei=Cow(i+105);coutCow:get()endl;4写出下面程序的输出结果#include class Basepublic:Base(int x)coutConstruct Base.n;m_d=x;virtual int get()return m_d;protected:int m_d;class Derived:public Basepublic:Derived(int x,int y):Base(x)coutConstruct Derived.n;m_d=y;int get() return m_d; protected:int m_

19、d;void exam(Base &r)coutr.get()endl;void main()Base ob(5);Derived od(6,7);exam(ob);exam(od);5写出下面程序的输出结果#include class MyClass public:int number;void set(int i);int number=30;void MyClass:set (int i)number=i;void main()MyClass my1;int number=40;my1.set(50);coutmy1.numberendl;my1.set(number);coutmy1.

20、numberendl;my1.set(:number);coutmy1.numberendl;6写出下面程序的输出结果#include class Mpublic:M(int x) da=x; virtual M() coutDestruct M.daendl; protected:int da;class N:public Mpublic:N(int x):M(x) N() coutDestruct N.daendl; ;void fx(M &r)delete &r;void main()M *p1,*p2;p1=new M(3);fx(*p1);p2=new N(5);fx(*p2);三、

21、程序填空:(24分,共3小题,每小题8分)1将程序补充完整,使得程序的结果为:Friday Monday#include void swap(_)char *temp;temp=p1;p1=p2;p2=temp;void main()char s1=Monday;char s2=Friday;char *pa=s1,*pb=s2;_coutpa pbendl;2将程序补充完整,使得程序得到给定的结果#include class Apublic:A(int x) ma=x; void f() coutIn function fn; void print() coutmaendl; private

22、:int ma;class B: _ public:B(int x,int y):A(x) mb=y; void print() A:print(); coutmbendl; private:int mb;class C: _ public:C(int x,int y):A(x) mc=y; void print() A:print(); coutmcendl; private:int mc;class D:public B,public Cpublic:D(int x,int y): _ md=y; void print() B:print(); C:print(); coutmdendl; priva

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论