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

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

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

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

31.10.2011, 21:43. Просмотров 400. Ответов 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 минуты
так что, мыслей никаких???
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2011, 21:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос База данных. Помогите доработать сортировку! (C++):

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

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

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

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

Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом - C++
Здравствуйте. Я не как не могу разобраться.Помогите. У меня есть листинг сортировки вставками: #include &quot;stdafx.h&quot; #include...

Массив. Помогите доработать код, подскажите где ошибки. - 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 "не выводишь"
0
nt1221
1 / 1 / 0
Регистрация: 31.10.2011
Сообщений: 9
01.11.2011, 00:00  [ТС] #3
это в main добавить?
0
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];    //сравнивает твою строку и пустую , если твоя не пустая выводит её.
}
0
nt1221
1 / 1 / 0
Регистрация: 31.10.2011
Сообщений: 9
01.11.2011, 00:27  [ТС] #5
не работает(
0
Holodov
5 / 5 / 0
Регистрация: 01.10.2011
Сообщений: 46
01.11.2011, 00:37 #6
А поточнее?

И для 1-ого и для 2-ого способа подключай <string.h>
0
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;
    }
}
0
Bers
Заблокирован
01.11.2011, 12:43 #8
Цитата Сообщение от nt1221 Посмотреть сообщение
Но... Сортировка учитывает незаполненные элементы и заполенные элементы выводит после незаполенных.
сортируй только заполненные
0
nt1221
1 / 1 / 0
Регистрация: 31.10.2011
Сообщений: 9
01.11.2011, 15:07  [ТС] #9
подскажите, как ркализовать?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 15:07
Привет! Вот еще темы с ответами:

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

Удалённая база данных - запрос и вывод данных - C++
допустим у меня есть удалённая база данных в которой хранятся данные. можно ли через программу запросить эти данные и вывести в программе в...

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.11.2011, 15:07
Ответ Создать тему
Опции темы

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