xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 7KB
    文件類型: .cpp
    金幣: 2
    下載: 0 次
    發布日期: 2024-01-05
  • 語言: C/C++
  • 標簽: 鏈表??C++??編程??

資源簡介

/* 題目: 大學中的人員分三類 :學生,教師和職員,他們的基本信息如下: 學生:姓名,年齡,學號,年級,成績 教師:姓名,年齡,身份證號,職稱,工資 職員:姓名,年齡,身份證號,工資 現在需要管理各類人員的信息,請用面向對象的方法設計一個異質鏈表,用來存放他們的信息。 異質鏈表實現:有三個類 student,teacher,staff,再定義一個 鏈表類,此類用來存放這幾個不同類的對象,并將鏈表類 list 聲明為所有這些 類的友元,使它們可以訪問它們的私有成員。*/

資源截圖

代碼片段和文件信息

/*
題目:
大學中的人員分三類?:學生,教師和職員,他們的基本信息如下:?
學生:姓名,年齡,學號,年級,成績?
教師:姓名,年齡,身份證號,職稱,工資?
職員:姓名,年齡,身份證號,工資?
現在需要管理各類人員的信息,請用面向對象的方法設計一個異質鏈表,用來存放他們的信息。?

???異質鏈表實現:有三個類?student,teacher,staff,再定義一個?
鏈表類,此類用來存放這幾個不同類的對象,并將鏈表類?list?聲明為所有這些?
類的友元,使它們可以訪問它們的私有成員。*/?


#include?
#include??
#include??
using?namespace?std;

class?person{?//定義一個共同的基類,它具有公共的數據成員?
friend?class?list;?//鏈表類作為本類的友元?
protected:?
char?name[20];?//定義姓名?
int?age;?//定義年齡?
char?add[40];?//定義地址?
char?tele[20];?//定義電話號碼?
static?person?*ptr;?//定義一個指向person類對象的靜態指針?
person?*next;?//指向下一個對象的指針?
public:?
person(char?*nameint?agechar?*addchar?*tele);//構造函數?
virtual?void?print();?//說明虛函數?
virtual?void?insert(){};//定義虛函數并且什么也不做,只定義一個接口?
};?

class?student:public?person{?//派生類?student?
friend?class?list;?//鏈表類作為本類的友元?
int?level;?//定義年級?
float?grade_point_average;?//定義平均分?
public:?
student(char?*nameint?agechar?*addchar?*tele?int?level?float?grade_point_average);?//聲明構造函數?
void?print();?//重新定義print()函數?
void?insert();?//重新定義insert()函數?
};?
//?
class?teacher:public?person{?//派生類?teacher?
friend?class?list;?//鏈表類作為本類的友元?
float?salary;?//定義工資?
public:?
teacher(char?*nameint?agechar?*addchar?*telefloat?salary);?//聲明構造函數?
void?print();?//重新定義print()函數?
void?insert();?//重新定義insert()函數?
};?
//?
class?staff:public?person{?//派生類?staff?
friend?class?list;?//鏈表類作為本類的友元?
float?hourly_wages;?//定義計時工資?
public:?
staff(char?*nameint?agechar?*addchar?*tele?
float?hourly_wages);?//聲明構造函數?
void?print();?//重新定義print()函數?
void?insert();?//重新定義insert()函數?
};?
//?
class?list{?//定義異質鏈表類?
person?*root;?//鏈表頭指針?
public:?
list(){?root=0;?}?//鏈表構造函數,初始為?0?
void?insert_person(person?*node);?//向鏈表插入一個對象結點?
void?remove(char?*name);?//從鏈表移去一個對象結點?
void?print_list();?//輸出整個鏈表?
};?
//?
person::person(char?*nameint?agechar?*addchar?*tele)?
{?//person?的構造函數?
strcpy(person::namename);?
strcpy(person::addadd);?
strcpy(person::teletele);?
person::age=age;?
next=0;?
}?
void?person::print()?//基類的虛成員函數print()版本,輸出基類數據成員?
{?
cout<<“\nname:?“<cout<<“age:?“<cout<<“address:?“<cout<<“telephone?number:?“<}?
//?
student::student(char?*nameint?agechar?*addchar?*tele?int?level?float?grade_point_average):person(nameageaddtele)?
{?//student?派生類的構造函數,需綴上基類的構造函數?
student::level=level;?
student::grade_point_average=grade_point_average;?
}?
void?student::print()?//派生類?student的成員函數print()新版本?
{?
person::print();?
cout<<“grade?point?average:?“<}?
void?student::insert()?
{?//將?student?類的一個對象賦給?ptr?基類指針,這是允許的?
ptr=new?student(nameageaddtelelevelgrade_point_average);?
}?
//?
teacher::teacher(char?*nameint?agechar?*addchar?*tele?float?salary):person(nameageaddtele)?//teacher?派生類的構造函數,需綴上?
//基類的構造函數?
{?
teacher::salary=salary;?
}?
void?teacher::print()?//派生類?teacher的成員函數print()新版本

評論

共有 條評論