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

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

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

Не могу понять как передать - C++

05.12.2013, 14:25. Просмотров 683. Ответов 21
Метки нет (Все метки)

есть код
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
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <time.h>
#include <ctime>
#include <tchar.h>
#include <conio.h>
#include <sstream>
#include <locale>
#include <string>
#include <dos.h>
using namespace std;
 class groupmachine
 {
     int qq, N, *vr, ssv, *kkod, *rs;
 public:
     groupmachine ()
        {
            cout<<"BBeDuTe BpeM9l Pab0Tld";
            cin>>ssv;
            cout<<"BBeDuTe KoJl-BO CTAHKOB";
            cin>>N;
            rs=new int [N];
            vr=new int [N];
            kkod=new int [N];
            for(int i=0;i<N;i++)
                {vr[i]=ssv;kkod[i]=0;rs[i]=0;}
        }
        int zad(int ossd)
            { 
                        if(kbhit()) 
                            if(getch()==27)
                                {
                                    return 0;
                                }
                        
                            for(int i=0;i<N;i++)
                                {
                                    if((rs[i]==0)&&(ossd>0)) {rs[i]=1;}
                                    if((vr[i]>=0)&&(rs[i]==1))vr[i]--;
                                    if(vr[i]==-1){vr[i]=ssv; kkod[i]++; rs[i]=0;}
                                    cout<<endl<<"Vrem'a do konca robotu= "<<vr[i]<<endl<<"rejim rabotu - "<<rs[i]<<endl<<"Kol-vo obrabotanuh detalei = "<<kkod[i]<<endl<<ossd<<endl;
                                return rs[i];}
            };
 private:
     groupmachine *nextPtr;
 };
 
 void main()
 {
     int qq, *osd, *f;
     osd=new int [5];
     f=new int [4];
     groupmachine *y=new groupmachine[4];
     time_t tm1;
     tm1 = time (NULL);
     qq=tm1;
     for(int i=0; i<4;i++)
                osd[i]=0;
osd[0]=999999;
     for(;;)
     {system("cls");
 
         for(int i=0;i<4;i++)
         {f[i]=(y+i)->zad(int (osd[i]));
         if((f[i]==0)&&(osd[i]>0)) {osd[i+1]++; osd[i]--;}
         }
 
         do
            {
                tm1 = time (NULL);
                if(kbhit()) 
                if(getch()==27)
                    {
                        delete []y;
                        return;
                    }
            }while(qq==tm1);
            qq=tm1;
             
                  
 
     }
 }
он создает 4 станка, у каждого станка есть очередь, состояние и кол-во обработанных деталей. Очередь пополняется, когда предыдущий станок сделал деталь. Но суть в том, что должно быть не 4 станка, а 4 группы станков, что нужно сделать, что бы было 4 группы. Как нужно возвращать значение и куда? =( помогите плиз=(
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2013, 14:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу понять как передать (C++):

Не могу понять, как правильно передать указатель на объект в файл - C++
Есть вектор v, который надо отсортировать. Есть класс MergeSort, который это должен делать, он содержит в качестве параметра указатель на...

Стек на основе массива структур - эт как понять читаю литературу и не могу понять! - C++
Стек статически (на основе массива структур). Пример структура &quot;Товар&quot; которая включает в себя: № по каталогу(ключ), Название, цена, срок...

Не могу разобраться как передать корректно передать массив из функции в функцию - C++
//--------------------------------------------------------------------------- #pragma hdrstop ...

Не могу понять как написать - C++
Доброго времени суток. Не мог бы кто помочь в написании программ: 1. Определить имеет ли действительные корни уравнение ax2 + bx + c =...

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

не могу понять как это делать - C++
Даны целые числа n , a0 , a1, a2 , …, an−1. Найти сумму всех членов последовательности a0 , a1, a2 , …, an−1, расположенных после первого...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.12.2013, 02:23 #16
И где это?
C++
1
2
for (int i = 0; i < 4; ++i)
   temp[i] = y[i].getmodeMachine();
0
Delacroic
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
06.12.2013, 02:25  [ТС] #17
в основной программе
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.12.2013, 02:32 #18
Зачем тип temp изменили? Кто-то говорил?
0
Delacroic
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
06.12.2013, 02:35  [ТС] #19
пытался по другому сделать, сейчас назад поставил указатель на указатель
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.12.2013, 02:56 #20
Что вы делаете в main() разбираться времени нет, но может быть так сообразите, как нужно сделать:
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
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <time.h>
#include <ctime>
#include <tchar.h>
#include <conio.h>
#include <sstream>
#include <locale>
#include <string>
#include <dos.h>
 
using namespace std;
 
class GroupMachine
 {
   private:
           int countTime;         //переменная для счета времени
           int countMachine;      //кол-во станков в группе
           int timeToWorked;      //время работы 
           int * timeToEndWork;   //время до конца работы станка
           int * countDetail;     //кол-во деталей обработаных станком
           int * modeMachine;     //режим работы станка
   public:                                          
          GroupMachine ()                              
          {
 
              cout << "BBeDuTe BpeM9l Pab0Tld: ";  cin >> timeToWorked;
              cout << "BBeDuTe KoJl-BO CTAHKOB: "; cin >> countMachine;
              
              modeMachine = new int [countMachine];
              timeToEndWork = new int [countMachine];             
              countDetail = new int [countMachine];
              
              for(int i = 0; i < countMachine; i++)
                {
                    timeToEndWork[i] = timeToWorked;
                    countDetail[i] = 0;
                    modeMachine[i] = 0;
                }
          }
          ~GroupMachine()
          {
              delete [] modeMachine; modeMachine = NULL;
              delete [] timeToEndWork; timeToEndWork = NULL;
              delete [] countDetail; countDetail = NULL;
              
          }
        int* zad(int queueMachine)   
            { 
                if(kbhit()) 
                 if(getch()==27)
                    return 0;
                    
                for(int i=0;i<countMachine;i++)
                 {
                     if((modeMachine[i] == 0) && (queueMachine > 0)) 
                         modeMachine[i] = 1;
                     if((timeToEndWork[i] >= 0) && (modeMachine[i] == 1))
                         timeToEndWork[i]--;
                     if(timeToEndWork[i] == -1)
                     {
                        timeToEndWork[i] = timeToWorked;
                        countDetail[i]++;
                        modeMachine[i]=0;
                     }
                        
                      cout << endl << "Vrem'a do konca robotu= " << 
                      timeToEndWork[i] << endl << "rejim rabotu - " << 
                      modeMachine[i] << endl << "Kol-vo obrabotanuh detalei = " << 
                      countDetail[i] << endl << queueMachine << endl;
                     
                 }
                return modeMachine;
            }
        int* getmodeMachine()
        {
            return modeMachine;
        }
 
        int getcountMachine()
        {
            return countMachine;
        }
 };
 
void main()
 {
     int *test;
     int qq;                        //qq - переменная для счета времени
     int *QueueMachine;             //QueueMachine - массив с очередями деталей перед каждой группой станков
     int **temp;                 //temp - создал массив для передачи состояний станков в основную программу
     QueueMachine = new int [5];   
     
     temp = new int* [4];     
     GroupMachine *y = new GroupMachine[4];
 
     for (int i = 0; i < 4; ++i)         
         temp[i] = y[i].getmodeMachine();
 
     for (int i = 0; i < 4; ++i) // вывод данных из modeMachine
     {
         for (int j = 0; j < y[i].getcountMachine(); ++j)
                cout << temp[i][j] << ' ';
         cout << endl;
     }
...
1
Delacroic
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
06.12.2013, 03:08  [ТС] #21
Работает, спасибо большое =)
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.12.2013, 13:06 #22
Для того, чтобы работать с полями класса в основной программе, необязательно что-то куда копировать. Нужно определить в классе публичные методы доступа к полям (get) и публичные методы установки значений полей (set), и в основной программе, с помощью этих методов, работать с полями объектов.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2013, 13:06
Привет! Вот еще темы с ответами:

Не могу понять, как работает программа - C++
Здравствуйте, непонятны некоторые функции программы. Спасибо. #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstring&gt; ...

Не могу понять как написать правильно. - C++
Не могу понять как это написать правильно. Оно даже не компилируется. #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;stdlib.h&gt; ...

Не могу понять как работает программа - C++
Здравствуйте люди.Помогите понять как работают фнкции в программе(см. ниже). Учусь по книге Стефана Девидса С++ для чайников 4-е и 5-е...

Не могу понять как прочитать файл - C++
Вродь как двоичный файл, но прочитать не могу его.. ...


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

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

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