程序填空
1.
本题分值:10
题目描述:仔细阅读下列求两个点之间距离的程序,程序的输出结果是50,根据程序的输出结果在划线处填入正确语句。 代码:
#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)__< 题目描述:设计一个矩阵类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<<\"请输入矩形的长和宽:\"< R.__(1)__; //设置矩形的长和宽 cout<<\"矩形的周长为:\"<<__(2)__< 题目描述:设计一个类CRectangle,要求如下所述。 (1)定义两个点坐标x1,y1,x2,y2,两点所确定的一条直线构成了矩形的对角线。 (2)初始化矩形的两个点时,判断给定的两个点是否能够构成一个矩形,如果不能构成矩形,则矩形对角线的两点初始化为(0,0)和(1,1)。如果可以构成,则用形参初始化对象的数据成员。 根据以上描述完成下列程序。 代码: #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<<\"不能构成矩形! \"< CRectangle R1(1,3,5,6); CRectangle R2(1,3,1,6); return 0; } 4. 本题分值:10 题目描述:下列程序中声明了类girl,其中函数“display”是类girl的友元函数,请在(1)、(2)和(3)处各填入正确的内容,使程序能正常运行。 代码: #include 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 :\"< 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 char ch; public: MyClass( ) { cout<<\"This is a constructor! \"< cout<<\"This is a constructor! \"< void Print( ) { cout<<\"The value of ch is \"<<__(1)__< cout<<__(2)__< 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< 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< //存放到chOne所指向的动态字符数组中 cout<<\"Zhang_San's name is \"< 样例输出: 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 因篇幅问题不能全部显示,请点此查看更多更全内容