Программа-переводчик

Разработка алгоритма, который позволяет реализовать перевод слов с одного языка на другой. Реализация использования нескольких значений для перевода. Разработка интерфейса приложения на языке программирования 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.