您的位置:首页 > 其它

一个例程,大学人员管理信息系统的设计,不知哪里有错误,一直找不出来

2010-06-02 11:15 357 查看
#include<stdlib.h>

#include<string.h>

#include<iostream.h>

#include<time.h>

const char null='/0';

class Base

{

protected:

char *name;

int age;

char * id_number;

public:

Base();//无参构造函数

Base(char *name1,int age1,char * id_number1);//带参构造函数

~Base();//析构函数

void display();

};

Base::Base()//无参构造函数的实现

{

name=NULL;

age=0;

id_number=NULL;

}

Base::Base(char *name1,int age1,char * id_number1)//带参数构造函数的实现

{

name=new char[strlen(name1)+1];//动态申请内存单元

name=strcpy(name,name1);

age=age1;

id_number=new char[strlen(id_number1)+1];//动态申请内存单元

id_number=strcpy(id_number,id_number1);

}

Base::~Base()

{

delete[]name;//释放用NEW分配的内存单元

delete[]id_number;

}

void Base::display()//基类函数display的实现

{

cout<<"name:"<<name<<endl;

cout<<"age:"<<age<<endl;

cout<<"id_number:"<<id_number<<endl;

}

class Student: virtual public Base//声明派生类Student

{

protected:

char *major;

long int s_number;

int level;

public:

Student(char *name1,int age1,char *id_number1,char *major1,

long int s_number1,int level1):Base(name1,age1,id_number1)

{

major=new char[strlen(major1)+1];

major=strcpy(major,major1);

s_number=s_number1;

level=level1;

}

~Student();

void display();

};

Student::~Student()

{

delete[]major;

}

void Student::display()//派生类Student的函数display的实现

{

Base::display();

cout<<"major:"<<major<<endl;

cout<<"s_number:"<<s_number<<endl;

cout<<"level:"<<level<<endl;

}

class Employee: virtual public Base//声明派生类Employee

{

protected:

char *dept;

double salary;

public:

Employee(char *name1,int age1,char * id_number1,char *dept1,

double salary1):Base(name1,age1,id_number1)

{

dept=new char[strlen(dept1)+1];

dept=strcpy(dept,dept1);

salary=salary1;

}

~Employee()

{

delete[]dept;

}

void display();

};

void Employee::display()//派生类Employee的函数display的实现

{

Base::display();

cout<<"Department:"<<dept<<endl;

cout<<"salary:"<<salary<<endl;

}

class Teacher: virtual public Employee//声明派生类Teacher

{

protected:

char * title;

public:

Teacher(char *name1,int age1,char *id_number1,char *dept1,

double salary1,char *title1):Base(name1,age1,id_number1),

Employee(name1,age1,id_number1,dept1,salary1)

{

title=new char[strlen(title)+1];

title=strcpy(title,title1);

}

~Teacher()

{

delete[]title;

}

void display();

};

void Teacher::display()//派生类Teacher的函数display的实现

{

Employee::display();

cout<<"title:"<<title<<endl;

}

class Graduate:public Employee,public Student//声明派生类Graduate

{

public:

Graduate(char *name1,int age1,char *id_number1,

char *major1,long int s_number1,int level1,

char *dept1,double salary1):

Base(name1,age1,id_number1),Employee(name1,age1,id_number1,dept1,salary1),

Student(name1,age1,id_number1,major1,s_number1,level1){}

void display();

};

void Graduate::display()//派生类Graduate的函数display的实现

{

Student::display();

cout<<"Department:"<<dept<<endl;

cout<<"salary:"<<salary<<endl;

}

void main()

{

Student s1("Wangwei",20,"010323650718123",

"Computer Science",30516568,4);

Employee E1("ZhangHua",28,"010436505031238",

"Electrical Engineering",2800);

Teacher t1("Chan Wei",38,"010234670607126",

"Computer Science",3500,"professor");

Graduate g1("Li Ming",36,"010123690918128",

"Computer Science",206678,3,"Electrical Engineering",3600);

s1.display();

cout<<endl;

E1.display();

cout<<endl;

t1.display();

cout<<endl<<endl;

g1.display();

}

出现应用程序错误!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐