Смекни!
smekni.com

Программа для перевода текстов с транслита (стр. 1 из 3)

Федеральное агентство по образованию Российской Федерации.

Южно-Уральский Государственный Университет.

Кафедра «Информационно – аналитическое обеспечение управления в социальных и экономических системах»

Курсовая работа по дисциплине Программирование на языке высокого уровня

«Программа для перевода текстов с транслита»

Выполнил:

Студент группы ПC-ххх

_______ Студент

“___” ____________ 2005

Проверил:

_______ Препод

“___”____________2005

Челябинск

2005

План

Описание применения

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

2. Актуальность задачи

3. Метод решения

4. Входные и выходные данные

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

1. Общие данные и типы.

2. Список процедур и функций

3. Структура программы.

4. Главная форма

5. Форма «Редактор алфавита»

6. Форма «О программе»

7. Основные алгоритмы

8. Работа с программой, входные и выходные данные

9. Описание тестовых заданий

Приложение

Описание применения

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

Программа для перевода текстов с транслита на русский и обратно. Поддерживается форматирование текста, наиболее популярные системы транслитерации ГОСТ 16876-71, русско-английскую, а также таблицы, задаваемые пользователем. Программа должна иметь функцию перевода символов текста к верхнему и нижнему регистру, функцию подсчета количества символов в тексте. Загрузка текста из буфера обмена может осуществляться по быстрой кнопке.

2. Актуальность задачи

Перевод текста из кириллицы в транслит используется очень часто. От простейшего создания nickname до разговоров в IRC-каналах. Многие программы не поддерживают кириллицу и приходится вводить какие-либо комментарии на транслите. Также некоторые mp3-плееры не поддерживают кириллицу и теги приходится писать также на транслите. Этот способ кодировки русских букв давно устоялся и есть чёткие правила (хотя есть и варианты) набора букв. Поэтому в данной программе необходимо реализовать загрузки словаря.

3. Метод решения

Так как программа должна иметь графический и интуитивно понятный интерфейс, то для решения очень подходит DELPHI. Была выбрана версия 7.0. Вся программа была разбита на 3 формы: главная, форма работы со словарями и форма «О программе». Весь интерфейс был разработан на стандартных компонентах и обработчиках событий.


4. Входные и выходные данные

Входные и выходные параметры могут быть двух типов: словарь и текст для перевода. Словарь – типизированный файл (shortstring). Возможно сохранение и загрузка словаря. Текст – обычный текстовый файл на кириллице или транслите (возможен перевод в обе стороны). Результат также можно сохранять в текстовый файл. Также текст можно вводить с клавиатуры в соответствующие текстовые поля.

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

1. Общие данные и типы

Алфавит перевода представляет из себя массив переменных типа shortstring с индексами от «А» до «Я». Элементами массива являются символы в транслите соответствующей букве в кириллице.

Array [‘А’..‘Я’] of shortstring.

Также создано множество больших и маленьких букв кириллицы:

al_set : set of char = ['А'..'Я','Й','Ё'];

small_al : set of char = ['а'..'я','й','ё'];

2. Список процедур и функций

Функция UpCase_R(constch_in:char):char возвращает символ в верхнем регистре:

Листинг 1. Функция UpCase_R

function UpCase_R(const ch_in:char):char;

var

res:char;

begin

casech_inof //проверяет является ли параметр ch_in русской буквой и если да

'й': res:= 'Й'; //то заменяет её на аналогичную, но в верхнем регистре.

'ц': res:= 'Ц';

'у': res:= 'У';

'к': res:= 'К';

'е': res:= 'Е';

'н': res:= 'Н';

'г': res:= 'Г';

'ш': res:= 'Ш';

'щ': res:= 'Щ';

'з': res:= 'З';

'х': res:= 'Х';

'ъ': res:= 'Ъ';

'ф': res:= 'Ф';

'ы': res:= 'Ы';

'в': res:= 'В';

'а': res:= 'А';

'п': res:= 'П';

'р': res:= 'Р';

'о': res:= 'О';

'л': res:= 'Л';

'д': res:= 'Д';

'ж': res:= 'Ж';

'э': res:= 'Э';

'я': res:= 'Я';

'ч': res:= 'Ч';

'с': res:= 'С';

'м': res:= 'М';

'и': res:= 'И';

'т': res:= 'Т';

'ь': res:= 'Ь';

'б': res:= 'Б';

'ю': res:= 'Ю';

'ё': res:= 'Ё';

else

begin

if not(ch_in in al_set) then

res:= UpCase(ch_in)

else

res:= ch_in;

end;

end;

UpCase_R:= res;

end;

Функция downcase (constch_in:char):char возвращает символ в нижнем регистре:

Листинг 2.Функция downcase.

function downcase(ch_in:char):char;

var

res:char;

Begin

casech_inof // проверяет является ли параметр ch_in русской или латинской

'Й': res:= 'й'; // буквой и если да, то возвращает соответствующую букву

'Ц': res:= 'ц'; // но в верхнем регистре.

'У': res:= 'у';

'К': res:= 'к';

'Е': res:= 'е';

'Н': res:= 'н';

'Г': res:= 'г';

'Ш': res:= 'ш';

'Щ': res:= 'щ';

'З': res:= 'з';

'Х': res:= 'х';

'Ъ': res:= 'ъ';

'Ф': res:= 'ф';

'Ы': res:= 'ы';

'В': res:= 'в';

'А': res:= 'а';

'П': res:= 'п';

'Р': res:= 'р';

'О': res:= 'о';

'Л': res:= 'л';

'Д': res:= 'д';

'Ж': res:= 'ж';

'Э': res:= 'э';

'Я': res:= 'я';

'Ч': res:= 'ч';

'С': res:= 'с';

'М': res:= 'м';

'И': res:= 'и';

'Т': res:= 'т';

'Ь': res:= 'ь';

'Б': res:= 'б';

'Ю': res:= 'ю';

'Ё': res:= 'ё';

'Q': res:= 'q';

'W': res:= 'w';

'E': res:= 'e';

'R': res:= 'r';

'T': res:= 't';

'Y': res:= 'y';

'U': res:= 'u';

'I': res:= 'i';

'O': res:= 'o';

'P': res:= 'p';

'A': res:= 'a';

'S': res:= 's';

'D': res:= 'd';

'F': res:= 'f';

'G': res:= 'g';

'H': res:= 'h';

'J': res:= 'j';

'K': res:= 'k';

'L': res:= 'l';

'Z': res:= 'z';

'X': res:= 'x';

'C': res:= 'c';

'V': res:= 'v';

'B': res:= 'b';

'N': res:= 'n';

'M': res:= 'm';

else

res:= ch_in;

end;

Downcase:= res;

End;

3. Структура программы

Программа состоит из трех частей:

· Главной формы (модуль unit_main)


Рис 1. Главная форма

· Формы «О программе» (модуль unit_about)

рис 2. Форма «О программе»

· Формы работы со словарями (модуль unit_slov)


рис 3. Форма «Редактор алфавита»

Главная форма загружается автоматически и другие формы вызываются из нее. При выборе меню «Перевод -> Редактор алфавита» вызывается форма работы с алфавитом, а при выборе «Справка -> О программе» вызывается форма «О программе».

4. Главная форма

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

Содержит следующие компоненты:

· TMemo – 2шт

· TPanel – 2 шт.;

· TMainMenu;

· TStatusBar;

· TLabel – 4 шт.

· TOpenDialog

· TSaveDialog

· TmainMenu

· TimageList

· TactionList

· TtoolBar (ToolButton – 7 шт.)

Всё расположено так, как указано на рисунке 1.

Два TLabel указывают на направление перевода в полях, ещё два – на количество символов в областях ввода данных. Два диалога (TOpenDialog и TSaveDialog) для сохранения и загрузки исходного или итогового текста. TMemo для ввода (и отображения) текущих данных для перевода. TMainMenu для главного меню и кнопки (ToolButton) для управления программой (для управления полями ввода и словарём).

Главное меню основной формы:

· Меню «Файл»

рис. 4. Главное меню. Пункт «Файл»

· Меню «Правка»


рис. 5. Главное меню. Пункт «Правка»

· Меню «Перевод»

рис. 6. Главное меню. Пункт «Перевод»

· Меню «Справка»

рис. 7. Главное меню. Пункт «Справка»


Для каждого пункта меню используются клавиши быстрого доступа (свойство ShortCut) и пиктограммы(элементы ImageList). Обработка выбора каждого пункта меню производится в Action’ах компонента ActionList.

Обработчики событий главной формы:

При создании формы загружается стандартный ГОСТ’овский словарь перевода из кириллицы в транслит и обнуляется текст выводящий количество символов в полях.

Листинг 3. «Обработчик события создания главной формы»

procedure TMainForm.FormCreate(Sender: TObject);

begin

Count_1.Caption:= 'Символов: 0';

Count_2.Caption:= 'Символов: 0';

b_jo:= 'jo';

alph['А']:= 'a';

alph['Б']:= 'b';

alph['В']:= 'v';

alph['Г']:= 'g';

alph['Д']:= 'd';

alph['Е']:= 'e';

alph['Ж']:= 'zh';

alph['З']:= 'z';

alph['И']:= 'i';

alph['Й']:= 'jj';

alph['К']:= 'k';

alph['Л']:= 'l';

alph['М']:= 'm';

alph['Н']:= 'n';

alph['О']:= 'o';

alph['П']:= 'p';

alph['Р']:= 'r';

alph['С']:= 's';

alph['Т']:= 't';

alph['У']:= 'u';

alph['Ф']:= 'f';