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

Сортировка массива - C++

Восстановить пароль Регистрация
 
Оксана 1234
 Аватар для Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 158
06.11.2013, 23:41     Сортировка массива #1
Я делала программу и у меня возник ступор из-за того, что я не могу сортировать массив объектов. Вроде не сложно, но этот абстрактный класс меня сбивает с толку.
Описать полиморфнy функцию,которая принимает своим параметром указатель на интерфейс: сортировка массива объектов по их номерам (использовать interface_1).

Буду очень благодарна всем, кто откликнется!!!

main.cpp
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
# include "class_m.h"
# include <iostream>
 
using namespace std;
 
void sort (interface_1 *A, int n)
{
    interface_1 *Rez= new o_train() ;
    for(int i = 0; i < n; i++)
    {
        for( int j = 1; j < n; j++)
        {
            if( A[j].Get_Num() < A[j-1].Get_Num())
            {
                Rez = A[j];
                A[j] = A[j-1];
                A[j-1] = Rez;
            }
        }
    }
}
 
void vvid (interface_2 &M)
{
    cout << "Enter the name and destination of owner:" ;
    char *str_0 = new char[50];
    cin.getline(str_0, 50);
    M.str_ob(str_0);
}
 
void vuvid (interface_2 &M)
{
    cout << "\nVuvid vvedenoho objecta:" << M.ob_str() << endl;
}
 
void main()
{
    o_train ob_1, ob_2("Jane");
    cout << "k-st objectiv: " << ob_1.Get_Count() << endl;
    cout << "number of object 1 is " << ob_1.Get_Num() << endl;
    cout << "number of object 2 is " << ob_2.Get_Num() << endl;
    cout << "Vuvid objecta 1: " << ob_1.ob_str() << "\nVuvid objecta 2: " << ob_2.ob_str() << endl;
    
    vvid ( ob_1 );
    vuvid ( ob_1 );
 
    vvid ( ob_2 );
    vuvid ( ob_2 );
 
    interface_1 *A[2] ;
        A[0] = new o_train ();
        A[1] = new o_train ("Mike") ;
    sort(A,2);
    cout << "\nVuvid vidsortovanuh objectiv:" << endl;
    for (int i = 0; i < ob_2.Get_Num(); i++)
    {
        cout << "A[" << i << "] = " << A[i] << endl;
    }
}



class_m.h
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
# ifndef class_m_h
# define class_m_h
 
# include <string>
static int count = 0;
 
class interface_1
{
public:
    virtual int Get_Num() = 0; 
    virtual int Get_Count() = 0;
};
 
class interface_2
{
public:
    virtual void str_ob(char *) = 0;
    virtual char* ob_str() = 0;
};
 
class train
{
public:
    int car;//k-st vahoniv
    char *owner;
    char *dest;
    train()
    {
        car = 6; 
        dest = new char[20]; 
        strcpy(dest,"Lviv"); 
        owner = new char[20]; 
        strcpy(owner, "Jake");
    }
    virtual ~train()
    { 
        delete dest;
        delete owner;
    }
};
 
class o_train : public train, public interface_1, public interface_2
{public:
 
    int num;
    o_train() : train(){ num = ++count;}
    o_train(char* o) { strcpy(owner, o); num = ++count;}
    ~o_train() { }
    int Get_Count(){ return count;}
    int Get_Num(){ return num;}
    
    //funkcii konvertacii stricku v object
    void str_ob(char *str_0)
    {
        char *pch = strtok (str_0, " ");
        this->owner = pch;
        pch = strtok (str_0, " "); 
        this->dest = pch;
    }
    //funkcii konvertacii objecta v strichku
    char* ob_str()
    {
        char *str_1 = new char[20];
        strcpy(str_1, this->dest);
        char *str_2 = new char[20];
        strcpy(str_2, this->owner);
        strcat(str_1," ");
        strcat(str_1,str_2);
        return str_1;
    }
 
    //Operators
};
 
# endif
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2013, 23:41     Сортировка массива
Посмотрите здесь:

C++ Сортировка массива
Сортировка массива C++
Указатели массива и сортировка массива C++
Сортировка массива C++
C++ Сортировка массива, вместо массива выводит мусор
C++ Сортировка массива
Сортировка массива структур через сортировку массива указателей C++
Сортировка массива. Ошибка после ввода размерности массива C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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