Курсовой проект " Проектирование и реализация абстракций типов данных"



Скачать 53.25 Kb.
Дата15.10.2012
Размер53.25 Kb.
ТипКурсовой проект
Курсовой проект

Проектирование и реализация абстракций типов данных”
Задание: разработать спецификацию интерфейса (абстракцию) типа данных в соответствии со своим вариантом. Для этого

  1. сформулировать, в задачах какого сорта может быть использован разрабатываемый тип данных;

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

  3. дать названия определяющим операциям, записав их в виде прототипов функций;

  4. записать пример использования типа, тестирующий его пригодность для предметной области;

  5. сформулировать возможные подходы (не менее двух) к реализации типа;

  6. дать сравнительный анализ этих подходов, указав их достоинства и недостатки (особо отметить наиболее простую реализацию и наиболее эффективную реализацию);

  7. свести материалы в промежуточный отчет, раздел “Проектирование типа данных”

  8. запрограммировать простую реализацию типа данных в виде класса, поместив его в заголовочном файле с расширением .h (например, type.h);

  9. при необходимости снабдить методы комментариями, поясняющими суть операции;

  10. запрограммировать, составленный в п.4, пример использования типа, поместив его в отдельный файл с расширением .cpp (например, main.cpp);

  11. запрограммировать методы для основных определяющих операций, поместив реализации в отдельный файл с расширением .cpp (например, type.cpp);

  12. запрограммировать элементарно реализуемые методы для дополнительных определяющих операций;

  13. сложно реализуемые методы для дополнительных операций заменить либо простыми заглушками, либо закомментировать. Заглушки снабдить комментарием с описанием нереализованной операции (спецификацией операции);

  14. протестировать методы основных операций, для чего сформировать программный проект (как минимум, туда войдут файлы main.cpp и type.cpp);

  15. свести материалы в отчет, раздел “Реализация методов основных операций”;

  16. запрограммировать и протестировать методы дополнительных определяющих операций;

  17. свести материалы в отчет, раздел “Реализация методов дополнительных операций”;

  18. внимательно просмотреть реализацию всех методов, отвечая для каждого на вопрос, должен ли измениться его программный код, если простую реализацию типа заменить на эффективную (согласно п.6);

  19. заменить простую реализацию эффективной , перепрограммировав методы согласно перечню п.18;

  20. протестировать новую реализацию типа, используя прежнюю тестовую программу (весьма важно, чтобы не потребовались изменения тестового модуля, т.к.
    иначе проектирование абстракции данных было ошибочно);

  21. свести материалы в отчет, раздел “Усовершенствованная реализация”;

  22. составить для разработанного типа “Руководство пользователя”, разместив его в виде комментария в заголовочном файле и включить его в отчет.



ВАРИАНТЫ ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ
Простые проекты


  1. Тип данных “множество объектов”. Множество целых чисел для программирования задач теории конечных числовых множеств. (Сперва фиксированного размера на базе массива, затем динамическое множество на базе типа данных “список объектов”)

  2. Тип данных “стек объектов” (Сперва фиксированного размера на базе массива, затем динамический стек на базе типа данных “список объектов”).

  3. Типы данных “двумерный вектор” и “трехмерный вектор” для программирования задач аналитической геометрии на плоскости и в пространстве.

  4. Двоичное дерево.


Проекты средней сложности


  1. Тип данных “рациональное число” для программирования вычислительных задач в точной арифметике.

Предварительные замечания. Выполнение арифметических операций на компьютере отличается от математической теории тем, что в нашем распоряжении оказывается лишь конечное множество чисел. Это объясняется конечным представлением чисел в памяти ЭВМ и относится как к целому типу, так и к типу с плавающей точкой. Фактически, компьютерные числа с плавающей точкой описывают действительные числа с заданным количеством значащих цифр, т.е. некоторое подмножество рациональных чисел.

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

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

Дополнительные указания. Уделите особое внимание вопросу сокращения общих множителей в числителе и знаменателе при выполнении арифметических операций. На первом этапе представить число парой длинных целых и сокращать согласно алгоритму Евклида , при усовершенствовании класса наряду с числителем и знаменателем хранить их простые множители в виде массива (динамического) или списка. Операции следует перепрограммировать так, чтобы результат сразу получался в виде несократимой дроби. Далее, предусмотреть “округление” числа, когда несократимая дробь с большими абсолютными значениями числителя и знаменателя заменяется близкой (м.б. ближайшей) на числовой оси дробью, с меньшими числителем и знаменателем.

  1. Четверичное дерево.

  2. Тип данных “полином n-й степени” для программирования задач алгебры и анализа полиномов.

  3. Типы данных “окружность”, “дуга”, “круг”, “сектор”, “сегмент” для программирования задач построения чертежей школьной геометрии.

  4. Типы данных “отрезок”, “луч”, “прямая” для программирования задач построения чертежей школьной геометрии.

  5. Типы данных “треугольник общего вида”, “треугольник прямоугольный”, “треугольник равнобедренный”, “треугольник равносторонний” для программирования задач построения чертежей школьной геометрии.

  6. Типы данных “четырехугольник общего вида”, “прямоугольник”, “параллелограмм”, “ромб”, “квадрат” для программирования задач построения чертежей школьной геометрии.

  7. Вектор и матрица абстрактных объектов. Вектор-функция. Матрица Якоби.

  8. Выпуклый многоугольник

  9. Отображение. Ассоциативный массив. Словарь

  10. Типы данных “табличная функция одной переменной” и “табличная функция двух переменных” обеспечивающие интерполяцию, например, для задачи построения графика.


Сложные проекты


  1. Произвольный многоугольник

  2. 2n-ичное дерево.

  3. Тип данных “разреженный вектор абстрактных объектов произвольной размерности”

  4. Рабочая область базы данных

  5. Целое число произвольной длины

  6. Действительное число произвольной точности.

Похожие:

Курсовой проект \" Проектирование и реализация абстракций типов данных\" iconО понимании типов,абстракций данных и полиморфизма. Автор: Luca Cardelli. Резюме
Мы разработаем систему типов,основанную на модели лямбда исчисления, котороя позволяет нам проще исследовать эти взаимодействия,...
Курсовой проект \" Проектирование и реализация абстракций типов данных\" iconКонцептуальное и логическое проектирования баз данных
Курсовой проект предназначен для практического освоения проектирования реляционных баз данных (БД). В работе используется трехуровневый...
Курсовой проект \" Проектирование и реализация абстракций типов данных\" iconКонцептуальное и логическое проектирования баз данных
Курсовой проект предназначен для практического освоения проектирования реляционных баз данных (БД). В работе используется трехуровневый...
Курсовой проект \" Проектирование и реализация абстракций типов данных\" iconДисциплина "Базы данных" Пояснительная записка к курсовой работе Тема: "Библиотека"
Перечень и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице
Курсовой проект \" Проектирование и реализация абстракций типов данных\" iconКурсовой проект задание на курсовой проект
Летательный аппарат (ЛА), рассматриваемый как твердое тело, может быть описан следующим образом
Курсовой проект \" Проектирование и реализация абстракций типов данных\" iconПроектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры

Курсовой проект \" Проектирование и реализация абстракций типов данных\" iconКурсовой проект по дисциплине "Корпоративные субд" khl explorer Сизов М. С. Проверил: Винокур В. В. Челябинск 2011
Целью данной курсовой работы являлась разработка приложения с рабочим названием “khl explorer”. Программа представляет собой обозреватель...
Курсовой проект \" Проектирование и реализация абстракций типов данных\" iconКурсовой проект по дисциплине «проектирование программ»
Ход программирования Текст программы Описание программы Внедрение Заключение Список используемой литературы
Курсовой проект \" Проектирование и реализация абстракций типов данных\" iconКурсовой проект по дисциплине «Базы данных»
Выполнить комплекс лабораторных работ, размещенный по адресу url
Курсовой проект \" Проектирование и реализация абстракций типов данных\" iconКурсовой проект Создание переносимого приложения, работающего с локальной базой данных
...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org