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

Нужно объединить две програмы в одну - C++

Восстановить пароль Регистрация
 
olenya21
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 13
01.12.2012, 19:50     Нужно объединить две програмы в одну #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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <iostream>
#include <Windows.h>
#include <string>
 
class Translator
{
private:
    struct Node
    {
        Node(std::string const& rus, std::string const& eng) :
            pl(0), pr(0), rus_(rus), eng_(eng){}
        Node* Insert(std::string const& rus, std::string const& eng)
        {
            Node* pret = 0;
            if(rus < rus_)
            {
                if(!pl)
                {
                    pl = new Node(rus, eng);
                    pret = pl;
                }
                else
                {
                    pret = pl->Insert(rus, eng);
                }
            }
            else if(rus > rus_)
            {
                if(!pr)
                {
                    pr = new Node(rus, eng);
                    pret = pr;
                }
                else
                {
                    pret = pr->Insert(rus, eng);
                }
            }
            return pret;
        }
        std::string GetEng(std::string const& rus)
        {
            std::string sret;
            if(rus == rus_)
                sret = eng_;
            else if(rus < rus_)
            {
                if(pl)
                    sret = pl->GetEng(rus);
            }
            else
            {
                if(pr)
                    sret = pr->GetEng(rus);
            }
            return sret;
        }
        void Cleanup()
        {
            if(pl)
            {
                pl->Cleanup();
                pl = 0;
            }
            if(pr)
            {
                pr->Cleanup();
                pr = 0;
            }
            delete this;
        }
        std::string rus_, eng_;
        Node* pl, *pr;
    };
public:
    Translator() : p_(0){}
    Node* Insert(std::string const& s1, std::string const& s2)
    {
        Node* pret = 0;
        if((s1[0] > 0 && s2[0] < 0) || (s1[0] < 0 && s2[0] > 0))
        {
            std::string const& rus(s1[0] < 0 ? s1 : s2);
            std::string const& eng(s1[0] > 0 ? s1 : s2);
            if(!p_)
            {
                p_ = new Node(rus, eng);
                pret = p_;
            }
            else
            {
                pret = p_->Insert(rus, eng);
            }
        }
        return pret;
    }
    std::string GetEng(std::string const& rus) const
    {
        std::string sret;
        if(p_)
        {
            sret = p_->GetEng(rus);
        }
        return sret;
    }
    void Cleanup()
    {
        if(p_)
        {
            p_->Cleanup();
            p_ = 0;
        }
    }
private:
    Node* p_;
    Translator(Translator const&);
    Translator& operator=(Translator);
};
 
int main()
{
    SetConsoleOutputCP(1251);
    Translator d;
    d.Insert("красный", "red");
    d.Insert("black", "чёрный");
    d.Insert("зелёный", "green");
    d.Insert("white", "белый");
    std::cout << d.GetEng("красный") << std::endl;
    std::cout << d.GetEng("чёрный") << std::endl;
    std::cout << d.GetEng("серый") << std::endl;
    std::cout << d.GetEng("красный") << std::endl;
    std::cout << d.GetEng("зелёный") << std::endl;
    d.Cleanup();
    system("pause");
    return 0;
}
и вот вторая...
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <iostream>
using namespace std;
struct node
{
    int Key;
    int Count;
    node *Left;
    node *Right;
};
 
class TREE
{ 
private:
    node *Tree; //Указатель на корень дерева.
    void Search (int,node**);
public:
    TREE() 
    {
        Tree=NULL;
    }
    node** GetTree () 
    {
        return &Tree;
    } //Получение вершины дерева.
    void BuildTree ();
    void CleanTree (node **);
    void ObhodEnd (node **);
    void ObhodLeft (node **);
    void ObhodBack (node **);
    void Vyvod (node**,int);
    int Height (node**);
};
int main ()
{ 
    TREE A;
    A.BuildTree ();
    cout<<"\nVyvod Dereva:\n";
    A.Vyvod (A.GetTree(),0);
    cout<<"\nVysota dereva:"<<A.Height(A.GetTree())<<endl;
    cout<<"\nLevostoronnyi obhod dereva: ";
    A.ObhodLeft (A.GetTree());
    cout<<"\nKonsevoy obhod dereva: "; A.ObhodEnd (A.GetTree());
    cout<<"\nObratniy obhod dereva: "; A.ObhodBack (A.GetTree());
    A.CleanTree (A.GetTree());
    system("pause");
    return 0;
}
void TREE::BuildTree ()
{
    int el;
    cout<<"Vvedite slovo ...\n";
    cin>>el;
    while (el!=0)
    {
        Search (el,&Tree); cin>>el;
    }
}
void TREE::Search (int x,node **p)
{
    if (*p==NULL)
    {
        *p = new(node);
        (**p).Key = x; (**p).Count = 1;
        (**p).Left = NULL; (**p).Right = NULL; 
    }
    else
        if (x<(**p).Key) Search (x,&((**p).Left));
        else
            if (x>(**p).Key) Search (x,&((**p).Right));
            else (**p).Count = (**p).Count + 1;
}
void TREE::ObhodLeft (node **w)
{
    if (*w!=NULL)
    {
        cout<<(**w).Key<<" ";
        ObhodLeft (&((**w).Left));
        ObhodLeft (&((**w).Right));
    }
}
void TREE::ObhodEnd (node **w)
    //Концевой обход дерева.
    //*w - указатель на корень дерева.
{
    if (*w!=NULL)
    {
        ObhodEnd (&((**w).Left));
        ObhodEnd (&((**w).Right));
        cout<<(**w).Key<<" ";
    }
}
void TREE::ObhodBack (node **w)
    //Обратный обход дерева.
    //*w - указатель на корень дерева.
{ 
    if (*w!=NULL)
    { 
        ObhodBack (&((**w).Left));
        cout<<(**w).Key<<" ";
        ObhodBack (&((**w).Right));
    }
}
void TREE::CleanTree (node **w)
    //Очистка дерева.
    //*w - указатель на корень дерева.
{ 
    if (*w!=NULL)
    { 
        CleanTree (&((**w).Left));
        CleanTree (&((**w).Right));
        delete *w;
    }
}
void TREE::Vyvod (node **w,int l)
    //Изображение дерева *w на экране дисплея
    // (рекурсивный алгоритм).
    //*w - указатель на корень дерева.
{ 
    int i;
    if (*w!=NULL)
    { 
        Vyvod (&((**w).Right),l+1);
        for (i=1; i<=l; i++) cout<<" ";
        cout<<(**w).Key<<endl;
        Vyvod (&((**w).Left),l+1); 
    }
}
int TREE::Height (node **w)
    //Определение высоты бинарного дерева.
    //*w - указатель на корень дерева.
{ 
    int h1,h2;
    if (*w==NULL) return (-1);
    else
    {
        h1 = Height (&((**w).Left));
        h2 = Height (&((**w).Right));
        if (h1>h2) return (1 + h1);
        else return (1 + h2);
    }
}
Добавлено через 8 минут
и помогите пожалуйста!!где в программе будут входящие и исходящие данные???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 19:50     Нужно объединить две програмы в одну
Посмотрите здесь:

Объединить две очереди в одну, как создать две очереди C++
C++ Объединить две проги в одну
Нужно соединить две функции в одну C++
C++ Несколько действий со строками объединить в одну функцию
Необходимо объединить несколько программ в одну C++
C++ Объединить две непустые очереди в одну с сохранением упорядоченности элементов
C++ Объединить три консольных программы в одну
C++ Как объединить несколько программ в одну?

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

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

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