《面向对象程序设计》实验大纲1.docx

上传人:b****6 文档编号:7953636 上传时间:2023-01-27 格式:DOCX 页数:42 大小:23.55KB
下载 相关 举报
《面向对象程序设计》实验大纲1.docx_第1页
第1页 / 共42页
《面向对象程序设计》实验大纲1.docx_第2页
第2页 / 共42页
《面向对象程序设计》实验大纲1.docx_第3页
第3页 / 共42页
《面向对象程序设计》实验大纲1.docx_第4页
第4页 / 共42页
《面向对象程序设计》实验大纲1.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

《面向对象程序设计》实验大纲1.docx

《《面向对象程序设计》实验大纲1.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》实验大纲1.docx(42页珍藏版)》请在冰豆网上搜索。

《面向对象程序设计》实验大纲1.docx

《面向对象程序设计》实验大纲1

《面向对象程序设计》实验大纲

课程总学时:

60学分:

3

实验学时:

20 实验个数:

9实验学分:

1

课程性质:

必修适用专业:

通信工程

教材及参考书:

《C++程序设计》,谭浩强主编清华大学出版社

《C++程序设计语言》,揣锦华主编西安电子科技大学出版社

《C++程序设计教程》,刘慧宁孟威王东等编著机械工业出版社

大纲执笔人:

陈万川大纲审定人:

一、实验课的性质与任务

面向对象程序设计是通信工程专业的一门重要基础课程,主要任务是让学生充分掌握面向对象程序设计的基本概念、各种数据类型的使用技巧、程序设计的思想和方法。

二、实验课程目的与要求

1.实验目的

通过面向对象程序设计上机实验加深对讲授内容的理解,尤其是一些语法规则、常用语句、程序结构等。

熟悉面向对象程序设计的程序开发环境,并能逐步实现用面向对象的程序设计思想独立编程能力。

学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。

2.实验要求

(1)掌握C++语言有关基本概念。

(2)掌握C++语言的基本语法和基本语句。

(3)掌握C++语言的程序编写方法.

(4)提高程序调试能力。

三、实验项目及内容提要

面向对象程序设计实验课程(课程编号0706842002)

序号

实验项目编号

实验名称

学时

必做

选做

学分数

实验类型

内容提要

基本操作

验证

综合

设计

1

基本输入输出实验

2

 

 

理解变量与常量的含义;掌握浮点型变量的定义和使用方法;掌握符号常量的定义和使用方法;学习使用基本算术运算符;熟悉C++语言的基本输入输出方法;掌握字符型变量和整型变量的定义和使用方法;了解字符型数据的ASCII码存储方式;学习C++语言的输入输出方法。

2

基本控制结构实验

2

熟悉C++语言的基本输入输出方法;理解程序中控制表达式的作用;掌握C++语言关系运算符与关系表达式的使用方法;熟悉C++语言分支语句if-else的使用方法;理解循环的概念;掌握while循环语句和for循环语句;学习使用循环的嵌套;学会运用循环与分支的嵌套;进一步熟悉关系运算符和逻辑运算符。

3

函数实验

2

理解函数的意义;掌握函数的定义方法;掌握函数的声明形式;掌握函数的调用形式;理解形参和实参的值传递关系;学习函数返回值的使用方法;理解函数重载的意义;掌握重载函数的声明、定义与调用方法;进一步理解函数形参和实参的值传递关系。

4

类与对象实验

4

理解类与对象的概念;掌握类的声明和定义方法;掌握对象的定义和使用方法;掌握带参数的构造函数的定义和使用;掌握静态数据成员和静态成员函数的定义和使用方法;理解类与对象之间的关系;理解类的组合的概念和使用方法;学会定义并使用带参数的构造函数和不带参数的默认构造函数;掌握组合类构造函数和析构函数的定义、实现和调用顺序。

5

运算符重载实验

2

理解运算符重载的概念和意义;掌握重载运算符为成员函数的方法;学习使用重载运算符函数,并注意其参数和返回值的类型;掌握重载运算符函数的调用方法。

6

继承实验

2

理解继承与派生的概念;学习定义和使用派生类;了解不同继承方式下对基类成员的访问权限;掌握派生类构造函数和析构函数的定义和使用方法;理解派生类构造函数和析构函数的执行顺序;理解单继承和多继承的概念;掌握类层次中构造函数的定义方式和建立对象时构造和析构顺序;掌握重载构造函数,能够在不同情况下完成数据成员初始化的任务;能够根据问题建立合理的类层次关系。

7

虚函数实验

2

理解多态与虚函数的概念;学习使用虚函数实现动态多态性;掌握虚函数和纯虚函数的定义与使用方法;掌握抽象类及其派生类中虚函数的声明和定义方法。

8

数组实验

2

理解数组的概念;掌握一维数组的定义方法;掌握一维数组元素的输入和输出方法;理解一维数组中元素的存储方式;理解字符串的概念;理解字符串与字符数组的关系;掌握字符串的输入、输出方法;掌握基本字符串处理函数的使用方法。

9

指针与引用实验

2

理解指针与引用的概念;掌握指针和引用的声明和使用方法;学习使用指针作为函数参数;学习使用引用作为函数参数;学习使用指针访问数组元素;理解使用指针和引用作为函数参数的区别;理解函数指针的概念;掌握指向函数的指针声明和使用;学习用指向函数的指针作为函数的参数,从而选择执行不同的函数;进一步熟悉指针的使用方法。

10

容器类实验

2

理解容器类和线性容器类的概念;掌握容器类的声明和使用方法;能够根据栈的定义实现栈类;学习使用栈解决实际问题。

11

类模板实验

2

理解函数模板与类模板的含义;掌握类模板的定义和使用方法。

四、实验内容安排:

实验一基本输入输出实验

(设计性实验2学时)

实验题目1

1、目的要求:

1)理解变量与常量的含义;

2)掌握浮点型变量的定义和使用方法;

3)掌握符号常量的定义和使用方法;

4)学习使用基本算术运算符;

5)熟悉C++语言的基本输入输出方法。

2、实验内容:

输入一个球的半径r,计算其体积V。

3、实验步骤:

1)定义符号常量PI;

2)定义球的半径r为double类型变量;

3)用cin进行输入;

4)根据公式计算球的体积;

5)用cout进行输出。

4、主要实验仪器设备:

计算机

实验题目2

1、目的要求:

1)掌握字符型变量和整型变量的定义和使用方法;

2)了解字符型数据的ASCII码存储方式;

3)学习C++语言的输入输出方法。

2、实验内容:

从键盘输入一个字母,输出其ASCII码。

3、实验步骤:

1)定义变量ch为char类型变量;

2)定义变量i为int类型变量;

3)用cin输入ch值;

4)将ch的ASCII码给整型变量i赋值;

5)用cout输出i的值。

4、主要实验仪器设备:

计算机

实验二基本控制结构实验

(设计性实验2学时)

实验题目1

1、目的要求:

1)熟悉C++语言的基本输入输出方法;

2)理解程序中控制表达式的作用;

3)掌握C++语言关系运算符与关系表达式的使用方法;

4)熟悉C++语言分支语句if-else的使用方法。

2、实验内容:

求三个整数的最大值和最小值。

3、实验步骤:

1)定义三个整型变量x1、x2、x3,并通过cin输入变量;

2)用if-else语句对三个整数进行比较,求出最大值和最小值;

3)用cout显示计算结果。

4、主要实验仪器设备:

计算机

实验题目2

1、目的要求:

1)理解循环的概念;

2)掌握while循环语句和for循环语句;

3)学习使用循环的嵌套;

4)学会运用循环与分支的嵌套;

5)进一步熟悉关系运算符和逻辑运算符。

2、实验内容:

判断用户输入正整数n是否为素数(n<1000),直到用户输入1为止。

3、实验步骤:

1)用while循环读入正整数n;

2)对每个正整数n,采用for循环判断是否为素数;

3)输出判断结果。

4、主要实验仪器设备:

计算机

实验三函数实验

(设计性实验2学时)

实验题目1

1、目的要求:

1)理解函数的意义;

2)掌握函数的定义方法;

3)掌握函数的声明形式;

4)掌握函数的调用形式;

5)理解形参和实参的值传递关系;

6)学习函数返回值的使用方法。

2、实验内容

定义一个函数,判断三个整型边长能否构成三角形,如果是三角形,则判断它是否是直角三角形。

3、实验步骤:

1)声明函数Judge;

2)实现函数Judge,根据输入的三个边长判断是否可以构成一个三角形;

3)在main函数中调用Judge函数;

4)main函数根据Judge函数的调用结果判断是否三角形,如果构成三角形则判断是否为直角三角形。

4、主要实验仪器设备:

计算机

实验题目2

1、目的要求:

1)理解函数重载的意义;

2)掌握重载函数的声明、定义与调用方法;

3)进一步理解函数形参和实参的值传递关系。

2、实验内容

用重载函数实现两个整数和三个浮点数的排序,按照从小到大的顺序将排序结果输出。

3、实验步骤:

1)声明函数Sort为重载函数,并根据参数类型和个数的不同分别定义;

2)在main函数中用cin分别输入整数和浮点数;

3)根据参数类型和个数的不同,调用不同的函数,从而实现重载。

4、主要实验仪器设备:

计算机

实验四类与对象实验

(设计性实验4学时)

实验题目1

1、目的要求:

1)理解类与对象的概念;

2)掌握类的声明和定义方法;

3)掌握对象的定义和使用方法;

4)掌握带参数的构造函数的定义和使用;

5)掌握静态数据成员和静态成员函数的定义和使用方法;

6)理解类与对象之间的关系。

2、实验内容

定义一个学生类Student,包括3个数据成员:

学号id,姓名name,分数score;两个静态数据成员:

总分total和学生人数count;带参数的构造函数用来初始化对象,成员函数ChangeScore用来修改分数,静态成员函数GetAverage用来打印计算得到的平均分。

3、实验步骤:

1)定义一个学生类Student,包括题目中要求的数据成员和成员函数;

2)在类外对静态数据成员进行定义声明,以获得存储空间;

3)定义类中的成员函数;

4)在main函数中声明类的对象并初始化;

5)使用该对象的成员函数进行计算并打印结果。

4、主要实验仪器设备:

计算机

实验题目2

1、目的要求:

1)理解类的组合的概念和使用方法;

2)学会定义并使用带参数的构造函数和不带参数的默认构造函数;

3)掌握组合类构造函数和析构函数的定义、实现和调用顺序。

2、实验内容

定义一个组合类课程类Lesson,其数据成员有:

课号id,课程名name,任课老师teacher,选课学生s,其中学生信息定义成学生类的数组。

成员函数有:

AddStudent增加选课学生信息,GetPassRate计算课程的及格率,ShowInfo显示课程信息。

学生类包括学号、姓名及该门课的成绩。

用上述类的组合实现课程的管理。

3、实验步骤:

1)定义一个学生类Student,包括题目要求的数据成员与相应成员函数;

2)定义一个课程类Lesson,以学生类的对象作为该类的数据成员;

3)定义课程类的相关成员函数;

4)在main函数中使用学生和课程类对象模拟课程的管理及信息显示。

4、主要实验仪器设备:

计算机

实验五运算符重载实验

(设计性实验2学时)

1、目的要求:

1)理解运算符重载的概念和意义;

2)掌握重载运算符为成员函数的方法;

3)学习使用重载运算符函数,并注意其参数和返回值的类型;

4)掌握重载运算符函数的调用方法。

2、实验内容

定义一个时间类,包括小时、分、秒三个数据成员,自定义构造函数和析构函数,并具有设置时间函数SetTime()、返回时间函数GetTime(),以及显示当前时间的成员函数ShowTime()。

此外,还需要对=、+=、++、+、==、!

=、>=、<、>这些运算符进行重载。

3、实验步骤:

1)按照题目要求,定义一个时间类CTime;

2)定义类的各个成员函数;

3)定义重载运算符函数为类的成员函数,其中关系运算符的返回值类型为bool型,算术运算符、赋值以及复合运算符返回值为引用类型;

4)在main函数中定义时间类CTime的对象并进行测试。

4、主要实验仪器设备:

计算机

实验六继承实验

(设计性实验2学时)

实验题目1

1、目的要求:

1)理解继承与派生的概念;

2)学习定义和使用派生类;

3)了解不同继承方式下对基类成员的访问权限;

4)掌握派生类构造函数和析构函数的定义和使用方法;

5)理解派生类构造函数和析构函数的执行顺序。

2、实验内容

定义一个本科生类Undergraduate,包括学号、姓名、专业这三个数据成员,在此基础上派生出研究生类Graduate,并增加导师、发表论文数等属性。

可以通过显示个人信息函数ShowInfo来查个人档案。

3、实验步骤:

1)定义基类Undergraduate,包括题目要求的数据成员,以及用来显示个人信息的成员函数ShowInfo;

2)采用公有继承的方式,定义基类Undergraduate的派生类Graduate;

3)在派生类中增加导师和发表论文数两个数据成员,并重新改写ShowInfo函数;

4)在main函数中定义并使用派生类对象。

4、主要实验仪器设备:

计算机

实验题目2

1、目的要求:

1)理解单继承和多继承的概念;

2)掌握类层次中构造函数的定义方式和建立对象时构造和析构顺序;

3)掌握重载构造函数,能够在不同情况下完成数据成员初始化的任务;

4)能够根据问题建立合理的类层次关系。

2、实验内容

定义一个学生类Student和教师类Teacher,学生类的数据成员有姓名、学号、专业,教师类的数据成员有姓名、工作证号、职称、课程、每周课时数。

再定义一个助教类TA,继承学生类和教师类,该类可以使用学生类的全部数据成员以及教师类的课程和每周课时数的数据成员。

要求:

每个类提供自定义的构造函数和析构函数,并通过同名函数ShowInfo来显示全部数据成员的值。

3、实验步骤:

1)按照题目要求定义Student类,包括题目要求的数据成员以及信息显示成员函数ShowInfo;

2)定义Teacher类,包括题目要求的数据成员以及相应的信息显示与设置成员函数;

3)采用公有派生,从前面两个基类中派生出TA类,实现多继承;

4)在main函数中定义派生类TA的对象并使用这些对象;

5)观察程序运行结果,理解建立和清除对象时构造函数和析构函数的执行顺序。

4、主要实验仪器设备:

计算机

实验七虚函数实验

(设计性实验2学时)

1、目的要求:

1)理解多态与虚函数的概念;

2)学习使用虚函数实现动态多态性;

3)掌握虚函数和纯虚函数的定义与使用方法;

4)掌握抽象类及其派生类中虚函数的声明和定义方法。

2、实验内容

计算几种不同的三维图形的表面积和体积。

这里定义一个抽象类CShape,将其成员函数显示基本图形信息函数DispAttr()、计算表面积函数SArea()和计算体积函数Volume()定义为纯虚函数。

根据此抽象类派生出球体、正方体、长方体和圆柱体,并分别重新实现基类中的纯虚函数来显示输出计算结果。

3、实验步骤:

1)声明形状类CShape为抽象列,并将其成员函数DispAttr()、SArea()、Volume()定义为纯虚函数;

2)声明四个派生类:

球体类、正方体类、长方体类和圆柱体类,并重新实现基类中的纯虚函数;

3)在main函数中定义基类的指针数组,分别用来指向四个不同的派生类,并初始化各派生类的对象;

4)在main函数中计算所有三维图形的总的表面积和体积,并计算各三维图形占总表面积、总体积的百分比。

4、主要实验仪器设备:

计算机

实验八数组实验

(设计性实验2学时)

实验题目1

1、目的要求:

1)理解数组的概念;

2)掌握一维数组的定义方法;

3)掌握一维数组元素的输入和输出方法;

4)理解一维数组中元素的存储方式。

2、实验内容

计算一维向量的平均值,即求X=(X1+X2+…+Xn)/n。

3、实验步骤:

1)用宏定义define定义一维向量的长度N;

2)定义具有N个元素的数组a;

3)用for循环输入数组中的元素;

4)计算数组元素的平均值;

5)输出最终的计算结果。

4、主要实验仪器设备:

计算机

实验题目2

1、目的要求:

1)理解字符串的概念;

2)理解字符串与字符数组的关系;

3)掌握字符串数组的定义;

4)掌握字符串的输入、输出方法;

5)掌握基本字符串处理函数的使用方法。

2、实验内容

从键盘上输入一个正整数,判断它是否为回文数。

所谓回文数是指正读和反读都是一样的数,如12321是回文数。

3、实验步骤:

1)定义一个字符型数组;

2)用cin输入字符串的值;

3)通过strlen函数计算字符串的长度;

4)通过循环来取字符串的每一位,并判断是否与中心对称位置的元素相等;

5)输出计算结果。

4、主要实验仪器设备:

计算机

实验九指针与引用实验

(设计性实验2学时)

实验题目1

1、目的要求:

1)理解指针与引用的概念;

2)掌握指针和引用的声明和使用方法;

3)学习使用指针作为函数参数;

4)学习使用引用作为函数参数;

5)学习使用指针访问数组元素;

6)理解使用指针和引用作为函数参数的区别。

2、实验内容

定义一个一维数组,数组的长度及元素由用户输入,通过函数实现数组元素的排序,函数参数分别用指针和引用的传址方式。

3、实验步骤:

1)又用户输入一维数组的长度n;

2)定义指针,并根据长度n动态分配内存空间;

3)用户输入数组中的元素值;

4)编写函数Sort,实现数组元素的排序,其中分别通过指针和引用来传递参数;

5)显示最终排序结果。

4、主要实验仪器设备:

计算机

实验题目2

1、目的要求:

1)理解函数指针的概念;

2)掌握指向函数的指针声明和使用;

3)学习用指向函数的指针作为函数的参数,从而选择执行不同的函数;

4)进一步熟悉指针的使用方法。

2、实验内容

通过传递函数来计算两个正整数的最大公约数和最小公倍数。

3、实验步骤:

1)定义两个函数,分别用来计算两个正整数的最大公约数和最小公倍数;

2)定义一个通用的计算函数GetResult,使用函数指针作为参数来执行不同的函数体;

3)在主函数中由用户输入两个正整数的值;

4)通过不同的函数指针,用GetResult便可计算出最小公约数和最大公倍数。

5)输出计算结果。

4、主要实验仪器设备:

计算机

实验十容器类实验

(设计性实验2学时)

1、目的要求:

1)理解容器类和线性容器类的概念;

2)掌握容器类的声明和使用方法;

3)能够根据栈的定义实现栈类;

4)学习使用栈解决实际问题。

2、实验内容

利用栈实现将中缀表达式转换成后缀表达式。

3、实验步骤:

1)定义节点类Node;

2)在节点类基础上公有派生出栈类Stack,其中包括入栈、出栈、栈空、取栈顶元素等基本操作;

3)定义Change函数,实现将中缀表达式s1转换成后缀表达式s2,其转换算法如下:

1S栈初始化;

2从左到右扫描s1,重复下述操作,直到表达式结束(#):

从s1中取出下一个字符ch;

判断ch:

’(‘:

将ch压入栈S;

操作数:

直接送入s2;

操作符:

如栈空或ch比栈顶元素优先级高,则ch进栈;

否则退栈并将元素送入s2,然后再将ch与新栈顶元素比较。

’)’:

退栈并将其送入s2,直到碰到左括号,左括号退栈但不送s2。

3当遇到中缀表达式结束符’#’时,连续退栈并送入s2,直到栈空。

4)定义Oper函数,比较操作符的优先级;

5)在主函数中实现程序的要求,并输出最终结果。

4、主要实验仪器设备:

计算机

实验十一类模板实验

(设计性实验2学时)

1、目的要求:

1)理解函数模板与类模板的含义;

2)掌握类模板的定义和使用方法。

2、实验内容

定义一个数组类,统计数组中元素出现的频率,并求出数组中的最大元素和最小元素,用类模板来实现。

3、实验步骤:

1)定义模板CArrayInfo;

2)定义该类模板的各个成员函数模板,其中Input()用来输入数组中的元素,Frequency()用来统计数组元素出现的频率,Appeared()用来计算当前数组元素是否出现过,Max()计算数组元素的最大值,Min()计算数组元素的最小值;

3)编写驱动程序进行测试。

4、主要实验仪器设备:

计算机

五、实验报告的格式

实验名称

(一)实验目的:

(二)主要仪器设备:

列出实验中主要使用的仪器设备

(三)内容及程序:

简明扼要写出实验步骤及流程

(四)结果与分析:

根据实验要求对数据进行分析讨论

(五)问题讨论:

结合所学理论知识,对实验中的现象、数据等进行分析和讨论,以提高自己分析问题和解决问题的能力并提出应注意的事项,为以后的科学研究打下基础。

六、考核方式、方法及实验成绩评定方法

1、考核方式和方法:

面向对象实验课成绩单独按五级记分。

实验成绩以平时考查为主,并在每次上机时给出成绩。

2、实验成绩评定方法:

评定各级成绩时,按以下标准:

(一)优秀(很好)

能完全独立正确编写程序,并[完全独立调试程序,程序完全正确。

(二)良好(较好)

基本能独立正确编写程序,基本能独立调试程序,程序结果基本正确。

(三)中等(一般)

能编写基本程序,有一定调试程序的能力,程序结果基本正确。

(四)及格(较差)

能编写一些简单程序,熟悉C++语言开发环境,能部分调试程序,程序结果部分正确。

(五)不及格(很差)

基本不能编写程序,无程序调试能力,不能得到程序正确结果。

七、实验主要应配套仪器设备及台(套)数

序号

仪器设备名称

数量

备注

1

计算机

80台

 

2

TurboC++

 

八、主要教材及参考书

《C++程序设计》,谭浩强主编清华大学出版社

《C++程序设计语言》,揣锦华主编西安电子科技大学出版社

《C++程序设计教程》,刘慧宁孟威王东等编著机械工业出版社

四川师范大学实验教学学生评教内容

实验课程名称:

高级语言程序设计实验任课教师:

评价内容

效果

较好

一般

较差

仪器设备、状态(%)

实验开出率

创新、设计、综合性实验比例

实验教师备课、讲解、指导、批改实验报告

实验课课堂纪律(事帮、迟、早、旷,课堂纪律)

实验室环境状况(卫生、安全)

实验课考核办法

总体评价(分)

90----100

75----90

60-------75

60以下

建议:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1