Форум программистов, компьютерный форум CyberForum.ru

Создать текстовый файл с предметным указателем встречающихся в тексте слов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ По перестановке определить его номер в лексикографическом перечислении всех перестановок множества http://www.cyberforum.ru/cpp-beginners/thread1199030.html
По перестановке определить его номер в лексикографическом перечислении всех перестановок множества {1,2,…,n}. Формат входных данных: Входной файл содержит в первой строке одно число n – количество элементов в перестановке, во второй – перестановку. Формат выходных данных: Входной файл должен содержать номер заданной перестановки в лексикографическом перечислении всех перестановок. Примеры:...
C++ Запуск системных команд с++ Нужно выполснить пару системных команд, но они должны выполняться из под имени администратора. Можно ли из поги вызвать команды из под имени админа? http://www.cyberforum.ru/cpp-beginners/thread1199024.html
Перестановки. Перевод с Pascal на C++ C++
Пожалуйста, помогите перевести эту программу на C++:help: Program z3; type Pere=array of byte; var file1,file2: text; {файловые переменные, связанные с файлами ввода и вывода} N: byte; {количество станков} effect: array of byte; {массив } status: array of integer; {массив } flag: boolean;
C++ Определить попадание точки в заштрихованную область
C++ Как исправить ошибки. Подскажите пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread1198979.html
// пртотипы функций void cr_base(); void pr_base(int n); void cr_child(); void pr_child(); void ov_un(); void main_menu(); void uslovie(); void help(); void zastavka();
C++ Получить мультфильм "Круги на воде" Помогите с заданием!!! Получить мультфильм "Круги на воде" , используя семь концентрических окружностей. Центры окружностей должны быть совмещены с центром экрана, а радиусы изменяться от 42 до 82 пиксел , увеличиваясь на 7 пиксел с каждой следующей окружностью. Иллюзия движения должна создаваться последовательной сменой цветов всех окружностей, начиная с внутренней и кончая внешней. Процесс... подробнее

Показать сообщение отдельно
andrei21364
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 1
04.06.2014, 16:38     Создать текстовый файл с предметным указателем встречающихся в тексте слов
помогите разобрать программу. напишите коментарии.

Требуется: осуществить обработку текстового файла, содержащего некоторый многостраничный текст. Будем считать, что одна страница текста состоит из 60 строк. Результат обработки – текстовый файл, содержащий предметный указатель встречающихся в тексте слов. В предметном указателе перечисляются слова в алфавитном порядке. Для каждого слова указывается количество его вхождений в текст и номера страниц, на которых встречается это слово. При формировании предметного указателя, слова, начинающиеся с разных букв
алфавита разделяются на группы:
А
a.............................120: 1 2 3 4 5 6 7 8 9 10 11 12
and............................89: 1 2 3 6 8 9 12
apple...........................3: 7 9
B
bag.............................2: 11 12
big.............................7: 5 7 10
C
cake............................1: 3
circle..........................3: 8 9
. . . и т.д.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <fstream>
#include <iomanip>
#include <vector> 
#include <set>
#include <map>
#include <string>
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
 
int main()
{
    char punct[6]={'.',',',':',';','!','?'};
    set<char> punctuation(punct, punct +6);//??
    ifstream in("input.txt");
    map <string, int>wordcount;//??
    string s;
    while (in>>s)//??
    {
        int n =s.size();
        if (punctuation.count(s[n-1]))
            s.erase(n-1,n); 
        if(isupper(s[0])) s[0]=s[0]+32;
        ++wordcount[s];
    }
    in.close();
    ofstream out ("output.txt");
    map<string,int> ::const_iterator it=wordcount.begin();//??
    for(it; it!=wordcount.end();it++)
        out<<setw(20)<<left<<it->first<<setw(4)<<right<<it->second<<endl;
    char i='a';
    out<<endl;
    out<<char(i-32)<<":"<<endl;//??
    for(it=wordcount.begin();it!=wordcount.end();it++)//??
        if((*it).first[0]==i) out<<setw(20)<<left<<it->first<<setw(4)<<right<<it->second<<endl;
        else  
        {
            i=(*it).first[0]; out<<endl<<char(i-32)<<":"<<endl; out<<setw(20)<<left<<it->first<<setw(4)<<right<<it->second<<endl;
        }
        out.close();
        return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru