Строковый редактор текста

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

Чувашский государственный университет имени И.Н. Ульянова

Кафедра Вычислительной техники

КУРСОВАЯ РАБОТА

по диiиплине

Программирование на языке высокого уровня

на тему: Строковый редактор текста

Выполнил: студент гр. ИВТ-42-09

Васильев "адимир Александрович

Проверил: Симаков Александр Леонидович

Чебоксары, 2010

Задание

Разработать программу для редактирования в оперативной памяти текстовых ASCII-файлов размером не более 40 килобайт.

Программа должна читать текстовый файл в оперативную память; отображать название проекта, автора, язык управления, имя редактируемого файла; точно моделировать структуры данных и выполнять функциональность строкового редактора текста в объёме описания [1]; записывать отредактированный файл на диск.

Программа должна быть организована в соответствии с идеологией структурного программирования: разбитой на модули, процедуры, функции; текст должен быть структурирован.

Дополнительные по отношению к [1] функциональные возможности:

. Наличие справки о назначении и использовании редактора, вызываемой по ключу "/?" и пустой командной строке.

. Имя редактируемого файла должно передаваться в командной строке.

. Программа должна проверять наличие файла.

. Директивы "Прочитать" и "Записать" должны запрашивать имя файла.

. Минимальный набор модулей проекта "Строковый редактор текста":

главный модуль: справка, проверка наличия файлов, инициализация, чтение файла для редактирования, вызов монитора редактора текста;

глобальные данные;

служебные подпрограммы для организации интерфейса;

монитор редактора текста;

подпрограммы реализации каждой директивы.

Описание процесса разработки

Для решения поставленной задачи был выбран язык Pascal и среда разработки Turbo Pascal 6.0.

Интерфейс программы был разработан в соответствии с описанием [1]: использован алгоритм монитора редактора текста. Директивам пользователя в соответствие поставлены соответствующие процедуры обработки текста. Адреса процедур хранятся в массиве, так как это упрощает сопоставление директив и подпрограмм: для вычисления адреса процедуры нужно указать в индексе массива его номер, получаемый выделением пяти младших битов символа, который представляет команду пользователя.

В качестве структур данных, на которых мог быть основан буфер текста были рассмотрены следующие варианты.

) Список указателей на строки, ограниченные нулём. Данная структура позволила бы увеличить максимальный размер редактируемого файла, избежать пересылки в памяти больших объемов данных при вставке и удалении строк. Например, для вставки строк можно выделить область памяти B (1), на эту область создать указатель (2), разместить этот указатель в списке указателей за указателем, который указывает на область памяти A, в которой хранится последняя выведенная строка (3), в выделенную память переместить ту часть строк из области A, которая следует за последней выведенной (4), и, сдвигая содержимое В (5), размещать в B строки вводимые пользователем (6), причем при нехватке места в B, снова переходим к пункту (1). Для реализации этого метода потребовалось бы разработать процедуры, устраняющие фрагментацию памяти. Очевидно, что сложность реализации этой структуры высока.

) Массив из слов. Эта структура данных позволяет осуществлять прямой доступ к своим компонентам, что обуславливает простоту алгоритмов работы с ней и надёжностью реализации и расширения программы, а также простотой моделирования структуры данных из описания [1], потому была выбрана именно эта структура данных.

Описание программы

) Общие сведения.

Наименование программы: "Строковый редактор текста".

Программное обеспечение: для функционирования программы необходима операционная система Microsoft DOS.

Программа написана на языке программирования Pascal в среде разработки Turbo Pascal 6.0.

) Функциональное назначение: редактирование текстовых ASCII-файлов, организованных в виде строк, размером не более 40 килобайт. Максимальный размер вставляемых строк и буфера поиска - 78 символов.

) Описание логической структуры.

Программа состоит из следующих частей.

Главная программа, которая вызывает процедуры получения параметров из командной строки, выдачи справки и чтения файла. После выполнения этих процедур она вызывает монитор редактора текста.

Монитор редактора текста последовательно принимает директивы пользователя и параметры выполнения этих команд и контролирует правильность их задания, и запускает соответствующие модули редактирования текста. Он прекращает свою работу, получая от пользователя команду выхода.

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

Модули установки адресов задают адреса начала и конца области текста, доступного для дальнейшего редактирования.

Модули вставки и удаления строк пересылают части массивов и изменяют указатели границ текста.

Модуль перемещения перемещает указатель на заданное пользователем число строк.

Модуль вывода строк выводит заданное число строк, просматривая массив и подiитывая число символов возврата каретки, и изменяет указатель после