《C程序设计语言》课程教学指导.docx
- 文档编号:13402228
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:11
- 大小:22.88KB
《C程序设计语言》课程教学指导.docx
《《C程序设计语言》课程教学指导.docx》由会员分享,可在线阅读,更多相关《《C程序设计语言》课程教学指导.docx(11页珍藏版)》请在冰点文库上搜索。
《C程序设计语言》课程教学指导
《C++程序设计语言》课程教学指导
(班级:
200610587)
编写:
兰济昀
测绘工程专业
2006.8
《C++程序设计语言》课程教学指导
一、本课程的性质、目的
面向对象程序设计是测绘工程专业的一门选修课程。
面向对象软件开发方法是吸收了软件工程领域有益概念和有效的方法而发展起来的一种软件开发方法。
它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩大等特性的程序。
本课程主要介绍面向对象程序设计的方法和C++语言的基本概念。
以C++语言中的面向对象机制为主。
学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握C++的面向过程和面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能。
二、本课程的教学重点
通过本课程的学习,可以使学生熟悉面向对象C++语言发展的历史、为什么要面向对象、面向对象语言分类、C++中支持面向对象的特点及面向对象的软件开发环境MicrosoftVisualC++,理解和掌握面向对象程序设计(OOP)的基本思想及基本概念:
抽象、继承、封装、多态性,掌握使用C++语言进行面向对象编程的技术:
函数重载、运算符重载、内联函数、虚函数、友元函数,编写实现“继承”和“多态性”的C++程序,初步认识VC++应用程序设计方法及过程。
理论部分:
本课程的教学应着重立足于:
1、掌握C++程序设计语言的基本语法与规则。
。
2、灵活运用过程化编程方法,对一些简单的问题,能通过编程实现加以解决。
3、基本把握各语法现象,重点把握函数、程序结构、指针、引用、类概念。
对一些简单的程序设计实例,会举一反三。
4、了解结构化程序设计和面向对象程序设计方法之差别,理解面向对象程序设计的方法。
5、能够分析面向对象程序的程序结构,阅读和理解面向对象的程序。
6、能够简单模仿面向对象程序,并能上机实现之。
实践部分:
鉴于本课程具有很强的实践性,本课程教学的另一个重点是应注重在计算机上的实践,并辅之以课程作业和实验等实践性教学环节。
三、本课程教学中应注意的问题
1、理论教学环节与实践性教学环节的有效结合;
2、培养学生的自主学习能力;
3、本课程有很多方法性的讲述,应多用教学案例与课程教学内容密切结合,增加学生的可接受性和兴趣;
四、本课程的教学目的
通过本课程所有教学环节,应使学生全面了解C++语言的数据类型、语句及结构特点,系统掌握程序设计方法,培养良好的程序设计风格和习惯,培养上机解题调试程序的能力。
五、本课程采用的教学方法
本课程的主要理论、技术和方法等主要内容可采用课堂讲授(多媒体)方法,实验采用分别上机,统一指导的方式。
六、课程教学资料
教材:
C++程序设计基础,张基温,高等教育出版社,2003年2月
参考书:
1.《C++程序设计语言教程》,麦中凡,北京航空航天大学出版社。
2.《C++程序设计语言》,BjarneStroustrup蓍,麦中凡等译。
3.《C++语言程序设计》,郑莉,傅仕星,清华大学出版社。
七、成绩评定
1、平时课程作业、实习报告占本课程考核总成绩的30%,考试占70%。
2、根据《西南科技大学学分制学籍管理暂行办法》(西南科大发[2001]207号)第十二条规定:
有下列情形之一者,取消考核资格,必须重修。
1、学生(免修生除外)在一学期内,无论何种原因,累计缺课达教学时数的三分之一者;或任课教师随机抽查缺课6次以上者;2、有实验、作业等环节的课程,学生未按时完成实验、实验报告及作业等环节。
抄袭他人实验报告、作业的,当事人双方的实验报告、作业均按作弊处理,根据学生的认错态度和补做情况,可以考虑是否给予取消考核资格。
八、先修课程要求
本课程学生应修完《计算机基础》课程。
九、课程内容课时安排
第一章面向对象程序设计基本概念与发展2学时
从传统编程的缺陷出发,介绍面向对象编程的发展历史与优势,介绍数据抽象、封装、
可重用性、继承和多态性等面向对象的概念,引入了对象和成员函数的定义。
讲授时注意从
过程式到面向对象编程思想的过渡。
1.1简介。
比较面向对象与传统编程的优劣。
1.1.1面向对象方法。
现实世界中的一切都可以看作对象,这样的定义过程最接近人类思维。
1.1.2传统编程的缺陷。
程序的复杂性、海量数据的处理、应用程序的维护、版本升级、跨平台移植对传统编程都是极大的挑战。
1.1.3面向对象编程简介。
面向对象编程以最接近人类思维的方式将现实世界中的对象映射为编程解决方案中的实体,把代码和数据有机地结合了起来。
1.2基本的面向对象概念(重点)
重点讲述对象、类、封装、抽象和可重用性的概念。
通过举例来说明数据隐藏和封装。
1.2.1对象。
对象是定义了边界的、与要解决的问题有关的概念或事物,能帮助理解现实世界,并为计算机应用程序提供实用基础。
1.2.2类。
类是拥有相同特性、共同的行为和共同的关系的一组对象。
类本身具有属性和方法。
类是一种一般化的概念,具有普通性和灵活性。
1.2.3抽象。
数据抽象是将与某个特定实体有关的特性和方法标识为与应用程序相关的过程。
例如:
将对象归为类的过程。
1.2.4继承。
继承是允许通过重用现有类来构建新类的特性。
其中,现有类称为超类,新类称为子类。
1.2.5封装。
封装是允许有选择地隐藏类中的特性和方法的过程,可以有效地保护数据不被破坏。
1.2.6可重用性。
可重用性表现在可以与应用程序共享信息、可以在版本升级和维护中重用设计和代码。
继承有助于可重用。
1.2.7多态性。
多态性使同一函数在不同的类上具有不同的行为。
多态性有助于封装。
1.3类和结构的比较。
类和结构很相似,但类不仅包括数据成员(默认私有),还包括函数(默认公有),而结构只有数据元素(默认是公有的)。
要求:
了解面向对象程序设计的基本思想及基本概念,面向对象语言的分类和类的特性。
第二章。
面向对象的程序设计环境4学时
2.1面向对象的软件开发环境。
VisualC++开发工作台简述:
File菜单;Edit等菜单;
2.2类库MFC。
什么是MFC的结构层次;MFC分层概述;
2.3应用程序框架及交互界面的开发。
控制类及其编程实现;实现菜单和对话框控制;文档和视图;单文档界面;多文档界面。
要求:
了解visualC++的消息机制,VisualC++的基本类库MFC。
VisualC++应用程序框架及交互界面的开发的过程与步骤。
第三章 C++基本语句和程序结构 6学时
3.1C++变量定义。
介绍C++中相关数据类型,运算符,表达式。
可重点介绍条件运算符与条件表达式,赋值运算符和赋值表达式,逗号运算符与逗号表达式。
3.2C++输入/输出语句。
介绍C++中常用输入/输出语句cin,cout及输入输出格式控制及处理方式。
3.3C++函数定义与程序基本结构。
介绍C++语言函数定义,重点是参数的引用传递和重载函数,掌握C++程序编写基本结构及注意事项,遵循的原则。
3.4函数重载。
函数重载即函数多态性,它定义一组函数,他们具有相同的名称、并执行基本相同的操作,但使用不同的参数列表。
它有助于轻松理解、调试、维护代码。
3.5引用参数。
比较按值传递和按引用传递:
按值传递会做一个参数的副本,函数对副本所做的任何修改都不会影响原始变量;而按引用传递使函数能够访问调用程序中的实际变量。
按引用传递(难点),从函数中返回引用,&号就是使一个函数返回引用变量的方法。
3.6内联函数。
理解只有在少量经常重复使用某代码片段时需要定义内联函数,节约执行时间。
3.7C++编程环境简介。
介绍VC++编程环境,以便让学生熟悉VC++开发工具。
要求:
学生在学习程序设计基础上,掌握C++语言的基本语法及基本语句,尤其是C++对比于C语言函数定义中增加的部分内容,熟悉VC++的编程环境和C++基本程序设计方法。
第四章 类与对象4学时
介绍简单类的定义方法,成员与成员函数的定义形式。
4.1 类定义的语法结构
4.2 类的数据成员与成员函数。
介绍成员的公有、保护、私有特性,掌握const、静态数据成员、静态函数、内联成员函数换等几个重要的编程概念。
4.3 类定义的几种形式。
成员函数在类内定义;成员函数在类外定义;成员函数在另一文件中定义。
类的作用域运算符(:
:
)。
为避免类定义变得过于庞大,使用类作用域运算符在类外部定义成员函数。
全局变量和局部变量共享同一名称时,使用类作用域运算符引用全局变量。
4.5 定义对象。
声明类的实例:
对象。
声明一个对象,指向对象的指针,对象数组。
对象成员与成员函数的使用,使用保护成员与公有成员的方法。
4.6 动态内存分配。
new和delete是C++的内置函数,用于动态内存分配。
malloc()和free()虽然在C++中可用,但不提倡使用。
理解this指针的的含义。
要求:
掌握类定义的几种形式及特点,掌握对象使用的方法,理解指向对象的指针概念及访问形式(->)。
重点是理解域作用符(:
:
)的使用。
第五章 构造函数与析构函数 4学时
5.1构造函数。
构造函数是一种特殊的成员函数,能够自动初始化对象。
它有以下特点:
1)无论何时创建对象,它都将被执行
2)与其所属的类同名
3)没有任何返回类型
4)构造函数可以重载
5)一旦定义了一个构造函数,就必须定义默认构造函数。
5.2复制构造函数。
复制构造函数包含一个对象作为其参数,只有在:
类的对象被初始化为同一类的另一个对象时、或对象被作为参数传递给一个函数市、或函数返回一个对象时需要。
注意区分构造函数、复制构造函数、赋值运算符重载函数。
5.3析构函数。
析构函数是在销毁对象时自动调用的成员函数。
它有以下特点:
不能从类直接调用,与其所属的类同名,没有任何参数、任何返回类型。
要求:
理解构造函数、析构函数的作用,掌握构造函数、析构函数定义的方式及特点。
第六章 友元函数 4学时
6.1 友元函数。
无论在面向对象的编程中数据隐藏和封装的策略如何,在需要对私有数据的访问时,必需友元函数。
注意友元函数的特性:
只能访问私有部分、不具有this指针、可放在类定义的任意位置、不需要类作用域运算符。
6.2 友元类(难点)。
当特定类的所有函数或者大部分函数必须访问另一个类的私有部分时,可以把这个类定义为友元类。
但是友元关系不能传递、只是单向的。
6.3 转换函数(难点)。
介绍用户定义类型和基本数据类型之间以及不同的类对相间的转换。
6.4 从基本数据类型到用户定义类型。
从基本数据类型到用户定义类型需要在目标类中定义构造函数
6.5 从用户定义类型到基本数据类型。
从用户定义类型到基本数据类型需要在源类中定义转换函数
6.6 不同类的对象之间的转换。
不同类的对象之间的转换需要在目标类中定义构造函数或在源类中定义转换函数。
要求:
掌握如何使用友元函数访问私有数据。
第七章 运算符重载4学时
7.1 运算符重载。
运算符重载是多态性的一种形式,它将现有运算符与成员函数相关联,并且与其类对象一起用作操作数。
但不能改变运算符的基本功能、不应改变其自然含义、只能重载已经存在的运算符且仅对类对象适用。
注意书写的标准格式。
7.2 一元运算符。
一元运算符重载应用于一个类对象,可以返回:
显式临时类对象或匿名类对象或this指针,特别指出定义一元后缀运算符重载要使用哑元参数。
7.3 二元运算符。
二元运算符可以通过:
成员函数包含一个形参的方式进行重载(即obj1.operator+(Sampleobj2)),或含有两个参数的友元函数的方式进行重载(即operator+(Sampleobj1,Sampleobj2)),一定要明确两个类对象在重载中的实际位置。
7.4 重载赋值运算符(难点)
默认赋值运算符(即一般的赋值运算)仅将源对象逐字节复制到目的对象;而重载赋值运算符解决了空指针赋值的难题,注意在形参列表中和返回类型中使用了引用,大量地节省了内存空间。
7.3 不能重载的运算符
列出不能重载的运算符。
要求:
利用重载的典型案例讲述一元、二元运算符重载、赋值运算符重载,并介绍复制构造函数、转换函数,对于难点部分应该重点讲解,使学生学会编写重载运算符函数和数据类型转换函数。
第八章 继承4学时
8.1 单继承。
单继承是从现有的一个基类创建新类的过程,继承使得代码可以重用。
8.2 基类和派生类。
派生类继承基类的属性和方法,同时可以有自己的特性。
类可以多级继承,因此有直接基类和间接基类之分。
8.3 访问基类成员。
基类成员的访问规则的理解。
重点讲解类指针的使用:
指向派生类的指针可以赋给指向基类的指针类型变量,使学员能够灵活使用这一特性。
8.4 继承的类型。
深刻理解从公有派生类、私有派生类或保护性的派生类对基类成员的可访问性,说明多级继承对可访问性的影响。
8.5 继承下的构造函数和析构函数。
构造顺序为:
基类构造函数---〉派生类构造函数,析构顺序为:
派生类析构函数---〉基类析构函数,注意派生的书写格式。
8.6 调用成员函数。
如果派生类的成员函数要调用同名称的基类成员函数,则必须使用类作用域运算符。
8.7 容器类。
继承是“是”的关系,而容器类是“包含”、“有”的关系。
要求:
通过掌握OOP的继承和容器类概念,熟练掌握基类和派生类的成员函数、构造和析构的顺序,理解容器类与继承的不同。
第九章多重继承和多态性4学时
9.1 多重继承。
多重继承是从多个基类中创建一个新类的过程,它在多个基类的成员使用相同名称时导致的多义性将使用作用域运算符解决。
9.1.1 多重继承下的构造函数。
理解多重继承的派生类实例对象化时的调用顺序是:
基础类按照在基类列表中的顺序构造:
基类1、基类2……,对象本身使用其自身的构造函数代码;多重继承的派生类对象析构时顺序正好相反。
9.1.2多重继承中的多义性。
多个基类使用相同的函数或数据成员名称时的多义性问题需要:
使用作用域运算符解决,派生类重写产生该多义性的函数。
9.1.3 使用公共基类的多重继承。
使用公共基类的多重继承引出虚基类的使用。
9.2 虚基类(难点)。
多重继承下的公共基类导致了子对象的多个副本,因此有必要使用虚基类的概念。
9.2.1构造函数和析构函数。
虚基类的出现将导致对象实例化的顺序为:
按照继承图中的多个虚基类的位置从上到下、从左到右实例化,基类初始化,成员对象的构造,类构造函数;析构顺序正好相反。
9.3指向对象的指针。
指向对象的指针可以通过箭头运算符访问成员函数。
9.4虚函数。
讲解为达到编译器在运行时从正确的派生类中选择函数必须使用虚函数;在派生类层次结构中,必须在最高层上声明虚函数,而且必须在派生类中重新定义虚函数,并与虚函数准确匹配。
9.5 多态性。
多态性是将不同类的许多对象定义为一组,并使用不同函数调用来执行对象操作的过程,如:
运算符重载、函数重载等等。
9.6 动态绑定。
编译时按照普通方式选择函数即为静态绑定,编译器会使用静态类型指针来决定成员函数的调用是否合法;而动态绑定是在成员函数的调用中,根据运行时的动态类型,可能在最后时刻决定代码地址。
如虚函数,灵活性高但会增加系统开销。
9.7 纯虚函数。
纯虚函数是一种函数类型,只有函数声明,因此无法创建包含纯虚函数的对象,只能对该包含纯虚函数的类进行派生从而实现。
9.8 抽象类。
讲解凡是包含纯虚函数的类都成为抽象类,抽象类的派生类必须重新定义抽象类中的所有方法,抽象类就是用于多层结构体系的中间件。
9.9虚析构函数(难点)。
理解只有析构函数可以为虚,主要是动态绑定时(即通过基类指针删除派生类时)使用虚析构函数有效地释放内存。
要求:
通过学习面向对象编程中的多重继承和多态性概念,掌握虚函数和纯虚函数的使用,解析用以解析函数调用的动态绑定方法,了解虚基类是用于解决与多重继承相关的问题。
学会熟练使用面向对象编程方法进行复杂的编程。
第十章C++的I/O系统4学时
10.1 流的定义;
10.2 基本的流类:
10.3 C++的预定义流;
10.4 格式化的I/O;
10.5 重载<<和>>:
创建自己的插入符;创建自己的提取符;
10.6 创建自己的操纵符函数:
创建无参数的操纵符;创建带参数的操纵符;
10.7 文件操作。
打开和关闭、文件的定位与随机存取、文件的读写
要求:
了解C++的流,包括C++的预定义流,如何创建重载运算符《和》的方法,一般I/O流和文件流的关系,文件系统的概念,包括文件指针和关于文件的操作。
掌握格式化I/O的定义格式和定义方法,文件类的定义和相关操作的定义、使用方法,利用常用函数进行文件的打开、关闭、读写、定位等操作。
第十一章 模板4学时
11.1模板的概念。
为何要用模板,模板的概念。
11.2 函数模板。
函数模板、重载模板函数。
11.3 类模板。
为何要使用类模在所难免,类模板的定义。
要求:
理解模板在面向对象程序设计的意义,掌握函数模板与类模板的基本定义方式,理解函数模板与模板函数的区别。
第十二章 用VC++设计简单应用程序6学时
对话框应用程序设计
要求:
根据给定应用系统的设计要求用面向对象的方法设计实现简单应用系统的设计,学会使用VC++的基本控件,掌握利用VisualC++利用的界面生成器生成对话框应用程序界面及利用消息机制实现对象之间的交互。
四。
学时分配
该课程总学时为56学时,具体分配如下:
课内学时:
36学时。
讲授教学内容,示范C++程序设计方法。
实验学时:
16学时。
依据上机指导完成任务,加深对所学知识的理解,增强编程技能。
学习指导:
4学时。
为学习指导或习题课,针对同学学习中的难点、出现的问题作出适当的学习指导或讨论。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计语言 程序设计语言 课程 教学 指导
文档标签
- 中南大学程序设计语言课程设计
- 程序设计语言课程设计指导书
- 程序设计语言编译教学指导
- 语言程序设计教学反思
- C语言程序设计语言程序设计学习指导
- 语言程序设计课程教学设计方案
- C++课程设计指导
- C语言程序设计教程语言程序设计教程课后
- C程序设计教学教程第2版程序设计教学教程
- 语言程序设计辅导
- 语言课程设计指导书
- C语言程序设计教程语言程序设计教程课程
- C语言程序设计语言程序设计教学辅导
- 语言课程教学计划
- C语言程序设计语言程序设计课程教学
- 语言程序设计学习指导
- 河南科技大学语言课程设计
- 大学课程C++试题大学课程
- 中南大学语言课程设计
- 中南大学GIS课程设计
- C语言程序设计南开大学20语言程序设计
- 中南大学课设微信小程序
- 大学C语言程序设计大学语言程序设计题库
- C语言程序设计南开20学期
- 大学语言程序设计考卷