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

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

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

Разбиение программы на модули! - C++

09.05.2014, 11:39. Просмотров 604. Ответов 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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <iostream>
#include <vector>
using namespace std;
  class mes // AbstractProductA
{
public:
        char *result;
    char stroka[100];
};
 
class dat: public mes // ConcreteProductA1
{public:
    void Stroka()
    {
        cout<< "Fail dat"<<endl;
        cout << "Vvedite stroku "<<endl;
        result=gets(stroka);
    }
    void fail()
        {
        FILE *f=NULL;
        f = fopen("dat.txt", "a+");
        if (f == NULL)
        {
            cout << "no fail ";
            system("pause");
        }
        fprintf(f, "%s", __TIME__); 
        fprintf(f, "%s", " || ");
        fprintf(f, "%s", __DATE__);
        fprintf(f, "%s", " || ");
        
        fprintf(f, "%s",result);
        fprintf(f, "%s", " || ");
        }
};
class log1: public mes // ConcreteProductA2
{public:
void Stroka()
    {  cout<< "Fail log1"<<endl;
        cout << "Vvedite stroku "<<endl;
        result=gets(stroka);
    }
    void fail()
        {
        FILE *f=NULL;
        f = fopen("log1.txt", "a+");
        if (f == NULL)
        {
            cout << "no fail ";
            system("pause");
        }
        fprintf(f, "%s", __TIME__); 
        fprintf(f, "%s", " || ");
        fprintf(f, "%s", __DATE__);
        fprintf(f, "%s", " || ");
        
        fprintf(f, "%s",result);
        fprintf(f, "%s", " || ");
        }
};
class sms: public mes // ConcreteProductA1
{public:
    void Stroka()
    {
        cout<< "Fail sms"<<endl;
        cout << "Vvedite stroku "<<endl;
        result=gets(stroka);
    }
    void fail()
        {
        FILE *f=NULL;
        f = fopen("sms.txt", "a+");
        if (f == NULL)
        {
            cout << "no fail ";
            system("pause");
        }
        fprintf(f, "%s", __TIME__); 
        fprintf(f, "%s", " || ");
        fprintf(f, "%s", __DATE__);
        fprintf(f, "%s", " || ");
        
        fprintf(f, "%s",result);
        fprintf(f, "%s", " || ");
        }
};
class FAIL
{
  public:
    vector<sms> s; 
    vector<dat>      d; 
    vector<log1>    l;     
    
    void info() {   
      int i;
      for(i=0; i<s.size(); ++i) { s[i].Stroka();s[i].fail();}
     for(i=0; i<d.size(); ++i) { d[i].Stroka();d[i].fail();}
     for(i=0; i<l.size(); ++i) { l[i].Stroka();l[i].fail();}
    }
};
  class FAILBuilder
{
  protected: 
    FAIL* p;
  public:    
    FAILBuilder(): p(0) {}
    virtual ~FAILBuilder() {}
    virtual void createFAIL() {}
    virtual void buildsms() {}
    virtual void buildlog1() {}
    virtual void builddat() {}
      
    virtual FAIL* getFAIL() { return p; }    
};
  class RomanFAILBuilder: public FAILBuilder
{    
  public:    
    void createFAIL() { p = new FAIL; }
    void buildsms() { p->s.push_back( sms()); }
    void builddat() { p->d.push_back( dat()); }    
    
};
    class PavelFAILBuilder: public FAILBuilder
{    
  public:    
    void createFAIL() { p = new FAIL; }
    void buildsms() { p->s.push_back( sms()); }
    void buildlog1() { p->l.push_back( log1()); }    
    
};
    class Director
{    
  public: 
 
    FAIL* createFAIL(  FAILBuilder & builder ) 
    { 
        builder.createFAIL();
        builder.buildsms();
        builder.builddat();
        builder.buildlog1();
        return( builder.getFAIL());
    }
};
int main()
{   
    Director dir;
    RomanFAILBuilder ra_builder;
   PavelFAILBuilder pa_builder;
     
    FAIL * ra = dir.createFAIL( ra_builder);
    FAIL * pa = dir.createFAIL( pa_builder);
    cout << "Roman fail:" << endl;
    ra->info();
    cout << "\nPavel fail:" << endl;
    pa->info();
    
  
    return 0;
}
дабы поставить мне наибольшее количество балов препод хочет чтобы я ее разбил но как бы я не пытался компилятор выдает ошибки ниже файл что я сделал при разбитие на h и cPP помогите разбить или скиньте прогу на подобие разбитую где повторяются классы и есть проблемы с переопределением ,при разбитие использовал с++ gurds но почему то всеравно пишет ошибку и переопределение классов
Вложения
Тип файла: rar bilder.rar (3.52 Мб, 2 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2014, 11:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разбиение программы на модули! (C++):

Разбиение программы на функции - C++
Надо разбить задачу на функции, чтобы хотя бы присутствовала 1 функция, загвоздка в динамической переменной и как её 1 раз объявивши и...

Разбиение программы на файлы - C++
Возникла проблема в тривиальной задаче. Создал шаблонный класс вектор, который работает если в одном файле. Стоить разбить на файлы...

Разбиение программы на файлы С++ - C++
Здравствуйте! У меня не получается линейный алгоритм своей программы разбить на два файла именно следующим образом. В первом будет...

Модули программы - C++
Привет! Недавно начал изучать си++, и у меня возник такой вопрос: как разместить класс или функцию в отдельном модуле.

модули программы - C++
Всем привет помогите пожалуйста с этим плиз заранее спасибо

Разбиение программы на несколько файлов - C++
Ребят, помогите пожалуйста код разбить на несколько файлов. Чтобы в основном остался только main. Не соображаю как разделить ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
09.05.2014, 13:08 #2
краб, тебе надо реализации и объявления классов распихать по файлам)
Объявления классов в файлах .h, а реализация в файлах .сpp.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2014, 13:08
Привет! Вот еще темы с ответами:

Разбиение программы на функции. Ввод последовательности неотрицательных чисел. - C++
Есть программа ввод значений в которой осущесвляется пока не будет введено отрицательное число, потом она выводит все введенные значения и...

Ошибка при разбиении программы на файлы(модули) - C++
Исходный код: #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; #include &lt;conio.h&gt; using namespace std; struct...

QR -разбиение - C++
Доброго всем времени суток. У кого есть красиво написанное QR-разложение матриц с помощью преобразования Хаусхолдера? Если не сложно,...

Разбиение программы на модули - PascalABC.NET
Добрый день! Пишу довольно крупную для себя программу. Хочется отделить от неё два отдельных файла, в одном были бы одни процедуры, в...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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