Основы программирования на языке C++
Автор: Пользователь скрыл имя, 17 Декабря 2012 в 21:34, контрольная работа
Краткое описание
Объектно-ориентированный анализ и проектирование принципиально отличаются от традиционных подходов структурного проектирования: здесь нужно по-другому представлять себе процесс декомпозиции, а архитектура получающегося программного продукта в значительной степени выходит за рамки представлений, традиционных для структурного программирования. Отличия обусловлены тем, что структурное проектирование основано на структурном программировании, тогда как в основе объектно-ориентированного проектирования лежит методология объектно-ориентированного программирования, К сожалению, для разных людей термин "объектно-ориентированное программирование" означает разное.
Оглавление
Введение 3
1. Часть I (Теоретическая) 4
Система классов для описания исключительных ситуаций 4
C++ представляет исключительные ситуации как классы 4
Как заставить С++ проверять исключительные ситуации 4
Использование оператора throw для генерации исключительной ситуации 6
Определение обработчика исключительной ситуации 7
Использование элементов данных исключительной ситуации 10
Обработка неожиданных исключительных ситуаций 11
Объявление генерируемых функцией исключительных ситуаций 12
Исключительные ситуации и классы 13
2. Часть II (Практическая) 15
Задание 1 15
Задание 2 17
Реализация классов 17
Заключение 19
Список использованной литературы 20
Файлы: 1 файл
Контрольная Основы программирования на языке C++.doc
— 153.50 Кб (Скачать)Как вы уже знаете, прототип
функции позволяет вам
код C++
void power_plant(long power_needed) throw (melt_down, radiation_leak);
Включая подобным образом возможные исключительные ситуации в прототип функции, вы можете легко сообщить другому программисту, который будет читать ваш код, какие исключительные ситуации ему необходимо проверять при использовании данной функции.
Исключительные ситуации и классы
При создании класса вы, возможно, захотите определить исключительные ситуации, характерные для данного класса. Чтобы создать исключительную ситуацию, характерную для конкретного класса, просто включите эту исключительную ситуацию в качестве одного из общих (public) элементов класса. Например, следующее описание класса string определяет две исключительные ситуации:
код C++
class string
{
public:
string(char *str);
void fill_string(*str);
void show_string(void);
int string_length(void);
class string_empty { };
class string_overflow {};
private:
int length;
char string[255];
};
Как видите, этот класс определяет исключительные ситуации string_empty и string_overflow. В своей программе вы можете проверить наличие исключительной ситуации, используя оператор глобального разрешения и имя класса, как показано ниже:
код C++
try
{
some_string.fill_string(some_
};
catch (string::string_overflow)
{
cerr << "Превышена длина строки, символы отброшены" << endl;
}
2. Часть II (Практическая)
Задание 1
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач. До Хкон. с шагом dX.
при x<0 и b≠0
при x>0 и b=0
в остальных случаях
Где a,b,c – действительные числа.
Функция F должна принимать действительное значение, если выражение (Ац ИЛИ Вц) И (Ац ИЛИ Сц) не равно нулю, и целое значение в противном случае. Через Ац, Вц и Сц обозначены целые части значений a,b,c, операции И и ИЛИ – поразрядные. Значения a,b,c, Xнач, Xкон, dX ввести с клавиатуры.
При реализации задачи в среде C++ получается результат:
Задание 2
Реализация классов
Реализация прикладной
пpoграммной системы, спpoектиpoванной с
помощью объектно-
class Window
{
public:
// конструктор
Window (Length x0, Length y0, Length width, Length height);
// деструктор
~Window ();
// методы
void add_box (Length x, Length y, Length width, Length height);
void add_circle (Length x, Length y, Length radius);
void clear_selections ();
void cut_selections ();
Group* group_selections ();
void move_selections (Length deltax, Length deltay);
void redraw_all ();
void select_item (Length x, Length y);
void ungroup_selections ();
private:
Length xmin;
Length ymin;
Length xmax;
Length ymax;
void add_to_selections (Shape* shape);
};
В определении класca на языке C++ и атрибуты, и методы называются членами этого класca; их определения могут следовать в тексте определения класca в пpoизвольном порядке. Члены класca могут быть общедоступными (public), или приватными (private); вне класca определен доступ только к его общедоступным членам, а приватные члены доступны только методам своего класca. В рассматриваемом примере вce атрибуты являются приватными, а вce методы (кpoме метода add_to_selections) - общедоступными, так что пpoчитать или изменить значение каждого атрибута можно только с помощью соответствующего метода; это рекомендуемая, хотя и не обязательная дисциплина пpoграммиpoвания на языке C++ (определение вceх атрибутов класca как приватных называется инкапсуляцией данных).
Тип Length должен быть определен пользователем (обычно такие определения делаются в одном из файлов-заголовков, вставляемых в пpoграмму по #include). Для определения типа используется оператор typedef. Например:
typedef float Length;
или
typedef int Length;
Заключение
В данной работе были рассмотрены вопросы:
1. Методы классов. Использование аргументов по умолчанию, неопределенное число аргументов, подстановка тела функции;
2. Циклические вычислительные процессы;
3.Реализация классов.
В ходе выполняемой работы я:
- что такое классы. Как использовать аргументы по умолчанию, неопределенное число аргументов, как подставлять тело функции.
- научился разрабатывать программы с циклическими вычислительными процессами на языке С++.
- Узнал и изучил реализацию класса, нашел работающий пример с реализацией классов.
Список использованной литературы
- В.М.Дёмкин. Основы объектно-ориентированного программирования в примерах на С++: Учебное пособие. – Н.Новгород: НФ ГУ-ВШЭ, 2005. – 148 с.
- C/C++. Программирование на языке высокого уровня / Т. А. Павловская. — СПб.: Питер, 2003. —461 с: ил.
- C++. Объектно-ориентированное программирование: Практикум. — СПб.: Питер, 2006. — 265 с: ил.
- Язык С++ и объектно-ориентированное программирование/ А. Скляров. - справочное пособие. - Минск.: "Вышэйшая школа", 1997. – 481 с.
- http://ru.wikipedia.org/wiki/