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

Отсортировать массив структур по фамилии или по году - C++

Восстановить пароль Регистрация
 
straus
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 45
18.10.2010, 21:12     Отсортировать массив структур по фамилии или по году #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// structura.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    struct anceta{
        char*fam;
        unsigned  int god;
         BOOL pol;
    };
    return 0;
}

создал структуру надо с клавиатуры ввести количество анкет , затем анкетные данные(фио, год,пол)
данные заносятся в массив,отсортировать по фамилии или по году...
с чего начать? помогите пожалуйста, завтра сдавать эту тему
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2010, 21:12     Отсортировать массив структур по фамилии или по году
Посмотрите здесь:

Отсортировать и вывести на экран массив структур C++
Нужно отсортировать массив структур по убыванию поля date C++
C++ Отсортировать массив структур по возрастанию
C++ Отсортировать массив из структур по одному из полей структуры любым способом
Отсортировать массив структур (фамилии студентов и размер их стипендии) по размеру стипендии C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrew_Lvov
Эксперт C++
 Аватар для Andrew_Lvov
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
18.10.2010, 21:19     Отсортировать массив структур по фамилии или по году #2
cin, cout
operator >>, operator <<
straus
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 45
18.10.2010, 21:25  [ТС]     Отсортировать массив структур по фамилии или по году #3
Andrew_Lvov, понятно, что ничего не понятно! это то само собой разумеющееся... а как оформлять то?
ссылки, указатели, заполнять массив?
Andrew_Lvov
Эксперт C++
 Аватар для Andrew_Lvov
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
18.10.2010, 21:37     Отсортировать массив структур по фамилии или по году #4
Заполнять в цикле присваиванием.
При всём уважении, почитайте теорию. Это базовые вещи, обьяснять то, что описано в множестве книг, здесь на форуме - не совсем правильно с точки зрения потраченных усилий.
Shepard90
5 / 5 / 0
Регистрация: 18.10.2010
Сообщений: 140
18.10.2010, 23:37     Отсортировать массив структур по фамилии или по году #5
Сам только что закончил писать подобную прогу. Лови может поможет.
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
// Structura.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include <iostream>
#include "string.h" //заголовочный файл содержащий ф-ции работы со строками
using namespace std;
 
void getline(char *str,int lim) //ф-ция для ввода строк
{
    int c,i;
    c=1;
    for(i=0;(i<lim-1) && (c!=(int)'\n');i++) //\n=Enter
    {
        c=getchar();    
        str[i]=c;
    }
        str[i]='\0'; //символ конца строки
    
    
}
int _tmain()
{
    const int n=7;
    const int lim=25;
    struct AEROFLOT //описание структуры
    {
        char PunktNaz[lim];  //пункт назначения
        char ReisNumber[lim]; //номер рейса
        char AirplaneType[lim]; //тип самолета
    }arr[n],max; //объявление экземпляров структуры и выделение памяти
    int i,j;
    char *str,*s1,*s2;
    char zapros[lim]; 
    bool err;
    printf("vnesite informaciyu o reisah\n");
    for(i=0;i<=n-1;i++)
    {
        printf("Zapis number %d\n",i+1);
        printf("Punct Naznatcheniya\n");
        str=&arr[i].PunktNaz[0]; //присвоение указателю адреса первого элемента символьного массива PunktNaz 
        getline(str,lim); //ввод строки с клавиатуры
        printf("Number of reis\n");
        str=&arr[i].ReisNumber[0];
        getline(str,lim);
        printf("Type Airplane\n");
        str=&arr[i].AirplaneType[0];
        getline(str,lim);
    }
    for(j=0;j<n-1;j++) //сортировка массива элементов типа Aeroflot в зависимости от названия пункта назначения по алфавиту
        for(i=0;i<=n-2;i++)
        {
            if((int)arr[i].PunktNaz[0]>(int)arr[i+1].PunktNaz[0])
            {
                max=arr[i];
                arr[i]=arr[i+1];
                arr[i+1]=max;
            }
        }
    printf("Vvedite zapros\n");
    str=&zapros[0];
    getline(str,lim);
    s1=strdup(zapros);
    err=false;
    for(i=0;i<=n-1;i++) //поиск среди элементов массива элемента отвечающего запросу пользователя
    {
        s2=strdup(arr[i].PunktNaz);
        if(strcmp(s1,s2)==0)
        {
            err=true;
            printf("Number of reis: ");
            cout<<arr[i].ReisNumber;
            printf("Type Airplane: ");
            cout<<arr[i].AirplaneType;
            break;
        }
    }
    if (err==false) printf("takogo reisa net!");
    _getch();
}
Yandex
Объявления
18.10.2010, 23:37     Отсортировать массив структур по фамилии или по году
Ответ Создать тему
Опции темы

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