聊城市技师学院信息工程系
《C++程序设计》课程教学大纲
80学时(上机实验 24 学时)
一、课程的性质和任务
C++语言是在C语言基础上扩充了面向对象机制而形成的一种面向对象的程序设计语言,它对降低软件的复杂性,改善其重用性和可维护性,提高大型软件的开发效率,具有十分重要的意义。
C++程序设计
主要讲授C++语言的基本语法、数据类型、程序的结构与语句、数组、函数、指针、构造数据类型、类和对象、继承与派生、多态性和虚函数、模板、 I/O 流等方面的问题。
通过本课程的学习,使学生掌握有关面向对象的思想和基本概念,树立面向对象的编程思想,学会程序设计的基本方法和技能,具有用程序设计语言解决实际问题的能力,使学生能编写出符合规范和性能良好的程序,为后续课学习及今后的应用开发打好基础。
二、课程教学内容的基本要求、重点和难点
(一)C++概述
了解程序设计基本概念、程序设计方法,一般问题的计算机求解过程;掌握C++程序结构,main()函
数,C++源程序的编辑、编译、链接和运行,VisualC++6.0集成开发环境的安装和使用。
重点:C++程序结构,main()函数,C++语言程序上机调试步骤和方法。
难点:C++程序结构。
(二)数据类型、运算符与表达式
掌握基本数据类型的定义和使用,熟练掌握整型与实型数据的输入与输出,字符型数据的输入与输出。
掌握常用运算符和表达式的使用,包括算术运算符、关系运算符、逻辑运算符、自增自减运算符、赋值运算符及其表达式的使用,了解运算符的优先级。
了解标识符的构造规则,理解强制类型转换的使用。
重点:数据输入输出中格式控制符的使用,基本数据类型的表示范围对使用的影响。
难点:数据类型转换,运算符的混合使用。
(三)程序的结构与语句
掌握表达式语句和结构化程序设计的三种基本结构,包括顺序结构、选择结构和循环结构,熟练掌握选择结构中的 if-else 语句和 switch 语句,循环结构中的 while 语句和 for 语句,了解 do-while 语句。
理解 break 语句与 continue 语句使用上的区别。
重点:掌握三种基本结构,混合使用三种基本结构解决实际问题。
难点:循环结构的嵌套使用。
(四)函数熟练掌握函数的定义和使用方法;掌握函数参数传递的方式;理解函数的作用范围;掌握函数重载、递归函数。
了解预处理和函数原型的使用;了解变量的作用域和存储类型。
重点:掌握函数的声明、定义、调用和返回;掌握函数参数传递的两种方式对程序运行结果的影响;函数重载。
难点:理解按地址传递函数参数,递归函数的使用。
(五)数组熟练掌握一维数组和二维数组的定义、初始化和数组元素的引用方法;掌握一维数组的基本操作和基本算法,能应用一维数组进行线性查找和排序。
熟练掌握字符数组的定义、初始化与引用;掌握字符数组的输入与输出。
了解数组的存储结构。
重点:一维数组定义及使用方法,并应用一维数组解决实际问题。
难点:理解字符数组与字符串的区别和它们的使用。
(六)指针正确理解指针变量和地址的概念;掌握指针变量的定义与运算;掌握通过指针引用变量的方法;掌握通过指针引用数组元素的方法。
重点:指针定义与运算,指针与数组,指针变量作为函数的参数。
难点:运用指针表达复杂的数据结构,动态分配内存。
(七)构造数据类型掌握结构体类型定义和结构体类型变量的引用;掌握结构体数组和结构体指针的定义、初始化与使用;能够正确引用结构体成员;了解共用体;了解枚举型。
重点:结构体类型定义、结构体类型变量的引用;结构体数组,指向结构体的指针。
难点:结构体数组。
(八)类与对象理解类的基本概念,熟练掌握类的定义方法;理解信息隐藏、封装和抽象数据类型等基本概念以及它
们与类的关系;了解对象、方法和消息等基本概念,能熟练定义和运用对象、方法;掌握方法的定义和引用,方法重载,const 对象和 const 成员函数;了解构造函数和析构函数的特点,理解构造函数和析构函数的功能,熟练掌握构造函数和析构函数的定义和使用方法;理解复合类的含义,掌握复合类、复合类构造函数的定义和使用方法;理解指向对象的指针、指向类成员的指针和 this 指针的概念,掌握前两种指针的定义方法以及这三种指针的使用方法;掌握成员对象和对象数组;掌握静态类成员,接口和实现的分离,友元。
重点:类的定义方法;构造函数和析构函数的定义和使用方法;静态成员和堆对象的概念和编程。
难点:构造函数和析构函数的定义和使用方法; this 指针的概念;静态成员。
(九)继承与派生理解继承与派生的概念,理解继承是如何提高软件可重用性的;掌握派生类的定义方法,能通过继承现有的类建立新类;理解派生类的继承特性并会运用;熟练掌握派生类构造函数和析构函数的概念和编程;理解多继承的概念和编程,理解虚基类的概念,掌握虚基类的使用方法。
重点:继承与派生的概念、派生类构造函数和析构函数的概念和编程。
难点:派生类构造函数和析构函数编程。
(十)多态性理解虚函数、动态多态性和动态联编的概念;了解虚函数和动态联编对实现动态多态的作用;掌握虚
函数的声明、定义方法和访问属性;理解纯虚函数和抽象类的概念,掌握纯虚函数和抽象类的定义方法;了解抽象类和具体类的区别;理解虚析构函数的概念和作用,掌握其声明和使用方法;理解动态联编的实现机理,学会使用动态多态特性。
重点:虚函数、纯虚函数与抽象类。
难点:纯虚函数与抽象类的概念和编程。
(十一)运算符重载了解运算符重载的必要性,理解运算符重载的概念;掌握运算符重载的规则,能够对一般的运算符进
行重载。
重点:运算符重载编程。
难点:运算符重载编程。
(十二)模板理解类模板的基本概念,能用类模板创建相关的类;能区分类模板和模板类;熟练掌握类模板编程;
理解函数模板的基本概念,能用函数模板创建相关的函数;能区分函数模板和模板函数;掌握函数模板编程。
重点:类模板编程。
难
点:类模板编程。
(十三) I/O 流与文件系统了解文件流类的继承关系;掌握使用 ofstream 类建立文件、打开文件和读文件;掌握使用ifstream 类打开文件和写文件;掌握使用文件流读写文本文件;掌握使用文件流读写二进制文件。
重点: I/O 流编程。
难点: I/O 流编程。
三、教学方式及学时分配
四、课程其他教学环节要求
要求:理解输入/输出流的概念,掌握读、写、遍历文本文件和二进制文件。
(二) 课程设计
(一) 实验环节
1. 控制语句编程(4学时)
要求:熟练使用if 语句和switch 语句编程;熟练掌握while 循环和for 循环语句的编程; 循环语句的嵌
套编程;熟练掌握三种基本结构的混合使用编程。
2. 函数编程(2学时)
要求:函数的定义和调用,函数原型的使用;函数参数的传递,对比传值与传参;递归函数和函数重 载。
3. 数组编程(2学时)
要求:一维数组的应用;字符数组的应用;掌握数组应用的一般方法。
4. 指针编程(2学时)
要求:指针引用变量,指针变量作为函数的参数;指针引用数组元素,指针与数组的区别与联系。
5. 结构体编程(2学时)
要求:结构体数组的定义、初始化与使用;结构体指针的定义、初始化与使用。
6. 类与对象编程(4学时)
要求:掌握类的定义,根据具体需求设计类,深入理解类的封装性,会根据类创建各种对象,掌握对 象的
各种成员的使用方法,通过定义构造函数实现对象的初始化。
7. 继承与派生编程(2学时) 要求:掌握继承与派生的概念与使用方法,
设计合适的构造函数初始化派生类; 类的使用方法。
8. 多态性编程(2学时)
要求:理解多态性的概念,掌握如何用虚函数实现动态联编, 抽象类的概念,掌握纯虚函数和抽象类的定
义方法; 明和使用方法。
9. 模板编程(2学时)
要求:理解类模板的概念,掌握类模板的定义、实例化过程, 10.1/0 流编程(2学时)
掌握继承中的构造函数与析构函数的调用顺序, 理解多继承的概念和编程, 理解虚基类的概念, 掌握如何利用虚函数;理解纯虚函数和 理解虚析构函数的概念和作用,
掌握类模板运用。
熟练掌握
为派生类 掌握虚基 掌握其声
要求:学生独立完成教师布置的任务,查阅相关资料、编写程序并写出课程设计说明书。
(三)作业 根据授课进度,布置作业,批改后做集体答疑,讲解作业中出现的问题。
作业的题型以编写程 序为主。
(四)课外 首先完成教师布置的作业,然后利用课余时间进行自主学习,练习编写程序。
五、教学参考书目
《C++程序设计》余苏宁主编高等教育出版社2004.1
《C++语言程序设计教程》 杨进才沈显君刘蓉编著 《C++面向对象程序设计教程》(第2版)陈维兴,林小茶
评价方式 笔试成绩:占 70%;实验成绩:占 30%
大纲制定:贾涛
清华大学出版社 2006.12 编著 清华大学出版社 2004.8
六、。