问答题

请使用VC6或使用[答题]菜单打开考生文件夹proj2下的工程proj2,此工程中包含一个头文件shape.h,其中包含了类Shape、Point和Triangle的声明;包含程序文件shape.cpp,其中包含了类Triangle的成员函数和其他函数的定义;还包含程序文件proj2.cpp,其中包含测试类Shape、Point和Triangle的程序语句。请在程序中的横线处填写适当的代码并删除横线,以实现上述功能。此程序的正确输出结果应为:
此图形是一个抽象图形,周长=0,面积=0
此图形是一个三角形,周长=6.82843,面积=2
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
//shape.h
class Shape
public:
virtual double perimeter()const return 0; //返回形状的周长
virtual double area()const return 0;) //返回形状的面积
virtual const char * name()constreturn"抽象图形"; //返回形状的名称
;
class Point //表示平面坐标系中的点的类
double x;
double y;
public:
//**********found**********
Point (double x0, double y0):______//用x0、y0初始化数据成员X、Y
double getX() constreturn x;
double getY() constreturn y;
;
class Triangle:public Shape
//**********found**********
______;
//定义3个私有数据成员
public:
Triangle(Point p1,Point p2,Pointp3):point1(p1),point2(p2),point3(p3)
double perimeter()const;
double area () const;
const char* name () constreturn "三角形";

//shape.cpp
#include "shape.h"
#include <cmath>
double length(Point p1,Point p2)

return sqrt((p1.getX()-p2.getX())*(p1.getX()-p2.getX())+(p1.getY()-p2.getY())*(p1.getY()-p2.getY()));

double Triangle::perimeter()const
//一个return语句,它利用length函数计算并返回三角形的周长
//**********found**********

double Triangle::area()const

double s=perimeter () /2.0;
return sqrt (s* (s-length(point1,point2))*
(s-length(point2,point3))*
(s-length(point3,point1)));

//proj2.cpp
#include"shape.h"
#include<iostream>
using namespace std;
//**********found**********
______
//show函数的函数头(函数体以前的部分)

cout<<"此图形是一个"<<shape.name()<<",周长="<<shape.perimeter()<<",面积="<<shape.area()<<endl;

int main()

Shape S;
Triangle tri (Point(0,2),Point(2,0),Point(0,0));
show(s);
show(tri);
return 0;

【参考答案】

(A)x(x0),y(y0)
(B)Point pointA,pointB,pointC
(C)re......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
请使用[答题]菜单命令或直接用VC6打开考生文件夹下的工程proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:Zhang 20 Tsinghua。 注意:只能在函数address_change的“ ********333********”和“ ********666********”之间填入若干语句,不要改动程序中的其他内容。 程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。 proj3.h #include<iostream> #include<string> using namespace std; class Person char name[20]; int age; char* address; public: Person()age=0;address=0; void name_change(char*name); 名字修改函数 void age_change(int_age); 年龄修改函数 void address_change(char* add); 地址修改函数 void info_display(); 人员信息显示 ~Person(); 析构函数 ; void writeToFile (const char*path); proj3.cpp #include <iostream> #include <string> #include proj 3.h using namespace std; void Person::name_change(char*_name) strcpy(name,_name); void Person::age_change(int_age) age=_age; void Person::address change(char*_add) if(address!=NULL) delete [] address; void Person::info_display () cout<<name<<’ t’ if(address!=NULL) cout<<address<<endl; cout<<endl; Person::~Person() if(address!=NULL) delete[] address; void main() Person p1; p1.name_change( Zhang ); p1.age_change(20); p1.address_change( Tsinghua Uni-versity ); p1.address_change( Tsinghua ); p1.info_display(); writeToFile( );