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

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

Войти
Регистрация
Восстановить пароль
 
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 243
#1

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

26.09.2010, 08:18. Просмотров 359. Ответов 2
Метки нет (Все метки)

1.Написать программу, в которой будут объявлены структуры Points и Line, создан динамический массив объектов Line и нарисованы все объекты, занесенные в массив.

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

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

Помещение структуры в вектор, удаление структуры, изменение элементов структуры - C++
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в векторе зная уникальный элемент структуры. 2 - удалять...

Динамические структуры данных. Программа ввода в структуры и вывода информации из неё. - C++
Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для...

Функция внутри структуры использует указатель, как поле этой структуры - C++
Коротко, есть класс A, описан в файле A_class.h ну и реализованы функции в A_class.cpp, есть файл GlobalItems.h, где хранятся глобальные...

Динамическое изменение структуры таблицы для организации древовиднойой структуры - MS Access
Доброго времени суток. У меня такой вот вопрос: Необходимо сделать возможность добавления записей в таблицу определнным образом (через...

Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры) - C++
Есть у меня вот такая структура, например struct Subject { int cost; int Volume; }; Потом создаю экземпляр, Subject G; ...

Динамические структуры данных, списковые структуры (надо разобраться что делает программа) - Delphi
дана программа, надо помочь выяснить что в ней делает каждая подпрограмма unit Unit6; interface uses Windows,...

Управляющие структуры. Программирование алгоритмов разветвляющейся структуры. - Delphi
как это в delphi выполнить?((( Вычислить объем и площадь полной поверхности цилиндра, если известны высота и радиус основания V=пr^2*h,...

Вывод структуры, строка как элемент структуры - C++
Описать структуру с именем TRAIN, содержащую следующие поля: □ название пункта назначения; □ номер поезда; □ время отправления. ...

Исследование структуры FILE или: что вообще можно выудить из этой структуры, указатель на которую мы получаем при открытии файла? - C++
Ничего нельзя. Итак, новичкам напомню, что после выполнения кода FILE* f= fopen ("file.txt", "w"); в переменной f содержится...

Оператор if и структуры. Возвращение структуры из функции - C++
Здравствуйте, имеется такая вот функция. void InputStructEmployee (int StructSize) { StructEmployee UsrStruct; string...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
26.09.2010, 08:26     Структуры #2
Берете код из методички и издеваететсь над ним до неузнаваемости)) Мне полностью код писать сейчас лень, но если выложите то, что у вас есть, то я его изменю, сам автор не узнает)))
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 243
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+" элементов");}
}
Ответ Создать тему
Опции темы

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