Методические указания к лабораторным работам по дисциплине «Программирование»




Скачать 413.48 Kb.
НазваниеМетодические указания к лабораторным работам по дисциплине «Программирование»
страница1/10
Дата публикации30.08.2013
Размер413.48 Kb.
ТипМетодические указания
vbibl.ru > Информатика > Методические указания
  1   2   3   4   5   6   7   8   9   10



НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ

ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

_________________________________________________________________________________________

Объектно-ориентированное программирование на С++

Методические указания к лабораторным работам


по дисциплине «Программирование»

для студентов II курса АВТФ

1-5 работа 6 баллов

6 работа 7 баллов

7 работа 8 баллов

Всего 45 баллов

НОВОСИБИРСК

2012

Лабораторная работа 1



Тема:^ Разработка классов, создание конструкторов и деструкторов. Использование статических членов класса.
Цель работы: Изучить структуру класса, механизм создания и использования, описание членов-данных класса и методов доступа к ним, возможность инициализации объектов класса с помощью конструкторов и уничтожение их с помощью деструкторов.
Задания на лабораторную работу
Реализовать класс в соответствии с вариантом. Класс должен обеспечивать набор методов для работы с данными. Создать пеpегpуженные констpуктоpы: констpуктоp копирования, констpуктоp по умолчанию. Реализовать указанные классы с динамическим выделением памяти для хранения некоторых полей. Создать деструктор для освобождения памяти. Посмотреть, как вызываются конструкторы и деструкторы. Обязательно добавить в класс статические члены.

Составить демонстpационную пpогpамму. Для pеализации демонстpационной пpогpаммы использовать отдельный модуль. Пpогpамму постpоить с использованием пpоекта. Посмотpеть pаботу пpогpаммы в отладчике, обpатить внимание на пpедставление данных. Постpоить пpогpамму без отладочной инфоpмации. Обpатить внимание на pазмеp пpогpаммы.
Вариант 3.

Постpоить класс для pаботы с многочленами. Класс должен включать соответствующие поля: порядок, набор коэффициентов.

Класс должен обеспечивать пpостейшие функции для pаботы с данными классами: вычисление значения многочлена для данного параметра, вывод многочлена в удобной форме и т.д.

Краткие теоретические сведения
^

Компоненты класса


Класс - это определяемый пользователем тип. Описание класса очень похоже на описание структуры в Си. В этом смысле класс является расширением понятия структуры. В простейшем случае класс можно определить с помощью конструкции:
тип_класса имя_класса {список_членов_класса};

где

тип_класса – одно из служебных слов class, struct, union;

имя_класса – идентификатор;

список_членов_класса – определения и описания типизированных данных и принадлежащих классу функций.

^ Функции – это методы класса, определяющие операции над объектом.

Данные – это поля объекта, образующие его структуру. Значения полей определяет состояние объекта.

Рассмотрим реализацию понятия даты с использованием struct для того, чтобы определить представление даты и множества функций для работы с переменными этого типа:

struct date {

int month, day, year; // дата: месяц, день, год

void set(int, int, int);

void get(int*, int*, int*};

void next();

// ...

};
Функции, описанные таким образом, называются функциями-членами и могут вызываться только для специальной переменной соответствующего типа с использованием стандартного синтаксиса для доступа к членам структуры. Например:
date today; // сегодня

void f() {

today.set(18,1,1985);

today.next();

}
Поскольку разные структуры могут иметь функции члены с одинаковыми именами, при определении функции члена необходимо указывать имя структуры:
void date::next() {

if ( ++day > 28 ) {

// делает сложную часть работы

}

}
В функции-члене имена членов структуры могут использоваться без явной ссылки на объект. В этом случае имя относится к члену того объекта, для которого функция была вызвана.

Описание date в предыдущем подразделе дает множество функций для работы с date, но не указывает, что эти функции должны быть единственными для доступа к объектам типа date. Это ограничение можно наложить, используя вместо struct class:
class date {

int month, day, year;

public:

void set(int, int, int);

void next();

};
Для описания объекта класса (экземпляра класса) используется конструкция

имя_класса имя_объекта;

Для изменения видимости компонент в определении класса можно использовать спецификаторы доступа: public, private, protected.

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

имя_объекта.имя_члена_класса

ссылка_на_объект.имя_члена_класса

указатель_на_объект->имя_члена_класса

Собственные (private) компоненты класса локализованы в классе и не доступны извне. Они могут использоваться функциями – членами данного класса и функциями – “друзьями” того класса, в котором они описаны.

Защищенные (protected) компоненты доступны внутри класса и в производных классах.

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

Защита закрытых данных связана с ограничением использования имен членов класса. В функции-члене на члены бъекта, для которого она была вызвана, можно ссылаться непосредственно. Например:
class x {

int m;

public:

int readm() { return m; }

};

x aa;

x bb;
void f() {

int a = aa.readm();

int b = bb.readm();

// ...

}
В первом вызове члена member() m относится к aa.m, а во втором - к bb.m.

Указатель на объект, для которого вызвана функция-член, является скрытым параметром функции. В каждой функции класса x указатель this неявно описан как
x* this;
и инициализирован так, что он указывает на объект, для которого была вызвана функция член. this не может быть описан явно, так как это ключевое слово.

  1   2   3   4   5   6   7   8   9   10

Добавить документ в свой блог или на сайт

Похожие:

Методические указания к лабораторным работам по дисциплине «Программирование» iconФизика методические указания к лабораторным работам 10, 31
Козлов В. А., Курушин А. Д., Серов Е. А. Физика. Методические указания к лабораторным работам 10, 31 // Под общ ред доц. С. Г. Стоюхина....

Методические указания к лабораторным работам по дисциплине «Программирование» iconМетодические указания к лабораторным наборам предназначены для студентов,...
Металлургическая гидроаппаратура: Методические указания к лабораторным работам / Санкт-Петербургский государственный горный институт...

Методические указания к лабораторным работам по дисциплине «Программирование» iconМетодические указания к лабораторным работам по дисциплине «Автоматизация...
Сапр простейшей структуры на основе расчета и анализа критериев эффективности с использованием имитационных моделей

Методические указания к лабораторным работам по дисциплине «Программирование» iconМетодические указания и задания к лабораторным работам по курсу "алгоритмы и структуры данных "
Методические указания предназначены для усвоения теоретических основ и формирования практических навыков по выбору рациональных структур...

Методические указания к лабораторным работам по дисциплине «Программирование» iconМетодические указания к лабораторным работам по курсу “
В прологе предусматриваются основные арифметические операции +, -, /, ×, mod, div. Чтобы заставить систему выполнить присваивание...

Методические указания к лабораторным работам по дисциплине «Программирование» iconУчебное пособие к лабораторным работам
Автоматизированные информационно-управляющие системы: учебное пособие к лабораторным работам / Л. С. Казаринов, Т. А. Барбасова,...

Методические указания к лабораторным работам по дисциплине «Программирование» iconМетодические указания и задания к лабораторным работам по курсам “
Дискретные структуры“, “Теория алгоритмов и вычислительных процессов“ (для студентов специальностей 050102 “Программное обеспечение...

Методические указания к лабораторным работам по дисциплине «Программирование» iconМетодические указания по анализу финансового 12 состояния организации 12
Методические указания предназначены для выполнения курсовых работ по дисциплине «Анализ хозяйственной деятельности» для студентов...

Методические указания к лабораторным работам по дисциплине «Программирование» iconМетодические указания к лабораторным работам по учебным дисциплинам...
«Электродинамика и распространение радиоволн», «Техническая электродинамика» (для студентов направлений подготовки 050901 «Радиотехника»,...

Методические указания к лабораторным работам по дисциплине «Программирование» iconМетодические указания и контрольные задания по дисциплине «Экономика организации»
Методические указания составлены в соответствии с примерной программой по дисциплине

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
vbibl.ru
Главная страница