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

Хеш-таблица и хеш-функция. Проверка на ввод существующих данных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить регулярное выражение под приведенные требования http://www.cyberforum.ru/cpp-beginners/thread1080106.html
Может ли кто-нибудь написать или подсказать, как пишется регулярное выражение для следующих условий: 1) Русские буквы с различением регистра 2) Пробелы могут быть использованы 3) Пустая строка не допустима 4) Пробел в начале строки и в конце строки - не допустим 5) Количество пробелов подряд - не более одного И есть так же дополнительные условия, которые можно и не выполнять, если это...
C++ Изменение порядка элементов массива на обратный и ввести его в новый массив Нужно изменить порядок массива на обратный, ввести его в ново-созданный массив. Нужно написать код через void или int, не используя cout Есть такой код, но это не совсем то что нужно! int reverse(int arr, int size) { for (int i = 0,x = size / 2;i < x;++i){ int a = arr; arr = arr; arr = a;} for (int i = 0; i < size; ++i) http://www.cyberforum.ru/cpp-beginners/thread1080097.html
C++ Прочесть ту или иную строку из файла
Есть у меня текстовый файл с кириллицей, хочу обращаться в этом файле к определенным строкам, которые содержат id книги(#1,#2 и #3) через определенные промежутки, что-то у меня не получается, помогите, знающие. Вот biblioteka.txt #1 Жанр Комильфо 52 Буткевич 2012 Москва*
C++ Замена русских символов пробелами
Необходимо написать программу по замене русских символов на пробелы(_) Моя программа запускается, но почему-то вместо пробелов какие-то непроизносимые символы, помогите исправить Буду очень признателен за помощь. #include "stdafx.h" #include <conio.h> #include <iostream> #include <locale.h>
C++ Итератор http://www.cyberforum.ru/cpp-beginners/thread1080067.html
Вот задача: Реализовать шаблон упорядоченного массива как двусвязного списка. Операцию доступа по индексу заменить итератором. Вопрос: как понять второе предложение в условии?
C++ потоки на семафорах помогите правильно расставить в коде семафоры. Потоки реализуют запись в циклический буфер поочередно через случайное время. Если буфер переполнен, то поток записи в буфер ожидает, пока поток на чтение не считает с него символ. #include <stdio.h> #include <pthread.h> #include <stdlib.h> #include <unistd.h> #include <iostream> #include <time.h> //для nanosleep #include <fcntl.h> // для... подробнее

Показать сообщение отдельно
Fintt
 Аватар для Fintt
10 / 10 / 0
Регистрация: 13.02.2012
Сообщений: 94
24.01.2014, 09:01     Хеш-таблица и хеш-функция. Проверка на ввод существующих данных
Помогите доделать проверрку на ввод информации. В общем при вводе данных о новом сотруднике, таб номер не должен повторяться, т.к. он 1 единственный. Мне нужна такая проверка, я сам уже не могу сделать, я ввожу таб номер, если его нет в списке, то ввожу дальше фам и оклад, а если есть, выводит сообщение что такой номер уже есть и ввести заново. Благодарен заранее.
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
#include <stdlib.h>
#include <fstream.h>
#include <conio.h>
#include <stdio.h>
#define N 103
 
struct info
    {
     int tab;
     char fam[20];
     float oklad;
     info()
     {
      tab=0; oklad=0;
     }
    }; info T[N];
 
int hesh(int key){ return key % N;}
void forms(char fl[]);//formiruet hesh tabl T iz faila fl
void output();//vivod mas T na ekran
int search(int p);//funkc vozvrash index zapisi s tab nomerom=p ili -1
void add (info g);//dobavl zapic g v tabl T
void del (info g);//udalenie
 
void main()
    {
     int z,k,s;
     info m,n;
     clrscr();
     forms("1.txt");
     cout<<endl;
     output();
     cout<<"Vvedidet tab fam oklad novogo sotr:"<<endl;
     while (cin>>m.tab)                                               //
        {                                                               //
         if (search(m.tab)!=-1)                                  //
            cout<<"3anogo"<<endl;                         //////////тут проверка на ввод делал по разному
                         else                                                  //
            cin>>m.fam; cin>>m.oklad; add(m);        //
        }                                                              //
     ofstream f("1.txt",ios::app);
     f<<m.tab<<'\t'<<m.fam<<'\t'<<'\t'<<m.oklad<<endl;
     output();
     for (int i=0; i<3; i++)
     {
     cout<<"\n\nVvedite tab nom poiska:";
     cin>>z;
     k=search(z);
     if (k==-1) cout<<"Ne naiden"; else
     cout<<T[k].tab<<'\t'<<T[k].fam<<'\t'<<T[k].oklad<<'\n';
     }
     cout<<endl<<"Vvedidet tab nomer del:"<<endl;
     cin>>n.tab;
     del(n);
     output();
     getch();
    }
/////////////////////////////////////////////////////////////////////////////
void add (info g)
    {
     int j=0;
     int i=hesh(g.tab);
     while (T[i].tab!=0 && j<N)
        {
         i=hesh(i+1);
         j++;
        }
     if (j==N){ cout<<"Tabl perepolnena";getch(); exit (0);}
        else T[i]=g;
    }
/////////////////////////////////////////////////////////////////////////////
void forms(char fl[])
    {
     ifstream F(fl);
     info x;
     while (F>>x.tab>>x.fam>>x.oklad)
     add(x);
    }
/////////////////////////////////////////////////////////////////////////////
void output()
      {
       cout<<"index tab fam oklad   "<<endl;
       for (int i=0; i<N; i++)
       if (T[i].tab!=0)
       cout<<i<<'\t'<<T[i].tab<<'\t'<<T[i].fam<<'\t'<<T[i].oklad<<'\n';
      }
/////////////////////////////////////////////////////////////////////////////
int search (int p)
      {
       int j=0, i=hesh(p);
       while (j++<N && T[i].tab)
        {
         if (T[i].tab==p)
            return i;
         i=hesh(i+1);
        }
       return -1;
      }
/////////////////////////////////////////////////////////////////////////////
void del (info g)
      {
       int i=hesh(g.tab);
       if (search) T[i].tab=NULL;
      }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru