Программа-переводчик
Разработка алгоритма, который позволяет реализовать перевод слов с одного языка на другой. Реализация использования нескольких значений для перевода. Разработка интерфейса приложения на языке программирования C#, которое реализует разработанный алгоритм.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.01.2017 |
Размер файла | 274,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Курсовая работа
по дисциплине "Программирование"
на тему: "Программа-переводчик"
Студент
гр. ИВТа-15
Ефимова Н.С.
Введение
В настоящее время существует много программ, предназначенных для перевода слов с одного языка на другой. Эти программы очень удобны для использования, как простыми людьми, так и теми, кто, так или иначе, сталкивается в своей работе с иностранными языками, будь то общение или же простой перевод текстов.
Но, разумеется, не всегда даже опытные переводчики могут быстро и верно выполнить перевод, поэтому вполне естественно, что программы-переводчики, написанные опытными программистами не всегда способны реализовать абсолютно верный перевод. Одной из важнейших проблем в этой области, на мой взгляд, является многозначность слов, которую не всегда удается учесть при переводе. А также следует вспомнить о том, что грамматика каждого языка уникальна. Например, в русском языке есть такое понятие как падежи, тогда как в английском его в принципе не существует.
Конечно, это не все трудности, с которыми сталкиваются программисты при написании программы. Некоторые проблемы до сих пор не нашли своего решения. Тем и актуальна разработка подобных приложений.
Целью курсовой работы является написание программы, реализующей перевод слов как с русского на английский, так и с английского на русский. А также разработка дружественного интерфейса, который гарантирует удобство при использовании программы.
Необходимо создать на языке программирования C# максимально удобную программу, которая позволяла бы переводить текст с одного языка на другой. Интерфейс написанной программы должен быть прост в использовании для обычных пользователей.
Приложение должно работать исправно на любом ПК без использования дополнительных ресурсов.
1. Стратегия решения задачи
1.1 Интерфейсная часть проекта
Интерфейс программы был разработан следующим образом:
На основной форме проекта были размещены панели ввода и вывода данных, кнопки, которые позволяют выбирать условие, соответствующее описанию перевода. А так же главная кнопка, запускающая разработанный алгоритм перевода слов (рис. 1). Вверху находится меню, содержащая панель "О программе", где можно найти справку или же узнать о возможных причинах некорректной работы программы в разделе "Помощь".
Рисунок 1 - Главная форма программы
Рисунок 2 - Справка программы
Рисунок 3 - Окно помощи
1.2 Листинги проекта
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using ERLibrary;
namespace ER_TRNSLTD
{
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
}
private void КнопкаПеревода1_Клик(object sender, EventArgs e)
{
Перевод(true);
}
private void КнопкаПеревода2_Клик(object sender, EventArgs e)
{
Перевод(false);
}
private void Перевод(bool typeTranslate)
{
richTextBox3.Clear();
// Список, в который поэлементно занесутся слова и символы введённого текста
List<string> textList = new List<string>();
// Тестовая переменная, равная введённому тексу
string inputText = richTextBox1.Text;
//## ИСПРАВЛЕНИЕ (добавляем в конец и начало текста по пробелу)
inputText = " " + inputText;
inputText += " ";
// Переменная, для формирования слов
string word = "";
// Замена фраз
foreach (var z in RELibraryDictionary.phraseList)
{
inputText = inputText.Replace(z.Key, z.Value);
// все символы с маленькой буквы
inputText = inputText.Replace(z.Key.ToLower(), z.Value.ToLower());
}
// Замена(удаление передлогов)
foreach (var z in RELibraryDictionary.prepositionList)
{
//## ИСПРАВЛЕНИЕ Проверка на предлог после которого " ", "." или ","
inputText = inputText.Replace(z.Key + " ", " " + z.Value);
inputText = inputText.Replace(z.Key + ".", z.Value + ".");
inputText = inputText.Replace(z.Key + ",", z.Value + ",");
//## ИСПРАВЛЕНИЕ. все символы с маленькой буквы и аналогичные варианты с ".", "," и " "
inputText = inputText.Replace(z.Key.ToLower() + " ", " " + z.Value.ToLower());
inputText = inputText.Replace(z.Key.ToLower() + ".", z.Value.ToLower() + ".");
inputText = inputText.Replace(z.Key.ToLower() + ",", z.Value.ToLower() + ",");
}
//# ИСПРАВЛЕНИЕ. Удаляем добавленные два пробела - один сначала, другой с конца
inputText = inputText.Remove(0, 1);
inputText = inputText.Substring(0, inputText.Length - 1);
// Разбитие введённого символа на слова и символа.
foreach (char letter in inputText)
{
string letterString = Convert.ToString(letter);
// Если встретился символ
if (letterString.Equals(".") ||
letterString.Equals(" ") ||
letterString.Equals(",") ||
letterString.Equals(":") ||
letterString.Equals("!") ||
letterString.Equals("?") ||
letterString.Equals(")") ||
letterString.Equals("(") ||
letterString.Equals(" - ") ||
letterString.Equals("\n")
)
{
if (!word.Equals("")) // Если до символа было слово
{
// Добавить слово
textList.Add(word);
// Сделать переменную, для временного хранения слова пустой ""
word = "";
}
textList.Add(letterString);
}
else
{
// Начать/продолжить собирать слово по буквам
word += letterString;
}
}
if (!word.Equals("")) textList.Add(word);
// Для каждого элемента сформированного списка
for (int i = 0; i < textList.Count; i++)
{
// Поиск слова в словаре
foreach (var recordOfDictionary in RELibraryDictionary.wordList)
{
//Проверка для слов с большой буквы. Удаляем первую букву, из слова, взятого из словаря и заменяем заглавной
string k = (string)(recordOfDictionary.Key.Remove(1, recordOfDictionary.Key.Length - 1)).ToUpper() + recordOfDictionary.Key.Remove(0, 1);
if (k.Equals(textList[i]))
{
string v = (string)(recordOfDictionary.Value.Remove(1, recordOfDictionary.Value.Length - 1)).ToUpper() + recordOfDictionary.Value.Remove(0, 1);
// Заменить слово на значение словаря (значение - правый столбец словаря)
textList[i] = v;
// Завершить поиск для этого слова
break;
}
if (radioButton_ER.Checked)
{
// Всё слово нижним регистром
// Если слово совпало с ключом словаря (ключ - левый столбец словаря)
if (recordOfDictionary.Key.Equals(textList[i], System.StringComparison.OrdinalIgnoreCase)) // System.StringComparison.OrdinalIgnoreCas - не учитывать регистр
{
// Заменить слово на значение словаря (значение - правый столбец словаря)
textList[i] = recordOfDictionary.Value;
// Завершить поиск для этого слова
break;
}
}
else if (radioButton_RE.Checked)
{
//Для перевода с русского на английский - т.е. наоборот - ищем значение словаря для слова, заменяем слово ключом
if (recordOfDictionary.Value.Equals(textList[i], System.StringComparison.OrdinalIgnoreCase)) // System.StringComparison.OrdinalIgnoreCas - не учитывать регистр
{
textList[i] = recordOfDictionary.Key;
break;
}
}
foreach (string wrd in textList) richTextBox3.Text += wrd;
}
private void Form1_Load(object sender, EventArgs e)
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void справкаToolStripMenuItem_Click(object sender, EventArgs e)
{
Справка form = new Справка();
form.ShowDialog();
}
private void помощьToolStripMenuItem_Click(object sender, EventArgs e)
{
Помощь form = new Помощь();
form.ShowDialog();
}
}
}
2. Контрольный вариант
Рисунок 4 - Перевод текста
перевод интерфейс приложение программирование
Заключение и выводы
В результате выполнения курсовой работы я познакомилась с возможностями языка программирования C#, связанными с переводом слов. Был разработан алгоритм, с помощью которого была выполнена поставленная задача.
При создании программы у меня не получилось реализовать возможность использовать несколько значений для перевода одного слова. Поэтому в некоторых случаях, при переводе с русского на английский, могут возникать трудности из-за того, что слово может находиться в другой форме. Также используемый словарь содержит не более 3 тысяч слов с переводом, что тоже может вызвать проблему, по причине того, что введенное слово, возможно, не содержится в словаре.
Таким образом, был создан проект, который позволяет выполнять перевод текста с одного языка на другой.
Список используемых источников
1. ГОСТ 19.003-80. Схемы алгоритмов и программ
2. Оформление учебных, научных, проектных работ студентов [Текст]: метод. указ. / И. А. Жибинова, С. Р. Зельцер, А. Н. Жибинов, О. В. Михайлова; НФИ КемГУ. - Новокузнецк, 2012. - 91 с.
3. С#. Программирование на языке высокого уровня [Текст]: Учебник для вузов/ Т.А. Павловская; - СПб: Питер, 2007. - 432 с.
Размещено на Allbest.ru
...Подобные документы
Разработка программы для рисования различных правильных многоугольников с помощью объектно-ориентированного языка программирования. Использование для разработки среды C++ Builder 6 и библиотеки VCL. Разработка интерфейса приложения и алгоритма его работы.
курсовая работа [616,4 K], добавлен 18.10.2010Создание приложения для Android на языке Java. Переключатель языка и варианты перевода, которые появляются, когда пользователь вводит текст в поле. Возможность просмотра истории переводов. Разработка и подготовка вида экранов тестового приложения.
курсовая работа [114,8 K], добавлен 03.08.2017Технология создания многопоточных приложений в современных системах программирования с использованием языка C# в Visual Studio.NET. Разработка алгоритма и структуры программы. Описание и особенности тестирования приложения с разным количеством потоков.
курсовая работа [773,0 K], добавлен 14.03.2013Создание программы на языке объектно-ориентированного программирования С++, реализующей построчный перевод текста (по словам) с английского на русский. Описание алгоритма решения задачи. Основные функции программы, примеры результатов ее работы.
отчет по практике [527,5 K], добавлен 10.04.2016Изучение языка низкого уровня ассемблер для написания примера программы для 16 битного приложения. Разработка и реализация алгоритма поднесения чисел к степени чисел над полем за основанием 2 (mod 2). Иллюстрация техники создания DOS приложения.
курсовая работа [33,3 K], добавлен 08.11.2011Выбор языка программирования и его обоснование. Определение системных требований. Схема алгоритма и программа на языке Qbasic. Разработка руководства пользователя. Способы конструирования программ. Особенности и принципы динамического программирования.
курсовая работа [398,8 K], добавлен 21.01.2014Разработка программы создания заметок в любом месте компьютера. Выбор технологии, языка и среды разработки приложения. Описание основных алгоритмов работы программного обеспечения. Проектирование пользовательского интерфейса. Выбор стратегии тестирования.
отчет по практике [700,5 K], добавлен 24.11.2014Создание приложения, исполняющего трансляцию программы из языка Паскаль в язык Си: разработка алгоритма реализации задачи, описание необходимых констант, переменных, функций и операторов, представление листинга программы и распечатка результатов.
курсовая работа [305,9 K], добавлен 03.07.2011Выбор метода проектирования транслятора с языка Паскаль на язык Си, разработка и кодирование алгоритма программы. Использование допустимых операторов в исходном тексте, определение типов переменных и синтаксиса логических и арифметических выражений.
курсовая работа [1,0 M], добавлен 03.07.2011Среда программирования Embarcadero RAD Studio. Создание окна, которое отображает системную дату и время. Выполнение выбранного действия в определенный промежуток времени, заданный пользователем. Руководство программиста. Минимальные системные требования.
курсовая работа [85,2 K], добавлен 16.06.2014Разработка программы проверки знаний для тестирования студентов по программированию с кодом на языке Delphi. Проектирование визуального интерфейса и словесный алгоритм работы программы. Алгоритмы разработанных процедур и функций, инструкция пользователя.
курсовая работа [506,5 K], добавлен 21.02.2011Программная реализация настольного приложения с использованием языка программирования C#. Проектирование и структура пользовательского интерфейса, требования к нему и оценка функциональности. Разработка руководства пользователя и его использование.
курсовая работа [297,6 K], добавлен 10.03.2015Разработка игрового проекта на игровом движке Unity 3D в среде программирования MS Visual Studio 2017. Блок-схема алгоритма работы приема сообщений с сервера на клиенте с упрощенным описанием выполняемых команд. Реализация пользовательского интерфейса.
курсовая работа [1,5 M], добавлен 10.07.2017Создание программы "MP3 Player", воспроизводящей аудио файлы формата MP3 для работы в операционной системе Windows с использованием языка программирования Delphi. Разработка интерфейса, алгоритма и документации к разработанному программному продукту.
курсовая работа [625,0 K], добавлен 18.07.2012Анализ целевой аудитории. Функциональные характеристики пользовательского приложения. Разработка алгоритмов и интерфейса программного продукта, функций рабочей области. Написание скриптов на языке C#. Тестирование программы методом чёрного ящика.
дипломная работа [1,5 M], добавлен 09.11.2016Реализация приложения, которое выполняет считывание, обработку, визуализацию и аппроксимацию экспериментальных данных полиномиальной функции. Блок схема алгоритма аппроксимации методом наименьших квадратов. Разработка интерфейса и листинга программы.
курсовая работа [1,1 M], добавлен 07.07.2013Разработка программы с использованием языка программирования Pascal для выполнения алгебраических действий с действительными числами без знака в шестнадцатеричной системе счисления. Описание хода выполнения, схема алгоритма, листинг программы, ее функции.
реферат [687,5 K], добавлен 28.10.2011Проектирование Windows-приложения, которое позволяет проводить тестирование знаний по разделу математики "Логарифмы". Создание дополнительного класса диалоговых окон, нового пользовательского интерфейса программы. Требования к техническому обеспечению.
курсовая работа [1,9 M], добавлен 02.07.2011Приемы программирования в Delphi. Алгоритм поиска альфа-бета отсечения, преимущества. Описание программного средства. Разработка программы, реализующая алгоритм игры "реверси". Руководство пользователя. Листинг программы. Навыки реализации алгоритмов.
курсовая работа [357,1 K], добавлен 28.02.2011Требования к техническим, программным средствам разработки и функционированию программы. Обоснование выбранного языка программирования. Описание алгоритма решения задачи, тестирование ее основных функций. Понятие дружелюбного пользовательского интерфейса.
курсовая работа [85,9 K], добавлен 31.10.2014