(2013版)C++程序设计教学规范(3)

2019-05-27 17:30

2、已知某个学习小组三门课程的成绩如下: 学生1 学生2 学生3 英语 85 65 75 高等数学 90 70 85 C++程序设计 80 75 77 使用二维数组存放该学习小组三门课程的成绩,计算每个学生的平均成绩和该小组每门课程的平均成绩。 思考并验证:

(1)如何定义二维数组,用什么方法给数组赋值?

(2)如何用指针实现

(3)设计一个算法实现对英语成绩的排序,使得成绩高的学生成绩放在数组的首位。

3、写一个函数,可以根据输入的参数值建立不同长度的动态数组,并置全部元素初始值为0。如果要求在已生成的动态数组上添加元素,以致需要扩充数组时,应该如何操作?请编程序试一试。

4.(选做)数据排序是为了快速查找。定义一个函数,在有序数组中查找指定值,想一想怎样才能找得更快。

第 11 页

姓名 班级 学号 文件名:班级号_学号_姓名_题号.cpp(多文件应压缩为rar文件)

实验4 指针的应用(15学时) 实验目的

(1) 掌握指针的用法

(2) 掌握单向链表的基本操作方法,包括建立和遍历链表,在链表中插入和删除节点。 实验内容

1、建立一个单向链表,该链表中每个节点是一个整型数,编写三个函数完成以下各项工作:

① 显示链表中每个节点数据;

② 输入一个整数i,在第i个节点之后插入一个节点,若i大于节点总数,则在链

表的尾部插入一个节点; ③ 输入某个整数,删除该相应节点。

思考并验证

(1)写出三个函数原型,并说明其功能

(2)采用动态内存分配方法,若不及时释放空间会出现什么情况

(3)你在调试本程序时常出现哪些问题,原因何在?

(4)总结在使用指针时应该注意哪些问题

2、分别把两个字符串存放到两个字符数组中,将其中一个字符串插入到另一个字符串的指定位置。要求用指针实现

第 12 页

姓名 班级 学号 文件名:班级号_学号_姓名_题号.cpp(多文件应压缩为rar文件)

实验5 类与对象(15学时) 实验目的

(1) 掌握类和对象的概念、定义和使用方法。

(2) 掌握不同特性对象成员的访问方法,以及this指针的概念和使用方法。 (3) 掌握构造函数和析构函数的使用方法。 (4) 掌握静态成员的使用方法。 (5) 掌握友员的使用方法。

学会使用VC6的Debug功能跟踪构造函数、析构函数和成员函数的执行顺序。 实验内容

1、定义一个score类,其中包括私有数据成员和公有成员函数,即 num 学号 Math 高等数学成绩 English 英语成绩 Programming 程序设计成绩

inscore( ) 输入学号和各科成绩,并且计算平均成绩 showscore( ) 输出学号和各科成绩

使用score类,输入某班n (事先不能确定)个学生的学号和各科成绩,然后求各个学生的平均成绩,并列表输出学生的学号、各科成绩和平均成绩。 思考并验证:

(1) 定义什么结构表示n个学生?

(2) 用什么方法输入n个学生的学号和成绩?

(3) 你的类中定义了几个构造函数,写出原型并说明其功能

第 13 页

(4) 在类中定义一个静态成员,用于表示类中所有对象的个数。当一个对象创建时,对象个数增1,当一个对象被撤销时,对象个数减1。说明如何定义静态成员,如何统计对象的个数。

2、 建立一个复数类imaginary,其私有数据成员x和y表示复数的实部和虚部,构造函数imaginary用于对复数的实部和虚部初始化,成员函数show用于显示复述对象,形式为“实部+虚部i”;友员函数add,sub,mul和div分别用于进行复数的加、减、乘和除法运算。在主函数中,实例化两个复数,并输入一个运算符,按运算符选择相应的友员函数进行复数运算,然后调用成员函数show输出计算结果。 思考并验证:

(1) 四个友员函数的形参和返回值分别是什么?

(2) 四个友员函数可以定义为相应的成员函数吗,写出原型

(3) 比较友员函数与成员函数的用法

第 14 页

姓名 班级 学号 文件名:班级号_学号_姓名_题号.cpp(多文件应压缩为rar文件)

实验6 运算符重载(9学时) 实验目的

(1)理解重载运算符的意义。

(2)掌握用成员函数、友员函数重载运算符的特点。 (3)掌握重载运算符函数的调用方法。 实验内容

1、建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数。

构造函数:Douary(int m, int n);用于建立一维动态数组存放m行n列的二维数组元素,并对该数组的边界进行检查和将该数组元素初始化为0。

析构函数:~Douary();用于释放动态数组所占用的存储空间。 友员函数:friend istream &operator>>(istream &input, Douary &d); 重载运算符“>>”输入二维数组,基中d为Dousry类对象;

friend ostream &operator<<(ostream &output, Douary &d);

重载运算符“<<”以矩阵的形式输出二维数组,其中 d为Douary类对象。

私有数据成员:

int * Array; Array 为动态数组指针。 int row; row 为二维数组的行数。 int col; col 为二维数组的列数。

在主函数中,实例化一个二维数组,然后测试Douary类。 思考并验证:

(1) 二维数组类中的构造函数和析构函数是必须的吗?如果不定义构造函数和析构函数会出现什

么情况?

(2) 构造函数中对数组的边界检查包括哪些方面?

第 15 页


(2013版)C++程序设计教学规范(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:邛崃市城区基准地价表2011

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: