- •Содержание Введение
- •2. Постановка задачи
- •2.1 Условия задачи
- •2.2 Конечные цели решения задачи
- •3.2 Технические и программные средства для ее решения
- •3.3 Математическая модель
- •4. Алгоритм решения задачи
- •4.1 Метод проектирования алгоритма
- •4.2 Блок-схема алгоритма
- •4.3 Метод тестирования
- •4.4 Тесты для проверки работоспособности алгоритма
- •5. Создание программы
- •6. Результаты тестовых расчетов и их анализ
- •8.3 Описание возможных результатов выполнения программы
- •Заключение.
- •Список использованной литературы
- •Листинг программы
3.2 Технические и программные средства для ее решения
Для реализации данной курсовой работы используются:
1. Процессор AMD II Mobile P560(2,5 ГГц), 4096МБ SDRAM, OCWin 7
2. Cреда программирования Borland C++.
3.3 Математическая модель
Для сортировки данных необходимо выбрать метод сортировки. Наиболее распространены 3 варианта сортировки данных: пузырьковая сортировка, сортировка вставкой и сортировка посредством выбора.
При пузырьковой сортировке упорядоченный список В' получается из В систематическим обменом пары рядом стоящих элементов, не отвечающих требуемому порядку, пока такие пары существуют.
Наиболее простой метод систематического обмена соседних элементов с неправильным порядком при просмотре всего списка слева направо определяет пузырьковую сортировку: максимальные элементы как бы всплывают в конце списка. Пузырьковая сортировка в ряде случаев предпочтительна, чем вышеперечисленные методы.
4. Алгоритм решения задачи
4.1 Метод проектирования алгоритма
Методы проектирования алгоритмов включают: нисходящее проектирование, модульность, структурное программирование.
Нисходящее проектирование предполагает последовательное разбиение исходной задачи на подзадачи до такой конкретизации, когда подзадача сможет быть реализована одним оператором выбранного для программирования языка. По ходу нисходящего проектирования та или иная подзадача может сформировать самостоятельный модуль. Тогда может быть применен принцип модульного программирования. Он обеспечивает легкость составления алгоритмов и отладки программ, легкость сопровождения и модификации, а также возможность одновременной разработки различных модулей разными специалистами с использованием разных языков программирования.
При работе над модулем можно применить принцип структурного программирования. Его цель – повышение читабельности и ясности алгоритма (и программы), более высокой производительности программистов и упрощение отладки. В соответствии с этим принципом для построения любого алгоритма (программы) требуются три типовых блока:
Функциональный. Используется для представления линейных алгоритмов. Описывается языком графических символов следующим образом:

Циклический. Используется для представления циклических алгоритмов. Описывается языком графических символов одним из двух способов:

Конструкция принятия двоичного решения. Применяется для представления разветвляющихся алгоритмов. Описывается языком графических символов следующим образом:

4.2 Блок-схема алгоритма

Рис. 1. Cхема основной функции программы

Рис. 2. Схема функции вывода информации на экран

Рис. 3. Схема функции вывода информации о средней сумме

Рис. 4. Схема функции поиска записей по счёту плательщика

Рис. 5. Схема функции поиска записей по сумме

Рис. 6. Схема функции создания файла

Рис. 7. Схема функций создания, удаления и сортировки записей
4.3 Метод тестирования
Долгое время основным способом тестирования было тестирование методом "черного ящика" - программе подавались некоторые данные на вход и проверялись результаты, в надежде найти несоответствия. При этом как именно работает программа считается несущественным. Отметим, что даже при таком подходе необходимо иметь спецификацию программы для того, чтобы было с чем сравнивать результаты.
Метод тестирования, которые изучают не только внешнее поведение программы, но и ее внутреннее устройство (исходные тексты). Такие методики обобщенно называют тестированием "белого ящика". Назовем некоторых представителей этого класса методик: чтение программ, формальные просмотры программ, инспекции и т.п.). Основной трудностью подобных методов является сложность отслеживания вычислений времени выполнения.
При тестировании программы как белый ящик происходит проверка логики программы. Полным тестированием в этом случае будет такое, которое приведет к перебору всех возможных путей. Даже для средних по сложности программ числом таких путей может достигать десятков тысяч.
Поскольку исчерпывающее структурное тестирование невозможно, необходимо выбрать такие критерии его полноты, которые допускали бы их простую проверку и облегчали бы целенаправленный подбор тестов. Наиболее слабым из критериев полноты структурного тестирования является требование хотя бы однократного выполнения каждого оператора программы. Более сильным критерием является критерий: каждая ветвь алгоритма (каждый переход) должна быть пройдена (выполнена) хотя бы один раз.
