Считываем 3-й элемент
1 |
1 |
Хеш-таблица | 50 % | 400 | 1.2 | 20 |
Элемент заносится в дополнительную таблицу
Дополнительная таблица
Вид таблицы | Плотность заполнения | |||
Хеш-таблица | 50 % | 400 | 1.2 | 20 |
Теперь удаляем исходный файл, запомнив при этом его название, и переименовываем дополнительный.
Процесс работы компьютера состоит в выполнении программы, набора вполне определённых команд в вполне определённом порядке. Машинный код команды, состоящий из нулей и единиц, указывает, какое именно действие должен выполнить процессор. Т.е. чтобы создать программу для компьютера, необходимо записать последовательность нулей и единиц. Однако программирование в машинных кодах – занятие утомительное и малопродуктивное. Для упрощения процесса программирования были созданы специальные средства – языки программирования. Они стали появляться с 50-х годов и не перестают появляться и сегодня. Огромное количество языков говорит об ещё большем числе задач, которые приходится решать с помощью компьютера.
Вообще, одну и ту же задачу обычно можно решить с использованием разных языков. Но применение неподходящего языка программирования может заметно усложнить процесс программирования или ухудшить результат работы.
Для реализации данного программного продукта был выбран язык C и компилятор Borland C++ 3.1.
Это решение было принято по следующим причинам:
– программный продукт слишком велик для того, чтобы быть написанным на языке низкого уровня, таком как ассемблер;
– система требует высокого быстродействия и доступа к низкоуровневому оборудованию;
– язык программирования должен содержать библиотеку для работы в графическом режиме;
– язык должен иметь средства работы со строками;
– язык должен содержать средства работы с файлами;
– необходимы средства динамического распределения памяти;
– желательно наличие отладчика, позволяющего исполнять программу в пошаговом режиме, просматривать значения переменных и регистров процессора в процессе исполнения программы.
Язык C отвечает всем этим требованиям. Хоть он и не является языком низкого уровня, скорость программ написанных на C довольно высока в сравнении с другими высокоуровневыми языками. Тем не менее, он обладает всеми чертами языков высокого уровня: обладает мощными управляющими структурами, является типизированным языком, позволяет структурировать программу. Библиотеки языка C предоставляют средства работы в графическом режиме, множество функций работы со строками и файлами. В C реализована система динамического распределения памяти. Он позволяет обращаться к любым адресам оперативной памяти, к портам ввода вывода, прерываниям операционной системы. Есть возможность делать ассемблерные вставки. Так что наиболее критичные участки программы могут быть написаны на языке ассемблера. Наконец, в состав системы BorlandC++ 3.1 входит мощный отладчик, позволяющий расставлять в тексте программы контрольные точки, исполнять программу в пошаговом режиме, просматривать значения переменных, регистров и областей оперативной памяти по ходу исполнения программы.
Кроме того, программы, написанные на C, отличаются компактностью как исходного, так и машинного кода. Они легко переносятся на другие операционные системы.
Язык C обладает также и некоторыми недостатками: некорректное использование указателей может привести к серьёзным ошибкам в программе; компактность языка в сочетании с большим количеством операторов даёт возможность создавать код, понимание которого чрезвычайно затруднительно. Эти недостатки связаны с тем, что C ориентирован на опытных программистов, которые хорошо знают, что они делают.
Таким образом, наиболее удобным для реализации данного программного продукта является язык программирования C.
4 ОПИСАНИЕ ФУНКЦИОНИРОВАНИЯ ПРОГРАММНОГО ПРОДУКТА
4.1 Входные данные
Входными данными является любой файл, содержащий таблицу любой структуры (тип полей – символьный или строковый).
4.2 Выходные данные
Выходными данными является тот же файл, но с изменениями, зависящими от действий пользователя, структура таблицы при этом не нарушается.
4.3 Схема информационных потоков
Существует главная программа. В неё поступают Входные данные, вводимые пользователем с клавиатуры (имя файла данных, ключ), а также из внешних текстовых файлов (теория по ВТ, исходные данные). В ответ на вводимые данные главная программа выводит на экран монитора Выходные данные – теоретический материал, справку, таблицы с данными. Схематически работа программы изображена на рисунке 1.6.
Рисунок 4.3 Схема информационных потоков.
4.4 Метод решения
После запуска программы происходит прорисовка экрана затем и самого главного меню. Из меню вызываются функции: файл, вывод окошка-запроса о загрузке, либо очистке файла, либо запросе о выходе из программы; таблица, вывод окошка-запроса об удалении элементов внешних таблиц; Справка - в этом пункте меню пользователь узнает, как правильно работать с программой, как корректно выйти; выход.
Удаление элементов происходит по такой схеме: считываем в цикле по одному элементы из заданного файла, проверяем, входит ли этот элемент в заданный диапазон: если нет, то записываем в цикле по одному элементы во временный файл, если да, то пропускаем. Затем удаляем начальный файл и переименовываем временный.
4.5 Функционально – логическая схема
Рисунок 4.5 – функционально – логическая схема
Работа программы начинается с загрузки главного меню программы. Он состоит из строки меню и двух окон вывода. Строка «Файл» состоит из трех пунктов. Пользователь выбирает нужный ему пункт. Назначение пунктов строки следующее:
1) новый – создание нового файла с таблицей;
2) загрузка – загрузка из внешней памяти уже существующего файла;
3) удаление – удаление существующего файла из памяти ЭВМ;
Меню «Удаление» состоит из трех пунктов:
1) по номеру – удаление из загруженной таблицы записи под соответствующим номером (значение задает пользователь).
Просмотр меню «Справка» приведет к выводу справочной информации по эксплуатации программы на экран.
Меню «Выход» выполняет освобождение используемой памяти, закрытие используемых файлов и завершение работы алгоритма.
Схематично работа программы представлена на рисунке 4.5.
5.1 Комплект поставки
В комплект поставки программного продукта входят следующие файлы:
kursovoi.exe– файл запускает программу;
start.bat- файл запускает русификатор, а потом программу;
1.in, 2.in, 3.in – файлы-примеры, содержащие некоторые таблицы;
help.dat – файл содержит текст справки;
keyrus.com – русификатор;
egavga.bgi– файл содержит драйвер видеоадаптера;
5.2 Порядок инсталляции
Процедура инсталляции очень проста:
1) на жестком диске необходимо создать новую папку;
2) в эту папку скопировать файлы, входящие в комплект поставки.
5.3 Запуск программы
Загружается файл start.bat . Программа запущена. В случае отсутствия каких-либо файлов не гарантируется правильность работы программы.
6 ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА
Тестирование программного продукта можно произвести, загружая различные файлы, производя над ними операции удаления элементов или очистки таблиц, просмотр справочного материла, а также удаляя из папки различные файлы, необходимые для корректной работы программы, и наблюдая за реакцией программы.
На тестовом примере покажем действие программы.
Загружаем файл:
После выбора пункта меню “Удаление”→”По интервалу” и введя от 4-х до 13-ти, получим:
После загрузки того же файла и выбрав: “Удаление”→”По ключу”, введя ключ “250”, получим:
n | Индекс | Продукт | Стоимость |
1 | 30/121 | Печенье | 210 |
2 | 15/124 | Конфеты | 150 |
3 | 12/212 | Зефир | 140 |
6 | 10/376 | Картофель | 480 |
7 | 35/564 | Арбузы | 700 |
10 | 20/341 | Морковь | 800 |
11 | 10/343 | Лук | 750 |
12 | 15/123 | Орехи | 210 |
13 | 30/121 | Айва | 450 |
14 | 15/124 | Капуста | 150 |
Тестируя данный программный продукт можно определить его плюсы и минусы. К положительным качествам можно отнести простой и понятный интерфейс, внизу экрана на нижней кнопке находится подсказка к использованию, все, что нужно узнать по эксплуатации программы находится в пункте меню “Помощь”. В “логической” части программы главными плюсами является возможность редактирования файлов с таблицами без применения самой программы, также создание новых файлов с различными структурами и конструкциями. Типы полей загружаемой таблицы могут быть либо символьными, либо числовыми, вне зависимости от их порядка или конфигурации (т.е. рассмотрены различные варианты представления структуры таблицы). Рассмотрено также удаление элементов по заданному значению ключа, по интервалу. Но в программе имеются и свои недостатки: удаление элементов по сложному значению ключа (из-за возможных сложных конструкций), добавление элементов в файл (по той же причине), 16-ти-цветный интерфейс, также отсутствие горячих клавиш.