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

#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();
}

出现应用程序错误!!

1、问题描述高校四类员工教师、实验员、行政人员教师兼行政人员共有的信息包括编号、姓名、性别、年龄等。其中教师还包含的信息有所在系部、专业、职称实验员还包含的信息由所在实验室、职务行政人员还包含的信息有政治面貌、职称等。 2、功能要求 (1)添加功能程序能够任意添加上述四类人员的记录可提供选择界面供用户选择所要添加的人员类别要求员工的编号要唯一如果添加了重复编号的记录时则提示数据添加重复并取消添加。 (2)查询功能可根据编号、姓名等信息对已添加的记录进行查询如果未到给出相应的提示信息如果到则显示相应的记录信息。 (3)显示功能可显示当前系统中所有记录每条记录占据一行。 (4)编辑功能可根据查询结果对相应的记录进行修改修改时注意编号的唯一性。 (5)删除功能主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录则提示“记录为空”并返回操作否则输入要删除的人员的编号或姓名根据所输入的信息删除该人员记录如果没有到该人员信息则提示相应的记录不存。 (6)统计功能能根据多种参数进行人员的统计。能统计四类人员数量以及总数,统计男、女员工的数量。 (7)保存功能可将当前系统中各类人员记录存入文件中存入方式任意。 (8)读取功能可将保存在文件中的人员信息读入到当前系统中供用户进行使用。
问题描述(功能要求): 某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。 要求: 1) 添加删除功能:能根据学院人事的变动情况,添加删除记录; 2) 查询功能:能根据编号和姓名进行查询; 3) 编辑功能(高级):根据查询对相应的记录进行修改,并存储; 4) 统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数); 5) 保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。 6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。 2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告以及系统使用说明书。 四、报告:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值