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

Структуры - C++

Восстановить пароль Регистрация
 
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
26.09.2010, 08:18     Структуры #1
1.Написать программу, в которой будут объявлены структуры Points и Line, создан динамический массив объектов Line и нарисованы все объекты, занесенные в массив.

1) В Edit1 вводим количество линий
2) потом создаем динамический массив.
3) рисуем линию и заносим координаты в массив(нажав на кнопку), и так еще несколько линий.
4) При нажатии последней кнопки рисуется все линии, координаты которых взяты из массива.

Как сделать программу я знаю. У меня есть работающий код. НО он почти такой же, как в методичке. А она сказала не брать из методички. А как по другому реализовать я не знаю. А если и знаю, то мне мешает то, что я знаю как в методички. Помогите люди.
Подскажите, как можно сделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2010, 08:18     Структуры
Посмотрите здесь:

Структуры C++
C++ структуры
С++. Структуры. C++
Структуры C++
Структуры в С++ C++
Структуры C++
C++ Структуры в С++
C++ структуры

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
26.09.2010, 08:26     Структуры #2
Берете код из методички и издеваететсь над ним до неузнаваемости)) Мне полностью код писать сейчас лень, но если выложите то, что у вас есть, то я его изменю, сам автор не узнает)))
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
26.09.2010, 09:36  [ТС]     Структуры #3
Я вроде уже написал свой, но вот не совсем работает. Не рисует.
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
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int n, r;
bool ka;
struct Points
{int x, y;};
struct Line
{Points nachalo, konec;};
Line *lin;
void Draw(int t, struct Line *line)
{for (int i=0; i<t; i++)
{Form1->Image1->Canvas->MoveTo(line[i].nachalo.x,line[i].nachalo.y);
Form1->Image1->Canvas->LineTo(line[i].konec.x,line[i].konec.y);}}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner) { Image1->Picture->Bitmap = NULL;}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{if(lin) {delete []lin;}
Application->Terminate();}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{n=StrToInt(Edit1->Text);
r=n;
if (n>0){if(lin) {delete [] lin;}
lin = new Line [n];
Form1->Button2->Enabled=true;}}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{Image1->Picture->Bitmap = NULL;
n--;
Edit1->Text=IntToStr(n);
if (n==0) {Form1->Button2->Enabled=false;}}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{if (n==0){}
else{ShowMessage((String)"Вы не ввели еще "+n+" элементов");}
Image1->Picture->Bitmap->FreeImage();
Draw(r, lin);}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{if (lin && n>0){if (ka==true && X>0 && X<649 && Y>0 && Y<217){
Image1->Picture->Bitmap = NULL;
Image1->Canvas->MoveTo(lin[n-1].nachalo.x,lin[n-1].nachalo.y);
Image1->Canvas->LineTo(X, Y);}}}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{if (lin){
ka=false;
if (X>0 && X<649 && Y>0 && Y<217)
{lin[n-1].konec.x=X;
lin[n-1].konec.y=Y;}
else {ShowMessage("Вылез. Рисуй заново.");}}}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{if (lin){ka=true;
Canvas->MoveTo(X,Y);
lin[n-1].nachalo.x=X;
lin[n-1].nachalo.y=Y;}}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{Image1->Parent->DoubleBuffered = true;}
//---------------------------------------------------------------------------
Как тут спойлер делать?

Добавлено через 18 минут
Все исправил.
это
C++
1
2
3
4
5
void __fastcall TForm1::Button3Click(TObject *Sender)
{if (n==0){}
else{ShowMessage((String)"Вы не ввели еще "+n+" элементов");}
Image1->Picture->Bitmap->FreeImage();
Draw(r, lin);}
нужно заменить на это
C++
1
2
3
4
5
void __fastcall TForm1::Button3Click(TObject *Sender)
{if (n==0){Image1->Picture->Bitmap = NULL;
Draw(r, lin);}
else{ShowMessage((String)"Вы не ввели еще "+n+" элементов");}
}
Yandex
Объявления
26.09.2010, 09:36     Структуры
Ответ Создать тему
Опции темы

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