首页 > 计算机教学中心 > 教学大纲

《C++程序设计》教学大纲

一、课程基本情况

总 学 时:80       讲课学时:48        实践学时:32

总 学 分:5

课程类别:公共基础;核心;必修

考核方式:考试

适用对象:本科

先修课程:无

参考教材:C/C++程序设计教程(龚沛曾 杨志强主编,高等教育出版社)

二、课程设置目标

使学生了解C++语言的发展、特点、背景,通过对C++语言过程化基本知识、基本概念、基本技能的学习和训练,使学生掌握C++中面向过程的基本方法和思想,掌握“C++语言”程序设计的基本理论、方法和技巧。培养学生利用当前最为流行的面向对象程序设计语言C++进行程序设计的基本能力,并为后续计算机相关课程的学习以及在可视化环境下进行面向对象的编程打下基础。

三、教学内容、教学方法和手段、学时分配

知识单元一: C++ 语言概述 (建议6学时,其中理论4学时、实验2学时)

知识点1

主要内容:C++ 语言发展概述、C++ 语言特点。

重点/难点:重点是了解C++ 语言发展和特点,难点是对计算机语言的理解。

教学方法和手段:自学。

知识点2

主要内容:C++ 语言程序的格式和结构特点。

重点/难点:重点掌握 C++ 语言程序的格式和结构特点,包括main()函数,数据说明,函数开始和结束标志。难点是编程入门。

教学方法和手段:讲授

知识点3

主要内容:文件包含、宏定义。

重点/难点:掌握文件包含的用法,掌握不带参数的宏定义及用法、带参数的宏定义及用法,难点是理解带参的宏的使用和函数调用的区别。

教学方法和手段:启发式和讲授结合。

知识点4

主要内容:C++ 程序上机操作环境。

重点/难点:掌握C++ 程序上机操作步骤,包括编辑,编译,链接,运行。

     教学方法和手段:讲授

 

知识单元二:数据类型、运算符、表达式(建议8学时,其中理论6学时、实验2学时)

知识点1

主要内容:常量、变量、标识符。

重点/难点:重点理解常量、变量的概念,掌握标识符的命名规则及各类变量的定义方法,难点是对内存单元的理解。

教学方法和手段:讨论与讲授结合。

知识点2

主要内容:整型数据、实型数据、字符型数据。

重点/难点:掌握整型数据;实型数据;字符型数据的分类、定义、及赋值方法;难点是掌握变量和内存的关系。

教学方法和手段:启发、讲授。

知识点3

主要内容:算术表达式;赋值表达式;自加、自减运算符和逗号运算符。

重点/难点:重点掌握表达式的表示方法和自加、自减运算符和逗号运算符的用法,难点是自加、自减运算符的用法。

教学方法和手段:讨论和讲授结合。

 

知识单元三:顺序结构(建议6学时,其中理论4学时、实验2学时)

知识点1

主要内容:赋值语句。

重点/难点:了解C语句的定义、重点掌握赋值语句的用法,难点是空语句和复合语句的用法。

教学方法和手段:讲授。

知识点2

主要内容:数据输出;数据输入。

重点/难点:重点掌握标准输入/输出设备cincout的用法,难点是各种格式符的用法。

教学方法和手段:案例分析和讲授结合。

知识单元四:分支结构(建议6学时,其中理论4学时、实验2学时)

知识点1

主要内容:>>=<<===、!=&&||、!运算符的用法。

重点/难点:重点掌握关系运算及逻辑运算的结合性和优先级,难点是掌握逻辑运算符的短路现象。

教学方法和手段:讨论和讲授结合。

知识点2

主要内容: if 语句;条件运算符及条件表达式。

重点/难点:重点掌握if语句、条件运算符及条件表达式的用法,难点是if语句的嵌套的用法。

教学方法和手段:案例分析和讲授结合。

知识点3

主要内容:switch 语句和break 语句。

重点/难点:掌握switch 语句和break 语句的用法,难点是switch 语句的嵌套。

教学方法和手段:案例分析和讲授结合。

 

知识单元五:循环结构(建议8学时,其中理论4学时、实验4学时)

知识点1

主要内容:while 语句;do-while 语句;for 语句。

重点/难点:了解循环的定义;掌握while 语句;do-while 语句;for 语句,难点的三种循环的区别。

教学方法和手段:案例分析和讲授结合。

知识点2

主要内容:循环结构的嵌套。

重点/难点:循环结构的嵌套

教学方法和手段:讨论和讲授结合。

知识点3

主要内容:break 语句和continue 语句。

重点/难点:重点掌握break 语句和continue 语句的用法,难点是掌握它们的区别。

教学方法和手段:启发式和讲授结合。

 

知识单元六:函数(建议6学时,其中理论4学时、实验2学时)

知识点1

主要内容:库函数;函数的定义和返回值;函数的调用。

重点/难点:了解函数的定义及分类;掌握函数的定义的方法;掌握函数的调用的方法,难点是掌握值形参数和指针形参数的区别及用法。

教学方法和手段:案例分析和讲授结合。

知识点2

主要内容:函数的嵌套调用及递归调用。

重点/难点:重点掌握函数的嵌套调用及递归调用的用法,难点是递归调用的用法。

教学方法和手段:案例分析和讲授结合。

知识点3

主要内容:函数重载和函数模板。

重点/难点:重点掌握函数函数重载和函数模板的用法,难点是函数模板的用法。

教学方法和手段:案例分析和讲授结合。

知识点4

主要内容:变量的作用域和生存期;内部函数和外部函数。

重点/难点:重点掌握变量的作用域和生存期;难点是理解内部函数和外部函数的区别。

教学方法和手段:讨论和讲授结合。

 

知识单元七:指针(建议4学时,其中理论2学时、实验2学时)

知识点1

主要内容:指针的概念;指针变量的定义和指针变量的基类型。

重点/难点:重点是掌握指针变量的定义和指针变量的基类型,难点是对指针变量的基类型的理解。

教学方法和手段:讨论和讲授结合。

知识点2

主要内容:newdelete

重点/难点:掌握new、delete。。

教学方法和手段:讨论和讲授结合。

知识点3

主要内容:给指针变量赋值和对指针变量的操作;函数之间地址值的传递。

重点/难点:重点掌握给指针变量赋值的方法;对指针变量的操作;函数之间地址值的传递,难点是指针变量和一般变量的区别。

教学方法和手段:案例分析和讲授结合。

 

知识单元八:数组(建议10学时,其中理论6学时、实验4学时)

知识点1

主要内容:一维数组的定义和引用。

重点/难点:重点掌握一维数组的定义和引用,难点是对一维数组顺序存储的理解和对数组名的理解。

教学方法和手段:案例分析和讲授结合。

知识点2

主要内容:二维数组的定义和引用。

重点/难点:重点掌握二维数组的定义和引用,难点是理解一维数组和二维数组的关系。

教学方法和手段:案例分析和讲授结合。

知识点3

主要内容:字符数组的定义和引用。

重点/难点:重点掌握字符数组的定义和引用,难点是用字符数组表示字符串的方法,及对字符串操作方法。

教学方法和手段:案例分析和讲授结合。

知识点4

主要内容:数组名和指针数组作实参。

重点/难点:重点掌握数组名和指针数组作实参的用法,难点是理解对形参的几种不同表示方法的理解。

教学方法和手段:讲授。

 

知识单元九:结构体和链表(建议8学时,其中理论4学时、实验4学时)

知识点1

主要内容:结构体类型的说明;结构体类型的变量、数组和指针变量的定义;给结构体变量、数组赋初值、引用结构体变量中的数据的方法。

重点/难点:掌握给结构体变量、数组赋初值、引用结构体变量中的数据的方法,难点是引用结构体变量中的数据的方法。

教学方法和手段:案例分析和讲授结合。

知识点2

主要内容:链表的基本操作方法、链表的建立。

重点/难点:重点掌握malloc( )calloc( )free()函数的用法;单链表的建立、插入、删除、输出方法,难点是掌握单链表的插入、删除数据的方法。

教学方法和手段:讲授。

知识点3

主要内容:用typedef 说明一种新类型名。

重点/难点:掌握typedef的用法。

教学方法和手段:案例分析和讲授结合。

 

知识单元十:文件(建议6学时,其中理论4学时、实验2学时)

知识点1

主要内容:文件概述;文件类型指针。

重点/难点:了解文件的概念,掌握文件类型指针,难点是对文件指针类型的理解。

教学方法和手段:讲授。

知识点2

主要内容:文件打开与关闭。

重点/难点:掌握文件文件打开与关闭方法,难点是掌握文件打开失败时处理方法。

教学方法和手段:案例分析与讲授结合。

知识点3

主要内容:文件读写;文件定位。

重点/难点:掌握文件读写与定位的方法。

教学方法和手段:案例分析与讲授结合。

 

知识单元十一:面向对象程序设计基础(建议10学时,其中理论6学时、实验4学时)

知识点1

主要内容:面向对象程序设计的产生,面向对象的基本概念和特点。

重点/难点:了解面向对象程序设计的产生及面向对象的基本概念和特点。

教学方法和手段:自学。

知识点2

主要内容:类和对象的定义、对象的初始化、常对象和常成员、静态成员、友员函数。

重点/难点: 重点掌握类和对象的定义,难点是静态成员及友员函数。

教学方法和手段:案例分析和讲授结合。

知识点3

主要内容:基类和派生类,单继承。

重点/难点:派生类的定义

教学方法和手段:讲授。

知识点4

主要内容:函数重载、运算符重载、虚函数、抽象类。

重点/难点:重点掌握派生类的定义、函数重载和运算符重载的用法,难点是抽象类的用法。

教学方法和手段:讲授

综合训练项目一 模拟袖珍计算器                     

目的和要求:实现两个数的加、减、乘、除等四则运算,要求以菜单形式实现,选择菜单前的数字(序号)后进入输入界面,输入两个操作数并回车后,即可运算出结果并显示在屏幕上,运行一次可多次计算。该训练项目的主要目的是把顺序结构、分支结构和循环结构综合在一起进行综合应用。

成果形式:程序(电子)

综合训练项目二  求矩阵的鞍点

目的和要求:随机产生16个二位数,组成一个4*4的二维数组,数组在主函数中定义,随机数通过自定义函产生,并通过自定义函数求出该数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点)。该训练项目的主要目的是练习函数的定义及调用方法,数组的定义及使用。

成果形式:程序(电子)

综合训练项目三 学生成绩管理系统

目的和要求:

学生成绩管理系统,用于对班级的学生成绩进行处理。每个学生的信息包括学号、姓名和成绩等信息。该系统是一个综合系统,完成对学生成绩的综合管理。学生成绩管理系统需要具备如下的基本功能:输入学生基本信息、添加记录、修改数据、删除记录、查询学生信息、对学生成绩进行排序等的基本操作。本综合训练项目的主要目的对各章的知识,主要是结构体及文件的相关内容进行综合运用。从而培养学生利用C++语言进行程序设计的基本能力,并为后续计算机相关课程的学习以及在可视化环境下进行面向对象的编程打下基础。

成果形式:程序(电子)

四、其它教学环节

本课程是一门实践性很强的课程,学生在课内要做好听课笔记,课后多上机练习;教师要掌握多媒体技术在教学中的应用手段和方法,以自学、讨论、案例分析,讲授等多种形式进行课堂教学,每次课要留有一定量的作业,以消化理解所学的内容,学完一定量的知识点后,再进行综合训练项目的练习(综合训练项目一、二),把所学的知识点进行综合应用,学完大纲要求的全部内容后,进行一个较大的有一定使用价值的综合训练项目(综合训练项目三)的设计,使用学生真正理解学习该门课的用途,进而掌握程序设计的思想和方法。

五、成绩构成和评价方法

1. 本课程设置三个综合训练项目,其中综合训练项目一占10分,综合训练项目二占10分,综合训练项目三占20分,平时出勤、课堂表现与课后作业等占10分,平时成绩共50分。

2. 期末考试占50分,考试内容可为选择题,简单应用题和综合应用题。考核内容要覆盖教学大纲70%以上,体现知识应用、综合能力评价占60%以上。

  

 

 

 

                                                                                    教学大纲撰写人:李忠儒

 审核人:

        教学负责人:王英博

中国·辽宁工程技术大学 版权所有 2006 by www.lntu.edu.cn All rights reserved

阜新校区:辽宁省阜新市中华路47号 葫芦岛校区:辽宁省葫芦岛市龙湾南大街188号