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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
boycott
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 5
#1

Хеширование элементарной базы данных - C++

06.05.2013, 19:23. Просмотров 352. Ответов 0
Метки нет (Все метки)

Товарищи, усиленно прошу помощи!!!
Часть программы уже написана, но как ее закончить или изменить, чтобы все работало верно я не знаю. Точнее есть идеи, но реализовать я их не могу
Собственно задание
Составить программу для поиска по хэшам данных. В модуле поиска, предусмотреть реализацию обработки случая, при котором хэш-коды различных данных совпадают. Дана таблица текстовой базы данных записями: фамилия; имя; отчество; телефон. Произвести хэширование и поиск по номеру телефона.
База данных

| Pavlov | Alexandr | Sergeevich | 5552001 |
| Zelenov | Pavel | Antonovich | 5352661 |
| Saveliev | Anton | Andreevich | 5562772 |
| Grigoriev | Sergey | Igorevich | 5552996 |
| Petrov | Ivan | Alekseevich | 5227662 |
| Derevtsova | Anna | Alekseevna | 5659887 |
| Yakovleva | Alexandra | Sergeevna | 5237663 |
| Sinyaev | Nikolay | Mihailovich | 4236587 |
| Sergeev | Grigory | Pavlovich | 6548798 |
| Ivanov | Petr | Ivanovich | 7654321 |

Уже написанный код
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
void file_scan()
{
    char symbol;
    ifstream data;
    cout << "Ваша база данных: " << endl;
    cout << "" << endl;
    data.open("database.txt", ios::binary);
    while(!data.eof())
    {
        data.get(symbol);
        source_text = source_text + symbol;
    }
    source_text.erase(source_text.size()-1,1);
    cout << source_text << endl;
    data.close();
}
void format_file()
{
    for (int i = 0; i < source_text.size(); i++)
    {
        if (source_text[i] == ' ')
        {
            continue;
        }
        new_text = new_text + source_text[i];
    }
    cout << new_text << endl;
}
void telefoni_string()
{
    int kol_razdel=0;
    for (int i = 0; i < new_text.size(); i++)
    {
        if (new_text[i] == '|')
        {
            kol_razdel++;
        }
        if (kol_razdel%(telef_stolb+1) == telef_stolb)
        {
            if (new_text[i] == '|')
            {
                telefoni = telefoni + ' ';
            }
            else
            {
                telefoni = telefoni + new_text[i];
            }
        }
    }
    cout << "Столбец телефонов: " << telefoni << endl;
}
void HASH()
{
    int hash=0;
    for (int i = 1; i < telefoni.size(); i++)
    {
        if ((i == telefoni.size()-1) || (telefoni[i] == ' '))
        {
            if (telefoni[i] == ' ')
            {
                stringstream stream;
                stream << hash;
                string stroka;
                stream >> stroka;
                telefoni_hash = telefoni_hash + stroka + ' ';
                hash = 0;
            }
            if (i == telefoni.size()-1)
            {
                hash = hash + telefoni[i];
                stringstream stream;
                stream << hash;
                string stroka;
                stream >> stroka;
                telefoni_hash = telefoni_hash + stroka + ' ';
                hash = 0;
            }
        }
        else
        {
            hash = hash + telefoni[i];
        }
    }
 
    cout << "Хеш столбца с телефонами: " << telefoni_hash << endl;
}
void search()
{
    string iskomoe = "";
    int iskomoe_hash = 0;
    int ss=0;
    cout << "Введите искомый номер телефона: " ;
    cin >> iskomoe;
    for (int i = 0; i < iskomoe.size(); i++)
    {
        iskomoe_hash = iskomoe_hash + iskomoe[i];
    }
    cout << "" << endl;
    cout << "Хеш искомого номера телефона: " << iskomoe_hash << endl;
    
    for (int i = 0; i < telefoni_hash.size();)
    {
        if (telefoni_hash.find(iskomoe, i) < 6000)
        {
            i = telefoni_hash.find(iskomoe, i) + 1;
            ss++;       // search sovpadeniya - Совпадения
        }
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2013, 19:23     Хеширование элементарной базы данных
Посмотрите здесь:

Ошибка в элементарной программе - C++
Написал в visual studio 2012 следующее: #include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include &lt;conio.h&gt; using namespace std; int...

Ошибка в элементарной сортировке - C++
//sortirovka n=9; for(flag=false;flag=false;) { flag=false; for(i=0; i&lt;n; i++) { if (a&gt;a) {swap(a,a);...

Помогите с элементарной ппрограммой на C - C++
Я ее начал делать, но наткнулся на то, что не могу написать код перевода из систем счисления.... Помогите пожалуйста! Вот условие...

Написать прогу с элементарной функцией y=x*x - C++
Написать прогу с элементарной функцией y=x*x.

Не могу определить элементарной ошибки - C++
Почему-то значение summ (сумма правильных ответов) иногда не правильно обрабатывается (не смог выявить закономерности при каких условиях),...

Базы данных на си - C++
не понимаю в чем ошибка #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;math.h&gt; #define n 3; #define...

С++ базы данных - C++
Я понимаю, что возможно следующие вопросы уже обсуждались на этом форуме, возможно и не раз, но по поиску ничего вразумительного (понятного...

Базы данных - C++
Сформировать двоичный файл из элементов структуры &quot;Государство&quot;, состоящей из названия; столици; численности населения; занимаемой...

Базы данных - C++
Какую технологию лучше использовать для баз данных для обработки в С++ ?

Структуры и базы данных - C++
Как в С++ сделать базу данных??? Организовать базу данных для поликлиники, содержащий следующую информацию: шифр клиента, фамилия, имя,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru