您当前的位置: 湖南自考网 > 教材大纲 > 考试大纲 > 文章详情

湖南自考02328 面向对象程序设计考试大纲

2018-03-26 11:26:12
来源:湖南自考网
湖南省高等教育自学考试

面向对象程序设计

(课程代码:02328 )

湖南省教育考试院组编

2016 年 年 12  月

高等教育自学考试课程考试大纲

课程名称:面向对象程序设计 课程代码:02328

第一部分 课程性质与目标

一、课程性质与特点

面向对象程序设计是高等教育自学考试软件工程(本科)、工业自动化(本科)专业的选考课程。它是为满足从事软件工程工作人才的需要而设置的。本课程的任务是通过全面、系统地学习面向对象程序设计的基本概念、分析方法、设计方法、C++语言基本语法和编程方法;全面理解 C++语言面向对象的基本特性,其内容包括类、对象、派生类、继承、多态性、虚函数、模板、流类库等;深刻理解和领会面向对象程序设计的特点和风格,类的封装性、继承性和多态性与程序的安全性、结构性和灵活多样性之间的关系,达到掌握其设计方法和编程基础的目的,使考生为以后学习 Java 语言程序设计、软件工程等后继课程及进行课程设计打下必备的基础,并且为以后从事应用软件开发提供合适的工具。

二、课程目标与基本要求

通过本课程的学习,要求考生:

1.应了解面向对象的思想和基本概念。

2.应理解 C++保留字和基本数据类型,掌握 C++语言常用运算符的意义、表达式书写方法,能熟练运用基本流程控制语句。

3.掌握函数的概念、定义和调用方法。理解C++函数参数传递的方法,理解变量的作用域与生存期的概念。

4.能加深理解和掌握面向对象的核心概念——类和对象。能定义类,并利用类创建对象,通过访问对象的成员实现对象的联系。设计含有类和对象的应用程序。

5.掌握 C++语言指针和数组的定义和使用方法,要求能编写包含复合数据类型数据处理的应用程序。

6.能设计合理的类层次,并使用继承和派生构造应用程序。

7.深刻理解多态性,掌握实现多态性的方法及其在面向对象中的重要意义。

8.深刻理解类属和模板的概念,掌握函数模板和类模板的定义和使用。

9.掌握从需求分析、程序设计到程序编码的面向对象方法。掌握面向对象方法开发软件的开发过程。

10.能熟练使用 C++语言采用面向对象方法进行应用程序的开发。要求考生能切实掌握 C++程序设计语言作为实际工作中的工具,并为以后学习其它课程打下基础,本课程是一门实践性很强的课程,要求考生不仅要掌握编程方法,而且能在计算机上调试和测试一般的程序。

三、与本专业其他课程的关系

本课程的先行课程为计算机导论,以便对计算机软硬件相关概念有一个初步的了解,本课程的后继课程是 Java 语言程序设计等,本课程学习的面向对象程序设计的思想和基础概念帮助考生学习 Java 语言程序设计,本课程是课程设计的选作课程之一,学好本门课程将有助于课程设计。

 

第二部分 考核内容与考核目标

第一章 程序设计与 C++语言初步

一、学习目的与要求

了解程序的相关概念,程序设计的主要方法,程序设计语言的构成,C++语言程序的基本结构,掌握 C++程序的运行方法和过程。

二、考核知识点与考核目标

(一)C++语言程序的基本程序结构,面向对象程序设计的特点(重点)

识记:main()函数

理解:类,对象,数据封装,继承,多态性

(二)C++程序的运行方法和过程(次重点)

识记:源代码,目标代码,C++的注释

理解:C++语言程序的运行过程

(三)程序的相关概念(一般)

理解:算法,实体,程序,程序设计的概念

 

第二章 基本数据类型

一、学习目的与要求

本章介绍 C++语言的一些基本知识,包括标识符、数据类型、变量、常量、基本数据类型,基本的输入和输出方法,熟练掌握 C++各种运算符的使用方法。

能熟练运用运算符组成需要的表达式。正确使用操作数的类型转换和运算符的优先级顺序和结合性。通过本章的学习,应该能够编写完成简单计算的 C++程序。

二、考核知识点与考核目标

(一)C++语言的基本数据类型和运算(次重点)

识记:C++标识符命名,各种运算符的含义,各种基本数据类型及其常量的表达,符号常量的声明

理解:运算符的优先级和结合性,隐式类型转换规则,强制类型转换的表达方法

应用:运用运算符组成需要的表达式

 

第三章 基本控制结构

一、学习目的与要求

本章介绍了 C++的流程控制语句,包括分支语句:if、if-else 语句,多分支 switch语句;循环语句:for、 while、 do-while 语句;break、 continue 语句,要求能分析 C++程序的执行流程,要求掌握 C++的流程控制语句的书写形式和语句语义及使用方法。

二、考核知识点与考核目标

(一)三种循环的异同(重点)

识记:break、 continue,条件表达式的短路求值,switch (表达式)中表达式的类型

理解:C++简单程序的执行流程,else 最近匹配原则,三种循环的异同

应用:C++的流程控制语句的书写形式和语句的语义,编写简单的 C++程序

 

第四章 函数

一、学习目的与要求

掌握函数的概念、定义和调用方法。理解 C++函数参数传递的方法,掌握函数参数值传递的过程,并能够灵活运用。理解递归的概念,并能运用递归的方法解决一些实际问题。理解变量的作用域与生存期的概念,能够理解全局变量、局部变量、静态变量的概念和用法。理解宏定义、文件包含和条件编译的三种预处理命令的形式、作用和使用方法。

二、考核知识点与考核目标

(一)掌握函数的定义、声明、调用的方法,函数参数传递方式、值传递的过程和运用,局部变量、全局变量和静态变量的概念与运用。函数的调用过程

(重点)

识记:函数的定义、声明、函数原型,内联函数的定义,static、inline、extern等关键字

理解:函数参数传递方式、值传递的过程,标志符的作用域、变量的生存期局部变量、全局变量和静态变量的概念与运用,内联函数的作用

应用:函数的定义和调用方法

(二)理解递归的概念,带缺省参数的函数的定义和调用,理解宏定义、文件包含和条件编译三种预处理命令的形式、作用和使用方法(一般)

识记:递归的概念,带缺省参数的函数的定义和调用方法,常见库函数及其用法

理解:递归函数的运行过程,三种预处理命令的形式、作用和使用方法

应用:分析和编写简单递归函数

 

第五章 类与对象

一、学习目的与要求

理解类的概念及其作用,类的定义,用类声明与创建对象,访问对象成员的方法,对象初始化及其析构,掌握使用类和对象进行编程。

二、考核知识点与考核目标

(一)1.定义类,对象的创建和对象的初始化(重点)

识记:标识符的类作用域,析构函数, static 及 static 成员的特性及作用

理解:类界面、作用域运算符,类成员函数的实现,对象的生存期,构造函数及对象的初始化,对象成员的定义方法,使用初始化列表实现对象成员和常量成员的初始化,对象成员构造函数和析构函数的调用顺序

应用:声明类的方法,类成员的访问控制,对象声明,使用对象成员

(二)关于类与对象的进一步讨论(一般)

识记:基本数据类型的变量类似对象的初始化形式

理解:对象,类,抽象数据类型之间的关系

 

第六章 复合数据类型

一、学习目的与要求

理解指针和引用的基本概念。包括指针和引用的定义方法与初始化等。掌握内存的动态申请与释放的方法,掌握指针和引用作为函数的参数的用法。搞清楚引用传递与值传递的区别。搞清楚指针与数组的关系;掌握数组的定义与使用方法,学会利用数组组织相同类型的数据,编写适合循环处理的程序,掌握数组元素的初始化方法。掌握字符数组处理字符串的技巧。熟悉字符串处理函数的功能及使用方法。掌握数组作为函数参数的使用方法。理解指向对象的指针,掌握动态地创建与撤销对象的方法,要求能编写包含复合数据类型数据处理的应用程序。

二、考核知识点与考核目标

(一)指针的声明,指针的引用,指针的运算,按引用调用的参数传递方式,一维数组的声明,一维数组元素的引用与初始化,数组作为函数的参数,指向对象的指针(重点)

识记:指针的声明,一维数组的声明,对象指针的声明

理解:指针的引用,指针的运算,一维数组元素的引用与初始化,指针与数组的关系,对象的复制与比较,数组作为函数的参数,对象的浅复制和深复制

应用:内存的动态申请与释放,new 和 delete 的作用,引用的作用和使用方法,按引用调用的参数传递方式,对象的动态创建与撤销

(二)指向函数的指针,结构类型、枚举类型与类型别名(一般)

识记:字符串及字符串操作的库函数,指向函数的指针的定义和访问,结构类型的定义方法、枚举类型的定义方法与类型别名定义方法

理解:结构类型的定义与类定义的区别,枚举常量与整形值的对应关系及显式定义枚举常量对应的整形值的方法

 

第七章 继承机制

一、学习目的与要求

掌握单一继承、多重继承、两义性、支配规则和虚基类的概念,掌握派生类的访问权限,构造函数与析构函数的调用顺序,理解两义性产生的原因及处理方法,能熟练运用作用域运算符,掌握赋值兼容规则。

二、考核知识点与考核目标

(一)继承的概念,继承的实现方法,继承成员的访问控制规则,类型兼容性规则,派生类对象继承自基类的成员初始化的方法和析构方法(重点)

识记:继承的概念,继承成员的访问控制规则,访问控制声明

理解:理解基类和派生类的概念,类型兼容性规则,派生类对象继承自基类的成员初始化的方法和析构方法,父子类构造函数与析构函数的调用顺序,父子类成员函数重载,成员函数的重定义的区别,重定义后的成员函数的支配规则

应用:利用继承机制实现类层次编程

(二)多重继承,多重继承的名字冲突问题及解决方法,虚基类及其作用(次重点)

识记:多重继承的实现方法,虚基类的定义方法

理解:多重继承的名字冲突问题及解决方法,虚基类的作用及虚基类成员初始化方法

 

第八章 多态性

一、学习目的与要求

深刻理解多态性、编译时多态性、运行时多态性,纯虚函数、抽象类等概念,深刻理解多态性在面向对象程序设计中的重要意义,熟练掌握实现静态多态性的方法;熟练掌握实现动态多态性的方法。

二、考核知识点与考核目标

(一)多态性的含义,作用及实现方式,虚函数和动态绑定,运行时多态性和各成员函数的调用,纯虚函数、抽象类的含义及应用(重点)

识记:多态性,编译时多态性、运行时多态性,纯虚函数,抽象类等概念

理解:函数调用的两种绑定方式,虚函数和纯虚函数运行情况,运行时多态性出现的条件

应用:如何用虚函数实现多态性

(二)函数重载,运算符重载,拷贝构造函数的作用(次重点)

识记:函数合法重载的定义,调用重载函数应避免出现二义性,拷贝构造函数的定义方法,运算符重载的两种方式,关键字 operator 的含义,

friend 的含义及友员的定义方法,重载运算符时应该遵守的规则

理解:拷贝构造函数的作用,运算符友元重载函数和成员重载函数在参数上的区别

 

第九章 类属机制

一、学习目的与要求

深刻理解类属和模板的概念,掌握函数模板和类模板的定义和使用。

二、考核知识点与考核目标

(一)C++语言使用模板来实现类属机制。函数的模板和类模板定义和使用(次重点)

识记:模板的概念,函数模板,类模板,template 关键字

理解:定义函数模板和定义类模板的方法,类属函数的实例化和类属类的实例化,C++编译器在匹配函数时的约定

 

第十章 输入/输出流

一、学习目的与要求

了解 C++流类库的基本结构,掌握格式化输入、输出的实现方法,掌握重载“>>”和“<<”运算符实现自定义输入输出的方法。掌握通过文件流实现文件的操作的方法。

二、考核知识点与考核目标

(一)C++标准输入输出流的使用,数据格式化输入/输出,文件流的用法(次重点)

识记:C++语言的输入/输出,C++流类库。格式化输入/输出,输入输出

操作符,流类库提供的常用成员输入/输出函数,文件流及各种文件操作

理解:重载“<<”和“>>”来设计自已的输入/输出操作

 

第十一章 面向对象软件构造

一、学习目的与要求

应了解影响一个程序的主要质量因素;掌握从需求分析、程序设计到程序编码的面向对象方法。掌握面向对象方法开发软件的开发过程。

二、考核知识点与考核目标

(一)软件质量因素,面向对象软件构造过程(一般)

识记:程序可靠性,可扩展性,可重用性

理解:面向对象软件构造过程

 

第十二章 结束语

(本章不作考核要求)

 

第三部分 有关说明与实施要求

一、考核的能力层次表述

本大纲在考核目标中,按照“识记”、“理解”、“应用”三个能力层次规定其应达到的能力层次要求。各能力层次为递进等级关系,后者必须建立在前者的基础上,其含义是:

识记:能知道有关的名词、概念、知识的含义,并能正确认识和表述,是低层次的要求。

理解:在识记的基础上,能全面把握基本概念、基本原理、基本方法,能掌握有关概念、原理、方法的区别与联系,是较高层次的要求。

应用:在理解的基础上,能运用基本概念、基本原理、基本方法联系学过的多个知识点分析和解决有关的理论问题和实际问题,是最高层次的要求。

二、教材

指定教材:面向对象程序设计基础,李师贤,高等教育出版社,2005 年 2 版

三、自学方法指导

1.在开始阅读指定教材某一章之前,先翻阅大纲中有关这一章的考核知识点及对知识点的能力层次要求和考核目标,以便在阅读教材时做到心中有数,有的放矢。

2.阅读教材时,要逐段细读,逐句推敲,集中精力,吃透每一个知识点,对基本概念必须深刻理解,对基本理论必须彻底弄清,对基本方法必须牢固掌握。

3.在自学过程中,既要思考问题,也要做好阅读笔记,把教材中的基本概念、原理、方法等加以整理,这可从中加深对问题的认知、理解和记忆,以利于突出重点,并涵盖整个内容,可以不断提高自学能力。

4.完成书后作业和适当的辅导练习是理解、消化和巩固所学知识,培养分析问题、解决问题及提高能力的重要环节,在做练习之前,应认真阅读教材,按考核目标所要求的不同层次,掌握教材内容,在练习过程中对所学知识进行合理的回顾与发挥,注重理论联系实际和具体问题具体分析,解题时应注意培养逻辑性,针对问题围绕相关知识点进行层次(步骤)分明的论述或推导,明确各层次(步骤)间的逻辑关系。

四、对社会助学的要求

1.应熟知考试大纲对课程提出的总要求和各章的知识点。

2.应掌握各知识点要求达到的能力层次,并深刻理解对各知识点的考核目标。

3.辅导时,应以考试大纲为依据,指定的教材为基础,不要随意增删内容,以免与大纲脱节。

4.辅导时,应对学习方法进行指导,宜提倡“认真阅读教材,刻苦钻研教材,主动争取帮助,依靠自己学通”的方法。

5.辅导时,要注意突出重点,对考生提出的问题,不要有问即答,要积极启发引导。

6.注意对考生能力的培养,特别是自学能力的培养,要引导考生逐步学会独立学习,在自学过程中善于提出问题,分析问题,做出判断,解决问题。

7.要使考生了解试题的难易与能力层次高低两者不完全是一回事,在各个能力层次中会存在着不同难度的试题。

8.助学学时:本课程共 3 学分,建议总课时 54 学时,其中助学课时分配如下:

第一章  程序设计与 C++语言初步  2

第二章  基本数据类型  4

第三章  基本控制结构  4

第四章  函数  6

第五章  类与对象  6

第六章  复合数据类型  8

第七章  继承机制  8

第八章  多态性  6

第九章  类属机制  4

第十章  输入/输出流  4

第十一章  面向对象软件构造  2

 54

另第五、六、七、八章每章安排 2 学时习题课,共 54 学时。

五、关于命题考试的若干规定

1.本大纲各章所提到的内容和考核目标都是考试内容。试题覆盖到章,适当突出重点。

2.试卷中对不同能力层次的试题比例大致是:“识记”为 20%、“理解”为30%、“应用”为 50%。

3.试题难易程度应合理:易、较易、较难、难比例为 2:3:3:2。

4.每份试卷中,各类考核点所占比例约为:重点占 60%,次重点占 30%,一般占 10%。

5.试题类型一般分为:单项选择题、填空题、程序改错题、程序填空题、程序分析题、程序设计题。

6.考试采用闭卷笔试,考试时间 150 分钟,采用百分制评分,60 分合格。

六、题型示例(样题)

一、单项选择题(本大题共■小题,每小题■分,共■分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”

上的相应字母涂黑。错涂、多涂或未涂均无分。

1.所谓多态性是指

A.不同的对象调用不同名称的函数  B.不同的对象调用相同名称的函数

C.一个对象调用不同名称的函数 D.一个对象调用不同名称的对象

2.以下有关继承的叙述正确的是

A.构造函数和析构函数都能被继承

B.派生类是基类的组合

C.派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员

D.基类的公有成员一定能被派生类的对象访问

二、填空题(本大题共■小题,每小题■分,共■分)

1.对虚函数使用对象指针或引用,系统使用______联编,对虚函数使用对象调用时,系

统使用______联编。

2.静态成员定义的关键字为____,一般通过 限定来访问静态成员。

三、程序改错题(本大题共■小题,每小题■分,共■分)

1.下面程序中有一处错误,请用下横线标出错误所在行并说明出错原因。

class base{

protected:

int p;

public:

Base(int m){p=m;}

};

void f()

{ Base a(10);

cout<

}

2.下面程序中有一处错误,请用下横线标出错误所在行并说明出错原因。

class Base{

public: virtual void fun()=0;

};

class Test: public Base{

public: virtual void fun(){cout<<"Test.fun="<

};

void main() {

Base a;

Test *p;

p=&a;

}

四、程序填空题(本大题共■小题,每小题■分,共■分)

1.完成下面类中的成员函数的定义。

class test {

private:

int num;

float f1;

public:

test(int , float f);

test(test&);

}

test::test( )

{

num=n;

=f;

}

test::test( )

{

num=

f1=t.f1

}

2.在下面一段类定义中,Derived 类公有继承了基类 Base。需要填充的函数由注释内容给出了功能。

class Base

{

private:

int mem1,mem2;  //基类的数据成员

public:

Base(int m1,int m2) {

mem1=m1; mem2=m2;

}

void output(){cout<

//...

};

class Derived: public Base

{

private:

int mem3;  //派生类本身的数据成员

public:

//构造函数,由 m1 和 m2 分别初始化 mem1 和 mem2,由 m3 初始化 mem3

Derived(int m1,int m2, int m3);

//输出 mem1,mem2 和 mem3 数据成员的值

void output(){

;

cout<

}

//...

};

Derived::Derived(int m1,int m2, int m3): (2)

{ (3) ; }

(1) (2) (3)

五、程序分析题(本大题共■小题,每小题■分,共■分)

分析程序,写出运行结果。

1.#include

void swap(int &,int &);

void main( )

{ int a=5,b=8;

cout<<"a="<

swap(a,b);

cout<<"a="<

}

void swap(int &x,int &y)

{int temp=x; x=y; y=temp;}

2.#include

class a

{

public:

virtual void print(){cout<< " this is class a printing. " << endl; };

};

class b: public a

{

public:

void print(){ } ;

};

class c: public b

{

public:

void print(){cout<< " this is class c printing. " <

};

void show(a &aa)

{

aa.print();

}

void main()

{

a a;

b b;

c c;

show(a);

show(b);

show(c);

}

六、程序设计题(本大题共■小题,每小题■分,共■分)

根据要求,编写程序。

1.定义一个时间类 Time,能提供由时.分.秒组成的时间,编写带三个参数的构造函数,分别初始化时.分.秒,编写成员函数 display()输出时.分.秒,并编写 main()函数测试这个类。

2.设计一个模板函数 max_of_array(),该函数从一个数组中找出其中的最大元素,数组中存放元素的类型可能是 int、float、double 之一,并编写 main()测试该模板函数。

 

湖南学历提升报名热线:
蒋老师QQ咨询 QQ咨询

TEL:蒋老师17773102705

2024年自考、成考、网教报名进行中,点击立即报考咨询>>

扫一扫下方二维码关注湖南自考生网微信公众号、客服咨询号,即时获取湖南自考、成考、网教最新考试资讯。

  • 湖南自考官方公众号

    关注公众号免费拿资料

  • 微信扫一扫咨询

  • 微信扫一扫咨询

免责声明

1、鉴于各方面资讯时常调整与变化,本网所提供的信息仅供参考,实际以考试院通知文件为准。

2、本网部分内容来源于网络,如有内容、版权等问题请与本网联系,我们将会及时处理。联系方式 :QQ(393848300)

3、如转载湖南自考生网声明为“原创”的内容,请注明出处及网址链接,违者必究!

市区导航: 长沙市自考  |   株洲市自考  |   湘潭市自考  |   衡阳市自考  |   邵阳市自考  |   岳阳市自考  |   常德市自考  |   张家界自考  |   益阳市自考  |   郴州市自考  |   永州市自考  |   怀化市自考  |   娄底市自考  |   湘西州自考  |  

特别声明:本站信息大部分来源于各高校,真实可靠!部分内容来自互联网,仅供参考!所有信息以实际政策和官方公告为准!

湖南求实创新教育科技有限公司 版权所有 湘ICP备18023047号-2