搜索
您的当前位置:首页正文

1实验5-类和对象

2022-01-18 来源:吉趣旅游网
实验5 类和对象

程序填空

1.

本题分值:10

题目描述:仔细阅读下列求两个点之间距离的程序,程序的输出结果是50,根据程序的输出结果在划线处填入正确语句。 代码:

#include #include

using namespace std; class point {

public:

point(float a,float b) { x=a; y=b; } float Distance(point &p) {

float dx=__(1)__; float dy=__(2)__;

return (float)sqrt(dx*dx+dy*dy); } private:

float x,y; };

int main() {

point p1(2,3),p2(32,43); cout<<__(3)__<本题分值:10

题目描述:设计一个矩阵类CRectangle,该类中的私有成员变量存放Rectangle的长和宽,并设置它们的默认值为1,通过成员函数set()来设定长和宽的值,并确保长宽都在(0,50)范围之内,求其周长Perimeter并显示输出。以下是完成此项工作的程序,请将未完成的部分填入,使之完整。 代码:

#include

using namespace std; class CRectangle {

public:

void Set(float a,float b) {

if((a>0)&&(a<50)) length=a; else length=1;

if((b>0)&&(b<50)) width=b; else width=1; }

float perimeter() {

return 2*(length+width); } private:

float length; float width; };

int main() {

CRectangle R;

float l,w;//定义矩形的长和宽做为输入变量; // cout<<\"请输入矩形的长和宽:\"<>l>>w;

R.__(1)__; //设置矩形的长和宽

cout<<\"矩形的周长为:\"<<__(2)__<本题分值:10

题目描述:设计一个类CRectangle,要求如下所述。

(1)定义两个点坐标x1,y1,x2,y2,两点所确定的一条直线构成了矩形的对角线。

(2)初始化矩形的两个点时,判断给定的两个点是否能够构成一个矩形,如果不能构成矩形,则矩形对角线的两点初始化为(0,0)和(1,1)。如果可以构成,则用形参初始化对象的数据成员。

根据以上描述完成下列程序。

代码:

#include #include

using namespace std;

class CRectangle {

public:

CRectangle(float Rx1=0,float Ry1=0, float Rx2=1,float Ry2=1); bool IsSquare( );

void PrintRectangle( ); private:

//确定直线的两点的坐标 float x1,y1,x2,y2; };

CRectangle::CRectangle(float Rx1 ,float Ry1, float Rx2,float Ry2) {

if (__(1)__) //两点的横坐标或纵坐标的值相等,则不能构成矩形 {

x1=y1=0; x2=y2=1;

cout<<\"不能构成矩形! \"<__(2)__ //初始化数据成员x1,y1,x2,y2 cout<<\"可以构成矩形! \"<int main() {

CRectangle R1(1,3,5,6); CRectangle R2(1,3,1,6); return 0; } 4.

本题分值:10

题目描述:下列程序中声明了类girl,其中函数“display”是类girl的友元函数,请在(1)、(2)和(3)处各填入正确的内容,使程序能正常运行。 代码:

#include using namespace std; class girl {

private:

char name; int age; public:

girl(char n, int d) //构造函数 {

name= n; age=d; }

__(1)__ void display(girl &x); //声明友元函数 };

void display(__(2)__) //类外定义 友元函数 {

cout<<\"Girl's name is :\"<int main( ) {

girl e('z',18);

__(3)__; //调用友元函数 return 0; } 5.

本题分值:10 题目描述:,请完善下面程序,使程序的运行结果如下:

This is a constructor ! This is a constructor ! The value of ch is a

The value of ch is b This is a destructor of b This is a destructor of a

代码:

#include using namespace std; class MyClass {

char ch; public:

MyClass( ) {

cout<<\"This is a constructor! \"<MyClass(char character ) {

cout<<\"This is a constructor! \"<}

void Print( ) {

cout<<\"The value of ch is \"<<__(1)__<~ MyClass( ) {

cout<<__(2)__<int main( ) {

MyClass first, __(3)__; first.Print( ); second.Print( ); return 0; }

程序设计

6.

本题分值:10

题目标题:计算两点间的距离 时间限制:1000MS 内存限制:32768KB 题目描述:仿照本次实验预习的程序填空题1,将以上Distance函数定义为类piont的友元函数,实现程序的功能。并在主函数中增加输入两点作为友元函数的实参。 其主函数如下: int main() {

float p1_x,p1_y,p2_x,p2_y; //输入四个点

cin>>p1_x>>p1_y>>p2_x>>p2_y;

point p1(p1_x,p1_y),p2(p2_x,p2_y); cout<输入描述:输入四个数,用空格隔开。 输出描述:两个点的距离。 样例输入:1 3 5 6 样例输出:5

7.

本题分值:10

题目标题:日期类CDateInfo的设计。 时间限制:1000MS 内存限制:32768KB

题目描述:根据以下主函数的功能来设计日期类CDateInfo,使其能正确运行。类CDateInfo中应该具有描述年、月、日的三个数据成员和相应的成员函数。 int main() {

CDateInfo data1,data2(2011,10,10); //定义对象data1和data2

//分别调用类的不带参数的构造函数和带3个参数的构造函数对其数据成员进行初始化 //date1的数据成员未初始化时,其年月日用默认值2000,1,1来继续初始化。 int y,m,d;

cin>>y>>m>>d; //输入年月日值

data1.SetDate(y,m,d); //设置data1的年月日为y,m,d

data1.GetDate(); //按year-month-day的格式显示data1的年月日

data2.GetDate(); //按year-month-day的格式显示data2的年月日为“2011-10-10” return 0; }

输入描述: 三个整数,分别用来设置对象data1的年、月、日

输出描述:两行:第1行为对象data1的年月日;第2行为data2的年月日。 样例输入: 2011 12 5 样例输出: 2012-12-5 2011-10-10 8.

本题分值:10

题目标题:学生类Student的设计 时间限制:1000MS 内存限制:32768KB

题目描述:根据以下主函数的功能来设计日期类Student,使其能正确运行。类Student中应该具有描述学生姓名、性别、年龄的三个数据成员和相应的成员函数。 int main() {

Student Zhang_San; //创建Student类对象Zhang_San char*chOne; int iSex;

unsigned iOld;

chOne=new char[11]; //创建动态字符数组用来存放姓名,指针chOne指向该数组 cin>>chOne; //输入姓名,存放在chOne所指向的动态字符数组中 cin>>iSex; //输入性别,输入1表示性别为“男”,输入0表示性别为“女”

cin>>iOld; //输入年龄

Zhang_San.SetName(chOne); //用输入的姓名设置对象Zhang_San用来表示姓名的数据成员

Zhang_San.SetGender(iSex); //设置对象Zhang_San用来表示性别的数据成员 Zhang_San.SetAge(iOld); //设置对象Zhang_San用来表示年龄的数据成员 cout<Zhang_San.GetName(chOne); //调用GetName(char *)成员函数将对象Zhang_San表示姓名的数据成员值

//存放到chOne所指向的动态字符数组中 cout<<\"Zhang_San's name is \"<cout<<\"Zhang_San's gender is \"<cout<<\"Zhang_San's age is \"<输入描述:3行,第一行为一个长度不超过10的字符串表示姓名;第二行为0和1中的一个整数;第三行为一个整数,表示年龄。 输出描述: 按主函数要求输出。 样例输入: ZhangSan 0 20

样例输出:

Zhang_San's name is ZhangSan Zhang_San's gender is 0 Zhang_San's age is 20 9.

本题分值:10

题目标题:计算器类Calculator的设计 时间限制:1000MS 内存限制:32768KB 题目描述:根据以下主函数的功能来设计计算器类Calculator,使其能正确运行。类Calculator中应该具有描述运算数的a和b及其表示a和b运算结果的三个数据成员和相应计算并显示结果的成员函数。 int main( ) {

float a, b;

cin>>a>>b; //从键盘输入运算数a、b

Calculator cal( a , b ); //用a和b初始化创建的Calculator类对象cal cal.add( ); //计算a+b并显示结果 cal.subtract( ); cal.multiply( );

cal.divide( ); return 0; }

输入描述:2个整数a和b,表示参与运算的两个数据。 输出描述: 4行,分别显示a+b、a-b、a*b和a/b的结果 样例输入: 1 2

样例输出: 1+2=3 1-2=-1 1*2=2 1/2=0.5

10.

本题分值:10

题目标题:复数类Imaginary的设计 时间限制:1000MS 内存限制:32768KB 题目描述:根据以下主函数的功能来设计复数类Imaginary,使其能正确运行。类Imaginary中应该具有描述复数的实部和虚部的私有数据成员a和b,还有相应的构造函数和按照“a±bi”格式显示复数的成员函数print()。设计类Imaginary的2个友元函数分别进行复数的加、减运算,并在这些函数调用类Imaginary的成员函数print()显示结果。 int main() {

float x1,y1,x2,y2;

cin>>x1>>y1>>x2>>y2; //输入4个数据,分别表示进行运算的两个复数的实部和虚部

Imaginary imag1(x1,y1),imag2(x2,y2); //用x1、y1创建Imaginary类对象imag1 Add(imag1,imag2); //调用友元函数求两个复数之和,按a±bi的格式显示运算结果(a和b均为实数)

Sub(imag1,imag2); //求两个复数之差并显示运算结果 return 0; }

输入描述:输入4个数据,分别表示进行运算的两个复数的实部和虚部 输出描述: 4行,分别显示两个复数进行加、减、乘、除运算的结果 样例输入: 1 3 2 5 样例输出: 3+8i -1-2i

因篇幅问题不能全部显示,请点此查看更多更全内容

Top