Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 16.12.2020
Сообщений: 57
1

Разработайте приложение, которое использует хеш-таблицу для организации прямого доступа к записям файла

05.10.2021, 13:51. Показов 1099. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработайте приложение, которое использует хеш-таблицу для организации
прямого доступа к записям файла, структура записи которого приведена в
варианте.
Разработайте и реализуйте функции для операций:
1) Хеш-функцию (метод определите сами).
2) Прочитать запись из файла и вставки запись в таблицу (запись
включает: ключ и номер записи с этим ключом в файле).
3) Удалить запись из таблицы и соответственно из файла.
4) Найти запись с заданным ключом в файле, используя хеш-таблицу.
5) Выполнить рехеширование.
2. Разработайте такие тесты, чтобы возникли коллизии.
3. Разработайте такие тесты, чтобы требовалось рехеширование.
4. Заполните файл большим количеством записей. Определите время чтения
записи с заданным ключом для первой записи файла, для последней и где-то
в середине. Убедитесь (или нет), что время доступа для всех записей
одинаково.
5. Выведите список индексов, которые формируются при вставке элементов в
таблицу.

Цепное хеширование
Пациент поликлиники: номер карточки, код
хронического заболевания, Фамилия лечащего
врача


Подскажите, пожалуйста, как решить ошибку. В 37 строке
Необработанное исключение по адресу 0x7BAAF2F6 (ucrtbased.dll) в ConsoleApplication37.exe: Недопустимый параметр был передан функции, для которой недопустимые параметры вызывают неустранимую ошибку.



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
#include <iostream>
#include <vector>
#include <list>
#include <fstream>
#include <string>
using namespace std;
int m = 7;
struct Pacient {
    int number;
    string name;
    int ill;
};
 
int Hash(int key) {
    return key % m;  //123%7=4 (119)
}
void add(ifstream& fn, vector<list<Pacient>>& t);
 
int main()
{
    vector<list<Pacient>> t(m);
    //подготовка двоичного файла = исходных данных
    ifstream fn("1.txt");
    ofstream fout("2.txt", ios::binary);
    Pacient x;
    while (!fn.eof()) {
        fn >> x.number >> x.name >> x.ill;  //считали из текстового 
        fout.write((char*)&x, sizeof(x));   //записали в бинарный
    }
    fn.close();
    fout.close();
    //начало работы
    fn.open("2.txt", ios::binary);
    while (!fn.eof())
        add(fn, t);
 
    list<Pacient>::iterator it;
    for (int i = 0; i < t.size(); i++)
        if (t[i].size() != 0) {
            cout << i << endl;
            for (it = t[i].begin(); it != t[i].end(); it++) {
                x = *it;
                cout << x.name << " " << x.number << " " << x.ill << endl;
            }
            cout << endl;
        }
 
 
}
void add(ifstream& fn, vector<list<Pacient>>& t) {
    if (!fn.eof()) {
        Pacient x;
        fn.read((char*)&x, sizeof(x));
        cout << x.name << " " << x.number << " " << x.ill << endl;
        int numb = Hash(x.number);   //numb = 4
        t[numb].push_front(x);
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2021, 13:51
Ответы с готовыми решениями:

Реализация прямого метода доступа к записям файла для обработки с использованием хеш-функции
Реализовать программу прямого метода доступа к записям в файле для обработки. Файл представляет...

Реализация прямого метода доступа к записям файла для обработки с использованием хеш-функции
Реализовать программу прямого метода доступа к записям в файле для обработки. Файл представляет...

Разработать многопоточное Win32-приложение, которое использует диалоговое окно для управления потоками процессов
Разработать многопоточное Win32-приложение, которое использует диалоговое окно для управления...

Разработайте приложение, которое выводит ресторанный счет
Помогите, пожалуйста, сейчас сессия, нужно сдать зачет через несколько дней... нужно написать эту...

Разработайте приложение, которое помещает элементы в массив, а потом вычисляет сумму
С клавиатуры вводятся количество чисел N и сами эти числа. Разработайте приложение, которое...

0
05.10.2021, 13:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2021, 13:51
Помогаю со студенческими работами здесь

Создать приложение, которое использует многопоточность при своей работе с RichTextBox
Создать приложение, которое использует многопоточность при своей работе: обновляет содержимое...

Разработать приложение, которое выводит таблицу стоимости поездки для расстояния от а до b
разработать приложение,которое выводит таблицу стоимости поездки для расстояния от а до b км с...

Разработайте приложение, которое позволяет заполнять список ListBox элементами, вводимыми пользователем в Edit1
2. Разработайте приложение, которое позволяет заполнять список ListBox элементами, вводимыми...

Разработайте консольное приложение, которое при запуске выдает «меню» со списком возможных заданий
Разработайте консольное приложение, которое при запуске выдает «меню» со списком возможных заданий,...

Разработайте приложение, которое позволяет ввести пользователю в компонент Editl любое число (даже отрицательное)
1. Разработайте приложение, которое позволяет ввести пользователю в компонент Editl любое число...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru