Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2011, 20:44   #1
JinZh
Пользователь
 
Регистрация: 25.01.2011
Сообщений: 11
По умолчанию работа с классами

Код:
/*
 Написать программу, в которой предусмотреть класс для организации 
 обработки целочисленного массива. 
 Внутри класса реализовать два конструктора: 
 1-й конструктор должен обеспечивать ввод элементов массива с клавиатуры; 
 2-й конструктор должен формировать значения элементов массива в задаваемом диапазоне [min, max] 
 c помощью генератора случайных значений. 
 Внутри класса предусмотреть 5 методов: 
 1-й метод должен вычислять значение максимального элемента в массиве; 
 2-й метод должен вычислять значение минимального элемента; 
 3-й метод должен обеспечивать вывод массива на экран. 
 Еще 2 метода спроектировать самостоятельно и реализовать.
 */

Вот код решения на С++ 

#include "vcl.h"
 #include "iostream.h" 
 #include "conio.h" 
 #include <windows.h> 
 #include <math.h> 
 using namespace std; 

 class mass 
 { 
 public: mass_A1(int); 
                         //~mass();
 void min_mass (int);
 void max_mass (int);
 void output_mass (int); 
    private: int m[10];

 }; 

 mass::mass_A1(int size)
 {     for(int i = 1; i <= size; i++)
  { 
   m[i] = rand();
  cout << "Vvedite m["<<i<<"] element "; 
  cin >> m[i]; 
  } 

 } 

 void mass::min_mass(int size) 
 { 
  int min;    min=m[1];
  for(int i = 1; i <= size; i++) 
  { 

   if (m[i]<=min) min=m[i];
  } 
  cout<<"Minimal'niy element ="<<min<<"\n"; 
 } 

 void mass::max_mass(int size)
 { 
   int max;
   max=m[1];
   for(int i = 1; i <= size; i++)
  {

   if (m[i]>=max) max=m[i];
  }
  cout<<"Maximal'niy element="<<max<<"\n";
 } 

 void mass::output_mass(int size) 
 { cout<<" ===Vyvod=massiva===\n"; 
  for(int i = 1; i <= size; i++) 
  { 
   cout<<i<<".element="<<m[i]<<"\n";
  } 
 } 

 int main() 
 { int size;
  mass A1; //
  cout<<"Enter size: "; 
  cin>>size; 
  A1.mass_A1(size); 
  A1.min_mass(size); 
  A1.max_mass(size); 
  A1.output_mass(size); 

 getch(); 
  return 0;

 }
Мне нужна помощь по реализации этой задачи в Builder.. как связать классы с формой и функции класса с кнопками. Кто может примерно показать куда нужно заносить класс. Препод еще говорил что нужно создавать еще 1 класс с этим массивом, что бы при изменении возвращаться к исходнику.
P.S пожайлуйста помогите хотя бы инфой, через 5 дней сдача курсовой! =(

Последний раз редактировалось ACE Valery; 21.04.2011 в 01:05.
JinZh вне форума Ответить с цитированием
Старый 20.04.2011, 21:09   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Открываете в билдере File/New/Unit.
В h-файле прописываете класс, а в cpp файле - его реализацию.
В функциях реализации класса не принято делать ввод данных. Если это надо вводить для вычислений - вводите эти данные через параметры.
Связать функции класса в обработчиках можно так:

Код:
mass_A1 *A1 = new mass_A1();
..............
delete A1;
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 20.04.2011, 23:17   #3
JinZh
Пользователь
 
Регистрация: 25.01.2011
Сообщений: 11
По умолчанию

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

Вот мой код:
Unit1.cpp
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
mass::mass()
{
//ввод вручную не получается
}
//рандомно------------------------------------------------------------------
mass::mass(int min,int max)
{
for (int i=0;i<10;i++) arr[i]= random(max-min)+min;
}
//максимальное--------------------------------------------------------------
void mass::max_mass()
{
int t=arr[0];
for (int i=1;i<10;i++)
{
  if (arr[i]>t) t=arr[i];
}
Form1->Memo1->Lines->Add("max="+IntToStr(t));
}
//минимальное----------------------------------------------------------------
void mass::min_mass()
{
int t=arr[0];
for (int i=1;i<10;i++)
{
  if (arr[i]<t) t=arr[i];
}
Form1->Memo1->Lines->Add("min="+IntToStr(t));
}
//вывод----------------------------------------------------------------------
void mass::output_mass()
{
for (int i=0;i<10;i++)
{
  Form1->Memo1->Lines->Add(IntToStr(A->arr[i]));
}
}
//---------------------------------------------------------------------------
//пробовал ввод вручную
void mass::in_mass(int r)
{
 //if (Form1->Button1->OnClick)
arr[r]=StrToInt(Form1->Edit1->Text);
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
 A = new mass();
 A = new mass(1,50);
 A->output_mass();

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete A;//очищаем память
A=NULL;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1->Text=" ";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
A->max_mass();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
A->min_mass();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Memo1->Text=" ";
}
//---------------------------------------------------------------------------
Unit1.h
Код:
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TEdit *Edit1;
        TButton *Button1;
        TButton *Button2;
        TButton *Button3;
        TButton *Button4;
        TLabel *Label1;
        TMemo *Memo1;
        TButton *Button5;
        void __fastcall Button4Click(TObject *Sender);
        void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button3Click(TObject *Sender);
        void __fastcall Button5Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};
class mass
{
public:
 mass();
 mass(int,int);
 void max_mass();
 void min_mass();
 void output_mass();
 void in_mass(int);
 
private:
 int arr[10];
};
mass * A;

//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
http://s005.radikal.ru/i212/1104/77/2315dfd10994.jpg (форма)

Последний раз редактировалось JinZh; 21.04.2011 в 15:23.
JinZh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с классами в си++ Zolotce Помощь студентам 4 01.04.2011 22:49
работа с классами ver Помощь студентам 8 15.01.2011 18:07
Работа с классами ImmortalAlexSan Помощь студентам 0 04.12.2010 14:07
работа с классами jec Общие вопросы C/C++ 30 05.09.2010 00:03
С++: работа с классами MR_Andrew Общие вопросы C/C++ 23 01.04.2010 23:46