利用多态性实现人员信息管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3、利用多态性实现人员信息管理系统

源程序代码

/*****************************************************************************/ /*

模块名称:12.cpp

功能描述:这是一个非多态方法实现的异质链表程序

创建人:

修改记录:

*/

#include

#include

#include

//枚举三种节点类型

enum node_type {student,staff,professor};

//结构体,表示学生的特殊信息

struct student_type

{

float average; //平均分

int grade; //年级

};

/*************************************************************************/ /*

函数名称:node

功能描述:定义类node

修改记录:

*/

class node

{

friend class list;

private:

char name[15]; //姓名

char sex[2]; //性别

int age; //年龄

char ID[20]; //身份证号

char address[30]; //地址

long phone; //电话

node_type type; //节点类型

//联合,定义单一节点类型

union

{

student_type s;

float annual_salary;

float hourly_salary;

};

node * next;

public:

node(char * name1,char * sex1, int age1,char * id1,char * address1,long phone1,node_type type1)

{

strcpy(name,name1);

strcpy(sex,sex1);

age= age1;

strcpy(ID,id1);

strcpy(address,address1);

phone= phone1;

type= type1;

next= 0;

}

node()

{

name[0]='\0';

sex[0]='\0';

age= 0;

ID[0]='\0';

address[0]='\0';

phone= 0;

next= 0;

}

/*************************************************************************/ /*

函数名称:set_node_type

功能描述:设置节点的类型

修改记录:

*/

void set_node_type(node_type type1)

{

type=type1;

}

/*************************************************************************/ /*

函数名称:set_name

功能描述:设置姓名

修改记录:

*/

void set_name(char * name1)

{

strcpy(name,name1);

}

/*************************************************************************/ /*

函数名称:set_sex

功能描述:设置性别

修改记录:

*/

void set_sex(char * sex1)

{

strcpy(sex,sex1);

}

/*************************************************************************/ /*

函数名称:set_age

功能描述:设置年龄

修改记录:

*/

void set_age(int age1)

{

age= age1;

}

/*************************************************************************/ /*

函数名称:set_ID

功能描述:设置身份证号

修改记录:

*/

void set_ID(char * id1)

{

strcpy(ID,id1);

}

/*************************************************************************/ /*

函数名称:set_address

功能描述:设置地址

修改记录:

*/

相关文档
最新文档