Перейти к основному содержимому

Задание №7

Выполнить задания, используя контейнер list.

Варианты заданий:

  1. Создать класс с именем Planet для хранения следующей информации:

    название (string), количество спутников.

    Создать массив планет с помощью контейнера list в main().

    Занести в контейнер информацию о 9 планетах. Данные о планетах:

    "Меркурий", 0
    "Венера", 0
    "Земля", 1
    "Марс", 2
    "Юпитер", 69
    "Сатурн", 62
    "Уран", 27
    "Нептун", 14
    "Плутон", 10

    Вывести массив планет на экран, используя функцию.

    В цикле определите элемент, у которого максимальное количество спутников.

  2. Создать класс:

    class Card {
    string title; // заглавие книги
    string author; // автор
    int number; // количество имеющихся экземпляров
    public:
    Card() : title(""), author(""), number(0) {}
    Card(string t, string a, int n) : title(t), author(a), number(0) {}
    };

    В программе создать list из объектов класса Card (5 элементов).

    Распечатать список. Пользователь вводит автора, программа выводит книги автора или сообщение об их отсутствии.

  3. Составить описание класса Complex для представления комплексных чисел с возможностью задания вещественной и мнимой частей числами типа double. В программе создать список из объектов класса Complex (6 элементов): (-1.2, 6.3), (4.0, 0.7), (7.2, -0.8), (5.3, 3.0), (-4.9, 6.6), (-9.3, 0.2). Распечатать список в виде:

    -1.2 + i * 6.3
    4.1 + i * 0.7
    7.2 - i * 0.8
    5.3 + i * 3
    -4.9 + i * 6.6
    -9.3 + i * 0.2

    Сложите все числа (у комплексных чисел отдельно складываются действительные и мнимые части) и результирующее число выведите на экран.

  4. Ниже представлен пример класса Rectangle (прямоугольник). Напишите программу для хранения объектов типа Rectangle в list (подсказка: не забудьте для класса Rectangle определить операторы < и ==):

    class Rectangle {
    double a; // ширина
    double b; // длина
    public:
    Rectangle() : a(0), b(0) {}
    Rectangle(double a, double bi) : a(a), b(b) {}
    };

    Создать список объектов типа Rectangle с помощью контейнера list в main() и сразу занести в него информацию о 6 объектах: (1.2, 6.3), (4.0, 0.7), (7.2, 0.8), (5.3, 3.0), (4.9, 6.6), (9.3, 0.2). Вывести список на экран таким образом, чтобы размеры каждого прямоугольника выводились в отдельной строке. Выведите на экран размеры прямоугольника, у которого наибольшая площадь. Напишите функцию вывода списка на экран.

  5. Создайте класс с именем Date, содержащий три закрытых поля типа int, предназначенные для хранения дня, месяца и года (подсказка: не забудьте для класса Date определить операторы < и ==). Один из конструкторов класса должен инициализировать поля датой 01.01.1970, а другой конструктор — заданным набором значений. Создайте метод класса, который будет выводить значения полей на экран в формате 11.05.2019.

    Создать список объектов типа Date с помощью контейнера list в main() и сразу занести в него информацию о шести датах: (1, 2, 1963), (14, 7, 1995), (7, 12, 2088), (5, 3, 2030), (24, 9, 2013), (19, 9, 2020). Вывести список на экран таким образом, чтобы каждая дата выводились в отдельной строке. Создайте новый список, в который запишите даты первого списка, которые относятся к будущему. Выведите на экран второй список. Напишите функцию вывода списка на экран.

  6. Создайте класс с именем Time, содержащий три закрытых поля типа int, предназначенные для хранения часов, минут и секунд. (Подсказка: не забудьте для класса Time определить операторы < и ==). Один из конструкторов класса должен инициализировать поля нулевыми значениями, а другой конструктор — заданным набором значений. Создайте метод класса, который будет выводить значения полей на экран в формате 11:59:59.

    Создать список объектов типа Time с помощью контейнера list в main() и сразу занести в него информацию о шести датах: (1, 2, 63), (14, 57, 19), (7, 32, 20), (5, 13, 23), (10, 19, 45), (19, 9, 59). Вывести список на экран таким образом, чтобы каждая дата выводились в отдельной строке. Создайте новый список, в который запишите даты первого списка, которые относятся к ночи (с 0 до 5 часов). Выведите на экран второй список. Напишите функцию вывода списка на экран.

  7. Создать класс Inventory для учета товаров на складе. Класс содержит следующие закрытые компоненты: string item – наименование товара, double cost – стоимость, int on_hand – количество (подсказка: не забудьте для класса Inventory определить операторы < и ==). Один из конструкторов класса должен инициализировать поля нулевыми значениями, а другой конструктор — заданным набором значений.

    Создать список объектов типа Inventory с помощью контейнера list в main() и сразу занести в него информацию о шести объектах: ("Отверка", 99, 0), ("Молоток", 430, 10), ("Гайки", 70, 100), ("Профиль", 540, 0), ("Уголок", 230, 9), ("Доска", 350, 17). Вывести список на экран таким образом, чтобы каждый товар выводился в отдельной строке:

    Отверка - 99 - 0
    Молоток - 430 - 10
    Гайки - 70 - 100
    Профиль - 540 - 0
    Уголок - 230 - 9
    Доска - 350 - 17

    Создайте новый список, в который объекты первого списка, у которых количество равно нулю. Выведите на экран второй список. Напишите функцию вывода списка на экран.

  8. Ниже представлен пример класса Box (коробка). Напишите программу для хранения объектов типа Box в списке (подсказка: не забудьте для класса Box определить операторы < и ==)

    class Box {
    double a; // ширина
    double b; // высота
    double c; // длина
    public:
    Box() : a(0), b(0), c(0) {}
    Box(double a, double b, double c) : a(a), b(b), c(c) {}
    };

    Создать массив объектов типа Box с помощью контейнера list в main() и сразу занести в него информацию о 6 объектах: (1, 2, 63), (14, 57, 19), (7, 32, 20), (5, 13, 23), (10, 19, 45), (19, 9, 59). Вывести список на экран таким образом, чтобы размеры каждой коробки выводились в отдельной строке. Выведите на экран размеры коробки, у которой наибольший объем. Напишите функцию вывода списка на экран.

  9. Ниже представлен пример класса Graduate (выпускник). Напишите программу для хранения объектов типа Graduate в списке (подсказка: не забудьте для класса Graduate определить операторы < и ==):

    class Graduate {
    string name; // фамилия
    double rating; // рейтинг
    public:
    Graduate() {
    name = "";
    rating = 0;
    }
    Graduate(string Name, double Rating) {
    name = Name;
    rating = Rating;
    }
    };

    Создать список объектов с помощью контейнера list в main() и сразу занести в него информацию о 6 объектах: ("Иванов", 99), ("Петров", 430), ("Семенов", 70), ("Котов", 540), ("Белых",230), ("Черных", 350). Вывести список на экран таким образом, чтобы характеристики каждого объекта выводились в отдельной строке. Выведите на экран характеристики объекта, который имеет максимальный рейтинг. Увеличьте рейтинг каждого выпускника на число, которое введет пользователь и снова выведите список на экран. Напишите функцию вывода списка на экран.

  10. Ниже представлен пример класса Point. Напишите программу для хранения объектов типа Point в списке (подсказка: не забудьте для класса Point определить операторы < и ==)

    class Point {
    public:
    double x, у;
    Point() { x = у = 0; }
    Point(double a, double b) {
    x = а;
    у = b;
    }
    };

    Создать массив точек с помощью контейнера list в main() и сразу занести в него информацию о 6 точках: (1.2, 6.3), (4.0, 0.7), (7.2, 0.8), (5.3, 3.0), (4.9, 6.6), (9.3, 0.2). Вывести список на экран таким образом, чтобы координаты каждой точки выводились в отдельной строке. Выведите на экран координаты точки, которая наиболее удалена от центра координат. Сдвиньте все точки влево по оси абцисс на расстояние, которое введет пользователь и снова выведите список на экран. Напишите функцию вывода списка на экран.