Laboratornaya_rabota_1_Klassy_konstruktory

Лабораторная работа №1

Тема: Создание классов. Использование конструкторов и деструкторов.
Цель: научиться создавать классы с использованием конструкторов и деструкторов, реализовывать различные уровни доступа к элементам класса.

Содержание отчёта:
Постановка задачи.
Текст программы.
Комментарии к ведённым обозначениям и описание используемых функций.
Результаты работы программы.

Задания:
Вариант 1

Создать класс Point, содержащий следующие элементы:
- поле «координата X» float X;
- поле «координата Y» float Y;
- метод установки координат void SetCoordinate(float X, float Y);
- метод получения координаты X float GetX();
- метод получения координаты Y float GetY();
- конструктор без параметров Point();
- конструктор с параметрами Point(float X, float Y)

Вариант 2

Создать класс Animal, содержащий следующие элементы:
- поле «вес» float Mass;
- поле «пол» char* Sex;
- поле «окрас» char* Color;
- поле «возраст» int Age;
- метод получения веса float GetMass();
- метод получения пола char* GetSex();
- метод получения возраста int GetAge();
- метод получения окраски char* GetColor();
- конструктор с параметрами Animal(float Mass, char* Sex, ,char* Color, int Age);

Вариант 3

Создать класс Vegetable, содержащий следующие элементы:
- поле «вес» float Mass;
- поле «зрелость» int Ripeness;
- метод получения веса float GetMass();
- метод получения зрелости int GetRipeness() ;
- метод удобрить овощ void Fertilize(); (увеличивает массу на 0.1 кг)
- конструктор с параметрами Vegetable(float Mass, int Ripeness);

Вариант 4

Создать класс Vehicle, содержащий следующие элементы:
- поле «скорость» int Speed;
- поле «масса» int Mass;
- метод получения массы int GetMass();
- метод остановки void Stop(); (скорость=0);
- конструктор с параметрами Vehicle(int Speed, int Mass);
- конструктор без параметров

Вариант 5

Создать класс Veapon, содержащий следующие элементы:
- поле «объем магазина» int Capacity;
- поле «калибр» int Calibre;
- поле «дальность стрельбы» int Distance;
- метод «зарядить оружие» void Charge();
- метод «разрядить оружие» void UnCharge();
- конструктор с параметрами Veapon(int Capacity, int Calibre, int Distance);
- конструктор без параметров

Вариант 6

Создать класс Media, содержащий следующие элементы:
- поле «объем» long Size;
- поле «Скорость чтения» int ReadSpeed;
- поле «Скорость записи» int WriteSpeed;
- поле «Производитель» char* Vendor;
- поле «Данные» char* Data;
- метод чтения данных char* Read();
- метод записи данных void Write(char* buffer);
- конструктор с параметрами Media(long Size, int ReadSpeed, int WriteSpeed);
- конструктор без параметров

Вариант 7

Создать класс File, содержащий следующие элементы:
- поле «размер» long Size;
- поле «Дата создания» char* Date;
- поле «Владелец» char* Owner;
- поле «содержимое файла» char* Content;
- метод чтения данных char* Read();
- метод записи данных void Write(char* buffer);
- конструктор с параметрами File(long Size, char* Date, char* Owner);
- конструктор без параметров

Вариант 8

Создать класс Employee, содержащий следующие элементы:
- поле «ФИО» char* FIO;
- поле «Табельный номер» int Number;
- поле «Возраст» int Age;
- поле «Стаж» int Stage;
- метод получения ФИО char* GetFIO();
- метод получения таб. номера int GetNumber();
- метод получения стажа int GetStage();
- метод получения возраста int GetAge();
- конструктор с параметрами Employee(char* FIO, int Number, int Stage, int Age);

Вариант 9

Создать класс LightDevice, содержащий следующие элементы:
- поле «Яркость» int Light;
- поле «Мощность» int Power;
- поле «Напряжение» int Voltage;
- метод получения яркости int GetLight();
- метод получения мощности int GetPower();
- метод получения напряжения int GetVoltage();
- конструктор с параметрами LightDevice(int Light, int Power, int Voltage);


Вариант 10

Создать класс Confection, содержащий следующие элементы:
- поле «Название» char* Name;
- поле «Дата изготовления» struct Date {int year; int month; int day} ProductDate;
- поле «Срок годности» struct Date {int year; int month; int day} BestBefore;
- включить в класс поле класса Filling (начинка) Filling* filling;
- метод получения даты изготовления int GetProductDate();
- метод получения названия int GetName();
- метод добавления начинки void AddFilling(Filling filling);
- конструктор с параметрами Confection(char* Name, Date ProductDate, Date BestBefore, Filling* filling);

Вариант 11

Создать класс Ellipse, содержащий следующие элементы:
- поле «центр» Point* Center;
- поле «малый радиус» float a;
- поле «большой радиус» float b;
- метод получения координат центра Point GetCenter();
- метод получения малого радиуса float Get_a();
- метод получения большого радиуса float Get_b();
- метод проверки, является ли эллипс окружностью int isCircle();
- конструктор с параметрами Ellipse(Point* Center, float a, float b);

Вариант 12

Создать класс Function, содержащий следующие элементы:
- поле «запись функции» char* FunctionString;
- поле «кол-во точек разрыва» int NumOfPointDiscontinuity;
- поле «кол-во переменных» int NumOfVariables;
- метод получения записи функции char* GetFunctionString();
- метод получения кол-ва точек разрыва int GetNumOfPointDiscountinuity();
- метод получения кол-ва переменных int GetNumOfVariables();
- конструктор с параметрами Function(char* FunctionString, int NumOfPointDiscontinuity, int NumOfVariables);

Вариант 13

Создать класс Fly, содержащий следующие элементы:
- поле «скорость» int Speed;
- поле «высота полета» int Height;
- поле «дальность полета» int Distance;
- поле «количество пассажиров» int NumOfPass;
- метод получения скорости int GetSpeed();
- метод получения дальности полета int GetDistance();
- метод получения высоты полета int GetHeight();
- метод получения кол-ва пассажиров int GetNumOfPass();
- метод проверки, может ли летать на указанной высоте int IsFlying(int Height);
- конструктор с параметрами Fly(int Speed, int Distance, int NumOfPass, int Height);

Вариант 14

Создать класс CelestialBody, содержащий следующие элементы:
- поле «масса» float Mass;
- поле «радиус» float R
·adius;
- метод получения массы int GetMass();
- метод получения радиуса int GetRadius();
- метод расчета плотности вещества небесного тела float GetDensity()
- конструктор с параметрами CelestialBody(float Mass, float Radius);
- конструктор без параметров

Вариант 15

Создать класс MobilePhone, содержащий следующие элементы:
- поле «производитель» char* Vendor;
- поле «модель» char* Model;
- класс включает объект класса SIM-карта SIM* card;
- метод получения названия телефона (производитель+модель) char* GetName();
- метод совершения звонка void Call()
- метод отправки SMS void SendSMS();
- метод «вставить SIM» void InsertSIM(SIM card);
- конструктор с параметрами MobilePhone(char* Vendor, char* Model);

Вариант 16

Создать класс Money, содержащий следующие элементы:
- поле «валюта» char* Currency;
- поле «сумма» long Sum;
- метод получения валюты char* GetCurrency();
- метод получения суммы long GetSum()
- конструктор с параметрами Money(char* Currency, long Sum);
- конструктор без параметров

Вариант 17

Создать класс Print, содержащий следующие элементы:
- поле «название» char* Title;
- поле «кол-во страниц» int Number;
- метод получения названия char* GetTitle();
- метод получения кол-ва страниц int GetNumberPage();
- конструктор с параметрами Print(char* Title, int Number);
- конструктор без параметров

Вариант 18

Создать класс Matrix, содержащий следующие элементы:
- поле «размер» Size s;
- поле «данные» int Data[s.Raw,s.Column];
- метод получения кол-ва строк int GetRaw();
- метод получения кол-ва столбцов int GetColumn();
- метод получения значения ячейки int GetValue(int i, int j)
- конструктор с параметрами Matrix(Size s, int InitialValue);

Вариант 19

Создать класс Wood, содержащий следующие элементы:
- поле «сорт» char* Type;
- поле «возраст» int Age;
- поле «влажность» int humidity;
- метод получения сорта int GetType();
- метод получения возраста int GetAge();
- метод получения влажности int GetHumidity();
- конструктор с параметрами Wood(char* Type, int Age, int humidity);

Вариант 20

Создать класс Mebel, содержащий следующие элементы:
- поле «производитель» char* Vendor;
- поле «материал» char* Material;
- метод получения производителя char* GetVendor();
- метод получения материала char* GetMaterial();
- конструктор с параметрами Mebel(char* Vendor, char* Matrial);
- конструктор без параметров

Вариант 21

Создать класс Person, содержащий следующие элементы:
- поле «имя» char* FirstName;
- поле «фамилия» char* LastName;
- поле «отчество» char* Otchestvo;
- поле «возраст» int Age;
- поле пол char* sex;
- метод получения ФИО char* GetFIO();
- метод получения возраста int GetAge();
- метод получения пола char* GetSex();
- конструктор с параметрами Person(char* FirstName, char* LastName, char* Otchestvo , int Age, char* sex);

Вариант 22

Создать класс Animal, содержащий следующие элементы:
- поле «вес» float Mass;
- поле «окрас» char* Color;
- поле «возраст» int Age;
- метод получения веса float GetMass();
- метод получения возраста int GetAge();
- метод получения окраски char* GetColor();
- конструктор с параметрами Animal(float Mass, ,char* Color, int Age);

Вариант 23

Создать класс Person, содержащий следующие элементы:
- поле «имя» char* FirstName;
- поле «фамилия» char* LastName;
- поле «отчество» char* Otchestvo;
- поле «возраст» int Age;
- метод получения ФИО char* GetFIO();
- метод получения возраста int GetAge();
- конструктор с параметрами Person(char* FirstName, char* LastName, char* Otchestvo, int Age);
- конструктор без параметров

Вариант 24

Создать класс Fruit, содержащий следующие элементы:
- поле «зрелость» int Ripeness;
- поле «название» char* Name;
- поле «цвет» char* Color;
- метод получения зрелости int GetRipeness() ;
- метод получения цвета char* GetColor();
- метод «сорвать фрукт» void Sorvat(int value); (если зрелость больше величины value, то выдать сообщение, иначе - ошибка)
- конструктор с параметрами Fruit( int Ripeness, char* Color, char* Name);

Вариант 25

Создать класс Letter, содержащий следующие элементы:
- поле «отправитель» Person* Sender;
- поле «получатель» Person* Receiver;
- поле «адрес» char* Address;
- метод отправки письма int Send(); (если хотя бы одно поле не заполнено, то уведомить об ошибке – вернуть 1, иначе 0)
- метод получения адресной информации (ФИО1+ФИО2+адрес) char* GetInfo();
- конструктор с параметрами Letter(Person* sender, Person* receiver, char* Address);
- конструктор без параметров

Дополнительные задания
Задание №1
Написать класс Student, содержащий сведения: фамилия, имя, отчество студента, оценки по m экзаменам. Написать программу, которая выводит количество студентов, сдавших сессию только на «4» и «5», и количество студентов, имеющих «2» хотя бы по одному экзамену. Вывести эти показатели и в процентном отношении.

Задание №2
Добавить в класс Student функцию-член класса, определяющую, получает ли студент стипендию, и в головной программе организовать подсчёт количества студентов в группе, получающих стипендию.

Задание №3
Написать класс, содержащий сведения об N телефонах АТС в таком виде: фамилия абонента, год установки телефона, номер телефона, количество. Написать программу, выдающую следующую информацию:
а) выдать номер телефона по фамилии абонента;
б) определить количество установленных телефонов в K-ом году.

Контрольные вопросы:

Что может быть элементом класса?
Какие ограничения накладываются на использование элементов с различными уровнями доступа?
Для чего нужны конструкторы?
Какие виды конструкторов существуют?
Как задаются фактические параметры конструктора?
Каким образом и когда осуществляется явный вызов конструктора?
Для чего предназначен деструктор? Как компилятор отличает деструктор от других функций класса?

Заголовок 1 Заголовок 215

Приложенные файлы

  • doc 18310201
    Размер файла: 101 kB Загрузок: 0

Добавить комментарий