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

Индексация. - C++

Восстановить пароль Регистрация
 
sever1313
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 61
03.11.2010, 08:25     Индексация. #1
Народ объясните туповатому студенту
задание такое
Создать некую библиотеку должников где есть поля: имя,книга и дата
Записей должно быть не менее 10,и все эти записи с помощью индексов и фильтров
отсортировать по имени по убыванию,как отсортировать и вывести я знаю,а как работать через фильтры и индексы до меня в упор не доходит,объясните на пальцах,очень прошу.
вот что сделала
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
using namespace std;
const int n=10;
struct BIBL
{
char name[20];
char kniga[10];
char dat[10];
};
BIBL stud[n];
int add()
{
        ifstream fil("input.txt");  
        int i=0;    
        while(!fil.eof())
        {  
                fil>> stud[i].name >> stud[i].kniga >> stud[i].dat ;   
                i++;    
        }   
        while(i--)
        { 
                printf("имя  %s книга  %s дата  %s\n",stud[i].name,stud[i].kniga,stud[i].dat);  
        }
        return 0;
}
int main ()
{
   setlocale(LC_ALL, "rus");
   add();
 
   getch();
}
Добавлено через 9 часов 34 минуты
неужели никто не может объяснить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2010, 08:25     Индексация.
Посмотрите здесь:

C++ Индексация двухмерного массива char
Индексация C++
C++ Индексация массива C++
C++ Индексация массива класса, через объект этого класса
Индексация массива в динамической памяти C++
C++ Индексация массивов, арифметика указателей
C++ Индексация массивов с помощью указателей
Индексация в массивах c++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KpeHDeJIb
 Аватар для KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 08:42     Индексация. #2
Индекс это дополнительное числовое поле, связанное с записью, грубо говоря у тебя есть список из 10 позиций и они пронумерованы от 1 до 10, вот этот номер и есть индекс, т.е. число уникальным образом характеризующее каждую запись.

Ну а фильтр это просто способ выборки, т.е. указать не полную фамилию должника, а например "*нов", и найдутся все из списка "Иванов", "Петров", "Сидоров".
sever1313
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 61
03.11.2010, 20:26  [ТС]     Индексация. #3
написала функцию которая должна проиндексировать каждую запись в массиве,но на выходе ,то есть при распечатке выводится одна и та же запись 10 раз,почему она мотает одну и ту же я не понимаю,делала по шагам там видно что на вход получает новую запись,даёт ей свой индекс,но в конце всё равно результат другой,где теряется не знаю(,помогите пожалуста разобраться
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
using namespace std;
const int n=10;
struct BIBL
{
char name[20];
char kniga[10];
char dat[10];
};
BIBL stud[n];
struct indexz{
    char key[50];
    int a[6];
};
 
 
indexz index[5];
int indexsize=0;
int k=0;
int add(BIBL ab,int num)
{
    
    int i;
        for (i=0; i<10; i++)
        {
            if (strcmp("",index[i].key)==0)
            {
                strcpy(index[i].key,ab.name);
                index[i].a[k]=num; 
                indexsize=i+1;
                k++;
                break;
            }
        }
    
 
    return 0;
}
int print()
{
    int k;
        
       for(int i=0;i<10;i++)
            {
                cout << " имя "<<stud[index[i].a[k]].name<<endl;
                cout << " адрес "<<stud[index[i].a[k]].kniga<<endl;
                cout << " телефон "<<stud[index[i].a[k]].dat<<endl;
                k++;
    
            }
 
    return 0;
}
int student()
{
            ifstream fil("input.txt");  
        int i=0;    
        while(!fil.eof())
                {  
                fil>> stud[i].name >> stud[i].kniga >> stud[i].dat ;   
                add(stud[i],i);
                i++;    
        }   
        while(i--)
                { 
                printf("имя  %s книга  %s дата  %s\n",stud[i].name,stud[i].kniga,stud[i].dat);  
        }
                return 0;
}
int main ()
{
   setlocale(LC_ALL, "rus");
   student();
  print();
 
   getch();
}
Yandex
Объявления
03.11.2010, 20:26     Индексация.
Ответ Создать тему
Опции темы

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