利用多态性实现人员信息管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
功能描述:设置地址
修改记录:
*/