Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 30
Builder 6

Объектно-ориентированное программирование

17.11.2013, 19:37. Показов 2338. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите кто может
вот моя программа(через open project открываем файл "sss")
programma.rar

программа заключается в том, чтобы груз сместился на платформу.
есть 5 кнопок. (вперед, поднять,переместить,опустить, назад)

проблема в том, что я не могу понять, как сделать так что бы все делалось независимо, т.е. вперед едешь поднимаешь груз опускаешь, груз поставил, назад едешь, платформа движется, а груз стоит на месте.

а у меня получается что я ставлю груз, хочу ехать назад, а груз вместе с ним едет и опускается тоже вместе
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.11.2013, 19:37
Ответы с готовыми решениями:

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

Объектно-ориентированное программирование
На основе объектного подхода создать программу которая рассчитывает значения степенных функций...

Объектно-ориентированное программирование
Помогите мне отредактировать программу...У меня есть исходники..Склеить нужно.... Класс ...

8
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
17.11.2013, 19:41
и все тут же бросились качать ваш проект и разбираться в коде? для вашего вопроса будет лучше если вы кратко изложите что это за груз/платформа, как вы их двигаете и причем тут ООП
0
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 30
17.11.2013, 19:57  [ТС]
ок, я понял.
вот такая штука:


мне нужно переместить груз на платформу. причем приехал с грузом уехал без него, когда едешь с грузом, подвижная платформа опускается с ним и поднимается, и так же когда едешь назад без груза, платформа так же должна опускаться и подниматься только без груза.

а у меня получается что я когда еду назад, и опускаю платформу груз движет с ними, а он должен стоять на месте.
все перепробовал ничего не выходит 8(
Shape 3 Груз
Shape 2 Подвижная платформа
Shape 8 не подвижная платформа, на который нужно поставить груз
Shape 1 Shape 4 Shape 5 Shape 6 машина

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 <vcl.h>
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#pragma hdrstop
 
#include "aaa.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1 -> Enabled=true;
Timer1 -> OnTimer=Button1Click;
Shape1->Tag=8;
Shape2->Tag=8;
Shape3->Tag=8;
Shape4->Tag=8;
Shape5->Tag=8;
Shape6->Tag=8;
if (Shape2->Left + Shape2 -> Width==Shape8->Left)
{
Timer1-> Enabled=false;
}
 
else{
for (int i=0; i<ComponentCount; i++)
    {
    if (Components[i] -> Tag==8)
       ((TControl *)Components[i])->Left +=1;
 
    }
}
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
{
Timer1 -> Enabled=true;
Timer1 -> OnTimer=Button2Click;
Shape2->Tag=2;
Shape3->Tag=2;
 
if (Shape2->Top==Shape8->Top)
{
 Timer1 -> Enabled=false;
}
 
else{
for (int i=0; i<ComponentCount; i++)
    {
    if (Components[i] -> Tag==2)
       ((TControl *)Components[i])->Top-=1;
 
    }
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Timer1 -> Enabled=true;
Timer1 -> OnTimer=Button3Click;
Shape3->Tag=3;
if (Shape3->Left + Shape3 -> Width==Shape8->Left + Shape8-> Width )
{
Timer1 -> Enabled=false;
}
else{
for (int i=0; i<ComponentCount; i++)
    {
    if (Components[i] -> Tag==3)
       ((TControl *)Components[i])->Left+=1;
 
    }
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Timer1 -> Enabled=true;
Timer1 -> OnTimer=Button4Click;
Shape2->Tag=4;
Shape3->Tag=4;
if(Shape3->Top+Shape3->Height==Shape2->Top)
 {
Timer1 -> Enabled=false;
 }
 if (Shape4->Top==Shape2->Top)
{
 Timer1 -> Enabled=false;
}
 
else
{
for (int i=0; i<ComponentCount; i++)
    {
    if (Components[i] -> Tag==4)
       ((TControl *)Components[i])->Top+=1;
 
    }
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Timer1 -> Enabled=true;
Timer1 -> OnTimer=Button5Click;
Shape1->Tag=5;
Shape2->Tag=5;
Shape4->Tag=5;
Shape5->Tag=5;
Shape6->Tag=5;
Shape3->Tag=5;
if (Shape4->Left==100)
{
Timer1-> Enabled=false;
}
else{
for (int i=0; i<ComponentCount; i++)
    {
    if (Components[i] -> Tag==5)
       ((TControl *)Components[i])->Left -=1;
 
    }
}
}
//---------------------------------------------------------------------------
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
17.11.2013, 20:14
если вы хотите что бы груз остался на зеленом столбе расположенном справа, то нужно сделать так что бы когда груз окажется в том месте где он должен остаться (приблизительно) он перестал двигаться вместе с погрузчиком - то есть его координаты перестали изменяться так как они изменяются у деталей погрузчика и оставались постоянными

Добавлено через 2 минуты
...учитывая наличие у вас кнопки переместить все становится еще проще - после нажатия на эту кнопку просто перестаньте менять координаты груза
0
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 30
17.11.2013, 20:30  [ТС]
так в том и проблема, что я не знаю как сделать так, чтобы вначале машина двигалась с грузом назад вперед, вниз верх, а когда груз останется на столбике, все эти действия происходили без груза...
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
17.11.2013, 20:33
если вообще не заморачиваться (не думать что написано в коде и зачем и пользоваться элементарными знаниями из области программирования), то заведите в классе поле с именем "готово", при нажатии кнопки переместить и окончании перемещения ставьте в это поле значение 1. в процедуре рисующей все это дело проверяйте значение поля "готово" - если там 1 не изменяйте положения фигуры-груза
1
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,008
18.11.2013, 00:02
Кроме "требуемого", "реализованы" следующие ситуации (исправлены баги, возникающие из-за того, что можно выполнить новое действие до окончания предыдущего): машина НЕ может уехать и подвижную платформу (ПП) нельзя опускать, если груз не до конца помещен на неподвижную платформу (НП).
Дополнительно: попробуй сделать возможность забирать груз обратно плюс некоторое подобие физики - если груз (больше чем) на половину находится на НП, то машина может уехать и опускать ПП.
А также, если груз (больше чем) на половину находится на ПП, то машина НЕ может уехать и опускать ПП.
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1->Enabled=true;
Timer1->OnTimer=Button1Click;
Shape1->Tag=8;
Shape2->Tag=8;
if (Shape3->Left != Shape8->Left)
  Shape3->Tag=8;
Shape4->Tag=8;
Shape5->Tag=8;
Shape6->Tag=8;
if (Shape2->Left + Shape2->Width==Shape8->Left)
{
Timer1->Enabled=false;
}
 
else{
for (int i=0; i<ComponentCount; i++)
    {
    if (Components[i]->Tag==8)
       ((TControl *)Components[i])->Left +=1;
 
    }
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
{
Timer1->Enabled=true;
Timer1->OnTimer=Button2Click;
Shape2->Tag=2;
if (Shape3->Left + Shape3->Width <= Shape8->Left)
  Shape3->Tag=2;
 
if (Shape2->Top==Shape8->Top)
{
 Timer1->Enabled=false;
}
 
else{
for (int i=0; i<ComponentCount; i++)
    {
    if (Components[i]->Tag==2)
       ((TControl *)Components[i])->Top-=1;
 
    }
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
{
Timer1->Enabled=true;
Timer1->OnTimer=Button3Click;
if ((Shape2->Left + Shape2->Width == Shape8->Left) && (Shape3->Top + Shape3->Height - 1 == Shape8->Top))
  Shape3->Tag=3;
 
if (Shape3->Left + Shape3->Width == Shape8->Left + Shape8->Width)
{
Timer1->Enabled=false;
}
else{
for (int i=0; i<ComponentCount; i++)
    {
    if (Components[i]->Tag==3)
       ((TControl *)Components[i])->Left+=1;
 
    }
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
{
Timer1->Enabled=true;
Timer1->OnTimer=Button4Click;
if (Shape3->Left + Shape3->Width == Shape2->Left + Shape2->Width || Shape3->Left + Shape3->Width == Shape8->Left + Shape8->Width)
  Shape2->Tag=4;
if (Shape3->Left + Shape3->Width <= Shape8->Left)
  Shape3->Tag=4;
 
 if (Shape4->Top==Shape2->Top)
{
 Timer1->Enabled=false;
}
 
else
{
for (int i=0; i<ComponentCount; i++)
    {
    if (Components[i]->Tag==4)
       ((TControl *)Components[i])->Top+=1;
 
    }
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Timer1->Enabled=true;
Timer1->OnTimer=Button5Click;
if (Shape3->Left + Shape3->Width <= Shape8->Left || Shape3->Left + Shape3->Width == Shape8->Left + Shape8->Width)
{
  Shape1->Tag=5;
  Shape2->Tag=5;
  Shape4->Tag=5;
  Shape5->Tag=5;
  Shape6->Tag=5;
  if (Shape3->Left + Shape3->Width <= Shape8->Left)
    Shape3->Tag=5;
}
if (Shape4->Left==100)
{
Timer1->Enabled=false;
}
else{
for (int i=0; i<ComponentCount; i++)
    {
    if (Components[i]->Tag==5)
       ((TControl *)Components[i])->Left -=1;
 
    }
}
}
Миниатюры
Объектно-ориентированное программирование  
2
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,008
18.11.2013, 00:13
P.S.: забыл сказать, что груз перемещается, только когда ПП "совмещена" (рядом и на одном уровне) с НП.
У тебя груз "улетал" с любой позиции.
Может быть, что-то еще глючило, но уже не вспомню (что нашел, исправил).
1
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 30
18.11.2013, 11:04  [ТС]
большое спасибо, постараюсь щас забрать груз обратно, и еще колеса что бы двигались. я понял все ошибки. большое большое спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.11.2013, 11:04
Помогаю со студенческими работами здесь

Объектно-ориентированное программирование
Составить описание класса одномерных массивов строк, каждая строка которых задается длиной и...

Объектно ориентированное программирование
Нужно решить задачи. Помогите кому это не сложно, очень нужно. Вот задачи: 1) Создание и...

Объектно ориентированное программирование.
Нужно решить задачи. Помогите кому это не сложно, очень нужно. Вот задачи: 1) Создание и...

Ищу ответы на задания из книги Лафоре Р. "Объектно-ориентированное программирование в С++" 4 издание.
Дошел до 10 главы, из каждой главы делал все 12 заданий, хочу проверить правильно ли я их делал. И...

Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++"
Хотя я и начинающий с++-шник. Хочу помочь другим людям. Здесь я буду выкладывать всё что мне...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru