(设计性实验 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、实验内容