Англо-русский и русско-английский переводчик

  • Вид работы:
    Отчет по практике
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    367,86 Кб
  • Опубликовано:
    2016-04-10
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Англо-русский и русско-английский переводчик

Федеральное государственное автономное образовательное учреждение высшего профессионального образования

"СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ"

Институт математики и фундаментальной информатики

Базовая кафедра вычислительных и информационных технологий

ОТЧЕТ ОБ УЧЕБНОЙ ПРАКТИКЕ

Институт математики и фундаментальной информатики СФУ

"Англо-русский и русско-английский переводчик"

Руководитель И.В. Баженова

Студент Я.А. Рукосуева

Красноярск 2014

Содержание

 

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

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

2.1 Среда разработки программы

2.2 Алгоритм решения задачи

2.2.1 Блок-схема алгоритма

2.2.2 Описание алгоритма решения задачи

2.3 Описание основных функций программы

3. Примеры результатов работы программы

Список использованных источников


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

Целью курсовой работы является создание программы на языке объектно-ориентированного программирования С++, реализующей англо-русский и русско-английский переводчик. Составить программу, которая осуществляет построчный перевод текста (по словам) с английского на русский или, наоборот, в зависимости от того, что выбрал пользователь. Исходными данными для программы являются текст, введенный пользователем с клавиатуры (или исходный файл), два файла-словаря (в одном английское слово, во втором - его значение на русском). Перевод помещается в новый текстовый файл и выводится на экран.

программа алгоритм переводчик русский английский

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


2.1 Среда разработки программы


Программа реализована в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++ с применением библиотек: iostream, fstream, stdlib. h, sstream.

iostream.

iostream - заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++. Он включён в стандартную библиотеку C++. Название образовано от Input/Output Stream ("поток ввода-вывода"). В языке C++ и его предшественнике, языке программирования Си, нет встроенной поддержки ввода-вывода, вместо этого используется библиотека функций. iostream управляет вводом-выводом. iostream использует объекты cin, cout, cerr и clog для передачи информации в и из стандартных потоков ввода, вывода, ошибок (без буферизации) и ошибок (с буферизацией) соответственно. Являясь частью стандартной библиотеки C++, эти объекты также являются частью стандартного пространства имён - std.

fstream.

fstream - заголовочный файл из стандартной библиотеки C++ <https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_C%2B%2B>, включающий набор классов, методов и функций, которые предоставляют интерфейс для чтения/записи данных <https://ru.wikipedia.org/wiki/%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_(%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0)> из/в файл <https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB>. Для манипуляции с данными файлов используются объекты <https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)>, называемые потоками <https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%82%D0%BE%D0%BA_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85> ("stream").

Функции <https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)>, включенные в данный файл, позволяют производить чтение из файлов как побайтово <https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%B9%D1%82>, так и блоками, и записывать так же. В комплект включены все необходимые функции для управления последовательностью доступа к данным файлов, а также множество вспомогательных функций.

stdlib. h.

stdlib. h. - заголовочный файл <https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB> стандартной библиотеки <https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%A1%D0%B8> языка Си <https://ru.wikipedia.org/wiki/%D0%A1%D0%B8_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)>, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие. Заголовок вполне совместим с C++ <https://ru.wikipedia.org/wiki/C%2B%2B> и известен в нём как cstdlib. Название "stdlib" расшифровывается как "standard library" (стандартная библиотека).

sstream.- заголовочный файл <https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB> с классами, функциями и переменными для организации работы со строками <https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%BE%D0%BA%D0%B0_(%D1%82%D0%B8%D0%BF_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85)>, через интерфейс потоков, в языке программирования C++ <https://ru.wikipedia.org/wiki/C%2B%2B>. Он включён в стандартную библиотеку C++ <https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_C%2B%2B>. Название образовано от сокращения имени строчного типа данных (англ.  <https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA> string) и англ.  <https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA> stream (поток). В языке C++ и его предшественнике, языке программирования Си <https://ru.wikipedia.org/wiki/%D0%A1%D0%B8_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)>, нет встроенной поддержки потоковой работы со строчным типом данных. sstream использует единственный объект <https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)> sstream для организации работы со строками. Являясь частью стандартной библиотеки C++, эти объекты также являются частью стандартного пространства имён - std.

2.2 Алгоритм решения задачи


2.2.1 Блок-схема алгоритма

На рисунке приведена графическая блок-схема алгоритма составления программы "англо-русский русско-английский словарь".

 

.2.2 Описание алгоритма решения задачи

1) Сначала узнаем размер словаря (вызов функции "GetSizeFile ()")

Когда мы убедились, что словари не пусты, пользователь с клавиатуры выбирает тип перевода: с английского языка на русский или с русского на английский. После этого мы открываем файлы словарей "Rus. txt" и "Eng. txt" для чтения и считываем одинаковое ли количество слов в русском и английском словарях в соответствующие массивы Rus и Eng для перевода и закрываем файлы словарей (getEng. close (); getRus. close ();).

) Открываем файл "Trans. txt" для записи перевода (ofstream putTrans ("Trans. txt");). В зависимости от того, что выбрал пользователь, открываем файл с русским текстом (ifstream getText; getText. open ("Text. txt");), который надо перевести, или с английским (ifstream getText; getText. open ("TextEng. txt");), считываем и выводим на экран текст для перевода.

) Возвращаемся в начало файла, который переводим. Теперь считываем по одному слову и ищем это слово в массиве соответствующего словаря, который составлен ранее. Если слово найдено, выводим перевод этого слова из второго словаря на экран и записываем его в файл "Trans. txt" (putTrans<<Rus [i] или putTrans<<Eng [i]). Повторяем это в цикле while до тех пор, пока файл для перевода не закончится. Как только файл закончился, закрываем все файлы с помощью getText. close () и putTrans. close ().

Открываются оба словаря - русский и английский. Одновременно считывается по слову из каждого словаря, пока один из файлов не закончится (в идеале они закончатся одновременно). Количество слов, которое считалось к этому моменту, возвращается функцией.

3. Примеры результатов работы программы


Результат работы программы, в случае выбора перевода текста с английского на русский язык.


Результат работы программы, в случае выбора перевода текста с русского на английский язык.



Результат работы программы, в случае, если перевод слов не найден в файле.


Список использованных источников


1.      Баранов, С.Н. Программирование на языке С++: учеб. пособие / С.Н. Баранов, И.В. Баранова. - Красноярск: ИПК СФУ, 2010. - 112 с.

2.      Глушаков, С.В. Язык программирования С++ / С.В. Глушаков, А.В. Коваль, С.В. Смирнов. - М.: АСТ, 2004. - 500 с.

.        Лафоре, Р. Объектно-ориентированное программирование в С++ / Р. Лафоре. - Спб.: Питер, 2004. - 923 с.

.        Вирт Н. Алгоритмы и структуры данных / Н. Вирт. - М,: Мир, 1989. - 360 с.

5.      http://dilet. narod.ru <http://dilet.narod.ru> - Общий словарь.

Приложение (листинг программы)


#include <iostream>

#include <fstream>

#include <stdlib. h>

#include <sstream>namespace std;GetSizeFile ()

{setlocale (LC_ALL,"rus");i=0;Rus,Eng;getEng ("Eng. txt");getRus ("Rus. txt");(getEng. is_open () && getRus. is_open ())

{(! getEng. eof () &&! getRus. eof ())

{>>Eng;>>Rus;++;

}

}main ()

{sizeFile=GetSizeFile ();(sizeFile==0)

{<<"Словарь пуст!!!";(0);

}* Eng=new string [sizeFile];* Rus=new string [sizeFile];lang;<<"Английский->Русский - 1\nРусский->Английский - 2\n";>>lang;t_Rus,t_Eng;getEng ("Eng. txt");getRus ("Rus. txt");i=0;(getEng. is_open () && getRus. is_open ())

{(! getEng. eof () &&! getRus. eof ())

{>>t_Eng;>>t_Rus;[i] =t_Rus;[i] =t_Eng;++;<<"";

}. close ();. close ();

}

{<<"Read file error";(0);

}Text;putTrans ("Trans. txt");(! putTrans. is_open ())

{<<"Ошибка записи файла";(0);

}getText;(lang==2). open ("Text. txt");getText. open ("TextEng. txt");(getText. is_open ())

{flag;(! getText. eof ())

{>>Text;=0;(int i=0; i<sizeFile; i++)

{(lang==1)

{(Text==Eng [i])

{<<Rus [i] <<" ";<<Rus [i] <<" ";=1;

}

}

{(Text==Rus [i])

}

}

}(flag==0)

{<<" ("<<Text<<")";<<" ("<<Text<<")";

}

}. close ();. close ();

}

{<<"Ошибка чтения файла";(0);

}0;

}

Похожие работы на - Англо-русский и русско-английский переводчик

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!