程序运行时出错,但是又不知道哪错了,求大神指点!是一个学校管理系统,管理教师学生职工信息。

mrany_cxm 2017-05-06 09:17:29
#include <iostream.h>
#include <string.h>

class People
{
public:
People(char *Name,int s,int a,char *Tel,char *Addr);
virtual ~People();
virtual void Print();
private:
char *name;
int sex;
int age;
char *tel;
char *addr;
};

class Teacher:public People
{
public:
Teacher(char *Name,int s,int a,char *Tel,char *Addr,int ty);
~Teacher()
{
}
void Print();
private:
int teachyear;
};

class Student:public People
{
public:
Student(char *Name,int s,int a,char *Tel,char *Addr,int sy);
~Student()
{
}
void Print();
private:
int studyyear;
};

class Staff:public People
{
public:
Staff(char *Name,int s,int a,char *Tel,char *Addr,int wy);
~Staff()
{
}
void Print();
private:
int workyear;
};

People::People(char *Name,int s,int a,char *Tel,char *Addr)
{
name=NULL;
if(Name)
{
name = new char[strlen(Name)+1];
strcpy(name,Name);
}
tel=NULL;
if(Tel)
{
name = new char[strlen(Tel)+1];
strcpy(tel,Tel);
}
addr=NULL;
if(Addr)
{
name = new char[strlen(Addr)+1];
strcpy(addr,Addr);
}
if (s>0)
{
sex = 1; //男性
}
else
sex = 0; //女性
age=a;
}
People::~People()
{
if(name)
{
delete []name;
name=NULL;
}
if(tel)
{
delete []tel;
tel=NULL;
}
if(addr)
{
delete []addr;
addr=NULL;
}
}

void People::Print()
{
cout<<"Name:"<<name<<endl<<"Sex:"<<(sex?"male":"female")<<endl
<<"Age:"<<age<<endl<<"Telephone number:"<<tel<<endl<<"Address"<<addr<<endl;
}

Teacher::Teacher(char *Name,int s,int a,char *Tel,char *Addr,int ty):People(Name,s,a,Tel,Addr)
{
teachyear= (ty>0) ? ty : 0;
}

void Teacher::Print()
{
cout<<"教师信息:"<<endl;
People::Print();
cout<<"Teachyear:"<<teachyear<<endl;
}

Student::Student(char *Name,int s,int a,char *Tel,char *Addr,int sy):People(Name,s,a,Tel,Addr)
{
studyyear= (sy>0) ? sy : 0;
}


void Student::Print()
{
cout<<"学生信息:"<<endl;
People::Print();
cout<<"Studyyeay:"<<studyyear<<endl;
}

Staff::Staff(char *Name,int s,int a,char *Tel,char *Addr,int wy):People(Name,s,a,Tel,Addr)
{
workyear= (wy>0) ? wy : 0;
}


void Staff::Print()
{
cout<<"职工信息:"<<endl;
People::Print();
cout<<"Workyear:"<<workyear<<endl;
}

void main()
{
int choice;
Teacher A("Chen Xiao",1,25,"17539865436","Beijing",3);
Student B("Zhang Shan",1,18,"18746234964","Guangdong",12);
Staff C("Li Lin",0,27,"17635678952","Shanghai",4);
while(1)
{
cout<<"1---------显示教师信息:"<<endl;
cout<<"2---------显示学生信息:"<<endl;
cout<<"3---------显示职工信息:"<<endl;
cin>>choice;
switch(choice)
{
case 1:
{
A.Print();
break;
}
case 2:
{
B.Print();
break;
}
case 3:
{
B.Print();
break;
}
}
}
}
...全文
168 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧