c++的一个编程,求助大神帮忙!!可以运行的话马上给分!

2025-03-07 06:35:30
推荐回答(3个)
回答1:

//本类仅供参考
#include#include
using namespace std;
class Teacher;
class Teacher
{
public:
Teacher(int num,const char* name,int age)
{
assert(num>=0);
assert(name);
assert(age>=0&&age<=200);

this->num=num;
int len=this->str_len(name);
this->name=new char[len+1];
str_copy(this->name,name);
this->age=age;
}

Teacher(const Teacher& teacher)
{
this->num=teacher.num;
assert(teacher.name);
int len=this->str_len(teacher.name);
this->name=new char[len+1];
this->str_copy(this->name,teacher.name);
this->age=teacher.age;
}

virtual~Teacher()
{
if(this->name)
delete this->name;
this->name=NULL;
}

Teacher& operator=(const Teacher& teacher)
{
if(this!=&teacher)
{
this->num=teacher.num;
assert(teacher.name);
if(this->name)
delete this->name;

int len=this->str_len(teacher.name);
this->name=new char[len+1];
this->str_copy(this->name,teacher.name);
this->age=teacher.age;
}

return *this;
}

public:
void setNum(int num)
{
assert(num>=0);
this->num=num;
}

void setAge(int age)
{
assert(age>=0&&age<=200);
this->age=age;
}

void setName(const char* name)
{
assert(name);
if(this->name)
delete this->name;
int len=this->str_len(name);
this->name=new char[len+1];
this->str_copy(this->name,name);
}

int getAge()const
{
return this->age;
}
int getNum()const
{
return this->num;
}
const char* getName()const
{
return this->name;
}
void showTeacherInfo()const
{
cout<<"工号:"<num< cout<<"姓名:"<name< cout<<"年龄:"<age< }
private:
int str_len(const char* src)
{
assert(src);
int len=0;
while(*src++&&++len);
return len;
}

void str_copy(char* dest,const char* src)
{
assert(src);
while(*dest++=*src++);
}
private:
int num;
char* name;
int age;
};

void main()
{
Teacher WangWei(201,"王伟",35);
Teacher LiHua(WangWei);
LiHua.setNum(202);
LiHua.setName("李华");

WangWei.showTeacherInfo();
cout<<"-------------我是分割线----------------"< LiHua.showTeacherInfo();
}

回答2:

struct teacher
{int num;
char name[20];
int age;}teacher1;

回答3:

姓名 最好用 字符数组 你邮箱多少??