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

Программа «Словарь». - C++

Восстановить пароль Регистрация
 
Cepera92
 Аватар для Cepera92
0 / 0 / 0
Регистрация: 09.04.2010
Сообщений: 5
17.12.2010, 23:21     Программа «Словарь». #1
Программа «Словарь». Свойства: Название термина, описание. Функции: поиск термина по названию, отображение всех терминов на заданную букву в алфавитном порядке, добавление нового термина в словарь. Словарь содержится в текстовом файле.


(пункт про поиск термина целим словом)
в главной программе (int main) мой кусок кода работает... мне же( как в задании написано нужно сделать всё в методах класса, там же без матов компилятора не обошлоь, при чем я не доганяю каких...


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
    fstream f("file.txt");
    vector<Dictionary> Slovar;
    while(true)
    {
        Dictionary t;
        f>>t.term;
        if (f.eof())
            break;
        f>>t.explane;
        if (f.eof())
            break;
        Slovar.push_back(t);
    }
    while(true)
    {
        cout<<"Enter term (or stop)"<<endl;
        string term;
        cin>>term;
        if (term=="stop")
            break;
        for(int i =0 ; i<Slovar.size(); ++i)
        {
            if (Slovar[i].term==term)
                cout<<term<<": "<<Slovar[i].explane<<endl;
        }
    }

еще одно, момент с "отображение всех терминов на заданную букву в алфавитном порядке" правильный ли ход "мышления": присвоить массиву Char массив значений term произвести поиск нужного символа и при соответствии передать в массим term2(к приимеру) в нём же отредактировать( ну в алфавитном порядке) и выдать на экран...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2010, 23:21     Программа «Словарь».
Посмотрите здесь:

Запись в словарь! C++
Словарь C++
C++ словарь t9
Частотный словарь. C++
C++ Словарь map
словарь C++
Словарь C++
Структура. Словарь C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
18.12.2010, 00:47     Программа «Словарь». #2
еще одно, момент с "отображение всех терминов на заданную букву в алфавитном порядке" правильный ли ход "мышления": присвоить массиву Char массив значений term произвести поиск нужного символа и при соответствии передать в массим term2(к приимеру) в нём же отредактировать( ну в алфавитном порядке) и выдать на экран...
не знаю на счет всей программы... Но не проще ли сравнивать первый символ термина с заданным - если они равны - выводить термин, иначе - нет.

Добавлено через 2 минуты
хотя да... если в алфавитном порядке тут еще будет нужен массив указателей на эти строки...
Вобщем можно сделать нечто: посчитать кол-во совпадений, сделать массив ссылок на эти строки. Отсортировать порядок ссылок и выводить строки в соответствующем порядке.
Cepera92
 Аватар для Cepera92
0 / 0 / 0
Регистрация: 09.04.2010
Сообщений: 5
18.12.2010, 13:24  [ТС]     Программа «Словарь». #3
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
using namespace std;
 
class Term
{
    public:
    string term;
    string explane;
    Term(string _term, string _explane)
    {
        term=_term;
        explane=_explane;
    }
};
 
class Dictionary
{
    public:
    vector<Term> TermList;
 
    void AddTerm(string _term, string _explane)//добавить термин
    {
        Term t(_term,_explane);
        TermList.push_back(t);
    }
 
    void Search(string search_term)//Поиск
    {
        fstream f("file.txt");
        while(true)
        {
            term t;
            f>>t.term;
            if (f.eof())
                break;
            f>>explane;
            if (f.eof());
            break;
            TermList.push_back(t);
        }
        while(true)
        {
            cout<<"Vvedite termin: (ili stop)"
            string term;
            cin>>term;
            if (term== "stop")
                break;
            for (int i=0; i<TermList.size(); ++i)
            {
                if(TermList[i].term==term)
                    cout<<term<<" : "<<TermList[i].explane<<endl;
            }
        }
    }
 
    void SearchOneChar()// Поиск по одному символу
    {
 
    } 
 
    void ReadFromFile(string file_name)
    {
                    //Чтение из файла
    string _term, _explane;
 
    ifstream f("file.txt");
 
    while(!f.eof())
        { 
            f>>_term;
            f>>_explane;
            AddTerm(_term,_explane);
        }
    }
};
 
 
 
int main()
{
Dictionary Slovar;
Slovar.Search();
}
вот тот же код(ну почти) только в интерпритовке другой
вот что пишет отладчик еа строке "term t;" метода поиск...
error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "t"
объясните почему пожалуйста? и как подобное исправить... ведь главной программе этот код у меня работал, а в методе материться что изменилось??
Yandex
Объявления
18.12.2010, 13:24     Программа «Словарь».
Ответ Создать тему
Опции темы

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