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

Сортировка информации из базы данных - C++

Восстановить пароль Регистрация
 
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
03.06.2011, 08:02     Сортировка информации из базы данных #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
void Open()
{
    Abbase z3;
    system ("cls");
    cout<<"Abbase 0.36 beta 3\n"<<endl;
    cout<<"Таблица все внесенных абитуриентов\n"<<endl;
    ifstream fin("base.txt");
    if (!fin)
        cout <<"База пуста!\n";
    else
    {
        int n=1;
        cout <<"|Номер|Фамилия|Имя|Отчество|Год рождения|Размер стипендии|\n";
        while (!fin.eof())
        {
            
            fin>>z3.number>>z3.family>>z3.f_name>>z3.l_name>>z3.gr>>z3.st;
            cout<<n<<" "<<z3.number<<" "<<z3.family<<" "<<z3.f_name<<" "<<z3.l_name<<" "<<z3.gr<<" "<<z3.st<<endl;
            n++;
        }
        fin.close();
    }
    Navigation();
}
Вот моя структура:

C++
1
2
3
4
5
6
7
8
9
struct Abbase
{
        char family[20];//Фамилия абитуриента
        char f_name[20];//Имя абитуриента
        char l_name[20];//Отчество абитуриента
        int number;//Табельный номер абитуриента
        int gr;//Год рождения абитуриента
        double st;//Размер стипендии абитуриента
};
Мне нужно разработать функцию для сортировки по году рождения и по размеру стипендии, желательна сортировка пузырьком

Добавлено через 9 часов 17 минут
Помогите
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
03.06.2011, 08:10     Сортировка информации из базы данных #2
Проще сортировки пузырьком даже не существует....
Делаешь бесконечный цикл с выходом по флагу
устанавливаешь флаг
Перебираешь все записи
Сравниваешь каждую пару и меняешь их местами, если они не в правильном порядке.
Если была замена сбрасываешь флаг

В итоге у тебя будет сортировка пробегать пока после полного прохода ничего менять местами не понадобится.
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
03.06.2011, 08:16  [ТС]     Сортировка информации из базы данных #3
Цитата Сообщение от vitaly1981 Посмотреть сообщение
Проще сортировки пузырьком даже не существует....
Делаешь бесконечный цикл с выходом по флагу
устанавливаешь флаг
Перебираешь все записи
Сравниваешь каждую пару и меняешь их местами, если они не в правильном порядке.
Если была замена сбрасываешь флаг

В итоге у тебя будет сортировка пробегать пока после полного прохода ничего менять местами не понадобится.
А с кодом не поможешь? Я понимаю что стоит самому попробовать, но курсач поджимает.
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
03.06.2011, 08:36     Сортировка информации из базы данных #4
Delpix, Ну блин, тебе еще и готовое решение подавай, ну уж такую простую вещь и сам бы мог написать, алгоритм я тебе показал. Если тебе тупо лень кодить, то иди в раздел фриланса.
Rexer
 Аватар для Rexer
151 / 150 / 19
Регистрация: 10.10.2010
Сообщений: 691
03.06.2011, 11:43     Сортировка информации из базы данных #5
Сортировка пузырьком
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void bubble_sort(int n,int *mass)
{
int tmp;
for(int i = 0;i < n;i++)
for(int j = 0;j < n - i - 1;j++)
{
if(mass[j]>mass[j+1];
{
tmp = mass[j];
mass[j] = mass[j+1];
mass[j + 1] = tmp; 
}
}
}
Вместо mass вы передаете массив,где вы содержите размер стипендии,или года рождений
скорее всего у вас будет что-то типа этого
C++
1
z3[j].qr
- массив годов
Тогда:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main(void)
{
//some code
 
int tmp;
for(int i = 0;i < n;i++)
for(int j = 0;j < n - i - 1;j++)
{
if(z3[j].qr>z3[j+1].qr;
{
tmp = z3[j].qr;
z3[j].qr = z3[j+1].qr;
z3[j + 1].qr = tmp; 
}
}
}
вроде так,дальше то же самое с стипендией
Yandex
Объявления
03.06.2011, 11:43     Сортировка информации из базы данных
Ответ Создать тему
Опции темы

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