Федеральное агентство по образованию Российской Федерации.
Южно-Уральский Государственный Университет.
Кафедра «Информационно – аналитическое обеспечение управления в социальных и экономических системах»
Курсовая работа по дисциплине Программирование на языке высокого уровня
«Программа для перевода текстов с транслита»
Выполнил:
Студент группы ПC-ххх
_______ Студент
“___” ____________ 2005
Проверил:
_______ Препод
“___”____________2005
Челябинск
2005
Описание применения
1. Постановка задачи
2. Актуальность задачи
3. Метод решения
4. Входные и выходные данные
Описание программы
1. Общие данные и типы.
2. Список процедур и функций
3. Структура программы.
4. Главная форма
5. Форма «Редактор алфавита»
6. Форма «О программе»
7. Основные алгоритмы
8. Работа с программой, входные и выходные данные
9. Описание тестовых заданий
Приложение
Программа для перевода текстов с транслита на русский и обратно. Поддерживается форматирование текста, наиболее популярные системы транслитерации ГОСТ 16876-71, русско-английскую, а также таблицы, задаваемые пользователем. Программа должна иметь функцию перевода символов текста к верхнему и нижнему регистру, функцию подсчета количества символов в тексте. Загрузка текста из буфера обмена может осуществляться по быстрой кнопке.
Перевод текста из кириллицы в транслит используется очень часто. От простейшего создания nickname до разговоров в IRC-каналах. Многие программы не поддерживают кириллицу и приходится вводить какие-либо комментарии на транслите. Также некоторые mp3-плееры не поддерживают кириллицу и теги приходится писать также на транслите. Этот способ кодировки русских букв давно устоялся и есть чёткие правила (хотя есть и варианты) набора букв. Поэтому в данной программе необходимо реализовать загрузки словаря.
Так как программа должна иметь графический и интуитивно понятный интерфейс, то для решения очень подходит DELPHI. Была выбрана версия 7.0. Вся программа была разбита на 3 формы: главная, форма работы со словарями и форма «О программе». Весь интерфейс был разработан на стандартных компонентах и обработчиках событий.
Входные и выходные параметры могут быть двух типов: словарь и текст для перевода. Словарь – типизированный файл (shortstring). Возможно сохранение и загрузка словаря. Текст – обычный текстовый файл на кириллице или транслите (возможен перевод в обе стороны). Результат также можно сохранять в текстовый файл. Также текст можно вводить с клавиатуры в соответствующие текстовые поля.
Алфавит перевода представляет из себя массив переменных типа shortstring с индексами от «А» до «Я». Элементами массива являются символы в транслите соответствующей букве в кириллице.
Array [‘А’..‘Я’] of shortstring.
Также создано множество больших и маленьких букв кириллицы:
al_set : set of char = ['А'..'Я','Й','Ё'];
small_al : set of char = ['а'..'я','й','ё'];
Функция 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;
Программа состоит из трех частей:
· Главной формы (модуль unit_main)
Рис 1. Главная форма
· Формы «О программе» (модуль unit_about)
рис 2. Форма «О программе»
· Формы работы со словарями (модуль unit_slov)
рис 3. Форма «Редактор алфавита»
Главная форма загружается автоматически и другие формы вызываются из нее. При выборе меню «Перевод -> Редактор алфавита» вызывается форма работы с алфавитом, а при выборе «Справка -> О программе» вызывается форма «О программе».
Предназначена для загрузки, сохранения, редактирования и перевода текстов.
Содержит следующие компоненты:
· 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';