Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ООП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
712.7 Кб
Скачать

Лабораторная работа №6 Использование динамических объектов.

ЦЕЛЬ РАБОТЫ: Изучить стандарт оформления кода.

ОСНОВНЫЕ СВЕДЕНИЯ

Большинство программистов работают группами и очень часто программный код, разработанный одним человеком, дорабатывается или используется другим. Поэтому необходимо создавать удобочитаемый текст программы. Существуют стандарты оформления кода программы. Рассмотрим следующие пункты стандарта:

Идентификаторы должны быть содержательными (по имени можно сказать о назначении объекта):

Имена переменных должны быть существительными. Если они состоят из нескольких слов, то такие слова должны разделяться символом подчеркивания (num_students), либо каждое слово должно начинаться с заглавной буквы (FileSize).

Имена функций должны быть глаголами. (OpenFile). Следует избегать аббревиатур.

Имена типов следует писать слитно, не разделяя слова. Каждое слово необходимо начинать с большой буквы(StrongTank). Для разделения классов, объединений и констант часто используются префиксы. const kPi=3.14;

Описание классов следует форматировать следующим образом.

class p{

public:

char name[9];

int age;

p() {

age=0;

}

}

Методы класса не должны содержать большое количество строк кода, так как это затрудняет понимание алгоритма работы. Следует также активно использовать комментарии, чтобы описать логику программы. В начале модуля ставится многострочный комментарий, в котором указывается назначение модуля.

ЗАДАНИЕ

Описать класс tlist, инкапсулирующий основные свойства линейного списка. В качестве методов класса должны быть описаны необходимые операции со списками (стеком и очередью). Создать иерархию список – стек – очередь. Продемонстрировать возможности классов иерархии в основной программе. Текст программы должен быть оформлен по вышеописанным правилам.

Лабораторная работа №7 Разработка программы «Магазин».

ЦЕЛЬ РАБОТЫ: Научиться пользоваться механизмом обработки исключительных ситуаций.

ОСНОВНЫЕ СВЕДЕНИЯ

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

try{

//блок возбуждения исключительных ситуаций

trow 10; // возбуждение исключения

}

catch (type1 arg){

// блок перехвата исключительных ситуаций

}

После возбуждения исключительной ситуации, она перехватывается соответствующей указанному типу инструкцией catch. Рассмотрим пример:

int test(int i){

if (test) trow i;

}

void main(){

try{

cout <<”начало”;

test(1);

test(0);

test(2);

}

catch (int i){

cout << “перехват ”;

cout << i;

}

}

Результат:

перехват 1

перехват 2

Для обработки всех остальных исключительных ситуаций используется инструкция catch(…). Блоки обработки исключительных ситуаций помогают предотвратить аварийное завершение вашей программы.

В целях уменьшения вероятности возникновения ошибки в программе предусмотрен механизм ограничения доступа к полям класса через свойства. Например :

class ttt{

private:

int a;

public:

void set_a(int a){

if (a>0){

this->a=a;

}

}

int get_a(){

return a;

}

};

Свойство set_a() устанавливает значение переменной, а get_a(), соответственно, считывает. Рассмотренный механизм доступа позволяет отслеживать правильность присваиваемых значений. Также в момент присваивания можно выполнять ряд действий, например для активации окна приложения (form->active=true;) следует выполнить ряд дополнительных процедур связанных с процессом активации.

ЗАДАНИЕ

Написать консольное приложение «Магазин». Использовать все принципы ООП (в т.ч. свойства, исключения).

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. В каких случаях используется исключение?

  2. Что такое свойство и для чего оно используется?

Среда Visual Studio C++

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

ТЕМА: Знакомство со средой Visual Studio C++. Создание простейшего приложения. Работа с визуальными компонентами: Button, Label, TextBox. Работа с невизуальным компонентом MenuStrip.

ЗАДАНИЕ

  1. Запустите Visual Studio C++.

  2. Выберите в палитре компонентов закладку All Windows Forms.

  3. Перенесите с палитры компонентов на форму компоненты Label и Button. Для этого поочередно подводите курсор мыши к компонентам, читая подсказки, до тех пор, пока не появится Label. Выберете его, нажав левую кнопку мыши, а затем переместите указатель на форму и нажмите еще раз на кнопку мыши. Помещенный на форму компонент будет иметь имя Label1 .

  4. Проделайте то же самое, только с компонентом Button .

  5. Напишите обработчик события Button1Click. Для этого выберите на форме Button1 и щелкните на него дважды. Вы окажетесь в окне редактирования.

  6. Приведите обработчик события нажатия кнопки к следующему виду:

this->label1->Text=L"Hello";

  1. Сохраните Приложение, выбрав пункт в главном меню File -> Save All. Название проекта и название программного модуля не должно совпадать!

  2. Запустите на выполнение ваше Приложение. Для этого выберете в главном меню пункт Debug->StartDebugging, или нажмите клавишу F5.

  3. Нажмите на кнопку в запущенном Приложении и посмотрите, что из этого получилось. Закройте Приложение.( При нажатии на кнопку вызывается обработчик события System::Void button1_Click; , в котором мы меняем свойство TextBox у объекта Label1).

  4. Поместите на форму компонент TextBox.(см. п.3).

  5. Приведите обработчик события нажатия кнопки к следующему виду (вызов обработчика см. в п.5):

this->textbox1->Text=L"Hello";

  1. Измените свойство textbox1.Text на “Привет, студент!!!”. Для этого выберете на форме объект textbox1. Перейдите в Object Inspector, в закладке Properties найдите свойство Text и замените его.

  2. Запустите на выполнение ваше Приложение. Попробуйте нажимать кнопку, вводя разное значение в строку редактирования. Закройте приложение.

  3. Поменяйте свойство объекта Label1.Text на “1” (см. п.3).

  4. Приведите обработчик события нажатия кнопки к следующему виду: (см. п.5)

int i;

i = Convert::ToInt32(this->label1->Text);

this->label1->Text= Convert::ToString(i+1);

{ToString, ToInt32, – функции, преобразующие целый тип в строковый и строковый в целый соответственно}

  1. Запустите Приложение.

  2. Закройте Приложение.

Задание 2

  1. Для выполнения Задания 2 откройте новое Приложение.

  2. П оместите на форму визуальные компоненты Label, TextBox и два компонента Button. При наборе текста в окне TextBox изменяется надпись на компоненте Label, при нажатии кнопки Сброс окно TextBox очищается и изменяется надпись на компоненте Label , при нажатии кнопки Выход приложение завершает свою работу (метод формы ‑ Close).

  3. Для выравнивания положения визуальных компонент на форме, выделите нужные компоненты и примените команду TextBox->Align. Добавьте еще несколько компонентов на форму и поработайте с группой компонентов: измените расположение, размер, какое-либо свойство компонентов, исключите компонент из группы, добавьте в группу.

  4. Для составления программного кода обработчиков событий необходимо выбрать нужное событие на закладке Events в Инспекторе Объектов и дважды щелкнуть на поле справа от события или выбрать нужный обработчик из выпадающего списка, если он уже был запрограммирован. Для компонент Button запрограммируйте нужным образом обработчики событий Click, а для компонента TextBox обработчик TextChanged.

  5. Для того, чтобы при запуске приложения активным был компонент TextBox, воспользуйтесь командой TextBox->TabIndex. Измените порядок обхода компонентов. Запустите Приложение. Воспользуйтесь клавишей Tab.

  6. Закройте Приложение. Закройте Visual C++.

Задание 3

  1. Запустите Visual Studio C++. Откройте Приложение с Заданием 2.

  2. Р азместите на форме компонент MenuStrip. Структура меню должна быть следующей.

Двойной щелчок мышью по размещенному на форме компоненту откроет окно [Design]. Используя свойства Text пунктов меню, создайте нужную структуру меню. Для использования клавиш мнемонического доступа к пунктам меню (Alt+подчеркнутая буква пункта) в свойстве Text, букву подчеркивать не надо, но перед ней следует набрать символ & (например, &File). Для определения клавиш быстрого доступа к пунктам меню используйте свойство ShortcutKeys.

  1. Запрограммируйте работу пунктов Exit и About. Для этого, в обработчик события Click пункта Exit вставьте закрытие приложения, а в обработчик события Click пункта About вставьте вызов диалогового окна (MessageBox) вида:

  2. П осмотрите, из чего состоит Ваше приложение, с помощью менеджера Solution Explorer. Попробуйте исключить модуль из проекта, добавить модуль в проект.