- •Объект, класс. Понятие, примеры
- •Структура класса, использование классов
- •Причины возникновения ооп
- •Технология применения ооп при разработке и реализации ис
- •Абстрагирование в ооп, инкапсуляция – понятие и примеры
- •Наследование в ооп, понятие и примеры
- •Модульность в ооп, связность и связанность
- •Иерархия в ооп, полиморфизм, определения и примеры
- •Диаграмма классов, нотация uml
- •Технология руп - базисная структура и принципы Структура продукта процесса
- •Итерация руп, структура и цели итерации
- •Цели и задачи моделирования бизнес – процессов в руп
- •Структура модели бизнес – процесса в руп, пример
- •Требования в руп, формирование и анализ, примеры
- •Use Case моделирование, субъекты, роли и прецеденты Субъекты
- •Прецеденты
- •Логическое представление руп, понятие и примеры
- •Представление выполнения руп
- •Объекты и классы в руп Объекты
- •Этап руп «Анализ и проектирование», общие понятия и задачи этапа
- •Технология Use Case. Основные принципы, примеры.
- •Диаграмма последовательности, определение и примеры.
- •Инструментальная среда поддержки руп
- •Структура системы Enterprise Architect
- •Формирование моделей бизнес – процессов в еа
- •Формальные требования в еа, структура и формирование
- •Моделирование функций системы в еа
- •Структура динамической модели в еа
- •Диаграмма состояния в еа
- •Диаграмма деятельности в еа
- •Диаграмма последовательности в еа
- •Потоки деятельности в еа
- •Создание Case-проекта в Enterprise Architect.
- •Диаграммы реализации в еа
- •Что такое конструктор и для чего он нужен, Какие типы конструктора существуют
- •Деструктор, назначение деструктора.
- •Методы класса, наследование и перекрытие методов.
- •Статические компоненты класса
- •Шаблоны классов, библиотека mfc
- •Списки, технология списков, операции вставить, удалить узел списка
- •Технология связных списков
- •Класс List, свойства и методы класса
- •Абстрактный список, операции над списками в классе List
-
Абстрактный список, операции над списками в классе List
Данные абстрактного типа. Для связанных списков мы установили основное свойство узла – хранить ссылку на адрес соседнего узла, определили операцию движения по списку и операции вставки и удаления узлов. При этом мы совершенно не интересуемся конкретной реализацией указанных свойств.
Объекты информатики, определенные данным образом, носят название «Данные абстрактного типа». Этих свойств достаточно для формирования псевдокода решения задачи. Метод реализации данных абстрактного типа разрабатывают позже - на этапе кодирования, в зависимости от реализованного псевдокода.
Контейнер список (list) организует хранение объектов в виде двусвязного списка. Каждый элемент списка содержит три поля: значение элемента, указатель на предшествующий и указатель на последующий элементы списка. Вставка и удаление работают эффективно для любой позиции элемента в списке. Однако список не поддерживает произвольного доступа к своим элементам: например, для выборки n-го элемента нужно последовательно выбрать предыдущие n-1 элементов.
-
Использование в С++ методов класса List – пример.
Контейнер список (list) организует хранение объектов в виде двусвязного списка. Каждый элемент списка содержит три поля: значение элемента, указатель на предшествующий и указатель на последующий элементы списка. Вставка и удаление работают эффективно для любой позиции элемента в списке. Однако список не поддерживает произвольного доступа к своим элементам: например, для выборки n-го элемента нужно последовательно выбрать предыдущие n-1 элементов.
Приведем пример применения шаблонного класса для создания связанного списка
#include <list>
#include <iostream>
#include <string>
using namespace std;
int main()
{
list<string> groceryList; // Создаем пустой список
list<string>::iterator i = groceryList.begin();
i = groceryList.insert(i, "apple");
i = groceryList.insert(i, "bread");
i = groceryList.insert(i, "juice");
cout << "The quantity of list elements is : "
<< groceryList.size() << endl;
cout << "List elements:" << endl;
i = groceryList.begin();
while (i != groceryList.end())
{
cout << *i << endl;
++i;
}//Конец оператора while
while(!groceryList.empty())//Уничтожение списка
{
i = groceryList.begin();
groceryList.erase(i);
}//Конец оператора while
i = groceryList.begin();//Повторное создание списка
groceryList.insert(i, "apple");
groceryList.insert(i, "bread");
groceryList.insert(i, "juice");
cout << "The quantity of list elements is : "
<< groceryList.size() << endl;
cout << "List elements:" << endl;
i = groceryList.begin();
while (i != groceryList.end())
{
cout << *i << endl;
++i;
}//Конец оператора while
return 0;
}// Конец функции main