Главная страница
Финансы
Экономика
Математика
Информатика
Начальные классы
Биология
Медицина
Вычислительная техника
Сельское хозяйство
Ветеринария
Дошкольное образование
Логика
Этика
Религия
Философия
История
Воспитательная работа
Социология
Политология
Физика
Языки
Языкознание
Право
Юриспруденция
Русский язык и литература
Строительство
Промышленность
Энергетика
Электротехника
Автоматика
Связь
Другое
образование
Доп
Физкультура
Технология
Классному руководителю
Химия
Геология
Иностранные языки
Искусство
Культура
Логопедия
География
Экология
ИЗО, МХК
Казахский язык и лит
Директору, завучу
Школьному психологу
Языки народов РФ
Социальному педагогу
Обществознание
ОБЖ
Механика
Музыка
Украинский язык
Астрономия
Психология

Контрольная работа ТЭЦ Звонов В.С. АБ 42-з. Технологии программирования


Скачать 69.49 Kb.
НазваниеТехнологии программирования
Дата14.04.2018
Размер69.49 Kb.
Формат файлаdocx
Имя файлаКонтрольная работа ТЭЦ Звонов В.С. АБ 42-з.docx.docx
ТипКонтрольная работа
#58531


Федеральное государственное образовательное бюджетное

учреждение высшего профессионального образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ

им. проф. М.А. Бонч-Бруевича»
Факультет вечернего и заочного обучения

Кафедра теории электрических цепей и связи


КОНТРОЛЬНАЯ РАБОТА
учебная дисциплина «Технологии программирования»

Выполнил студент II курса группы

АБ-42з Звонов В.С.,

номер зачѐтной книжки 149163;

номер выполненного варианта 3

Проверил:

Оценка _________(подпись)


САНКТ-ПЕТЕРБУРГ - 2016

Задание.

В работе требуется сконструировать класс с заданным набором свойств. Набор свойств следует взять в соответствии со своим вариантом задания. В класс также должны быть добавлены методы для просмотра и изменения значений любого из свойств объекта. Требования к конструированию класса: доступ к свойствам — закрытый, к методам — открытый. В классе следует предусмотреть конструктор по умолчанию, конструктор с параметрами. Действия, выполняемые программой:

1. создание объекта с помощью конструктора по умолчанию,

2. создание объекта с помощью конструктора с параметрами,

3. создание массива объектов (размерность массива 3 или 4 элемента),

4. инициализация свойств каждого объекта массива(исходные данные вводятся с клавиатуры),

5. просмотр свойств каждого объекта,

6. вычисление заданного параметра для массива объектов в соответствии с вариантом задания (выполнить с помощью глобальной функции).

Требования к структуре программного кода: программа должна иметь модульную структуру, т.е. состоять из нескольких файлов: модуля класса, состоящего из заголовочного файла и файла реализации, и главного модуля, содержащего функцию main().

3 вариант:

Название товара, Категория товара, Цена, Количество. Вычислить общую стоимость товара

main.cpp

#include "Tovari.h"

#include
using namespace std;
// Функция для расчета общей стоимости товаров

void total_cost(Tovar T3[], int razmer)

{

float summa = 0;

for (int i = 0; i < razmer; ++i)//цикл по количеству товаров

{

summa = summa + T3[i].get_price() * T3[i].get_kolv();

}

cout << " Стоймость всех представленных товаров " << "\t\t" << summa << endl;

}

int main() {

setlocale( LC_ALL, "russian" );

Tovar T1;// создаем товар констуктором по умолчанию

cout << "Конструктор по умолчанию: "<< endl;

cout << "Название: " << T1.get_naim() <<"\t"<< "Категория: " << T1.get_cat() <<"\t"<<"Количество: " << T1.get_kolv()<<"\t" << "Цена: " << T1.get_price()<<"\t" << endl;

cout << endl;

Tovar T2("Гаубица 152мм","Артиллерия",5,499.99);//создаем товар конструктором с параметром

cout << "Конструктор с параметрами: " << endl;

cout << "Название" << "\t\t" << "Категория" << "\t\t" << "Кол-во" << "\t\t" << "Цена"<< endl;

cout << T2.get_naim() << "\t\t" << T2.get_cat() << "\t\t" << T2.get_kolv() << "\t\t" << T2.get_price() << endl;

cout << endl;

int n;

cout << "Введите кол-во товаров: ";

cin >> n;// вводим количество желаемых товаров
Tovar T3[n];//массив товаров
for (int i = 0; i < n; i++)

{

std::string naim;

std::string cat;

int kolv;

float price;

//заполняем массив товаров

cout << " Название товара: "<< ":" ;

cin >> naim;

cout << " Категорию товара: "<< ":" ;

cin >> cat;

cout << " Кол-во товара: "<< ":" ;

cin >> kolv;

cout << " Цена товара: "<< ":" ;

cin >> price;

T3[i].set_naim(naim);

T3[i].set_cat(cat);

T3[i].set_kolv(kolv);

T3[i].set_price(price);

}

cout << endl;

// Чтение массива

cout << "#"<< "\t" << "Название" << "\t\t" << "Категория" << "\t\t" << "Кол-во" << "\t\t" << "Цена"<< endl;

for (int i = 0; i < n; ++i) {

cout << i << ".\t" << T3[i].get_naim() << "\t\t\t" << T3[i].get_cat() << "\t\t\t" << T3[i].get_kolv() << "\t\t" << T3[i].get_price() << endl;

}
// Изменение записи
int select;

cout << "Какой товар нужно заменить?: " << endl;

cin >> select;

std::string naim;

std::string cat;

int kolv;

float price;

cout << " Название: "<< ":" ;

cin >> naim;

cout << " Категория: "<< ":" ;

cin >> cat;

cout << " Кол-во: "<< ":" ;

cin >> price;

cout << " Цена: "<< ":" ;

cin >> kolv;

// Обновление записи

T3[select].set_naim(naim);

T3[select].set_cat(cat);

T3[select].set_kolv(kolv);

T3[select].set_price(price);

cout << endl;

// Чтение обновленного массива

cout << "#"<< "\t" << "Название" << "\t\t" << "Категория" << "\t\t" << "Кол-во" << "\t\t" << "Цена"<< endl;

for (int i = 0; i < n; ++i) {

cout << i << ".\t" << T3[i].get_naim() << "\t\t\t" << T3[i].get_cat() << "\t\t\t" << T3[i].get_kolv() << "\t\t" << T3[i].get_price() << endl;//выводим результат на экран

}
total_cost(T3,n);
return 0;

}

Tovari.cpp
#include "Tovari.h"
Tovar::Tovar() {}//конструктор по умолчанию

Tovar::Tovar(std::string _naim, std::string _cat, int _kolv, float _price)//конструктор с параметрами
{naim = _naim; cat = _cat; kolv = _kolv; price = _price;}//конструктор с параметрами
Tovar::

Tovar() {}//Деструктор
std::string Tovar::get_naim() {//считать наименование товара

return naim;

}

void Tovar::set_naim(std::string _naim) {//установить наименование товара

naim = _naim;

}

std::string Tovar::get_cat() {//считать категорию товара

return cat;

}

void Tovar::set_cat(std::string _cat) {//установить категорию товара

cat = _cat;

}

int Tovar::get_kolv() {//считать количество товара

return kolv;

}

void Tovar::set_kolv(int _kolv) {//установить количество товара

kolv = _kolv;

}

float Tovar::get_price() {//считать цену товара

return price;

}

void Tovar::set_price(float _price) {//установить цену товара

price = _price;

}
Tovari.h

#ifndef CLS_H

#define CLS_H

#include
class Tovar//класс товар

{

public://открытая часть класса

Tovar();//конструктор по умолчанию

Tovar();//деструктор

Tovar(std::string _naim, std::string _cat, int _kolv, float _price);//конструктор с параметрами

std::string get_naim();//считываем наименование товара

void set_naim(std::string _naim);//устанавливаем наименование товара

std::string get_cat();// считываем категорию товара

void set_cat(std::string _cat);//устанавливаем категорию товара

int get_kolv();//считываем количество товара

void set_kolv(int _kolv);//устанавливаем количество товара

float get_price();//считываем цену

void set_price(float _price);//устанавливаем цену

private://защищенная часть класса

std::string naim;//наименование товара

std::string cat;//категория товара

int kolv;//количество товара

float price;//цена товара
};

#endif

Краткое описание работы программы.
Программа работает по следующему алгоритму. После запуска, будет предложено ввести произвольное количество товаров. По завершении ввода, на экран будет выведена таблица с введенными данными. Далее предлагается изменить любую из записей на новую. После успешной замены получаем новую таблицу данных(о товарах) с расчетом общей стоимости покупки.

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

1. Что такое класс в объектно-ориентированном программировании?

2. Какую структуру имеет модуль в С++?

3. Какими средствами осуществляется консольный ввод данных в языке Си, С++?

4. Какие свойства (принципы) объектно-ориентированного программирования вы знаете?

5. Сконструируйте простейший класс с конструктором по умолчанию и конструктором с параметрами. Покажите, как с помощью этих конструкторов можно создать объекты.

Ответы:

  1. Класс – это основной инструмент, с помощью которого осуществляется инкапсуляция (объединение данных и методов и их сокрытие) в С++.

Сокрытие - это запрет на доступ к внутренней структуре данных напрямую извне, минуя специально создаваемые для этого методы.

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

Методы, расположенные в открытой части , образуют интерфейс класса и могут свободно вызываться через соответствующий объект класса.

Доступ к закрытой части класса возможен только из его собственных методов.

Доступ к защищенной части возможен только из его собственных методов и методов классов потомков. Все это повышает надежность программ.


  1. Структура модуля

Модули являются основой создания библиотек и приложений в C++. Модуль содержит исходный текст на языке C++ и первоначально представляет собой файл с расширением *.CPP. В дальнейшем каждый такой файл компилируется в объектный файл с расширением *.OBJ. Объектные файлы, в свою очередь, собираются компоновщиком в выполняемый файл с расширением *.EXE.

При добавлении к проекту новой формы генерируется новый модуль. При добавлении модуля к проекту при помощи выбора пункта меню File/New Unit создается пустая структура модуля, в которой включены директивы: #include ; #pragma hdrstop; #include "Unit2.h"

Директива #include "Unit2.h" указывает на то, что в текст модуля должен быть включен соответствующий заголовочный файл.

При создании модуля используются следующие правила:

  • Имя должно быть уникальным. Два модуля с одним и тем же именем не могут использоваться одновременно в одном и том же проекте.

  • Если модуль связан с формой, то имя исходного файла модуля и файла формы (с расширением *.dfm) должны быть одинаковыми. При создании обработчика событий в инспекторе объектов в тексте файла модуля генерируется шаблон функции, в который разработчик должен вводить код, выполняемый при наступлении обрабатываемого события

  1. Ввод данных в С++, при помощи команды “ cin>> ;“.




  1. Основными свойствами ООП являются инкапсуляция, наследование и полиморфизм.

Инкапсуляция – это ограничение доступа к данным и объединение их (данных) с методами, обрабатывающими эти данные. Когда происходит объединение данных и методов, создается объект.
Наследование - это возможность создания иерархии классов, в которой потомки наследуют все свойства родителей, но могут при этом изменять и добавлять новые. В С++ каждый класс может иметь неограниченное количество потомков (наследников). При этом не требуется каждый раз заново описывать новый объект. Требуется указать базовый класс и описать только отличительные свойства нового класса (потомка). Потомки наследуют все члены базового класса, но использовать могут только члены с атрибутами public и protected.

Полиморфизм – это возможность использовать в различных классах иерархии одно и то же имя для обозначения сходных по смыслу действий и выбирать требуемое действие во время исполнения программы. Это значит что метод с одним и тем же именем может применяться к различным родственным объектам, причем каждый объект будет реагировать на вызов метода по своему. По сути мы используем один и тот же метод для решения нескольких технически разных задач. Выбор конкретного действия, в зависимости от ситуации, возлагается на компилятор. Смысл в том , что интерфейс у нас один, а методов множество.

5.

class Person
{
   char* Name;
   int Year;
public:
    Person (); // Конструктор по умолчанию
    Person (char*, int); // Конструктор с параметрами
   Person (); // Деструктор
// Другие методы
} ;

Конструкторпо умолчанию

Реализация (определение)

   Person::Person ()  {
   }

Вызов конструктора по умолчанию

   Person MyPerson;

Конструкторс параметрами

Реализация (определение)

   Person::Person (char* N, int Y) {
        Name = new char[strlen(N)+1]; // strlen() возвращает длину строки
        strcpy (Name, N); // strcpy() копирует одну строку в другую
        Year = Y;
   }

Вызов конструктора с параметрами

   Person MyPerson(“Ann”,1990);
написать администратору сайта