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


головна сторінка Реферати Курсові роботи текст файли додати матеріалПродать работу

пошук рефератів

Реферат на тему Программа текстовый редактор

завантажити
Знайти інші подібні реферати.
подібні якісні роботи

Розмір: 25.45 кб.
Мова: російська
Розмістив (ла): студент гр. 96-ВВ3 Курапов А.В.
24.04.2011
1 2 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); - Вызывается из load

SInput(fname,20,21,25); - Вызывается из save

SInput(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

Строка вызова:

add(st,a,0,0,' '); - Вызывается из centr

add(text,scrs,x,y,10);  

add(text,scrs,x,y,13);     Вызывается из основной программы

add(text,scrs,x,y,' ');     

add(text,scrs,x,y,c);      

Назначение:

Осуществляет добавление символа в текст.

Функции:

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

Логические

переменные:

*st (char) - указатель на текст

*a (char) - указатель на текущую строку

x,y (int) - координаты

c (char) - добавляемай символ

Внутренние

переменные:

n (int) - число символов в строке

d (int) - счётчик

*p (char) - временный указатель

Вызывает функции:

нет

Вызывается из:

centr , основной программы.

6.9 Функция end

Строка вызова:

x=end(text,scrs,x,y); - Вызывается из основной программы.

Назначение:

Осуществляет поиск конца сироки.

Функции:

Возвращает длину строки.

Логические

переменные:

*st (char) - указатель на текст

*a (char) - указатель на текущую строку

x,y (int) - координаты

Внутренние

переменные:

n (int) - число символов в строке

*p (char) - временный указатель

Вызывает функции:

нет

Вызывается из:

основной программы.

6.10 Функция del

Строка вызова:

del(st,a,0,0); - Вызывается из centr.

del(text,scrs,x,y); - Вызывается из основной программы.

del(text,scrs,x-1,y); - Вызывается из основной программы.

Назначение:

Осуществляет удаление символа из текста.

Функции:

Поиск необходимого места в тексте , удаление символа , если был удалён "перевод строки" и остался "возврат коретки" либо наоюорот , то удаляется ещё один символ.

Логические

переменные:

*st (char) - указатель на текст

*a (char) - указатель на текущую строку

x,y (int) - координаты

Внутренние

переменные:

n (int) - число символов в строке

d (int) - счётчик

*p (char) - временный указатель

Вызывает функции:

нет

Вызывается из:

centr , основной программы.

6.11 Функция find

Строка вызова:

find(text,&scrs,&x,&y,masks); - Вызывается из основной программы.

Назначение:

Осуществляет поиск фрагмента в тексте , начиная с текущего положения курсора.

Функции:

Поиск текущего места в тексте , поиск фрагмента , если фрагмент найден - перемещение курсора.

Логические

переменные:

*st (char) - указатель на текст

*scrs (char) - указатель на текущую строку

*x , *y (int) - указатель на координаты

Внутренние

переменные:

n (int) - число символов в строке

d (int) - счётчик

k (int) - счётчик

*p (char) - временный указатель

Вызывает функции:

нет

Вызывается из:

основной программы.

6.12 Функция dinput

Строка вызова:

left=DInput(30,25); - Вызывается из основной программы.

right=DInput(30,25); - Вызывается из основной программы.

Назначение:

Осуществляет ввод числа.

Функции:

Вывод строки запроса , считывание цифр с клавиатуры , выход , если нажата клавиша Enter или Esc , если нажата Esc то число не записывается не записывается. Возвращает считанное число в формате long.

Логические

переменные:

x , y (int) - координаты ввода

Внутренние

переменные:

s[100] (char) - временная строка

rz (long) - cчитанное число

n (int) - счётчик

c (char) - символ

Вызывает функции:

нет

Вызывается из:

основной программы.

6.13 Функция centr

Строка вызова:

centr(text,scrs,y,left,right); - Вызывается из основной программы.

Назначение:

Осуществляет центровку текущей строки.

Функции:

Поиск текущего местоположения , удаление пробелов в начале строки , подсчёт длины строки , определение количесва добавляемых пробелов , добавление пробелов.

Логические

переменные:

*st (char) - указатель на текст

*scrs (char) - указатель на текущую строку

x , y (int) - координаты

left (int) - левый отступ

right (int) - число символов в строке

Внутренние

переменные:

n (int) - число символов в строке

d (int) - счётчик

Вызывает функции:

add , del

Вызывается из:

основной программы.

6.14 Основная программа

Назначение:

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

Функции:

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

Внутренние

переменные:

left (int) - левый отступ

right (int) - число символов в строке

masks (char) - маска для поиска

*scrs (char) - указатель на текущую строку

x , y (int) - координаты курсора

c (char) - введённый с клавиатуры символ

n (int) - счётчик

Вызывает функции:

output , sinput , load , save , reset , up , down , menu , add , end , del , find , dinput , centr .

    продолжение
1 2 3    

Добавить реферат в свой блог или сайт
Удобная ссылка:

Завантажити реферат безкоштовно
подобрать список литературы


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


Постійний url цієї сторінки:
Реферат Программа текстовый редактор


Разместите кнопку на своём сайте:
Рефераты
вгору сторінки


© coolreferat.com | написать письмо | правообладателям | читателям
При копировании материалов укажите ссылку.