В работе требуется сконструировать класс с заданным набором свойств
.pdf
Зарегистрируйся в 2 клика в Кампус и получи неограниченный доступ к материалам с подпиской Кампус+ 🔥
В работе требуется сконструировать класс с заданным набором свойств. Набор свойств следует взять в соответствии со своим вариантом задания. В класс также должны быть добавлены методы для просмотра и изменения значений любого из свойств объекта.
Требования к конструированию класса: доступ к свойствам — закрытый, к методам — открытый. В классе следует предусмотреть конструктор по умолчанию, конструктор с параметрами.
Действия, выполняемые программой:
1. создание объекта с помощью конструктора по умолчанию,
2. создание объекта с помощью конструктора с параметрами,
3. создание массива объектов (размерность массива 3 или 4 элемента),
4. инициализация свойств каждого объекта массива(исходные данные вводятся с клавиатуры),
5. просмотр свойств каждого объекта,
6. вычисление заданного параметра для массива объектов в соответствии с вариантом задания (выполнить с помощью глобальной функции).
26 вариант
Название кинотеатра, Адрес, Количество мест, Средняя цена билетов. Определить кинотеатр с самым большим возможным доходом.
Нужно полное решение этой работы?
Решение
Файл MovieTheatre.h
#ifndef MOVIE_THEATRE_H
#define MOVIE_THEATRE_H
#include <string>
/*
26 вариант
Название кинотеатра, Адрес, Количество мест, Средняя цена билетов
Определить кинотеатр с самым большим возможным доходом
*/
class MovieTheatre {
public: // открытая часть класса
MovieTheatre(); // конструктор по умолчанию
MovieTheatre(std::string, std::string, int, double); // конструктор с параметрами
~MovieTheatre() { }; // деструктор
// методы просмотра значений
std::string getName();
std::string getAddress();
int getPlaces();
double getPrice();
// методы изменения значений
void setName(std::string);
void setAddress(std::string);
void setPlaces(int);
void setPrice(double);
// для выполнения задания - метод вычисления возможного дохода
double sum();
private: // закрытая часть класса
std::string name; // Название кинотеатра
std::string address; // Адрес
int places; // Количество мест
double price; // Средняя цена билетов
};
#endif /* MOVIE_THEATRE_H */
Файл MovieTheatre.cpp
#include "MovieTheatre.h"
// конструктор по умолчанию
MovieTheatre::MovieTheatre() {
// устанавливаем заранее опреленный набор свойств
name = "Noname";
address = "Noaddress";
places = 0;
price = 0;
}
// конструктор с параметрами
MovieTheatre::MovieTheatre(std::string name, std::string address, int places, double price) {
// устанавливаем переданные в качестве параметров свойства
this->name = name;
this->address = address;
this->places = places;
this->price = price;
}
// методы просмотра значений
std::string MovieTheatre::getName() {
return name;
}
std::string MovieTheatre::getAddress() {
return address;
}
int MovieTheatre::getPlaces() {
return places;
}
double MovieTheatre::getPrice() {
return price;
}
// методы изменения значений
void MovieTheatre::setName(std::string name) {
this->name = name;
}
void MovieTheatre::setAddress(std::string address) {
this->address = address;
}
void MovieTheatre::setPlaces(int places) {
this->places = places;
}
void MovieTheatre::setPrice(double price) {
this->price = price;
}
// для выполнения задания - метод вычисления возможного дохода
double MovieTheatre::sum() {
return places * price;
}
Файл main.cpp
#include <iostream>
#include <string>
#include "MovieTheatre.h"
using namespace std;
// вычисление заданного параметра с помощью глобальной функции
// кинотеатр с самым большим возможным доходом
// возвращает индекс кинотеатра в массиве
int maxSum(MovieTheatre *array, int n) {
int ind = 0; // индекс кинотеатра с самым большим возможным доходом
for (int i = 1; i < n; i++) {
// если доход текущего кинотеатра больше, меняем индекс
if (array[i].sum() > array[ind].sum()) {
ind = i;
}
}
return ind;
}
// вывод свойств объекта (выделяем в функцию, чтобы не повторять код)
void printTheatre(MovieTheatre mt) {
cout << "Название: " << mt.getName() << endl;
cout << "Адрес: " << mt.getAddress() << endl;
cout << "Количество мест: " << mt.getPlaces() << endl;
cout << "Средняя цена билетов: " << mt.getPrice() << endl;
}
int main() {
setlocale(LC_ALL, "Russian");
// 1
. создание объекта с помощью конструктора по умолчанию
MovieTheatre mt;
cout << "Создание объекта с помощью конструктора по умолчанию:" << endl;
printTheatre(mt);
// 2. создание объекта с помощью конструктора с параметрами
MovieTheatre mtparam("Весна", "ул. Пушкина, 3", 400, 250);
cout << "Создание объекта с помощью конструктора с параметрами:" << endl;
printTheatre(mtparam);
// 3