C++类中静态成员定义使用

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

实验三面向对象编程

一、实验目的:

掌握类中静态成员的定义方法,初始化方法,使用方法;

掌握类的友元说明方法,理解友元的使用特点

二、实验时间:

三、实验地点:

四、实验内容:

1.编写程序,统计某旅馆住宿客人的总数,要求输入客人姓名,输出客人编号(按先后顺序自动生成),姓名以及总人数。

2.编写学生类Stu,包含学生姓名,成绩,设计一个友员函数,将学生成绩按大到小排序。

3.设计Person类,包含学号,姓名和成绩等私有数据成员,不含任何成员函

数,只将main()设为该类的友元函数。

4.已知三点座标,求三角形的面积。

五、实验要求:

在上机前写出全部源程序;

六、实验结果分析:

1.统计某旅馆住宿客人的总数

#include

using namespace std;

const int MAX = 100; //旅店的最大住宿人数

/*

定义一个旅客类

*/

class passenger

{

public :

passenger(string name = "", string ID = "", string romID = "")

{

this->name = name;

this->ID = ID;

this->romID = romID;

next = NULL;

cnt++;

}

~passenger()

{

cnt--;

}

passenger *getNext()

{

return next;

}

string getRomID()

{

return romID;

}

string getName()

{

return name;

}

void setNext(passenger *next)

{

this->next = next;

}

void setData()

{

cout << "Enter the romID:";

cin >> this->romID ;

cout << "Enter the name:";

cin >> this->name;

cout << "Enter the ID:";

cin >> this->ID;

cout << "---------------------------" << endl;

}

void disp()

{

cout << "the romID:" << romID <<"\n"

<< "the name:" <

<< "the ID:" << ID << "\n"

<< "----------------------------------------" << endl; }

int getCnt()

{

return cnt;

}

private:

string name, ID, romID;

passenger *next;

static int cnt;

};

int passenger::cnt = -1;

/*

初始化一个链表

*/

passenger *initial()

{

passenger *temp;

temp = new passenger;

return temp;

}

/*

增加一名旅客

*/

passenger *addNode(passenger *pre)

{

passenger *temp;

temp = new passenger;

if(temp->getCnt() == MAX + 1)

{

cout << "there is not the rom" << endl;

cout << "----------------------------------------------" << endl;

delete temp;

return pre;

}

temp->setData();

pre->setNext(temp);

return temp;

}

/*

删除一名旅客

*/

int deleteNode(passenger *head, string romID)

{

passenger *temp, *p;

p = head;

while(p->getNext() != NULL)

{

temp = p->getNext();

if(temp->getRomID() == romID)

{

p->setNext(temp->getNext());

delete temp;

return 1;

}

p = p->getNext();

}

return 0;

}

/*

寻找一名旅客并显示他的信息

*/

int seachNode(passenger *head, string name) {

passenger *temp, *p;

p = head;

while(p->getNext() != NULL)

{

if(temp->getName() == name)

{

p->disp();

return 1;

}

p = p->getNext();

}

return 0;

}

/*

显示所有旅客信息

*/

void dispNode(passenger *head)

{

passenger *p = head;

int i = 1;

相关文档
最新文档