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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nt1221
1 / 1 / 0
Регистрация: 31.10.2011
Сообщений: 9
#1

База данных. Помогите доработать сортировку! - C++

31.10.2011, 21:43. Просмотров 392. Ответов 8
Метки нет (Все метки)

Доброе время суток!)
Нужна помощь!
Создал базу данных. ФИО, число, месяц, год рождения, адресс. Создал массив (10 элементов) данных структурных переменных.
Сделал сортировку по году рождения по возрастанию. Но... Сортировка учитывает незаполненные элементы и заполенные элементы выводит после незаполенных. Это то и нужно устранить. нужно, чтобы функция учитывала только заполенные элементы.
Сама структура:
C++
1
2
3
4
5
6
7
8
 struct data{
       char surname[10];
       char name[10];
       char pat[20];
       int dd,mm,yy;
       char address[50];
       bool full;
       } man[10];
Функция вывода элемента:
C++
1
2
3
4
5
6
7
8
9
10
void out(int a)
{
           cout<<"\nЗапись: "<<a
           <<"\nФ: "<<man[a].surname
           <<"\nИ: "<<man[a].name
           <<"\О: "<<man[a].pat
           <<"\nдата рождения: "<<man[a].dd<<"."<<man[a].mm<<"."
           <<man[a].yy
           <<"\nА: "<<man[a].address<<endl;
}
И в main вывод всех заполненных элементов:
C++
1
2
3
4
for(int i=0;i<10;i++){
            if(man[i].full==true)
            out(i);
            }
Сама функция сортировки:
C++
1
2
3
4
5
6
7
8
9
10
void sortu_year()
{
     for (int i = X-1; i > 0; i--){
         for (int j=0; j < i; j++){
             if (man[j].yy > man[j+1].yy){
                 swap(man[j], man[j+1]);
                 }
                 }
                 }
}
Добавлено через 2 часа 43 минуты
так что, мыслей никаких???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2011, 21:43     База данных. Помогите доработать сортировку!
Посмотрите здесь:

Помогите доработать код. - C++
Задача состоит в следующем: надо создать массив и вставить вместо двух случайных элементов &quot;нули&quot;. После посчитать сумму элементов между...

Скатерть Улама - помогите доработать прогу :) - C++
Есть код программы, но что-то не могу заставить его работать в Visual Studio 2008.. int simple(int n) { int i; int ret=1; ...

Атоморфные числа, С++, помогите доработать код - C++
Сама задача выглядит так: среди чисел от 1 до n найти все атоморфные числа ( т.е. числа которые при возведении их в квадрат совпадают с...

помогите сделать сортировку массива. - C++
есть вектор(одномерный массив). из рандомного числа элементов, и рандомными элементами от 0 до 100. вывод такого массива. #include...

Создать программу-счётчик слов (помогите доработать код) - C++
Эта программа видит на входе &quot;Ма-ма -мыла раму. Рама-, мыла маму. Мама была рамой. А у Саши 0 - шуры муры. А у Шуры нет&quot; а на выходе должно...

Массив. Помогите доработать код, подскажите где ошибки. - C++
Сама задача проста: Есть массив, состоящий из натуральных чисел, поделенный на 4 части, необходимо переставить блоки ( верхний правый с...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Holodov
5 / 5 / 0
Регистрация: 01.10.2011
Сообщений: 46
31.10.2011, 21:47     База данных. Помогите доработать сортировку! #2
А что если сделать поле обязательным , если пропускают при вводе , выводи ошибку типа "Неправильный формат даты"

Или так

C++
1
2
3
int z = strlen(man);
if(n =! 0) {"Выводишь"}
else "не выводишь"
nt1221
1 / 1 / 0
Регистрация: 31.10.2011
Сообщений: 9
01.11.2011, 00:00  [ТС]     База данных. Помогите доработать сортировку! #3
это в main добавить?
Holodov
5 / 5 / 0
Регистрация: 01.10.2011
Сообщений: 46
01.11.2011, 00:09     База данных. Помогите доработать сортировку! #4
В том посте ошибка , точнее опечатка)

надо так)

C++
1
2
3
int z = strlen(man);
if(z =! 0) {"Выводишь"}
else "не выводишь"
Strlen(man); проверяет строку man и возвращает её длину переменной z;
а как реализовать подумай.Можешь в мэйн можешь не в мэйн)

Или же так.
C++
1
2
3
4
if(!(strcmp(man[j], ""))
{
cout<<man[j];    //сравнивает твою строку и пустую , если твоя не пустая выводит её.
}
nt1221
1 / 1 / 0
Регистрация: 31.10.2011
Сообщений: 9
01.11.2011, 00:27  [ТС]     База данных. Помогите доработать сортировку! #5
не работает(
Holodov
5 / 5 / 0
Регистрация: 01.10.2011
Сообщений: 46
01.11.2011, 00:37     База данных. Помогите доработать сортировку! #6
А поточнее?

И для 1-ого и для 2-ого способа подключай <string.h>
nt1221
1 / 1 / 0
Регистрация: 31.10.2011
Сообщений: 9
01.11.2011, 12:21  [ТС]     База данных. Помогите доработать сортировку! #7
заменил пузырьковую сортировку на сортировку простыми вставками. В результате не учитываются незаполненные элементы, НО! Обнуляются года рождения(критерий сортировки) вплоть до наибольшего! В чем ошибка??
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void sortu_year()
{  int temp, j;
    for (int i = 1; i < X; i++) 
    {
        temp = man[i].yy;
        j = i-1;
        while (j >= 0 && man[j].yy > temp)
        {
            man[j+1].yy = man[j].yy; 
            --j;
        }
        man[j+1].yy = temp;
    }
}
Bers
Заблокирован
01.11.2011, 12:43     База данных. Помогите доработать сортировку! #8
Цитата Сообщение от nt1221 Посмотреть сообщение
Но... Сортировка учитывает незаполненные элементы и заполенные элементы выводит после незаполенных.
сортируй только заполненные
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 15:07     База данных. Помогите доработать сортировку!
Еще ссылки по теме:

Выполнить сортировку данных по номенклатурному номеру - C++
Подготовьте массив указателей на PRICE на 50 элементов. Считайте все записи из файла &quot;8.dat&quot; . Для чтения каждой отдельной записи...

Структура: Выполните сортировку данных по номеру билета - C++
Здраствуйте. Помогите пожалуйста, с этим заданием. Правильно ли я понимаю работу этой программы Пояните работу непонятных мне строчек. В...

Реализовать сортировку и поиск данных в массиве структур типа School - C++
Описать структуру с именем SCHOOL, что содержит следующие поля: NAME - фамилия и имя ученика, GROUP - номер класса, SUBJECT -...

Реализовать сортировку и поиск данных в массиве структур типа School - C++
Описать структуру с именем SCHOOL, что содержит следующие поля: NAME - фамилия и имя ученика, GROUP - номер класса, SUBJECT -...


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

Или воспользуйтесь поиском по форуму:
nt1221
1 / 1 / 0
Регистрация: 31.10.2011
Сообщений: 9
01.11.2011, 15:07  [ТС]     База данных. Помогите доработать сортировку! #9
подскажите, как ркализовать?
Yandex
Объявления
01.11.2011, 15:07     База данных. Помогите доработать сортировку!
Ответ Создать тему
Опции темы

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