Программа для перевода текстов с транслита
12 Федеральное агентство по образованию Российской Федерации. Южно-Уральский Государственный Университет. Кафедра «Информационно - аналитическое обеспечение управления в социальных и экономических системах» Курсовая работа по дисциплине Программирование на языке высокого уровня «Программа для перевода текстов с транслита» Выполнил: Студент группы П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(const ch_in:char):char возвращает символ в верхнем регистре: Листинг 1. Функция UpCase_R function UpCase_R(const ch_in:char):char; var res:char; begin case ch_in of //проверяет является ли параметр 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 (const ch_in:char):char возвращает символ в нижнем регистре: Листинг 2. Функция downcase. function downcase(ch_in:char):char; var res:char; Begin case ch_in of // проверяет является ли параметр 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'; alph['Х']:= 'kh'; alph['Ц']:= 'c'; alph['Ч']:= 'ch'; alph['Ш']:= 'sh'; alph['Щ']:= 'shh'; alph['Ъ']:= ''''''; alph['Ы']:= 'y'; alph['Ь']:= ''''; alph['Э']:= 'eh'; alph['Ю']:= 'ju'; alph['Я']:= 'ja'; end; Обработчики событий для кнопок: · Кнопка (редактировать алфавит), событие acAlphEdit Листинг 4. «Обработчик события нажатия на кнопку Редактировать алфавит» procedure TMainForm.acAlphEditExecute(Sender: TObject); begin SlovarForm.show; end; · Кнопка (Открыть фаил в окно кириллици) acCyrOpen Выполняет диалог OpenDialog и загружает в поле memCyr содержимое файла используя при этом обработчик исключений. Листинг 5. «Обработчик события нажатия на кнопку Открыть»
Страницы: 1, 2
|