Англо-русский и русско-английский переводчик
Создание программы на языке объектно-ориентированного программирования С++, реализующей построчный перевод текста (по словам) с английского на русский. Описание алгоритма решения задачи. Основные функции программы, примеры результатов ее работы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | отчет по практике |
Язык | русский |
Дата добавления | 10.04.2016 |
Размер файла | 527,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
"СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ"
Институт математики и фундаментальной информатики
Базовая кафедра вычислительных и информационных технологий
ОТЧЕТ ОБ УЧЕБНОЙ ПРАКТИКЕ
Институт математики и фундаментальной информатики СФУ
"Англо-русский и русско-английский переводчик"
Руководитель И.В. Баженова
Студент Я.А. Рукосуева
Красноярск 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++, включающий набор классов, методов и функций, которые предоставляют интерфейс для чтения/записи данных из/в файл. Для манипуляции с данными файлов используются объекты, называемые потоками ("stream").
Функции, включенные в данный файл, позволяют производить чтение из файлов как побайтово, так и блоками, и записывать так же. В комплект включены все необходимые функции для управления последовательностью доступа к данным файлов, а также множество вспомогательных функций.
stdlib. h.
stdlib. h. - заголовочный файл стандартной библиотеки языка Си, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие. Заголовок вполне совместим с C++ и известен в нём как cstdlib. Название "stdlib" расшифровывается как "standard library" (стандартная библиотека).
sstream.
sstream - заголовочный файл с классами, функциями и переменными для организации работы со строками, через интерфейс потоков, в языке программирования C++. Он включён в стандартную библиотеку C++. Название образовано от сокращения имени строчного типа данных (англ. string) и англ. stream (поток). В языке C++ и его предшественнике, языке программирования Си, нет встроенной поддержки потоковой работы со строчным типом данных. sstream использует единственный объект sstream для организации работы со строками. Являясь частью стандартной библиотеки C++, эти объекты также являются частью стандартного пространства имён - std.
2.2 Алгоритм решения задачи
2.2.1 Блок-схема алгоритма
На рисунке приведена графическая блок-схема алгоритма составления программы "англо-русский русско-английский словарь".
2.2.2 Описание алгоритма решения задачи
1) Сначала узнаем размер словаря (вызов функции "GetSizeFile ()")
Когда мы убедились, что словари не пусты, пользователь с клавиатуры выбирает тип перевода: с английского языка на русский или с русского на английский. После этого мы открываем файлы словарей "Rus. txt" и "Eng. txt" для чтения и считываем одинаковое ли количество слов в русском и английском словарях в соответствующие массивы Rus и Eng для перевода и закрываем файлы словарей (getEng. close (); getRus. close ();).
2) Открываем файл "Trans. txt" для записи перевода (ofstream putTrans ("Trans. txt");). В зависимости от того, что выбрал пользователь, открываем файл с русским текстом (ifstream getText; getText. open ("Text. txt");), который надо перевести, или с английским (ifstream getText; getText. open ("TextEng. txt");), считываем и выводим на экран текст для перевода.
3) Возвращаемся в начало файла, который переводим. Теперь считываем по одному слову и ищем это слово в массиве соответствующего словаря, который составлен ранее. Если слово найдено, выводим перевод этого слова из второго словаря на экран и записываем его в файл "Trans. txt" (putTrans<<Rus [i] или putTrans<<Eng [i]). Повторяем это в цикле while до тех пор, пока файл для перевода не закончится. Как только файл закончился, закрываем все файлы с помощью getText. close () и putTrans. close ().
2.3 Описание основных функций программы
Функция "GetSizeFile ()" - определение количества слов в словаре.
Открываются оба словаря - русский и английский. Одновременно считывается по слову из каждого словаря, пока один из файлов не закончится (в идеале они закончатся одновременно). Количество слов, которое считалось к этому моменту, возвращается функцией.
3. Примеры результатов работы программы
Результат работы программы, в случае выбора перевода текста с английского на русский язык.
Результат работы программы, в случае выбора перевода текста с русского на английский язык.
Результат работы программы, в случае, если перевод слов не найден в файле.
Список использованных источников
1. Баранов, С.Н. Программирование на языке С++: учеб. пособие / С.Н. Баранов, И.В. Баранова. - Красноярск: ИПК СФУ, 2010. - 112 с.
2. Глушаков, С.В. Язык программирования С++ / С.В. Глушаков, А.В. Коваль, С.В. Смирнов. - М.: АСТ, 2004. - 500 с.
3. Лафоре, Р. Объектно-ориентированное программирование в С++ / Р. Лафоре. - Спб.: Питер, 2004. - 923 с.
4. Вирт Н. Алгоритмы и структуры данных / Н. Вирт. - М,: Мир, 1989. - 360 с.
5. http://dilet. narod.ru - Общий словарь.
Приложение (листинг программы)
#include <iostream>
#include <fstream>
#include <stdlib. h>
#include <sstream>
using namespace std;
int GetSizeFile ()
{setlocale (LC_ALL,"rus");
int i=0;
string Rus,Eng;
ifstream getEng ("Eng. txt");
ifstream getRus ("Rus. txt");
if (getEng. is_open () && getRus. is_open ())
{
while (! getEng. eof () &&! getRus. eof ())
{
getEng>>Eng;
getRus>>Rus;
i++;
}
}
else
return 0;
return i;
}
int main ()
{
int sizeFile=GetSizeFile ();
if (sizeFile==0)
{
cout<<"Словарь пуст!!!";
exit (0);
}
string * Eng=new string [sizeFile];
string * Rus=new string [sizeFile];
int lang;
cout<<"Английский->Русский - 1\nРусский->Английский - 2\n";
cin>>lang;
string t_Rus,t_Eng;
ifstream getEng ("Eng. txt");
ifstream getRus ("Rus. txt");
int i=0;
if (getEng. is_open () && getRus. is_open ())
{
while (! getEng. eof () &&! getRus. eof ())
{
getEng>>t_Eng;
getRus>>t_Rus;
Rus [i] =t_Rus;
Eng [i] =t_Eng;
i++;
cout<<"";
}
getEng. close ();
getRus. close ();
}
else
{
cout<<"Read file error";
exit (0);
}
string Text;
ofstream putTrans ("Trans. txt");
if (! putTrans. is_open ())
{
cout<<"Ошибка записи файла";
exit (0);
}
ifstream getText;
if (lang==2)
getText. open ("Text. txt");
else getText. open ("TextEng. txt");
if (getText. is_open ())
{
int flag;
while (! getText. eof ())
{
getText>>Text;
flag=0;
for (int i=0; i<sizeFile; i++)
{
if (lang==1)
{
if (Text==Eng [i])
{
cout<<Rus [i] <<" ";
putTrans<<Rus [i] <<" ";
flag=1;
}
}
else
{
if (Text==Rus [i])
{
cout<<Eng [i] <<" ";
putTrans<<Eng [i] <<" ";
flag=1;
}
}
}
if (flag==0)
{
cout<<" ("<<Text<<")";
putTrans<<" ("<<Text<<")";
}
}
getText. close ();
putTrans. close ();
}
else
{
cout<<"Ошибка чтения файла";
exit (0);
}
return 0;
}
Размещено на Allbest.ru
Подобные документы
Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.
курсовая работа [639,0 K], добавлен 16.03.2012Лингвистическое обеспечение автоматизированной системы. Алгоритмы сортировки методом прохождения бинарного дерева. Перевод входной строки в инфиксной форме в постфиксную. Конструирование программы-переводчика с английского на русский язык в Delphi.
курсовая работа [1,2 M], добавлен 18.08.2009Введение в объектно-ориентированное программирование. Постановка задачи. Описание алгоритма решения в псевдокоде (команды в виде текста на русском языке). Исходный текст программы на С. Тестирование программы. Модификация программы. Полиморфизм.
курсовая работа [294,0 K], добавлен 08.09.2008Характеристика основных принципов объектно-ориентированного программирования. Этапы разработки программы на языке C++, реализующей игру "Морской бой". Выбор языка программирования. Характеристика необходимых классов, наследований, виртуальных методов.
курсовая работа [657,6 K], добавлен 17.06.2012Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.
курсовая работа [1,0 M], добавлен 26.12.2013Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.
курсовая работа [821,5 K], добавлен 13.02.2012Особенности создания программы "Файловый менеджер" в среде объектно-ориентированного программирования Delphi. Назначение и основные функции программы, формулировка задачи. Описание программы, использованные компоненты, интерфейс и порядок применения.
контрольная работа [1,3 M], добавлен 19.06.2012Последовательность работ при разработке объектно-ориентированных программ. Виды синтаксических анализаторов и способы их применения. Описание алгоритма и анализ результативности работы программы, написанной на языке С, ее константы, переменные и функции.
курсовая работа [441,7 K], добавлен 03.07.2011Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.
курсовая работа [1,5 M], добавлен 21.09.2010Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014