《C++程序设计)32+16》实验指导书(2)

2019-05-18 22:39

1. 下面是一个计算器类的定义,请完成该类成员函数的实现 class counter { Public:

counter(int number);

void increment();//给原值加1 void decrement();//给原值减1 int getvalue();//取得计数器值 int print();//显示计数 private: int value; };

2. 根据注释语句的提示,实现类Date的成员函数。

#include class Date{ public:

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 #include class table{ public:

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,同时设计主程序显示一个小孩的出生时间和名字。

#include #include class Time{ public:

Time(int h,int m,int s){ hours=h; minutes=m; seconds=s;} virtual void display()

{ cout<

protected: int hours,minutes,seconds; }; class Date{ public:

Date(int m,int d,int y){ month=m; day=d; year=y;}

virtual void display(){ cout<

3.建立普通的基类building,用来存储一座楼房的层数,房间数以及它的总平方数。建立派生类house,继承building,并存储卧室与浴室的数量,另外,建立派生类office,继承building,并存储灭火器与电话的数目。

4.按照图4所示的类层次图要求编写程序。定义属于类score的对象c1及类teacher的对象t1,分别输入各数据成员的值后再显示出这些数据。

5.递归调用被继承的基类成员函数,实现求素数的功能。 6.递归调用被继承的基类成员函数,求最大公约数。

teacher Degree Dep student old sno person name id stud addr tel score math eng 图4 类层次图

实验五 多态性

一、目的要求

1·理解运算符重载的概念和实质; 2·掌握运算符重载函数的定义方法;

3·掌握虚函数的定义方法及其在实现多态性中的作用; 4·理解和掌握实现动态多态性的前提条件; 5·理解静态多态性和动态多态性的区别。 二、实验内容

选作以下题目,编程序,然后上机调试运行。

1. 编一个程序,用成员函数重载运算符“+”和“-”,将两个二维数组相加和相减,要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。

2. 修改上题,用友员函数重载运算符“+”和“-”将两个二维数组相加和相减。

3. 编写程序,计算汽车运行的时间,首先建立基类car,其中含有数据成员distance存储两点间的距离。假定距离以英里计算,速度为每小时80英里,使用虚函数travel_time()计算并显示通过这段距离的时间。在派生类kilometre中,假定距离以千米计算,速度为每小时120千米,使用函数travel_time()计算并显示通过这段距离的时间。

实验六 模 板

一、目的要求

1·理解类模板和函数模板的意义及作用;

2·掌握类模板和函数模板的定义方法及在程序中的使用方法。 二、实验内容

选作以下题目,编程序,然后上机调试运行,分析运行结果。

1. 写一个函数模板,求数组中的最大元素,并且使得函数调用时,数组的类型和返回类型可以是整数也可以是双精度类型。

2. 写一个函数模板,使用冒泡排序将数组内容由小到大排列,并且使得函数调用时,数组的类型可以是整数也可以是双精度型。

3. 建立类模板input,在调用构造函数时,完成以下工作: (1) 提示用户输入;

(2) 让用户输入数据;

(3) 如果数据不在预定范围内,重新提示输入。

input型的对象应当按以下形式定义:

input ob(\”,min_value,max_value)

其中,promput message是提示输入信息。可接受的最小值和最大值分别由min_value与max_value指定。

实验七 大学师生类C++程序设计

一、目的要求

1·掌握用计算机处理问题的思维方法和C++程序设计方法; 2·培养问题分析、算法设计、程序设计、程序调试的能力。 二、实验内容

编程序完成下列设计内容,然后上机调试运行,分析运行结果,分析运行结果。

设计一个大学的类系统,包括Student(学生),Professor(教师),Staff(职员)。另有一类既作为学生又兼作助教的可作为派生类StudentStaff,它是由Student类和Staff类派生而来,另外定义一个父类DataRec作为上述类(子类)的基类。设计主程序,输入各类人员信息,并将数据存放在磁盘文件中。

该类系统共有五个类,层次结构见图5。

图5 大学类系统层次结构

DataRec Student Staff StudentStaff Professor


《C++程序设计)32+16》实验指导书(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:福利院活动新闻稿

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

马上注册会员

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