问答题

请使用[答题]菜单命令或直接用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(" ");

【参考答案】

address=new char[strlen(add)+A]; //给类成员变量动态分配空间
strcpy(......

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

问答题
请使用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;