Программная инженерия Нижний Новгород 017 Лабораторный
Download 1.23 Mb. Pdf ko'rish
|
Pract ADS
- Bu sahifa navigatsiya:
- 2.2. Алгоритмы 2.2.1. Списки
- 2.2.2. Полиномы
- 3. Разработка программного комплекса 3.1. Структура
ListLen-1
pPrevLink P 3 301 -2 22 3 0 3 301 -2 22 3 0 P 0 -1 59 Для повышения эффективности операций обработки полиномов (например, чтобы уйти от проверки нулевого указателя последнего звена списка) целесообразно использовать циклические списки, в которых указатель последнего звена указывает на первое звено: 2.2. Алгоритмы 2.2.1. Списки Для работы со списками предлагается реализовать следующие операции: методы получения параметров состояния списка (проверка на пустоту, получение текущего количества звеньев); метод доступа к значению первого, текущего или последнего звена; методы навигации по списку (итератор); методы вставки перед первым, после текущего и последнего звеньев; методы удаления первого и текущего звена. Состав операций может быть расширен при разработке спецификации класса для списков. Расширение списковой структуры хранения для представления полиномов (звено- заголовок, цикличная структура списка) должно разрабатываться как производный класс от базового класса поддержки списков. 2.2.2. Полиномы Для работы с полиномами предлагается реализовать следующие операции: конструкторы инициализации и копирования; метод присваивания; метод сложения полиномов. Дополнительные операции могут быть определены при разработке спецификации класса для полиномов. 3. Разработка программного комплекса 3.1. Структура С учетом всех перечисленных ранее требований может быть предложен следующий состав классов и отношения между этими классами (см. рис. 4): класс TDatValue для определения класса объектов-значений списка (абстрактный класс); класс TMonom для определения объектов-значений параметров монома; класс TRootLink для определения звеньев (элементов) списка (абстрактный класс); класс TDatLink для определения звеньев (элементов) списка с указателем на объект-значение; класс TDatList для определения линейных списков; 3 301 -2 22 3 0 P 0 -1 60 класс THeadRing для определения циклических списков с заголовком; класс TPolinom для определения полиномов. На рис. 4 показаны также отношения между классами: обычными стрелками показаны отношения наследования (базовый класс – производный класс), а ромбовидными стрелками – отношения ассоциации (класс-владелец – класс-компонент). Схема классов и связи между классами В соответствии с предложенной структурой классов модульная (файловая) структура программной системы может иметь вид: DatValue.h – модуль, объявляющий абстрактный класс объектов-значений списка; RootLink.h, RootLink.cpp – модуль базового класса для звеньев (элементов) списка; DatLink.h, DatLink.cpp – модуль класса для звеньев (элементов) списка с указателем на объект-значение; DatList.h, DatList.cpp – модуль класса линейных списков; HeadRing.h, HeadRing.cpp – модуль класса циклических списков с заголовком; Monom.h, Monom.cpp – модуль класса моном; Polinom.h, Polinom.cpp – модуль класса полиномов; PolinomTestkit.cpp – модуль программы тестирования. UserComm.h, UserComm.cpp – модуль функций, реализующих визуальный диалоговый интерфейс для взаимодействия с пользователем. |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling