**

C++ 面向对象 - 类和对象的创建和使用

**

一、实训目的
1.熟悉C++中类和对象的创建和使用
2.理解C++中的关键字public、protected、private

二、实训内容
1.设计一个学生信息类
声明并定义一个学生信息类。
2.设计一个长方形类
设计一个长方形类,通过访问它的成员变量来计算面积。
3.设计汽车类
设计一个汽车类,并实现它的基本功能。
三、实训所实现系统主要功能
1.设计一个学生信息类
声明并定义一个学生信息类 StInfo,该类有四个成员变量和两个函数
3.设计一个长方形类
设计 Rectangle 类和实现两个普通函数
3.设计汽车类
根据输入的命令(命令由1-6表示,分别对应调用打开车门、关闭车门、打开车灯、关闭车灯、加速、减速函数)输出汽车的最终状态。
四、实训系统核心代码及必要说明
1.设计一个学生信息类

#include <iostream>
using namespace std;

class StInfo
{
    /********* Begin *********/
    //在此处声明StInfo类
    public:
        int SID;
        char *Name;
        char *Class;
        char *Phone;
        void SetInfo(int sid, char *name, char *cla, char *phone);
        void PrintInfo();
    
    
    /********* End *********/
};

/********* Begin *********/
//在此处定义StInfo类
void StInfo:: SetInfo(int sid, char *name, char* cla, char* phone)
{
	SID = sid;
	Name = name;
	Class = cla;
	Phone = phone;
}
void StInfo:: PrintInfo(){
	cout << "学号:" << SID << endl;
	cout << "姓名:" << Name << endl;
	cout << "班级:" << Class << endl;
	cout << "手机号:" << Phone << endl;
}


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

2.设计一个长方形类

/********* Begin *********/
class Rectangle
{
    //在此处实现Rectangle类
    public:
        int height;
        int width;
        void Set(int h, int w);
        int GetArea();
};
void Rectangle:: Set(int h, int w)
{
	height = h;
	width = w;
}

int Rectangle:: GetArea()
{
	return height * width;
}

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

Rectangle GetRect(int h,int w)
{
    /********* Begin *********/
    //返回一个 h*w 的 Rectangle 对象
    Rectangle a;
	a.Set(h, w);
	return a;
    /********* End *********/
}

int GetRectArea(Rectangle rect)
{
    /********* Begin *********/
    //返回 rect 对象的面积
    return rect.GetArea();
    
    /********* End *********/
}


3.设计汽车类

#include <iostream>
using namespace std;

/********* Begin *********/
//在此处实现一个汽车类
class Car
{
    public:
        string door;
        string light;
        int speed;
        Car();
        void OpenDoor();
        void CloseDoor();
        void OpenLight();
        void CloseLight();
        void Add();
        void Reduce(); 
};
Car:: Car()
{
	door = "OFF";
	light = "OFF";
	speed = 0;
} 
void Car::OpenDoor(){
	door = "ON";
}
void Car::CloseDoor(){
	door = "OFF";
}
void Car::OpenLight(){
	light = "ON";
}
void Car::CloseLight(){
	light = "OFF";
}
void Car::Add(){
	speed += 10;
}
void Car::Reduce(){
	speed -= 10;
}

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

int main()
{
    /********* Begin *********/
    //在此处解析执行输出汽车的整体状态
	char cmds[25];
    cin>>cmds;
    Car a;
    for (int i = 0; cmds[i] != '\0'; i++)
    {
        if (cmds[i] == '1')	a.OpenDoor();
        else if (cmds[i] == '2')	a.CloseDoor();
        else if (cmds[i] == '3')	a.OpenLight();
        else if (cmds[i] == '4')	a.CloseLight();
        else if (cmds[i] == '5')	a.Add();
        else if (cmds[i] == '6')	a.Reduce();
    }
    cout << "车门 " << a.door << endl;
    cout << "车灯 " << a.light << endl;
    cout << "速度 " << a.speed << endl;
    return 0;
    
    
    
    /********* End *********/
}
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐