一.课程基本信息。
课程编号:中文名称:c++程序设计。
英文名称:c++ programming
课程类别:专业基础课。
适用专业:计算机科学与技术专业、软件工程专业。
开课学期:秋。
总学时:64 授课:32 上机: 32
总学分:4预修课程:《计算机导论》、《c语言程序设计》、《数据结构》
并修课程:无。
课程简介:“面向对象程序设计”是计算机科学与技术专业、软件工程专业的一门专业基础课。面向对象软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。
它把数据和对数据的操作封装起来,集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的、体现信息隐蔽、可复用、易修改、易扩充等特性的程序。面向对象程序设计方法及技术是对面向对象方法及思想的基本体现。
c++程序设计》主要介绍c++语言的基本概念、语法规则和面向对象的程序设计方法及思想,以 c++ 语言中的面向对象机制为主。学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握 c++ 的面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能,学会利用c++语言进行一般面向对象程序的设计,解决一般应用问题,并为后续专业课程的学习奠定程序设计基础。
建议教材:邵兰洁。《c++程序设计》.北京:北京邮电大学出版社,2009。
参考书:1] 谭浩强。《c++面向对象程序设计》.北京:清华大学出版社,2006。
2] 谭浩强。《c++面向对象程序设计题解与上机指导》.北京:清华大学出版社,2024年。
3] 谭浩强。《c++程序设计实践指导》.北京:清华大学出版社,2024年。
4] 郭有强。 《c++面向对象程序设计》. 北京:清华大学出版社,2024年。
5] 杜茂康。 《c++面向对象程序设计》. 北京:电子工业出版社,2024年。
6] 皮德常。 《c++程序设计教程》. 北京:机械工业出版社,2024年。
7] 李春葆。《c++程序设计教程》(第3版).北京:清华大学出版社,2024年。
8] 钱能。 《c++程序设计教程》(第2版).北京:清华大学出版社,2024年。
二.课程教育目标。
c++是得到广泛应用的面向对象程序设计语言,现代的面向对象软件设计思想在其中得到生动的体现。本课程基于面向对象语言c++中诸如类和对象、友元、模板等面向对象的基本成分,重点介绍面向对象程序设计的基本思想及基本概念:抽象、封装、继承、多态性,c++语言面向对象编程的技术:
函数重载、运算符重载、内联函数、虚函数、友元函数,并通过若干实例的分析,使学生了解并掌握c++面向对象程序设计的基本内容和方法,会编写应用“继承”和“多态性”机制的面向对象的c++ 程序,并初步认识 vc++ 应用程序设计方法及过程。
三、教学形式:
1)课堂授课采用多**教室,理论知识讲授与程序验证相结合,以便学生加深印象。
2)c++程序设计语言课程是一门实践性很强的课程,必须通过上机操作才能掌握所学的知识,所以要特别强调讲授与上机操作相结合,要保证学生有充分的上机条件,达到学必用、学即用。
3)为了配合课程的理论教学,除了保证学生有充分的上机条件,应重点加强课程实验教学环境和内容的建设,同时布置一个规模较大课外编程练习,让学生在自由上机的开放环境中完成。从而达到理论联系实际的目的,使得课程教学更趋完备。
4)针对所留作业,可以组织讨论,以便学生掌握面向对象程序设计思想。
5)不定期课堂测验。
四、理论教学内容与要求。
第1章面向对象程序设计概述(2学时)
一) 教学内容。
1.1 面向过程程序设计。
1.2 面向对象程序设计。
1.3 面向对象的软件开发。
1.4 学生信息管理系统的面向对象分析与设计。
二) 教学要求。
领会面向过程程序设计和面向对象程序设计的编程思想及各自的优缺点;掌握面向对象程序设计的基本概念;了解面向对象的软件开发步骤。
第2章 c++基础知识(4学时)
一) 教学内容。
2.1 从c语言到c++
2.2 简单c++程序。
2.3 c++对c语言的扩充。
2.4 c++程序的编写和实现。
二) 教学要求。
了解c++语言的特点及简单c++程序的构成;掌握c++对c语言的扩充以及c++程序的编辑、编译、链接和运行的过程。
第3章类和对象(8学时)
一) 教学内容。
3.1 类的声明和对象的定义。
3.2 类的成员函数。
3.3 对象成员的访问。
3.4 构造函数和析构函数
3.5 对象数组。
3.6 对象指针。
3.7 对象与const
3.8 对象的动态建立和释放。
3.9 对象的赋值和复制。
3.10 向函数传递对象。
3.11 学生信息管理系统中类的声明和对象的定义。
二) 教学要求。
掌握类和对象的概念及其关系;掌握类的声明方式;声明和定义成员函数的方法;访问类的数据成员和成员函数的方法;理解保护数据如何屏蔽外部访问的原理,使得对类的封装有更好的认识;掌握定义构造函数和析构函数的意义,能够根据要求正确定义和重载构造函数;掌握构造函数和析构函数的调用顺序;掌握对象数组、对象的指针及其使用方法;const型数据的使用;掌握对象的动态建立和释放,对象的赋值与复制。
第4章继承与组合(6学时)
一) 教学内容。
4.1 继承与派生的概念。
4.2 派生类的声明方式。
4.3 派生类的构成。
4.4 派生类成员的访问属性。
4.5 派生类的构造函数和析构函数。
4.6 多重继承。
4.7 基类与派生类的转换。
4.8 继承与组合。
4.9 继承在软件开发中的重要意义。
二) 教学要求。
掌握继承和派生的概念;派生类的声明方式;派生类的构成;公有继承;私有继承;保护继承;派生类的构造函数和析构函数;多重继承的声明方法;虚基类的作用和用法;类的组合。
第5章多态性与虚函数(4学时)
一) 教学内容。
5.1 什么是多态性
5.2 向上类型转换。
5.3 功能早绑定和晚绑定。
5.4 实现功能晚绑定——虚函数。
5.5 纯虚函数和抽象类。
5.6 学生信息管理系统中的多态性。
二) 教学要求。
掌握多态性的概念;虚函数的作用及使用方法;静态关联和动态关联的概念和用法;纯虚函数和抽象类的概念和用法。
第6章面向对象的妥协(2学时)
一) 教学内容。
6.1 封装的破坏——友元。
6.2 对象机制的破坏——静态成员。
二) 教学要求。
掌握友元的概念和使用,理解友元的局限性;掌握静态类数据成员和成员函数的定义和使用方法。
第7章运算符重载(4学时)
一) 教学内容。
7.1 为什么要进行运算符重载。
7.2 运算符重载的方法。
7.3 重载运算符的规则。
7.4 运算符重载函数作为类成员函数和友元函数。
7.5 重载双目运算符。
7.6 重载单目运算符。
7.7 重载流插入运算符和流提取运算符。
7.8 不同类型数据间的转换。
二) 教学要求。
掌握运算符重载的概念;运算符重载的方法;重载运算符的规则;运算符重载为类成员函数;运算符重载为友元函数;转换构造函数的使用方法;类型转换函数。
第8章模板(2学时)
一) 教学内容。
8.1 为什么需要模板。
8.2 函数模板。
8.3 类模板。
8.4 stl简介。
二) 教学要求。
掌握函数模板和类模板的概念、定义与使用方法,了解stl的有关内容。
第9章输入/输出流(自学)
一) 教学内容。
9.1 c++的输入和输出概述。
9.2 c++的标准输入/输出流。
9.3 输入运算符和输出运算符及其重载。
9.4 c++格式输入和输出
9.5 文件操作与文件流
9.6 学生信息管理系统中的文件操作。
二) 教学要求。
掌握c++流的概念,标准预定义流对象cin、cout 、cerr和clog的含义,文件操作,文件流的定义和使用,字符流的定义和使用,了解输入输出的格式控制及专门操作。
第10章异常处理(自学)
一) 教学内容。
10.1 异常处理的概念及c++异常处理的基本思想
10.2 异常处理的实现。
10.3 学生信息管理系统中的异常处理。
二) 教学要求。
掌握c++的异常处理机制和使用方法;会在实际系统中应用异常处理机制。
五、上机内容与要求。
实验一、c++程序的运行环境和运行c++程序的方法(2学时)
1)熟悉vc++集成开发环境。
2)掌握在vc++集成开发环境下编辑、编译、连接和运行一个c++程序的步骤。
3)通过运行简单的c++程序,初步了解c++源程序的结构和特点。
实验二、c++对c的扩充(4学时)
1)了解在面向过程程序设计中c++对c语言的扩充与增强,并善于在编写程序过程中应用这些新的功能。
2)进一步熟悉在所用的vc++集成开发环境下编辑、编译、连接和运行c++程序的方法。
3)进一步熟悉c++程序的结构和编程方法。
实验。三、类和对象(10学时)
1)掌握声明类的方法,类和类的成员的概念以及定义对象的方法。
2)初步掌握用类和对象编制基于对象的程序。
3)学习检查和调试基于对象的程序。
4)掌握类的构造函数和析构函数的概念和使用方法。
5)掌握对象数组、对象的指针及其使用方法。
6)掌握共用数据的保护。
实验。四、继承与组合(6学时)
1)了解继承在面向对象程序设计中的重要作用。
2)进一步理解继承与派生的概念。
3)掌握通过继承派生出一个新的类的方法。
4)了解虚基类的作用和用法。
(5)掌握类的组合。
实验。五、多态性与虚函数(4学时)
1)了解多态性的概念。
2)了解虚函数的作用及使用方法。
3)了解静态关联和动态关联的概念和用法。
4)了解纯虚函数和抽象类的概念和用法。
实验。六、面向对象的妥协(2学时)
1)掌握友元的概念、友元函数的定义与使用方法。
2)掌握静态数据成员与静态成员函数的定义与使用方法。
实验。七、运算符重载(2学时)
1)掌握运算符重载的规则。
2)掌握几种常用的运算符重载的方法。
3)了解转换构造函数的使用方法。
4)了解在visual c++6.0环境下进行运算符重载要注意的问题。
C 程序设计教学大纲
课程教学大纲。贵州大学科技学院。2007年8月。c 程序设计 课程教学大纲。课程中文名称 c 程序设计。课程英文名称 c language programming 课程类别 必修课。课程编号 课程归属单位 贵州大学科技学院。制订时间 2007年8月。一 课程的性质 任务。课程性质 c 程序设计 是电...
《C程序设计》教学大纲
一 说明。一 c程序设计 的课程性质 c程序设计 是高等院校计算机专业专业基础课,也是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。对计算机类专业学生来说是一门必修的课程,同时,这门课程也是 安徽省非计算机专业学生计算机应用能力水平考试 二级考试的主要语种之一。二 教材及授课对...
《C程序设计》教学大纲
c程序设计。c程序设计 课程教学大纲。一 课程基本信息。课程名称 c语言程序设计。课程类别 专业核心课 必修课 适用专业 计算机科学与工程及相关专业课程简介 c程序设计 是计算机专业最最基本的课程之一。本课程旨在让学生掌握一门最常用的程序设计语言 c语言,掌握结构化程序设计的思想,掌握最基本通用算法...