一个例程,大学人员管理信息系统的设计,不知哪里有错误,一直找不出来
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();
}
出现应用程序错误!!
#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();
}
出现应用程序错误!!
相关文章推荐
- 设计一个大学人员管理的程序
- 设计一个用于人事管理的People(人员)类
- 设计一个用于人事管理的People(人员)类
- 问题:设计一个大学教师和学生管理程序, 教师包括 编号、姓名、职称和教研室 数据的输入输出; 大学生包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入输出和计算平均分; 研究生包
- 每日一个C++小程序(八)--设计一个人事管理的人员类
- 最近在做EDA设计,犯了一个错误,不知何原因,大家看后避免之。。。
- 设计一个getMin功能的栈,如果面试官让你写一个数组类,一定不要用指针去管理new出来原生的数组,那就是在给自己挖坑
- 大家看看这个php+mysql留言板哪里有错误?不同的地方下载几次同样的了,这么大留言板设计出来,还有小问题!败在细节。
- 【C++程序设计】P123_4-10 设计一个用于人事管理的"人员“ 类
- 一个简单关于学生成绩管理的C++程序代码,但是对于拷贝析构函数目前还是不知其作用何在
- 一个权限管理模块的设计
- 手把手教你使用FineUI开发一个b/s结构的取送货管理信息系统(附源码+视频教程(第7,8节))
- 手把手教你使用FineUI开发一个b/s结构的取送货管理信息系统(附源码+视频教程(第9节))
- 一个由于撩妹而设计出来的C/C++程序
- 想在编辑框返回一个数值,但是不知哪里出错
- MMC检测到此管理单元发生一个错误,建议你关闭并重新启动MMC
- 我一个线程管理设计
- 一直谈失败的经历、再谈谈成功的经历、做软件真的不赚钱吗?4周搞定一个定制B2C网上购物、后台订单管理系统
- delphi中三层结构怎样设计?一个管理软件的应用服务器端需要建多少个Remote Data Module?
- 设计了一个用户权限管理模型