Смекни!
smekni.com

Программа текстовый редактор (стр. 1 из 3)

Программа "текстовый редактор"

Пояснительная записка к курсовой работе по дисциплине “Основы алгоритмизации и программирования”

Выполнил : студент гр. 96-ВВ3 Курапов А.В.

Пензенский государственный технический университет, кафедра “Вычислительная Техника”

Пенза 1997

Введение

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

Интерес к персональным компьютерам постоянно растет,а круг их пользователей непрерывно расширяется.В число пользователей ПЭВМ вовлекаются как новички в компьютерном деле,так и специалисты по другим классам ЭВМ.

Язык С++ - универсальный язык общего назначения, область приложений которого - программирование систем в самом широком смысле. Кроме этого, С++ успешно используется как во многих приложениях, так и в мощных операционных системах. Реализация С++ осуществлена для машин в диапазоне от самых простых персональных компьютеров до самых мощных суперкомпьютеров и для всех операционных систем.

1 Постановка задачи

Задача курсовой работы состоит в разработки на языке программирования С++ программы текстового редактора , которая должна осуществлять следующие функции:

1) Ввод исходного текста в заданный файл;

2) Вывод содержимого файла на экран;

3) Обработка файла: форматирование текста по заданному образцу методом центрирования.

Парамерты для форматирования:

а) левый отступ;

b) количество символов в строке;

c) красная строка.

4) Поиск заданной в тексте введённой подстроки , после поиска выдать запрос : "продолжить или закончить".

5) Cохранение результатов обработки данных.

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

2 Метод решения задачи

Анализируя постановку задачи становится ясно , что для её решения необходимо применить метод многофункционального программирования - этот метод основан на разбиении программы на отдельные функциональные модули , которые вызываются из основной программы в процессе её работы.

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

3 Описание логического представления данных

Входными данными в программе являются:

Уже существующий текстовый файл - хранится на диске , может быть под любым именем , при загрузки имя файла запрашивается программой в диалоговом режиме , при загрузке имя файла записывается в локальную переменную типа char - fname (25 символов) , уаказатель на начало текста записывается в переменную *text , а длина текста в переменную len типа int;

Параметры текста (левый отступ , количество символов в строке) - можно изменить в процессе работы программы , начальные значения при загрузки : левый отступ=0 , количество символов=60; Данные хранятся в переменных основной программы - left , right (int).

Текст , вводимый с клавиатуры хранится в переменной text типа char , которая в конце работы может быть сохранена в файле , имя которого задаётся пользователем в диалоговом режиме , имя файла записывается в локальную переменную типа char - fname (25 символов).

Шаблон для поиска , который вводится пользователем с клавиатуры хранится в меременной типа char - mascs длинной в 40 символов

Выходными данными в программе являются:

Текст , вводимый с клавиатуры хранится в переменной text типа char , которая в сохраняется в файле , имя которого задаётся пользователем с клавиатуры в диалоговом режиме , имя файла записывается в локальную переменную типа char - fname (25 символов).

Результат поиска по шаблону - координаты курсора x,y (int) записываются как координаты первого символа найденного по шаблону слова , если слово не найденно , то x=0 , y=0.

6 Спецификация на функциональные модули

6.1 Функция output

Строка вызова: output(scrs,x,y);
Назначение: Осуществляет вывод на экран текста и строки подсказки и курсора
Функции: Вывод текста , указатель на которого передаётся в строке параметров , вывод нижней строки подсказки , вычисление координат курсора на экране и вывод курсора на экран.
Логические переменные: *a (char) - указатель на начало верхней строкиx,ky (int) - позиция курсора в тексте
Внутренние переменные: np (int) - Количество непечатаемых символовrx (int) - Реальная координата курсора на экране y (int) - Координата Y вывода * ot (char) - Временный указатель n (int) - Временная переменная , необходима для вывода строки
Вызывает функции: нет
Вызывается из: основной программы.

6.2 Функция sinput

Строка вызова: SInput(fname,20,21,25); - Вызывается из loadSInput(fname,20,21,25); - Вызывается из saveSInput(masks,40,30,25); - Вызывается из основной программы
Назначение: Осуществляет ввод строки.
Функции: Вывод пустой строки , установка координат , вывод строки запроса, считывание строки посимвольно с клавиатуры , выход , если нажата клавиша Enter или Esc , если нажата Esc то строка не записывается.
Логические переменные: *s (char) - указатель на строкуlng (int) - максимальная длинаx,y - координаты ввода
Внутренние переменные: rs[100] (char) - Временная строкаn (int) - Счетчикc (char) - Введённый с клавиатуры символ
Вызывает функции: нет
Вызывается из: load,save,основной программы.

6.3 Функция load

Строка вызова: load(text); - Вызывается из основной программы
Назначение: Осуществляет загрузку текста из файла.
Функции: Запрос имени файла , открытие файла с данным именем , чтение в переменную , указатель которой передаётся в строке параметров , закрытие файла.
Логические переменные: *p (char) - указатель на текст
Внутренние переменные: fname[25] (char) - Имя файла*f (file) - указатель на файл
Вызывает функции: sinput
Вызывается из: основной программы.

6.4 Функция save

Строка вызова: save(text); - Вызывается из основной программы
Назначение: Осуществляет запись текста в файл.
Функции: Запрос имени файла , открытие файла с данным именем , запись текста , указатель которго передаётся в строке параметров , в файл , закрытие файла.
Логические переменные: *p (char) - указатель на текст
Внутренние переменные: fname[25] (char) - Имя файла*f (file) - указатель на файл*pr (char) - временный указатель
Вызывает функции: sinput
Вызывается из: основной программы.

6.5 Функция reset

Строка вызова: reset(text,32767); - Вызывается из основной программы
Назначение: Осуществляет уничтожение информации.
Функции: Заполнение кодом перевод строки переменной , указанной в сторке параметров , на длинну , указанную в строке параметров.
Логические переменные: *a (char) - указатель на текстn (int) - количество символов в тексте
Внутренние переменные: m (int) - счётчик
Вызывает функции: нет
Вызывается из: основной программы.

6.6 Функция up

Строка вызова: else scrs=up(text,scrs); - Вызывается из основной программы
Назначение: Осуществляет передвижение указателя на одну строку вверх.
Функции: Возвращает указатель на строку , которая выше на одну позицию, чем исходная.
Логические переменные: *a (char) - указатель на текст*b (char) - указатель на текущую строку
Внутренние переменные: нет
Вызывает функции: нет
Вызывается из: основной программы.

6.7 Функция down

Строка вызова: else scrs=down(text,scrs); - Вызывается из основной программы
Назначение: Осуществляет передвижение указателя на одну строку вниз.
Функции: Возвращает указатель на строку , которая ниже на одну позицию, чем исходная.
Логические переменные: *a (char) - указатель на текст*b (char) - указатель на текущую строку
Внутренние переменные: нет
Вызывает функции: нет
Вызывается из: основной программы.

6.8 Функция menu

Строка вызова: switch (menu(30,5," Сохранить файл " " Считать файл " " Ввод шаблона " " Параметры " " Выход из программы " "\x0")) Вызывается из основной программы
Назначение: Осуществляет вывод и обработку меню.
Функции: Вывод меню на экран , опрос клавиатуры , при нажатии клавиш иправления курсором (вверх , вниз) перемещение цветового курсора по пунктам меню , выбор определённого пункта меню при нажатии клавиши с номером пункта меню , при нажатии клавиши Enter возвращается номер выбранного пункта меню , при нажатии клавиши Esc возвращается -1.
Логические переменные: x,y (int) - координаты вывода меню на экран.*сapt (char) - указатель на текст меню
Внутренние переменные: n,m (int) - Счетчикиnum (int) - Количество пунктовk (int) - Выбранный пунктpt (char) - Временный указатель на символc (char) - Считанный с клавиатуры символ
Вызывает функции: нет
Вызывается из: основной программы.

6.8 Функция add