Главная страница
Навигация по странице:

  • ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ) ИНСТИТУТ НЕПРЕРЫВНОГО ОБРАЗОВАНИЯ Контрольная работа Конструирование простейшего класса

  • По дисциплине Технологии программирования Вариант 9 Фамилия: КульминскийИмя: МаксимОтчество: АлександровичКурс

  • Технологии программирования. Кульминский АБ-01з КР ТП. Федеральное государственное бюджетное образовательное учреждение высшего образования санктпетербургский государственный университет телекоммуникаций им. Проф. М


    Скачать 350.46 Kb.
    НазваниеФедеральное государственное бюджетное образовательное учреждение высшего образования санктпетербургский государственный университет телекоммуникаций им. Проф. М
    АнкорТехнологии программирования
    Дата11.04.2023
    Размер350.46 Kb.
    Формат файлаpdf
    Имя файлаКульминский АБ-01з КР ТП.pdf
    ТипКонтрольная работа
    #1052996

    ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
    ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
    УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
    «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
    ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
    (СПбГУТ)
    ИНСТИТУТ НЕПРЕРЫВНОГО ОБРАЗОВАНИЯ
    Контрольная работа
    Конструирование простейшего класса
    По дисциплине Технологии программирования
    Вариант 9
    Фамилия:
    Кульминский
    Имя:
    Максим
    Отчество:
    Александрович
    Курс:
    2
    Студ. билет №:
    1910239
    Группа №
    АБ-01з
    Санкт-Петербург
    2021

    Файл Printer.cppсодержит главную функцию программы. В нем создаются две переменные класса magazine, одна из них создается при помощи конструктора по умолчанию, другая с помощью конструктора со значением; и массив класса printer, значение свойств элементов массива вводятся с клавиатуры и сохраняются при помощи методов класса. Вывод на экран осуществляется получением свойств класса с помощью методов. Поиск самого дешевого принтера осуществляется при помощи глобальной функции.
    Текст файла Printer.cpp:
    // Printer.cpp: определяет точку входа для консольного приложения.
    //
    #include
    "stdafx.h"
    #include
    "printer.h"
    #include

    #include

    #include
    "Windows.h"
    usingnamespace std;
    #define n
    4
    //константа размерности массива int
    _tmain
    (
    int argc
    ,
    _TCHAR
    * argv
    [])
    {
    SetConsoleCP(1251);
    // установка кодовой страницы win-cp 1251 в поток ввода
    SetConsoleOutputCP(1251);
    // установка кодовой страницы win-cp
    1251 в поток вывода printer printer1;
    //создание переменной типа класс с использованием конструктора по умолчанию printer printer2(
    "HP"
    ,
    "A4"
    , 25, 1990);
    //создание переменной типа класс с использованием конструктора со значением printer printers[
    n
    ];
    //объявления массива типа класс std::
    string s;
    //объявление переменной строкового типа int a;
    //объявление переменной целочисленного типа for
    (
    int i = 0; i <
    n
    ; i++)
    //циклвводаданных
    { cout
    <<
    "Введите Модель "
    <<
    i + 1
    <<
    "го принтера - "
    ;
    //вывод сообщения на экран cin
    >>
    s;
    //ввод с клавиатуры в переменную printers[i].SetModel(s);
    //запись модели принтера через метод класса cout
    <<
    "Введите формат бумаги "
    <<
    i + 1
    <<
    "го принтера - "
    ; cin
    >>
    s; printers[i].SetFormat(s);
    //записьформатабумаги cout
    <<
    "Введите скорость печати "
    <<
    i + 1
    <<
    "го принтера - "
    ; cin
    >>
    a; printers[i].SetSpeed(a);
    //записьскоростипечати cout
    <<
    "Введите стоимость "
    <<
    i + 1
    <<
    "го принтера - "
    ; cin
    >>
    a; printers[i].SetPrice(a);
    //записьстоимостипринтера
    } cout
    <<
    endl
    <<
    endl;
    cout
    <<
    "Конструкторпоумолчанию: "
    <<
    printer1.GetModel()
    <<
    ", "
    <<
    printer1.GetFormat()
    <<
    ", "
    <<
    printer1.GetSpeed()
    <<
    " листоввминуту,
    "
    <<
    printer1.GetPrice()
    <<
    " рублей "
    <<
    endl; cout
    <<
    "Конструкторсозначением: "
    <<
    printer2.GetModel()
    <<
    ", "
    <<
    printer2.GetFormat()
    <<
    ", "
    <<
    printer2.GetSpeed()
    <<
    " листоввминуту,
    "
    <<
    printer2.GetPrice()
    <<
    " рублей "
    <<
    endl
    <<
    endl
    <<
    "Массив:"
    <<
    endl; for
    (
    int i = 0; i <
    n
    ; i++)
    //циклвыводамассиваданных
    { cout
    <<
    "Принтер"
    <<
    i + 1
    <<
    ": "
    <<
    printers[i].GetModel()
    <<
    ", "
    <<
    printers[i].GetFormat()
    <<
    ", "
    <<
    printers[i].GetSpeed()
    <<
    " листоввминуту, "
    <<
    printers[i].GetPrice()
    <<
    " рублей "
    <<
    endl;} int i = minPrice(printers, n
    );
    //поиск индекса самого дешёвого принтера
    //вывод на экран самого дешевого принтера cout
    <<
    endl
    <<
    endl
    <<
    "Самый дешевый принтер: "
    <<
    printers[i].GetModel()
    <<
    ", "
    <<
    printers[i].GetFormat()
    <<
    ", "
    <<
    printers[i].GetSpeed()
    <<
    " листов в минуту, "
    <<
    printers[i].GetPrice()
    <<
    " рублей "
    <<
    endl;
    //вывод результата system(
    "pause"
    ); return
    0;
    }
    Файл print.cpp содержит функции методов класса, а также глобальную функцию поиска самого дешёвого принтера. Этот файл является файлом реализации класса.
    Текстфайлаprint.cpp:
    #include
    "stdafx.h"
    #include
    "printer.h"
    //конструктор класса со значением, передаем в конструкторе модель, формат бумаги, скорость печати и стоимость принтера printer
    ::printer(std::
    string
    Model1
    , std::
    string
    Format1
    , int
    Speed1
    , int
    Price1
    )
    { model
    =
    Model1
    ;
    //присваиваеммодель format
    =
    Format1
    ;
    //присваиваемформатбумаги speed =
    Speed1
    ;
    //присваиваем скорость печати price =
    Price1
    ;
    //присваиваем стоимость
    } void printer
    ::SetModel(std::
    string
    Model
    )
    //методзаписимоделипринтера
    { model
    =
    Model
    ;
    //задаем модель принтера
    } std::
    stringprinter
    ::GetModel()
    //метод получения модели принтера
    { return model;
    //возвращаем модель принтера
    } void printer
    ::SetFormat(std::
    string
    Format
    )
    //методзаписиформатабумаги
    { format
    =
    Format
    ;
    //задаемформатбумаги
    } std::
    stringprinter
    ::GetFormat()
    //методполученияформатабумаги

    { return format;
    //возвращаем формат бумаги
    } void printer
    ::SetSpeed(
    int
    Speed
    )
    //метод записи скорости печати принтера
    { speed =
    Speed
    ;
    //присваиваем скорость печати
    } int printer
    ::GetSpeed()
    //метод получения скорости печати
    { return speed;
    //возвращаем скорость печати
    } void printer
    ::SetPrice(
    int
    Price
    )
    //метод записи стоимости принтера
    { price =
    Price
    ;
    //присваиваем стоимость принтера
    } int printer
    ::GetPrice()
    //метод получения стоимости
    { return price;
    //возвращаем стоимость принтера
    }
    //поиск самого дешевого принтера int minPrice(
    printer
    * printers
    , int sizeArray
    )
    //передаем исследуемый массив и размерность массива в значениях
    { int min = printers
    [0].GetPrice();
    //переменная минимальной стоимости int numb = 0;
    //переменная индекса самого дешевого принтера for
    (
    int i = 1; i <
    sizeArray
    ; i++)
    //циклпоиска
    { if
    (min >
    printers
    [i].GetPrice())
    //если минимальная стоимость меньше стоимости выбранного принтера
    { min = printers
    [i].GetPrice();
    //то присваиваем минимальное значение стоимости принтера numb = i;
    //записываем индекс минимальной стоимости
    }
    } return numb;
    //возвращаем индекс самого дешевого принтера
    }
    Файл Printer.h содержит класс printer с описанием его свойств и методов. Этот файл является заголовочным файлом класса printer.
    ТекстфайлаPrinter.h:
    #pragmaonce
    #include

    //подключение директивы работы со строками class printer
    { public
    :
    //открытаячастькласса printer(std::
    string
    Model1 =
    ""
    , std::
    string
    Format1 =
    ""
    , int speed = 0, int price=0);
    //конструкторклассапоумолчанию void
    SetModel(std::
    string
    Model);
    //методзаписимоделипринтера
    std::
    string
    GetModel();
    //методполучениямоделипринтера void
    SetFormat(std::
    string
    Format);
    //методзаписиформатабумаги std::
    string
    GetFormat();
    //метод получения формата бумаги void
    SetSpeed(
    int
    Speed);
    //метод записи скорости печати int
    GetSpeed();
    //метод получения скорости печати void
    SetPrice(
    int
    Price);
    //методзаписицены int
    GetPrice();
    //методполученияцены int numb; private
    :
    // Модель принтера std::
    string model;
    // Формат бумаги std::
    string format;
    // Скорость печати и цена принтера int speed, price;
    }; int minPrice(
    printer
    * printers,
    int sizeArray);
    //функцияпоискасамогодешёвогопринтера
    Результат работы программы Printer.exe представлен на рисунке 1.
    Рисунок 1 – Результат работы программы Printer.exe

    Контрольные вопросы:
    1) Класс — это пользовательский тип данных, объединяющий данные и алгоритмы для обработки этих данных. Класс моделирует группу каких-либо реальных объектов.
    2) Модуль состоит из заголовочного файла и файла реализации
    3) Традиционный ввод-вывод через функции printf и scanf.
    Потоковый ввод-вывод
    4) Инкапсуляция –объединение в классе данных и методов с целью защиты данных, полиморфизм – это свойство, которое позволяет одно и то же имя использовать для решения двух или более схожих, но технически разных задач, наследование – это процесс, посредством которого один объект может приобретать свойства другого.


    написать администратору сайта