Меню сайта
Категории раздела
Простые примеры [34] |
OpenGL [4] |
Фрактал [9] |
Windows API [2] |
Консоль [12] |
ДРУЗЬЯ САЙТА
Вызвать мастера в Красноярске
8 983 207 5474
8 902 918 9334
8 933 332 3164
---------------------------------
Запчасти бытткхники
Радиодетали
Электрика
ЗАКЛАДКИ
Поиск
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » C++ Builder » Простые примеры |
Как создать класс в C++ Builder XE; сортировка пузырьком
После запуска программы сразу нажмите кнопки сортировка и вы
узнаете что находится в массивах сразу после их создания
Заголовочный файл
Простые классы можно описать здесь удобно при изучении классов
Описывайте свой класс выше описания класса формы что бы ваш класс
можно было использовать в классе формы а в обще класс лучше поместить в
отдельный модуль
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ExtCtrls.hpp>
//---------------------------------------------------------------------------
const int mar_size=100;//Глобальная именованная константа
//-----------------------------------------------------------------------
//
class TMyClass
{
public:
//static const int mar_size=100;//Статическая именованная константа
static int size;//Статическая переменная
int max;
int min;
int mar[mar_size];
void SearchMin();
void SearchMax();
void __fastcall SortBubble();//спецификатор __fastcall не обязателен но желателен
void Randomys(int maxs);
};
//------------------------------------------
int TMyClass::size=10;//инициализация статической переменной
//--------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TEdit *Edit1;
TButton *Button1;
TEdit *Edit2;
TEdit *Edit3;
TButton *Button2;
TButton *Button3;
TEdit *Edit4;
TButton *Button4;
TBevel *Bevel1;
TLabel *Label1;
TBevel *Bevel2;
TEdit *Edit5;
TButton *Button5;
TEdit *Edit6;
TEdit *Edit7;
TEdit *Edit8;
TButton *Button6;
TButton *Button7;
TButton *Button8;
TLabel *Label2;
TButton *Button9;
TButton *Button10;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall Button4Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
void __fastcall Button5Click(TObject *Sender);
void __fastcall Button6Click(TObject *Sender);
void __fastcall Button7Click(TObject *Sender);
void __fastcall Button8Click(TObject *Sender);
void __fastcall Button9Click(TObject *Sender);
void __fastcall Button10Click(TObject *Sender);
private: // User declarations
public: // User declarations
TMyClass my;//Создаем объект класса TMyClass будет создан в программном стеке
TMyClass *ty;//Создаем указатель на объект класса TMyClass ему будет присвоен
//адрес при создании объекта оператором NEW
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
///////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
Файл реализации
Здесь реализуем методы вашего класса а также
конструкторы и деструкторы у нас нет
можно инициализировать статические переменные объявленные в классе
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
//int TMyClass::size=10;//инициализация статической переменной можно здесь
//---------------------------------------------------------------
void TMyClass::SearchMin()
{
int t=mar[0];
for (int i=1;i<size;i++)
{
if (mar[i]<t) t=mar[i];
}
min=t;
}
//----------------------------------------------------------------------------
void TMyClass::SearchMax()
{
int t=mar[0];
for (int i=1;i<size;i++)
{
if (mar[i]>t) t=mar[i];
}
max=t;
}
//------------------------------------------------------------------------------
void TMyClass::Randomys(int maxs)
{
for (int i=0;i<size;i++) mar[i]= random(maxs);
}
//------Сортировка пузыриком------------------------------------------------
void __fastcall TMyClass::SortBubble()
{
int t;
for (int j=0; j<size; j++) {
for (int i=1; i<size; i++) {
if (mar[i] < mar[i-1])
{
t=mar[i];
mar[i]=mar[i-1];
mar[i-1]=t;
}
}
}
}
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
//--------------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text="";
my.Randomys(67);
for (int i=0;i<my.size;i++) {
Edit1->Text= Edit1->Text + IntToStr( my.mar[i] )+",";
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
my.SearchMin();
Edit2->Text= IntToStr(my.min);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
my.SearchMax();
Edit3->Text= IntToStr(my.max );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Edit4->Text="";
my.SortBubble();
for (int i=0;i<my.size;i++) {
Edit4->Text= Edit4->Text + IntToStr( my.mar[i] )+",";
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ty = new TMyClass;//Указателю присваиваем адрес выделенной под объект памяти
//объект создается в куче
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
delete ty;//освобождаем память от объекта вернее вернем память системе
ty = 0;//не плохо бы и обнулить
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Edit5->Text="";
ty->Randomys(67);
for (int i=0;i<ty->size;i++) {
Edit5->Text= Edit5->Text + IntToStr( ty->mar[i] )+",";
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
ty->SearchMin();
Edit6->Text= IntToStr(ty->min);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
ty->SearchMax();
Edit7->Text= IntToStr(ty->max );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
Edit8->Text="";
ty->SortBubble();
for (int i=0;i<ty->size;i++) {
Edit8->Text= Edit8->Text + IntToStr( ty->mar[i] )+",";
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
int a=20;
if (a < mar_size ) { ty->size=20; } // mar_size доступна и здесь проверка выхода за
//приделы массива
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{
my.size=5;//size статическая переменная видна из всех объектов вашего класса
//можно использовать для изменения какого то свойства во всех объектах одновременно
//для всех объектов создается одна статическая переменная ty->size она же
}
//---------------------------------------------------------------------------
=============================================
| |
Просмотров: 6597 | Рейтинг: 0.0/0 |