当前位置:首页 > C++程序设计32+16实验指导书
5 实验时数
总实验时数不得少于16学时。
6 实验内容和要求
实验一 C++语言基础
一、目的要求
1·学会并利用C++语言的基本知识编写程序; 2·理解程序的结构;
3·掌握函数重载、引用的使用等。 二、实验内容
选作以下题目,编程序,然后上机调试运行,分析运行结果。
1.用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。
2.建立一个称为sroot()的函数,返回其参数的二次方根。重载sroot()三次,让他返回整数,长整数与双精度数的二次方根(计算二次方根时,可以使用标准库函数sqrt())。
3.编写C++风格的程序,解决百钱问题:将1元人民币兑换成1,2,5分的硬币,有多少种换法?
4.编写C++风格的程序,用二分法求解f(x)=0的根。
5.编写一个C++风格的程序,输入两个整数,将它们按由大到小的顺序输出。要求使用变量的引用。
实验二 类和对象
一、目的要求
1·掌握类和对象的定义方法、成员函数的实现与调试方法; 2·掌握类的构造函数和析构函数的定义方法; 3·掌握对象数据成员的初始化方法;
4·深刻领会构造函数和析构函数被调用的时间和特点以及它们在程序中的作用;
5·深刻领会类和对象的区别、类实现数据隐藏与封装的原理等。 二、实验内容
选作以下题目,编程序,然后上机调试运行,分析运行结果。
1. 下面是一个计算器类的定义,请完成该类成员函数的实现 class counter { Public:
counter(int number);
void increment();//给原值加1 void decrement();//给原值减1 int getvalue();//取得计数器值 int print();//显示计数 private: int value; };
2. 根据注释语句的提示,实现类Date的成员函数。
#include
void printDate();//显示日期 void setDay(int d);//设置日的值 void setMonth(int m);//设置月的值 void setYear(int y);//设置年的值 private: int day,month,year; }; void main()
{ Date testDay; testDay.setDay(5); testDay.setMonth(10); testDay.setYear(2003); testDay.printDate(); }
3. 建立类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度。用类cylinder计算圆柱体的体积,并存储在一个double变量中。在类cylinder中包含一个成员函数vol(),用来显示每个cylinder对象的体积。
4. 构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的数组对象,将qu初始化为1-5,将price初始化为qu的10倍。显示每个对象的qu*price的值。
5. 修改上题,通过对象指针访问对象数组,使程序以相反的顺序显示对象数组的qu*price的值。
6. 构建一个类Stock,含字符数组stockcode[]及整型数据成员quan,浮点型数据成员price。构造函数含3个参数:字符数组na[]及q,p。当定义Stock
的类对象时,将对象的第1个字符串参数赋给数据成员stockcode,第2个和第3个参数分别赋给quan和price。未设置第2个和第3个参数时,quan的值为1000,price的值为8.98。成员函数print()使用this指针,显示对象内容。
实验三 静态成员与友元
一、目的要求
1·掌握类中静态成员的定义方法;
2·掌握静态数据成员的初始化方法、静态数据成员和静态成员函数的访问和使用方法;
3·掌握友元函数和友元类的说明方法;
4·理解友元函数和友元类的使用特点。 二、实验内容
选作以下题目,编程序,然后上机调试运行,分析运行结果。
1.编写程序,统计某旅馆住宿客人的总数。要求输入客人的姓名,输出客人编号(按先后顺序自动生成)、姓名以及总人数。
2.编写程序,统计歌手大奖赛的参赛人数,每名选手的平均得分。要求依次输入选手的编号、姓名、各评委的打分;输入参赛总人数,并按平均得分由高到低的顺序输出每位选手的名次、姓名、平均得分。
3.利用友元函数求两个数的平方差
4.编写程序,设计一个友元函数比较学生成绩的高低,并输出所有学生中最高分和最低分学生的姓名。
5.日期类Date包含日期的年、月、日三个数据成员,编写一个友元函数,求两个日期之间相差的天数。
6.点类Point,包含点的坐标x、y两个数据成员,设计两个友元函数,分别计算两点间的水平距离和垂直距离。
7. 采用友元类方式重新编写以上各题的程序。
实验四 派生类与继承
一、目的要求
1. 掌握单继承和多重继承的方式定义派生类的方法;
2·深刻理解在各种继承方式下构造函数和析构函数的执行顺序; 3·理解和掌握公有继承、私有继承和保护继承对基类成员的访问机制; 4·理解虚基类的概念以及引入虚基类的目的和作用。
二、实验内容
选作以下题目,编程序,然后上机调试运行,分析运行结果。
1.下面的程序可以输出ASCII字符与所对应的数字的对照表,修改下列程序,使其可以输出字母a到字母z。
#include
table(int p){ i=p;}
void ascii(void); protected: int I; };
void table::ascii(void) { int k=1;
for(;i<127;i++){ cout< if ((k)==0) cout<<”\\n” ; k++; } cout<<”\\n”; } class der_table:public table{ public: der_table(int p,char*m):table(p){c=m;} void print(void); protected: char*c; } ; void der_table::print(void){ cout< { der_table ob1(32,”ASCII value-char”); ob1.print(); der_table ob2(‘a’,”ASCII value-char”);b2.print(); } 提示:修改后的主程序为 void main() { der_table ob(‘a’,’z’,”ASCII value-char”); ob.print(); } 2.下面的程序包含了Time类和Date类的声明,要求设计一个Birthtime类,它继承了Time类和Date类,并且还有一项出生孩子的名字Childname,同时设计主程序显示一个小孩的出生时间和名字。
共分享92篇相关文档