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

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

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

Требуется: осуществить обработку текстового файла, содержащего некоторый многостраничный текст. Будем считать, что одна страница текста состоит из 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 16:38     Создать текстовый файл с предметным указателем встречающихся в тексте слов
Посмотрите здесь:

Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? C++
дан текстовый файл, в тексте нати количества одинаковых букв C++
Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? C++
C++ priority_queue< int , char*, CompareHeap1 > pqMax (создать очередь с приоритетом для поиска 10 наиболее и наименее часто встречающихся слов) C++
C++ Перевод с C# на С++ (в заданном тексте найти 20 наиболее часто встречающихся слов с указанием количества использования каждого из них)
дан входной текстовый файл. Вывести в выходной файл строку с максимальным количеством слов C++
C++ STL: Сортировка слов по количеству согласных букв; вывод слов, встречающихся в списке более одного раза
C++ Создать текстовый файл и записать в двоичный файл

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hom4ka
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 78
17.10.2014, 13:18     Создать текстовый файл с предметным указателем встречающихся в тексте слов #2
Можно такую же лабу на c# ?
Yandex
Объявления
17.10.2014, 13:18     Создать текстовый файл с предметным указателем встречающихся в тексте слов
Ответ Создать тему
Опции темы

Текущее время: 08:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru