Схемы алгоритмов
Главная функция main:
Функция void analysis();
Функция void custom();
Функция void FileRead();
Функция void SaveTo();
Листинг программы
#include <iostream>
#include <conio.h>
#include <fstream>
#include <Windows.h>
using namespace std;
char MenuPointer;
char fileName[255],Buff[1000],FileString[16000];
int WordQuant=0,SentQuant;
char FirstWord[30][255],znak[40];
int Col[40];
int N,J,K,Z,count,Z1=0;;
void FileRead()
{
cout<<"Enter a name for the file format name.txt\n(file must be located in the same directory with the program):\n";
gets(fileName);
ifstream fin(fileName, ios_base::in);
fin.getline(FileString, 1000);//для очистки старой строчки считываем сперва первую строку в строку документа
while (!fin.eof())
{
strcat(FileString," ");
fin.getline(Buff, 1000);
strncat(FileString,Buff,strlen(Buff));
}
strcat(FileString," ");
cout<<FileString;//Текстовая строка
fin.close();
}
void Custom()
{
cout<<"Enter the text for analysis:\n";
gets(FileString);
//cout<<FileString;//Текстовая строка
}
void Analysis()
{
N=strlen(FileString);
WordQuant=0;//количество слов
SentQuant=0;//количество предложений
for (int i=0;i<N;i++)
{
if (i==0)//Первое слово первого предложения
{
while (FileString[J]!=' ' && FileString[J]!=',' && FileString[J]!='.' && FileString[J]!='!' && FileString[J]!='?')
{
FirstWord[K][J]=FileString[J];
//cout<<FileString[J]<<endl;
//cout<<FirstWord[0][J]<<endl;
J++;
}
FirstWord[K][J]='\0';
cout<<FirstWord[K]<<endl;
K++;
}
if (i>1 && FileString[i-1]==' ' && (FileString[i-2]=='.' || FileString[i-2]=='!' || FileString[i-2]=='?'))//поиск первого слова
{
J=i;
int U=0;
while (FileString[J]!=' ' && FileString[J]!=',' && FileString[J]!='.' && FileString[J]!='!' && FileString[J]!='?')
{
FirstWord[K][U]=FileString[J];
//cout<<FirstWord[K][U];
J++;
U++;
}
FirstWord[K][U]='\0';
cout<<FirstWord[K]<<endl;
K++;
}
if (FileString[i]==' ')//Количество слов в предложениях
{
WordQuant++;//количество слов общее
count++;//количество слов в текущем предложении
if (FileString[i-1]=='!' || FileString[i-1]=='?' || FileString[i-1]=='.')
{
Col[Z]=count;
Z++;
count=0;
}
}
if (i>1 && FileString[i]==' ' && (FileString[i-1]=='!' || FileString[i-1]=='?' || FileString[i-1]=='.')) SentQuant++;//количество предложений
if (i>1 && FileString[i]==' ' && (FileString[i-1]=='!' || FileString[i-1]=='.' || FileString[i-1]=='?')) //завещающий знак
{
znak[Z1]=FileString[i-1];
Z1++;
}
}
for (int i=0;i<Z;i++)
{
cout<<"Number of words in "<<i+1<<"offer equal"<<Col[i]<<endl;
cout<<"The final mark in"<<i+1<<" sentence: "<<znak[i]<<endl;
cout<<"The first word in "<<i+1<<" sentence: "<<FirstWord[i]<<endl;
}
cout<<"Word Count is:"<<WordQuant<<endl;
cout<<"Number of offers is: "<<SentQuant<<endl;
}
void SaveTo()
{
ofstream fout("answer.txt");
for (int i=0;i<Z;i++)
{
fout<<"Number of words in "<<i+1<<" offer equal "<<Col[i]<<endl;
fout<<"The final mark in "<<i+1<<" sentence: "<<znak[i]<<endl;
fout<<"The first word in "<<i+1<<" sentence: "<<FirstWord[i]<<endl;;
}
fout<<"Word Count is: "<<WordQuant<<endl;
fout<<"Number of offers is: "<<SentQuant<<endl;
fout.close();
cout<<"The data is stored in a file in the program directory answer.txt."<<endl;
}
main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Col[0]=0;
while (MenuPointer!='0')
{
system("cls");
cout<<"Select an action:\n";
cout<<"1 - Data input from file\n";
cout<<"2 - Manual data input\n";
cout<<"3 - Text Analysis\n";
cout<<"4 - Save the file to the report\n";
cout<<"0 - Exit\n";
MenuPointer=getch();
switch(MenuPointer)
{
case '1': {
system("cls");
FileRead();
cout<<endl;
system("pause");
break;
}
case '2': {
system("cls");
Custom();
cout<<endl;
system("pause");
break;
}
case '3': {
system("cls");
Analysis();
cout<<endl;
system("pause");
break;
}
case '4': {
system("cls");
SaveTo();
cout<<endl;
system("pause");
break;
}
}
}
}
