Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 5
1

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

06.05.2013, 19:23. Просмотров 771. Ответов 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 - Совпадения
        }
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2013, 19:23
Ответы с готовыми решениями:

Хеширование базы данных
Имеется база данных и вывод её на экран, как произвести хэширование отдельно каждого поля Иванов...

Использование псевдопеременных: bd (3,5) = s, где bd - база данных, s - элемент базы данных, тогда с 3 по 5 элементы базы данных заменить на элемент s.
всем доброго времени суток! есть у меня класс bd, массив элементов этого класса table, а вот сам...

При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных (8961)
При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных...

Восстановить поврежденный файл базы данных SQLite (сделать дамп запароленного файла базы данных)
Вообщем не понятно после чего перестал открываться файл базы данных с ошибкой - &quot;database disk...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2013, 19:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создание базы данных, открытие из под одной базы данных MS Access
Здравствуйте. В общем, C# начал заниматься только вот и сразу была поставлена задача создать базу...

Как узнать имя базы данных и сервер базы данных?
База данных находится на локальной машине

Как сравнить переменную со строкой базы данных или как присвоить переменной значение строки базы данных ?
подскажите пожалуйста как мне сравнить переменную типа string с каким нибудь строкой базы данных....

Как обеспечить зависимость значений для ввода в поле базы данных от значения в другом поле базы данных?
Есть 2 таблицы справочников (все факторы и все возможные значения - tblDicFactor и...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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