Вы находитесь на странице: 1из 5

Лабораторная работа №6 Сидорин Александр ФОП 15

Задание:
Разработать программу, считывающую из заранее созданного текстового файла
фрагмент текста объёмом 300 – 400 символов, содержащий буквы русского алфавита,
цифры, знаки пунктуации и пробела. Текст должен быть представлен в отдельном окне.
Программа должна при выводе проанализировать текст и выделить цветом слова,
удовлетворяющие заданному варианту, а также подсчитать их и вывести результат в
отдельном окне.
Выделить цветом и подсчитать слова, содержащие четное число звонких
согласных.

Реализация:
Для реализации программы необходимо воспользоваться функцией HANDLE
hndl=GetStdHandle(STD_OUTPUT_HANDLE).
В начале программы установим основной цвет – белый:
SetConsoleTextAttribute(hndl,FOREGROUND_GREEN|
FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY) (1)
При выполнении условия задачи установим цвет – красный:
SetConsoleTextAttribute(hndl,FOREGROUND_RED|
FOREGROUND_INTENSITY)
(2)
При не выполнении условия задачи установим цвет – белый:
SetConsoleTextAttribute(hndl,FOREGROUND_GREEN|
FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY) (3)
Графическая схема:
Текст программы:
//Лабораторная работа №6. Работа с текстовыми файлами. Выполнил
Сидорин Александр группа ФОП 15
#include <iomanip>
#include <iostream>
#include <cstdlib>
#include <stdlib.h>
#include <Windows.h>
#include <conio.h>
#include <fstream>

HANDLE hndl=GetStdHandle(STD_OUTPUT_HANDLE);
using namespace std;

int main()
{ SetConsoleTextAttribute(hndl,FOREGROUND_GREEN|
FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int k, j, N;
char ch;
char str[401];
char slovo[50];
const char s[]="бвгджзлмнрйБВГДЖЗЛМНРЙ";
//const char s[]="bcdgjmnrnwzBCDGJMNRNWZ";
for ( int i=0; i<=400; i++ ) str[i] = 0;
ifstream fin("1.txt");
for ( int i=0; i<=400; i++ )
{ fin.get(ch);
str[i] = ch;
}
cout << str << endl;
j = 0; k = 0;
for ( int i=0; i<=400; i++ )
{ if (str[i]!=' ')
{ slovo[j] = str[i];
j++;
}
else { for ( int l=0; l<=j; l++ )
for ( int L=0; L<=21; L++ ) if ( slovo[l]==s[L] ) k++;
if ( ( k!=0) && (k % 2 == 0) )
{ SetConsoleTextAttribute(hndl,FOREGROUND_RED|
FOREGROUND_INTENSITY);
cout << slovo << " ";
N++;
}
else { SetConsoleTextAttribute(hndl,FOREGROUND_GREEN|
FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY);
cout << slovo << " ";
}
for ( int p=0; p<=j; p++ ) slovo[p]=0;
j = 0; k = 0;
}
}
SetConsoleTextAttribute(hndl,FOREGROUND_GREEN|FOREGROUND_RED|
FOREGROUND_BLUE|FOREGROUND_INTENSITY); cout <<
endl;
cout << "Количество слов удовлетворяющих условию задачи: " << N
<< endl;
fin.close();
return 0;
}

Результат