Файл: Проектирование классов с наследованием.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.10.2024

Просмотров: 5

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.




Тема: Проектирование классов с наследованием.

Цель: получение практических навыков проектирования классов и исследование механизмов открытого наследования в С++.

Задание 1.


В соответствии с индивидуальным заданием (см. приложение) разработать базовый класс и производные классы, которые наследуют базовый по типу public. Базовый класс и классы-наследники должны иметь собственные свойства и методы. Создать несколько объектов для каждого производного класса. Для инициализации объектов использовать конструкторы. Разработать меню, обеспечивающее:

  • отображение свойств объектов на экране;

  • изменение какого-либо свойства объектов;

  • определение Вычисляемого показателя;

  • выход из программы.

Вариант 10 – строительные материалы.

Текст программы:

set.h

#include
using namespace std;
class Object {

public:

string name;

int st, cost;

Object() : name(""), st(0), cost(0) {}

Object();

void allCost();

};
class Material : public Object {

public:

string name;

int mass, value;

Material() :name(""), mass(0), value(0) { };

Material();

void density();

};
class Instrument : public Object {

public:

string scope_of_application;

Instrument(): scope_of_application("") { }

Instrument();

void numbersWrench();

};

set.cpp:

#include

#include "set.h"
using namespace std;
Object::
Object()

{

name = "";

}
void Object::allCost()

{

cout << "Общая стоимость: " << st * cost << endl;

}
Material::Material()

{

}
void Material::density()

{

cout << "Плотность сыпучего материала: " << mass / value << endl;

}
Instrument::Instrument()

{

}
void Instrument::numbersWrench()

{

int res;

res = name.compare("инструменты");

if (res == 0) {

cout << "номера для покупки ";

for (int i = 1; i < 16; i++) {

cout << i << " ";

}

cout << endl;

}

}

main.cpp:

#include

#include

#include

#include "set.h"
using namespace std;
int main() {

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

setlocale(LC_ALL, "Russian");

int key;

string s;

Material mat1;

Instrument inst1;
do {

cout << "Вы можете продолжить работу со следующими строительными материалами:"<< endl;

cout << "1)Сыпучие материалы" << endl;

cout << "2)Инструменты:" << endl;

cout << "3)Выход:" << endl;

cin >> key;

if (key == 1)

{

cout << "Введите название сыпучего материала: ";

cin >> mat1.name;

cout << "Введите количество и цену сыпучего материала: ";

cin >> mat1.st >> mat1.cost;

cout << "Введите объём(м3) и массу сыпучего материала(кг): ";

cin >> mat1.value >> mat1.mass;

mat1.allCost();

mat1.density();

}

else if (key == 2)

{

cout << "Введите название инструмента: ";

cin >> inst1.name;

cout << "Введите количество и цену инcтрумента: ";

cin >> inst1.st >> inst1.cost;

inst1.allCost();

inst1.numbersWrench();

}

else {

cout << ("Выход из программы");

break;

}

cout << "Для выхода введите 0, для продолжение введите 1" << endl;

cin >> key;

} while (key != 0);


return 0;

}

Результат работы программы:

Задание 1:



Вывод:

В ходе выполнения данной практической работы мне удалось поработать с классами и понять принцип работы наследования классов.

В первой программе пользователь может ввести данные об строительных материалах и выполнить с ними определённые действия.

В set.h описаны классы, в set.cpp реализация методов к ним, а в main.cpp – реализовано меню, с помощью которого пользователь может управлять программой.

В результате были получены практические навыки по разработке классов с наследованием.