版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3、利用多态性实现人员信息管理系统源程序代码/*/*模块名称:12.cpp功能描述:这是一个非多态方法实现的异质链表程序创建人:修改记录:*/#include #include #include 枚举三种节点类型enum node_type student,staff,professor;结构体,表示学生的特殊信息struct student_typefloat average; 平均分int grade; /年级;/*/*函数名称:node功能描述:定义类node修改记录:*/class nodefriend class list;private:char name15;姓名char sex
2、2;性别int age;年龄char ID20;身份证号char address30;地址long phone;电话node_type type;/节点类型联合,定义单一节点类型unionstudent_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);
3、age= age1;strcpy(ID,id1);strcpy(address,address1);phone= phone1;type= type1;next= 0;node()name0=0;sex0=0;age= 0;ID0=0;address0=0;phone= 0;next= 0;/*/*函数名称:set_node_type功能描述:设置节点的类型修改记录:*/void set_node_type(node_type type1)type=type1;/*/*函数名称:set_name功能描述:设置姓名修改记录:*/void set_name(char * namel)strcpy(
4、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功能描述:设置地址修改记录:*/void set_address(char * addressl)strcpy(add
5、ress,address1);/*/*函数名称:set_phone功能描述:设置电话号码修改记录:*/void set_phone(long phone1)phone= phone1;/*/*函数名称:set_average功能描述:设置学生的平均分修改记录:*/void set_average(float average1)s.average= average1;/*/*函数名称:set_grade功能描述:设置学生的年级修改记录:*/void set_grade(int grade1)s.grade=grade1;/*/*函数名称:set_annual_salary功能描述:设置教授的年薪
6、修改记录:*/void set_annual_salary(float salary)annual_salary= salary;3/*/*函数名称:set_annual_salary功能描述:设置教工的小时工资修改记录:*/ void set_hourly_salary(float hsalary) hourly_salary= hsalary;;3/*/*函数名称:list功能描述:list类的定义修改记录:*/class listprivate:node * root;public:list()root= 0;void insert(node * n);void remove(char
7、* id1);void search(char * id1);void print_list();/*/*函数名称:insert功能描述:插入节点修改记录:*/void list:insert (node * n) /list以ID为关键字排序,ID从小到大的顺序进行排列 char key18;strcpy(key,n-ID);node * current_node=root;node * previous= 0;while(current_node!=0 & strcmp(current_node-ID,key)next ; node*new_node=newnode(n-name ,n-s
8、ex ,n-age ,n-ID ,n-address ,n-phone,n-type ); switch(n-type ) case student:new_node-s.grade =n-s.grade ;new_node-s.average = n-s.average ;break;case professor:new_node-annual_salary = n-annual_salary ;break;case staff:new_node-hourly_salary = n-hourly_salary ;new_node-next = current_node;if(previous
9、=0)root= new_node;elseprevious-next= new_node;此函数的效果图可以参考图5.2。/*/*函数名称:remove功能描述:删除节点修改记录:*/void list:remove (char * id1)node * current_node= root;node * previous= 0;while(current_node!=0 & strcmp(current_node-ID,id1)next ;if(current_node!=0 & previous=0) root=current_node-next ;delete current_node
10、;cout身份证号:”id1”成功删除! next = current_node-next ;delete current_node;cout身份证号:”id1”成功删除! endl;elsecout对不起,链表中没有这个人员的信息! endl;此函数的效果图可以参考图5.3。/*/*函数名称:print_list功能描述:显示整个链表修改记录:*/void list:print_list ()node * cur= root;while(cur!=0)coutt 姓名:ttnameendl;coutt 性别:ttsexendl;coutt 年龄:ttageendl;coutt 身份证号:tI
11、Dendl;coutt 地址:ttaddressendl;coutt 电话号码:tphonetype )case student:cout”t 人员身份:t 学生endl;coutt 平均分:ts.average endl;coutt 年级:tts.grade endl; break;case professor:coutt 人员身份:t 教授endl;coutt 年薪:ttannual_salary endl; break;case staff:coutt 人员身份:t 教Hendl;coutt 小时工资:thourly_salary next;coutID,id1)next ;if(cur
12、rent_node!=0)coutt 姓名:ttnameendl;coutt 性别:ttsexendl;coutt 年龄:ttageendl;coutt 身份证号:tIDendl;coutt 地址:ttaddressendl;coutt 电话号码:tphonetype ) case student:cout”t 人员身份:t 学生endl;coutt 平均分:ts.average endl;coutt 年级:tts.grade endl; break;case professor:coutt 人员身份:t 教授endl;coutt 年薪:ttannual_salary endl; break;
13、case staff:coutt 人员身份:t 教Hendl;coutt 小时工资:thourly_salary endl; break;elsecout对不起,没有找到这个人! endl;此函数的效果图可以参考图5.5。3/*/*函数名称:main功能描述:主函数修改记录:*/void main()int i=1;coutendlendl;cout endl;cout*endl;cout欢迎进入异质链表的非多态性实现程序endl;cout*endl;cout endl;list people;node temp;char na15;char sex2;int age;char ID20;ch
14、ar add30;long ph;int type;float annual_salary;float hourly_salary;float average;int grade;while(i)coutendlendl;cout请选择您的查询内容:endlendl;cout1.链表中插入节点;endl;cout2.链表中删除节点;endl;cout3.显示整个链表;endl;cout4.查询链表中的节点;endl;cout0.退出;endl;couti;cout=0 & i=4)switch(i)/case1:链表中插入节点case 1:coutna;coutsex;coutage;cout
15、ID;coutadd;coutph;couttype;输入三种人员的不同信息switch(type )学生信息case 0:coutaverage;coutgrade;temp.set_average (average);temp.set_grade (grade);temp.set_node_type (student);break;教授信息case 1:coutannual_salary;temp.set_annual_salary (annual_salary);temp.set_node_type (professor);break;教工信息case 2:couthourly_salary;temp.set_hourly_salary (hourly_salary);temp.set_node_type (staff);break;temp.set_name (na);temp.set_sex (sex);temp.set_age (age);temp.set_ID (ID);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年浙江省苏教版初中化学方程式书写与计算模拟试题
- 销售科员工不安全行为汇编
- 从被动监管到主动干预驾驶员心理健康管理的ESG溢价研究
- 3D打印定制化镊子筒在特殊专科手术场景的商业化可行性分析
- 2026年漳州卫生职业学院高职单招笔试职业适应性测验试题库含答案解析2套试卷
- 2026年湖南铁路科技职业技术学院高职单招笔试综合素质试题库含答案解析3套试卷
- 2026年湖南有色金属职业技术学院高职单招笔试综合素质试题库含答案解析3套试卷
- 2026年湖南体育职业学院高职单招笔试数学试题库含答案解析3套试卷
- 2026年湖北住院医师-湖北住院医师口腔科历年参考题库含答案解析
- 2026年消防工程师-一级消防工程师历年参考题库含答案解析
- 2026 年秋季开学初中军训站姿坐姿行为养成课件
- 《港台文学12节》课件
- (2026年秋)人教版六年级上册数学教案
- 2026小学教科版四年级科学上册全册教案
- 医院检验科生物安全培训试题及答案
- 2026年新《治安管理处罚法》知识考试题库及答案(含各题型)
- 新版人教版七年级上册历史全册教案(完整版)教学设计含教学反思
- (高清版)DB22∕T 1560-2012 农作物种植成本保险查勘定损技术规范总则
- 2025年营养师食品安全及营养健康职业技能及理论资格知识考试题库(附含答案)
- 《第2课 立在地球边上放号》课件 统编版高中语文必修上册
- 郑州财税金融职业学院招聘真题
评论
0/150
提交评论