
5. Контрольні приклади та аналіз їх реалізації
Для відлагодження та перевірки працездатності програми я використовував такі тестові набори:
У файл input.txt занесено такий текст: «Курсову роботу виконав Скиба Ростислав».
В результаті, отримається транслітерований текст: «Kursovu robotu vykonav Skyba Rostyslav»
2. З клавіатури введено: «Сесія розпочинається!».
Отримаємо результат: «Sesiya rozpochynayet’’sya!».
За результатами тестів які я проводив можна сказати, що програма працює якісно і швидко та без жодної помилки.
Висновок
В результаті роботи над завданням було сформовано кінцевий продукт – програму: транслітератор україномовних текстів латинськими літерами.
В ній реалізовані наступні можливості:
Можливість виконувати транслітерацію, зчитуючи текст із файлу.
Можливість виконувати транслітерацію через ввід тексту з клавіатури.
В програмі реалізовано зручний та зрозумілий інтерфейс.
Література
Шпак З.Я. – Програмування мовою С
Керниган Б., Ритчи Д. - Мова програмування Си.
Інтернет - http://uk.wikipedia.org/wiki/Транслітерація
Інтернет - http://lp.edu.ua/tc.terminology/TK_translit.htm
Інтернет - http://lukom.org/Pages/Blog.aspx/transliteration
Додаток
Т
екст
програми
#include <stdio.h>
#include <windows.h>
#include <locale.h>
#include <conio.h>
#include <stdlib.h>
void ToTranslate(char *srcStr, char *resultStr);
void Clear(char *str);
int main()
{
setlocale(LC_ALL, "Russian");
FILE *f = NULL; //вказiвник на вiдкриваючий файл
int choice=0; //зміна для збереження вибору
char srcStr[256]={0}; //стрiчка, зчитана з файлу або з клавiатури
char resultStr[512]={0};//буфер result, для внесення переведеної стрічки
do
{
system("cls");
printf("\t\tПрограма переводy українського тексту в транслiт\n\n");
printf(" 1. Перевiд з файлу \n");
printf(" 2. Перевiд з клавiатури \n");
printf("Esc. Вихiд\n");
choice=getch();
if(choice==27)
{
printf("\n\t\t\t\tДо побачення !\n\n");
system("pause");
exit(1);
}
else if(choice=='1')
{
system("cls");
printf("\n\t\t\tВибраний режим переводу з файлу\n\n");
if(!(f = fopen("C:\\file.txt","r")))//спроба вiдкрити
{
printf("Файл не знайдено! \n");
break;
}
printf("\nРезультат переводу: \n\n");
while(!feof(f))//доки не досягнуто кінця файлу зчитуємо дані
{
fgets(srcStr,256,f);//прочитали cтрічку
ToTranslate(srcStr,resultStr);//перевели і записали в result
printf("%s",resultStr);//вивели переклад
Clear(resultStr);//очистили стрічку, для того, щоб текст при наступному кроці циклу не дублювався
}
Clear(resultStr);
Clear(srcStr);
fclose(f);
printf("\n\n\t\tДля повернення в меню натиснiть будь-яку кнопку\n\n");
getch();
}
else if(choice=='2')
{
system("cls");
printf("\n\t\t\tВибраний режим переводу з клавiатури\n\n");
printf("Введiть речення для переводу: \n");
gets(srcStr);
OemToChar(srcStr,srcStr);
ToTranslate(srcStr,resultStr);//переводимj стрічку і записуємо в resultStr
printf("\nРезультат переводy:\n%s",resultStr);
printf("\n\n\t\tДля повернення в меню натиснiть будь-яку кнопку\n\n");
getch();
Clear(resultStr);
Clear(srcStr);
}
}while(1);
}
void ToTranslate(char *srcStr, char *resultStr)
{
char temp[2]={0};
for(int i=0;i<strlen(srcStr);i++)
{
switch(srcStr[i])
{
case 'а':
strcat(resultStr,"a");
break;
case 'б':
strcat(resultStr,"b");
break;
case 'в':
strcat(resultStr,"v");
break;
case 'г':
strcat(resultStr,"h");
break;
case 'ґ':
strcat(resultStr,"g");
break;
case 'д':
strcat(resultStr,"d");
break;
case 'е':
strcat(resultStr,"e");
break;
case 'є':
strcat(resultStr,"ye");
break;
case 'ж':
strcat(resultStr,"zh");
break;
case 'з':
strcat(resultStr,"z");
break;
case 'и':
strcat(resultStr,"y");
break;
case 'і':
strcat(resultStr,"i");
break;
case 'ї':
strcat(resultStr,"yi");
break;
case 'й':
strcat(resultStr,"j");
break;
case 'к':
strcat(resultStr,"k");
break;
case 'л':
strcat(resultStr,"l");
break;
case 'м':
strcat(resultStr,"m");
break;
case 'н':
strcat(resultStr,"n");
break;
case 'о':
strcat(resultStr,"o");
break;
case 'п':
strcat(resultStr,"p");
break;
case 'р':
strcat(resultStr,"r");
break;
case 'с':
strcat(resultStr,"s");
break;
case 'т':
strcat(resultStr,"t");
break;
case 'у':
strcat(resultStr,"u");
break;
case 'ф':
strcat(resultStr,"f");
break;
case 'х':
strcat(resultStr,"kh");
break;
case 'ц':
strcat(resultStr,"ts");
break;
case 'ч':
strcat(resultStr,"ch");
break;
case 'ш':
strcat(resultStr,"sh");
break;
case 'щ':
strcat(resultStr,"shch");
break;
case 'ь':
strcat(resultStr,"''");
break;
case 'ю':
strcat(resultStr,"yu");
break;
case 'я':
strcat(resultStr,"ya");
break;
case 'А':
strcat(resultStr,"A");
break;
case 'Б':
strcat(resultStr,"B");
break;
case
'В':
strcat(resultStr,"V");
break;
case 'Г':
strcat(resultStr,"H");
break;
case 'Ґ':
strcat(resultStr,"G");
break;
case 'Д':
strcat(resultStr,"D");
break;
case 'Е':
strcat(resultStr,"E");
break;
case 'Є':
strcat(resultStr,"Ye");
break;
case 'Ж':
strcat(resultStr,"Zh");
break;
case 'З':
strcat(resultStr,"Z");
break;
case 'И':
strcat(resultStr,"Y");
break;
case 'І':
strcat(resultStr,"I");
break;
case 'Ї':
strcat(resultStr,"Yi");
break;
case 'Й':
strcat(resultStr,"Y");
break;
case 'К':
strcat(resultStr,"K");
break;
case 'Л':
strcat(resultStr,"L");
break;
case 'М':
strcat(resultStr,"M");
break;
case 'Н':
strcat(resultStr,"N");
break;
case 'О':
strcat(resultStr,"O");
break;
case 'П':
strcat(resultStr,"P");
break;
case 'Р':
strcat(resultStr,"R");
break;
case 'С':
strcat(resultStr,"S");
break;
case 'Т':
strcat(resultStr,"T");
break;
case 'У':
strcat(resultStr,"U");
break;
case 'Ф':
strcat(resultStr,"F");
break;
case 'Х':
strcat(resultStr,"Kh");
break;
case 'Ц':
strcat(resultStr,"Ts");
break;
case 'Ч':
strcat(resultStr,"Ch");
break;
case 'Ш':
strcat(resultStr,"Sh");
break;
case 'Щ':
strcat(resultStr,"Shch");
break;
case 'Ь':
strcat(resultStr,"''");
break;
case 'Ю':
strcat(resultStr,"Yu");
break;
case 'Я':
strcat(resultStr,"Ya");
break;
default:
temp[0] = srcStr[i];
temp[1] = 0;
strcat(resultStr,temp);
break;
}
}
}
void Clear(char *str)
{
for(int i=0;i<strlen(str);i++)
{
str[i]=0;
}
}