Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Навчальна програма-перекладач тексту

Реферат Навчальна програма-перекладач тексту





ne. Для максимальної функціональності використовується тип AnsiString - динамічна рядок з нульовим символом в кінці.

В· class TWords - клас-контейнер, використовується для зберігання в оперативній пам'яті вмісту файлів даних (слів із перекладами), що значно прискорює роботу програми.

Параметри класу: vector Words;

// контейнер типу vector для зберігання класів TWord;

Прототипи методів класу: void Clear ();

// Очищає вектор для адекватної роботи у разі зміни напряму перекладу, для цього використовується стандартна функція-член класу vector - pop_back ();

void OpenFile (char * Name);

// Відкриває файл даних слів для заповнення класів TWord, і, відповідно, вектора TWords. Для адекватної роботи вектор В«обнуляєтьсяВ» за допомогою Clear (). У функцію передається покажчик на ім'я файлу, що відкривається. Функція використовує потік ifstream для доступу до файлу даних, зчитуючи у вектор за допомогою push_back () попарно слова-значення (відповідно класам TWord). TWord GetWord (int Index);

// Визначається оператор індексу [] для забезпечення доступу до елементів вектора шляхом звичайної індексації, відповідно, передане значення - ціле число, яке повертається - клас TWord. unsigned int GetSize ();

/Визначається поточний розмір вектора. Повертає беззнакове целое.AnsiString Translate (AnsiString W);

// Забезпечує переклад одного слова (або сталого словосполучення). У функцію передається рядок (тобто слово для перекладу), у векторі шукається збіг з даного One об'єктів TWord, і, якщо перебуває, функція повертає дане Two того елемента, в якому знайдено збіг. AnsiString TranslateString (AnsiString Str);

// Забезпечує послівний переклад введеної фрази за допомогою функції Translate (AnsiString W). У функцію передається рядок (слово або текст), яка посимвольний аналізується і, залежно від символу, заноситься в строкову змінну. Якщо у переданій рядку зустрічаються певні символи (наприклад, знак повернення каретки або пробіл), значить, слово закінчилося, і його можна перекласти. Переклад слів заноситься в змінну-рядок, яка при закінченні роботи повертається функцією.


5 Структурна схема відносин у специфікації класів

Так як основними даними класу TWord є рядкові змінні One і Two, а вектор TWords складається з об'єктів TWord (і методи вектора працюють як з самим вектором, так і з даними-класами), то, загалом, схему відносин між класами можна описати так:


В 







В  В 

Малюнок 1 - Схема відносин у специфікації класів

br/>

6 Реалізація

Так як особливістю поставленого завдання було забезпечення послівного перекладу, те в якості основного об'єкта, призначеного для зберігання даних, був обраний контейнер - вектор. Перевагою використання вектора стало те, що в цьому класі підтримуються динамічні масиви, а це означає, що розмір контейнера може змінюватися в міру необхідності, і одночасно з цим доступ до його елементами здійснюється за допомогою звичайної індексного нотації (оператора []).

Отримуємо, що для зберігання відносно невеликої кількості інформації про слово-перекладі використовується клас TWord, а для зберігання та обробки невідомого на момент компіляції кількості слів (відповідно, і класів TWord) використовується вектор TWords, що робить всі переваги застосування цього типу контейнера очевидними.



7 Алгоритми реалізації

Код програми забезпечений коментарями російською мовою, тому суть роботи програми можна зрозуміти, особливо не вдаючись у подробиці механізму роботи окремих функцій. Однак розглянемо деякі з методів.

Переклад одного слова (або сталого словосполучення) здійснюється за допомогою досить простого методу Translate:

AnsiString TWords :: Translate (AnsiString W)

{ for (unsigned int r = 0; r

if (GetWord (r). One == W)// якщо перше слово "підкласу"

// _вектора одно шуканого

return GetWord (r). Two;// повернути друге слово "підкласу"

return "";// Інакше повертається порожній рядок}


Функція Translate безпосередньо викликається тільки з функції TranslateString, відповідальної за послівний переклад тексту.

AnsiString TWords :: TranslateString (AnsiString Str)// передається введений текст

{Str = Str + ' n';// додавання переведення рядка

AnsiString W;// окреме слово з введеного тексту

AnsiString outp;// рядок-переклад

for (int i = 1; i <= Str.Length (); i + +)// пробігаємо по довжині введеного тексту

{f (Str [i]! = '' && Str [i]! = ' R' && Str [i...


Назад | сторінка 2 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Реалізація за допомогою програми внутрішньої роботи цифрових елементів з ви ...
  • Реферат на тему: Вектор-функція. Поняття кривої, лінії і поверхні. Диференціальна геометрі ...
  • Реферат на тему: Програмне забезпечення для знаходження довжини вектора і його положення на ...
  • Реферат на тему: Навчальна програма з технології організації та зберігання даних
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...