头歌C++面向对象实训三

C++ 面向对象 - 构造函数与析构函数

一、实训目的
1.理解构造函数和析构函数
2.熟悉掌握构造函数和析构函数的运用
3.掌握对象数组的运用
4.理解静态成员及函数
二、实训内容
1.构造函数 —— 学生信息类
设计一个带有构造函数和析构函数的学生类。
2.对象数组 —— 学生信息表
编写一个能管理多条学生信息的程序
3.静态成员 —— 模拟共享书店
设计共享书店
三、实训所实现系统主要功能
1.构造函数 —— 学生信息类
编写一个学生类 Student,类中含有两个成员变量、两个构造函数和一个析构函数(访问性都为公有的)
2.对象数组 —— 学生信息表
设计 Student 类并实现用于管理学生信息表(学生表的长度不超过5)的3个函数,成员变量和函数的访问性都为公有的
3.静态成员 —— 模拟共享书店
设计一个 User 类(客户类),现有一个共享书店,该书店客户在进入书店时需要托管一定量的书籍,而这些书籍将由书店内所有用户共享,当客户离开书店时,他还是要将他进入书店时托管的书带走。
四、实训系统核心代码及必要说明
1.构造函数 —— 学生信息类

#include
#include
using namespace std;

class Student
{
public:
	int SID;
	string Name;
	Student();
	Student(int sid, string name);
	~Student();
};
Student:: Student()
{
	SID = 0;
    Name = "王小明";
}

Student:: Student(int sid, string name)
{
	SID = sid;
	Name = name;
}

Student:: ~Student()
{
	cout << SID << " " << Name << " " << "退出程序" << endl;
}


/********* End *********/

2.对象数组 —— 学生信息表

#include 
#include 
using namespace std;

class Student
{
    public:
        int Sid;
        string Name;
        float Sco;
		Student();
        Student(int sid, string name, float sco);
    
    
};

Student:: Student(int sid, string name, float sco)
{
	Sid = sid;
	Name = name;
	Sco = sco;
}
Student::Student()
{}

int cnt = 0;
Student st[10];
void  PrintAll()
{
	for (int i = 0; i < cnt; i++)
		cout << st[i].Sid << " " << st[i].Name << " " << st[i].Sco << endl;
}

void Add(int sid, string name, float sco)
{
	st[cnt++] = Student(sid, name, sco);
}

void Average()
{
	float ave = 0;
	for (int i = 0; i < cnt; i++)	ave += st[i].Sco;
	ave /= cnt;
	cout << "平均成绩 " << ave << endl;
}

3.静态成员 —— 模拟共享书店

#include 
#include 
using namespace std;

class User
{
    public:
		string Name;
		int Books;
		User(string name, int books);
		~User();
		static void GetState();
		static int UserCount;
		static int BookCount;
};
int User:: UserCount = 0;
int User:: BookCount = 0;
User:: User(string name, int books)
{
	Name = name;
	Books = books;
	cout << name << " " << books << " 进入" << endl;
	BookCount += books;
	UserCount ++;
}

User:: ~User()
{
	cout << Name << " " << Books << " 离开" << endl;
	BookCount -= Books;
	UserCount --;
}


void User:: GetState()
{
	int pcnt = UserCount;
	int bcnt = BookCount;
	cout << "书店人数:" << pcnt << "," << "书店共享书数量:" << bcnt << "," << "人均共享数量:"<< bcnt / pcnt << endl;
}


/********* End *********/

你可能感兴趣的:(头歌C++面向对象实训,c++)