《C++语言程序设计》实验教学大纲
(非独立设课)
课程编号:006A1340 实验学时:18
一、课程教学对象
《C++语言程序设计》实验,是《C++语言程序设计》课程的重要组成部分,是计算机科学与技术、软件工程、网络工程等专业以及电气工程与自动化类、电子信息与通信类等各专业的重要技术基础课,是信息学院教学平台的重要必修课程之一。
本课程教学对象为五邑大学信息学院各专业的本科学生。
二、课程性质、目的和任务
《C++语言程序设计》实验,共有9个实验项目,每个实验项目占用2学时,共18学时。
它是《C++语言程序设计》课程的重要组成部分。
实验是学习程序设计课程至关重要的环节。
学习程序设计语言不能只停留在学习语法规则上,而是要运用学到的知识编写程序,解决实际问题。
只有通过实验才能检验自己是否真正掌握该语言。
通过上机调试程序,会发现很多想不到的问题,通过解决这些问题,可以加深对语言的理解和提高实际编程能力。
基本调试技术是深入学习本课程的基础,也是取得实际编程能力的前提。
因此实验应以调试技术、基本算法、基本数据结构和综合编程为核心内容,以提高学生基本调试技术和实际编程能力为目的。
三、对先修课的要求
本课程的先修课为《计算机导论》,通过《计算机导论》课的学习,应达到如下水平:
具有一定的计算机操作水平;
熟练掌握常用操作系统、文字编辑软件的使用。
四、实验报告要求
实验报告是实验教学的重要环节。
实验后,应根据实验过程和实验结果,写出实验报告。
《C++语言程序设计》实验的实验报告应当包括如下内容:
(1)实验名称
(2)实验目的
(3)实验内容
(4)测试数据和预期结果(必要时应准备多组数据)
(5)算法分析和流程图
(6)源程序(应加适当的注释,可读性好)
(7)程序运行结果
(8)小结(出错及解决方法,上机调试的结果和体会)
五、实验内容和实验要求
实验一初识C++程序开发环境
1、实验内容
(1)了解所用计算机系统软、硬件配置。
(2)熟悉C++语言程序开发环境。
(3)输入编辑2~3个简单的程序示例,并进行编译、连接和运行。
2、实验要求
(1)熟悉C++程序的编辑、编译、连接及运行的全过程。
(2)掌握基本的输入/输出操作。
(3)初步了解C++程序的基本结构和特点。
实验二选择结构
1、实验内容
(1)运用if语句编写程序:输入三个数,然后输出其中最大(或最小)的数。
(2)运用switch语句编写程序:输入百分制的一个学生成绩,然后按优、良、中、及格和不及格等级制,输出对应的A、B、C、D和E字符。
2、实验要求
(1)掌握结构化程序三种基本结构之一:选择结构。
(2)掌握选择结构在C++语言中的实现方法,并针对不同的问题正确选择恰当的选择结构语句(if 语句、switch语句和break语句)进行编程。
实验三循环结构
1、实验内容
(1)编写程序:求任意两个正整数m和n的最大公约数。
(2)编写程序:判断任意输入的一个整数是否是素数。
(3)编写程序:求n!。
(4)编写程序:输出形状为直角三角形的九九表。
2、实验要求
(1)掌握结构化程序的三种基本结构(顺序结构、选择结构、循环结构)。
(2)掌握循环结构在C++语言中的实现方法。
(3)掌握控制循环进程的两种办法:计数法和标志法。
(4)掌握穷举算法和迭代与递推算法。
实验四C++的函数
1、实验内容
(1)写出计算(输出)Fibonacci数列前n项的函数,并在主函数main()中进行调用测试。
(2)分别以迭代(递推)算法和递归算法,写出计算n!的函数。
并通过在主函数main()中调用以上函数,计算1!+2!+3!+…+20!。
2、实验要求
(1)掌握C++的函数定义、函数声明与函数调用。
(2)掌握递归函数,并比较递归算法与迭代(递推)算法。
实验五C++的数组
1、实验内容
(1)编写程序:实现一个给定的二维数组(M×N)的转置(行列互换)。
(2)写出建立Fibonacci数列数组的函数,并在主函数main()中进行调用测试。
(3)编写程序:运用字符数组,将两个字符串连接起来,结果取代第一个字符串。
(4)有若干个数存放在一个数组中,现输入一个数,找出该数是否在数组中。
要求:分别用交换排序法和选择排序法建立排序函数,实现数组的排序;建立折半查找函数实现快速查找。
2、实验要求
(1)掌握数组的定义和使用方法。
(2)掌握运用字符数组处理字符串的方法。
(3)掌握交换排序法、选择排序法及折半查找法。
实验六C++的指针
1、实验内容
(1)运用指针,求一个矩阵所有靠外侧的元素值之和。
(2)运用指针,编写一个函数,以实现两个字符串的比较。
(3)编写程序:输入月份号,输出该月的英文月名。
例如,输入“3”,则输出March。
要求用指针数组处理。
2、实验要求
(1)掌握指针的概念,会定义和使用指针变量。
(2)掌握数组与指针、指针与函数之间的关系。
(3)能正确使用指针处理相关问题。
实验七类与对象
1、实验内容
设计一个包含有班主任姓名的Student类,并有设置班主任姓名的成员函数。
然后在main()函数中定义若干Student类的对象,并能方便地改变(设置)新的班主任。
2、实验要求
(1)掌握类与对象、数据成员与成员函数、构造函数与析构函数等概念。
(2)掌握类的定义与实现方法,以及对象的定义与引用方法。
实验八继承与派生
1、实验内容
(1)设计一个Person类,其数据成员的访问属性为private,并包括一个信息输出函数display()。
(2)分别采取公用继承方式和私用继承方式写出Person类的派生类:Student类,在Student类中包括一个信息输出函数show()。
在main()函数中分别实现两类对象的信息输出。
(3)将Person类和Student类的信息输出函数名称统一为show(),并完善程序。
(4)将Person类数据成员的访问属性改为protected,分别采取公用继承方式和保护继承方式写出Student类,并完善程序。
2、实验要求
(1)理解继承性与派生类的概念。
(2)理解派生类的三种继承方式及其应用方法。
实验九多态性
1、实验内容
(1)声明一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。
参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。
(2)声明抽象基类Shape,由它派生出3个派生类:Circle(圆形)、Rectangle(矩形)、Triangle (三角形),用一个函数printArea()分别输出以上三者的面积。
三个图形的数据在定义对象时给定。
2、实验要求
(1)了解多态性的概念。
(2)了解运算符重载、虚函数的概念和用法。
(3)了解纯虚函数和抽象类的概念和用法。
六、实验教材及参考书
[1] 谭浩强. C++程序设计题解与上机指导. 清华大学出版社. 2005.
[2] 谭浩强. C++程序设计. 清华大学出版社. 2004.
[3] 钱能. C++程序设计教程(第二版). 清华大学出版社. 2005.
[4] 吴乃陵况迎辉. C++程序设计(第2版). 高等教育出版社. 2006.
[5](美)Bjame Stroustrup. C++程序设计语言(特别版). 机械工业出版社. 2002.
七、说明
本实验教学大纲中的实验项目、实验内容以及项目个数,在实际教学时可进行适当调整。
执笔人:编写日期:。