《高级语言程序设计》教学大纲一、课程基本信息课程代码:110421课程名称:高级语言程序设计英文名称:AdvancedProgramming课程类别:专业基础课学时:90学分:4.5适用对象:信息与计算科学专业大一本科生考核方式:考试(平时成绩占总成绩的30%)先修课程:数学分析、高等代数二、课程简介中文简介:高级程序设计是必修基础课程。本课程以C++语言为工具,主要介绍面向对象的程序设计方法,C++面向对象程序设计语言和面向对象程序设计工具。使学生掌握面向对象的思想方法,是后续专业课程的基础。英文简介:AdvancedProgrammingismajorbasiccourse.Throughthiscourse,studentsshouldmasterthemethodofprogramming,theObjectOrientedLanguageC++,andObjectOrientedDesigntool.Thiscourseisthebaseofseveralfollowingspecialitycourses.三、课程性质与教学目的《高级语言程序设计》课程是信息与计算科学专业的专业必修课,要求掌握面向对象程序设计中基本的概念、方法,在理论、实践上为后续软件课程打下坚实基础。具体包括:基本语法成分、数据定义和相关运算、基本控制流程的概念和实现、函数的定义和调用、指针的基本概念、能够应用于数据组织和函数调用。以及面向对象程序设计的核心概念:封装、继承、多态和模板与群体数据组织。四、教学内容及要求第一章绪论(一)目的与要求1.掌握计算机程序设计语言的发展;2.掌握在VC6.0集成开发环境下建立和运行C++程序的方法;3.了解面向对象的方法;4.了解面向对象的软件开发过程;5.了解信息的表示与存储。(二)教学内容第一节计算机程序设计语言的发展1.主要内容机器语言与汇编语言,主级语言,面向对象语言。2.基本概念和知识点:面向对象的语言,高级语言的概念。3.问题与应用(能力要求):了解程序设计语言的发展史与面向对象的语言。第二节面向对象的方法1.主要内容面向对象方法的由来,面向对象的基本概念。2.基本概念和知识点面向对象的基本概念。3.问题与应用(能力要求)了解面向对象的由来与基本概念。第三节面向对象的软件开发1.主要内容软件开发的各个阶段及任务。2.基本概念和知识点分析、设计、编程、测试与维护。3.问题与应用(能力要求)了解软件开发过程中的一般过程及各阶段的任务。*第四节信息的表示与存储1.主要内容计算机的数字系统,几种进行记数制之间的转换信息存储单位,二进制数的编码表示,定点数和浮点数,数的表示范围,非数值信息表示。2.基本概念和知识点数字系统,进位制及其转换,数的表示范围。3.问题与应用(能力要求)掌握用二进制的编码表示,非数值信息表示。第五节程序的开发过程1.主要内容基本术语。2.基本概念和知识点程序开发的基本术语与开发的一般过程。3.问题与应用(能力要求)了解程序开发的基本术语和开发的一般过程。(三)实践环节与课后练习VC环境下运行一个简单的C++程序。(四)教学方法与手段课堂板书结合PowerPoint电子教案讲授。第二章C++简单程序设计(一)目的与要求1.了解C++语言产生和特点;2.掌握基本数据类型和表达式;3.掌握数据的输入与输出;4.掌握算法的基本控制结构;5.掌握自定义数据类型。(二)教学内容第一节C++语言概述1.主要内容C++语言的产生,C++语言的特点,C++程序实例,字符集,词法记号。2.基本概念和知识点字符集,词法记号。3.问题与应用(能力要求)掌握字符集,了解C++语言的特点与程序实例。第二节基本数据类型和表达式1.主要内容基本数据类型,常量,变量,运算符,表达式与语句。2.基本概念和知识点基本数据类型,常量,变量,运算符,表达式与语句。3.问题与应用(能力要求)掌握基本数据类型,常量,变量,运算符,表达式与语句。*第三节数据的输入与输出(自学)1.主要内容I/O流,预定义的插入符和提取符,简单的I/O格式控制。2.基本概念和知识点I/O流,预定义的插入符和提取符,I/O格式控制。3.问题与应用(能力要求)掌握I/O流,预定义的插入符和提取符。第四节算法的基本控制结构1.主要内容用if语句实现选择结构,多重选择结构,循环结构,循环结构与选择结构的嵌套,其它控制语句。2.基本概念和知识点用if语句实现选择结构,多重选择结构,循环结构。3.问题与应用(能力要求)掌握用if语句实现选择结构,多重选择结构,循环结构。第五节自定义数据类型1.主要内容typedef声明,枚举类型,结构体,联合体。2.基本概念和知识点typedef声明,枚举类型,结构体,联合体。3.问题与应用(能力要求)掌握枚举类型,结构体。(三)实践环节与课后练习编写简单的C++程序,使用枚举类型,结构体。(四)教学方法与手段课堂板书结合PowerPoint电子教案讲授,程序演示。第三章函数(一)目的与要求1.正确掌握函数的定义;2.掌握内联函数;3.掌握带默认形参值的函数;4.掌握函数重载。(二)教学内容第一节函数的定义与使用1.主要内容函数的定义,函数的调用,函数的参数传递。2.基本概念和知识点函数的定义,函数的调用,函数的参数传递。3.问题与应用(能力要求)掌握函数的定义,函数的调用,函数的参数传递。*第二节内联函数1.主要内容内联函数的定义与使用。2.基本概念和知识点内联函数的定义,内联函数在使用场合。3.问题与应用(能力要求)掌握内联函数的定义,内联函数在使用场合。第三节带默认形参值的函数1.主要内容带默认形参值的函数。2.基本概念和知识点带默认形参值的函数及其使用法。3.问题与应用(能力要求)掌握带默认形参值的函数及其使用。第四节函数重载1.主要内容函数重载的概念与定义。2.基本概念和知识点函数重载的概念与定义和使用。3.问题与应用(能力要求)掌握函数重载的概念与使用。*第五节使用C++系统函数(自学)1.主要内容C++系统函数。2.基本概念和知识点C++系统函数及其查询与使用法。3.问题与应用(能力要求)掌握简单的C++系统函数。(三)实践环节与课后练习使用简单的系统函数编写程序。(四)教学方法与手段课堂板书结合PowerPoint电子教案讲授,程序演示。第四章类与对象(一)目的与要求1.熟练掌握类与对象的概念;2.熟练掌握构造函数与析构函数;3.掌握类的组合;4.掌握UML图形标识。(二)教学内容第一节面向对象程序设计的基本特点1.主要内容抽象,封装,继承,多态。2.基本概念和知识点抽象,封装,继承,多态。3.问题与应用(能力要求)理解抽象,封装,继承,多态。第二节类和对象1.主要内容类的声明,类成员的访问控制,类的成员函数,对象,举例说明。2.基本概念和知识点类的声明,类成员的访问控制,类的成员函数,对象。3.问题与应用(能力要求)掌握类的声明,类成员的访问控制,类的成员函数,对象。第三节构造函数和析构函数1.主要内容构造函数,拷贝构造函数,析构函数,程序举例。2.基本概念和知识点构造函数,拷贝构造函数,析构函数。3.问题与应用(能力要求)掌握构造函数,拷贝构造函数,析构函数。第四节类的组合1.主要内容组合,引用声明。2.基本概念和知识点组合,引用声明,程序举例。3.问题与应用(能力要求)掌握组合,引用声明,程序举例。*第五节UML图形标识(自学)1.主要内容UML简介,UML类图。2.基本概念和知识点UML简介,UML类图。3.问题与应用(能力要求)掌握UML类图。(三)实践环节编写程序,要求含有类及类构造函数与析构函数和拷贝构造函数。(四)教学方法与手段采用PowerPoint电子教案相结合的方式的课堂讲授和上机实验结合为主,辅以程序演示。第五章C++程序的结构(一)目的与要求1.熟练掌握作用域与可见性的概念;2.熟练掌握对象的生存期;3.掌握类的静态成员;4.*了解类的友元;5.*掌握共享数据的保护;6.*掌握多文件结构处理;7.*理解编译预处理命令。(二)教学内容第一节标识符的作用域与可见性1.主要内容作用域与可见性。2.基本概念和知识点标识符的作用域与可见性。3.问题与应用(能力要求)掌握标识符的作用域与可见性。第二节对象的生存期1.主要内容静态生存期,动态生存期。2.基本概念和知识点静态生存期,动态生存期。3.问题与应用(能力要求)掌握静态生存期,动态生存期。第三节类的静态成员1.主要内容静态数据成员,静态函数成员。2.基本概念和知识点静态数据成员,静态函数成员。*3.问题与应用(能力要求)掌握静态数据成员,静态函数成员。*第四节类的友元1.主要内容友元类,友元函数。2.基本概念和知识点友元类,友元函数。3.问题与应用(能力要求)了解友元类,友元函数。*第五节共享数据的保护(选学)1.主要内容常引用,常对象。2.基本概念和知识点常引用,常对象。3.问题与应用(能力要求)掌握常引用,常对象。*第六节多文件结构和编译预处理命令(自学)1.主要内容C++程序的一般组织结构,外部变量与外部函数,标准C++库函数和命名空间,预处理。2.基本概念和知识点C++程序的一般组织结构,外部变量与外部函数,标准C++库函数和命名空间,预处理。3.问题与应用(能力要求)掌握一般组织结构,外部变量与外部函数,标准C++库函数和命名空间,预处理。(三)实践环节编写程序,要求类含有静态成员,常引用常对象,使用多文件组织。(四)教学方法与手段采用PowerPoint电子教案相结合的方式的课堂讲授和上机实验结合为主。辅以程序演示。第六章数组、指针与字符串(一)目的与要求1.熟练掌握数组;2.熟练掌握指针;3.掌握动态内存分配;4.掌握深拷贝与浅拷贝;5.*掌握字符与string类。(二)教学内容第一节数组1.主要内容数据的声明与使用,数组的存储与初始化,数组作为函数参数,对象数组,程序举例。2.基本概念和知识点数据的声明与使用,数组的存储与初始化,数组作为函数参数,对象数组。3.问题与应用(能力要求)掌握数据的声明与使用,数组的存储与初始化,数组作为函数参数,对象数组。*第二节指针(部分选学)1.主要内容内存空间访问方式,指针变量的声明,与地址运算,指针的赋值,指针运算,用指针处理数组元素,指针数组,用指针作为函数参数,指针型函数,指向函数的指针,对象指针。2.基本概念和知识点内存空间访问方式,指针变量的声明,与地址运算,指针的赋值,指针运算,用指针处理数组元素;其中选学:指针数组,用指针作为函数参数,指针型函数,指向函数的指针,对象指针。3.问题与应用(能力要求)掌握:指针变量的声明,与地址运算,指针的赋值,指针运算,用指针处理数组元素,指针数组,用指针作为函数参数,指针型函数,指向函数的指针,对象指针。第三节动态内存分配1.主要内容new运算和delete运算,动态内存分配与释放函数。2.基本概念和知识点new运算和delete运算,动态内存分配与释放函数。3.问题与应用(能力要求)掌握new运算和delete运算,动态内存分配与释放函数。第四节深拷贝与浅拷贝1.主要内容深拷贝与浅拷贝。2.基本概念和知识点深拷贝与浅拷贝。3.问题与应用(能力要求)掌握深拷贝与浅拷贝。*第五节字符串(自学)1.主要内容用字符数组存储和处理字符串,string类。2.基本概念和知识点用字符数组存储和处理字符串,string类。3.问题与应用(能力要求)掌握处理字符串和string类。(三)实践环节编写程序,要求使用数组和指针,动态内存分配,另在拷贝构造函数中使用深拷贝,使用string类。(四)教学方法与手段采用PowerPoint电子教案相结合的方式的课堂讲授和上机实验结合为主。辅以程序演示。第七章继承与派生(一)目的与要求1.熟练掌握继承与派生;2.熟练掌握继承时的访问控制;3.掌握派生类的构造和析构函数;4.掌握派生类成员的标识与访问。(二)教学内容第一节类的继承一派生1.主要内容继承与派生的实例,派生类的定义,派生类的生成过程,程