Главная страница

Программалауда қазіргі қолданылып жүрген технологиялар. Объектіге бағдарланған программалаудың негізгі қағидалары


НазваниеПрограммалауда қазіргі қолданылып жүрген технологиялар. Объектіге бағдарланған программалаудың негізгі қағидалары
страница2/7
Дата08.02.2016
Размер0.97 Mb.
ТипПрограмма
1   2   3   4   5   6   7


«Есептеу» деп аталатын батырмаға екі рет шертіліп, пайда болған терезеге келесі код жазылады:
void __fastcall TForm1::Button1Click(TObject *Sender)

{

int biktik, taban;

float audan;

biktik=StrToInt(Edit1->Text);

taban=StrToInt(Edit2->Text);

audan=float(biktik*taban)/2;

Edit3->Text=FloatToStr(audan);

}
Өзіндік жұмыс тапсымалары
Келесі мазмұндағы есептерді шеше алатын қосымша құрыңыз:


  1. Пирамиданың көлемін табу.

  2. Үш қабырғасы бойынша үшбұрыштың ауданын есептеу.

  3. Параллелипедтің көлемін есептеу.

  4. Тізбектің жалпы кедергісін есептеу (параллель қосылған).

  5. Трапецияның ауданын есептеу.

  6. Тізбектің жалпы кедергісін есептеу (тізбектей қосылған).

  7. Екі қабырғасы және арасындағы бұрышы бойынша үшбұрыштың ауданын есептеу.

  8. Бүтін сандармен арифметикалық амалдарды орындай алатын калькулятор программа жасау.

  9. Тригонометриялық функцияларды және түбір табуды орындай алатын калькулятор жасау.

  10. Цилиндр көлемін табу.



4 - зертханалық жұмыс.

Қосымша құруда тізімдерді пайдалану



Әдістемелік нұсқаулар
C++Builder ортасында құрылатын қосымшалардағы тізімнің көмегімен таңдау жұмысын ұйымдастыру үшін Standart панелінің ListBox, ComboBox компоненттерін қолдануға болады.

Standart панелінің ListBox, ComboBox компоненттері. ListBox компоненті қарапайым тізімдерді жасауда қолданылады.

Мысалы,

ComboBox1->Items.LoadFromFile(‘с:\Gruppa\Family.txt’);
Жаттығу жұмыстары
Студент пен оқытушы туралы ақпарат бере алатын қарапайым қосымша құру керек. Әрбір студент немесе оқытушы туралы ақпарат оның фамилиясына сәйкес аталатын *.txt файлда сақталсын. Қосымша құруда тізімдерді пайдаланыңыз.

Орындалуы. Қосымша үш /4.5, 4.6, 4.7 –суреттер/ терезеден тұрады. «Анықтама» терезесіндегі батырмалар көмегімен «Студенттер» немесе «Оқытушылар» терезелерінің біріне көшуге болады. Бұл терезелерде сәйкесінше студент немесе оқытушы туралы нақты мәлімет алынады.

«Анықтама» терезесі (Form1) үшін жазылған программа мәтіні:

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}



4.5-сурет. Анықтама терезесі



4.6-сурет. Студенттер терезесі


4.7-сурет. Оқытушылар терезесі
// «Студенттер» батырмасының оқиға өңдеуші коды

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Form2->Show();

}

// «Оқытушылар» батырмасының оқиға өңдеуші коды

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form3->Show();

}

//«Программаны жабу» батырмасының оқиға өңдеуші коды

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Form1->Close();

}
«Студенттер» терезесі (Form2) үшін жазылған программа мәтіні:

#include "Unit2.h"

#include "Unit1.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "SHDocVw_OCX"

#pragma resource "*.dfm"

TForm2 *Form2;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

// «КЕЙІН» батырмасының оқиға өңдеуші коды

void __fastcall TForm2::Button1Click(TObject *Sender)

{

Form1->Show();

Form3->Hide();

Form2->Hide();

}

// Студенттер тізімі жазылған ListBox1 компонентін шерту оқиғасының коды

void __fastcall TForm2::ListBox1Click(TObject *Sender)

{

if (Form2->ListBox1->ItemIndex==0) M

Memo1->Lines->LoadFromFile("Жаркынбек.txt");

(Form2->ListBox1->ItemIndex==1)

Memo1->Lines->LoadFromFile("Жумагазы.txt");

if (Form2->ListBox1->ItemIndex==2)

Memo1->Lines->LoadFromFile("Имангалиева.txt");

}
«Оқытушылар» терезесі (Form3) үшін жазылған программа мәтіні:

#include "Unit3.h"

#include "Unit1.h"

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "SHDocVw_OCX"

#pragma resource "*.dfm"

TForm3 *Form3;

//---------------------------------------------------------------------------

void __fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}

// Оқытушылар тізімі жазылған ComboBox1 компоненті оқиғасының коды
void __fastcall TForm3::ComboBox1Change(TObject *Sender)

{

if(ComboBox1->ItemIndex==0)

Memo1->Lines->LoadFromFile("Мухтаров.txt");

if(ComboBox1->ItemIndex==1)

Memo1->Lines->LoadFromFile("Асанова.txt");

}

//«КЕЙІН» батырмасының оқиға өңдеуші коды

void __fastcall TForm3::Button1Click(TObject *Sender)

{

Form1->Show();

Form3->Close();

Form2->Hide();

}
Өзіндік жұмыс тапсырмалары
Тізімдерді және олардың қасиеттері мен әдістерін, уақиғаларын пайдалана отырып:

  1. Азық-түлік дүкенінің ассортименті туралы мәлімет беретін;

  2. Поликлиниканың дәрігерлері туралы мәлімет беретін;

  3. Математикалық формулалар анықтамалығының қызметін атқаратын;

  4. Кітапханадағы картотека қызметін атқаратын;

  5. Атына сәйкес түстерді көрсете алатын;

  6. Атына сәйкес фигураларды көрсете алатын;

  7. Атына сәйкес музыка ойнай алатын;

  8. Фильмдер картотекасының қызметін атқаратын;

  9. Футбол клубтары туралы анықтамалар беретін;

  10. Қаладағы мәдени орталықтарда өтетін іс-шаралар туралы ақпарат беретін;


5 –зертханалық жұмыс.

Қосымшадағы ауыстырғыштардың қызметі
Әдістемелік нұсқаулар
C++Builder ортасында программалауда, программа ұсынатын мүмкіндіктердің бірін немесе қатарынан бірнешеуін таңдау үшін ауыстырғыштар (переключатель, флажок) қолданылады. Программада мұндай ауыстырғыштардың қызметін Standart панелінің CheckBox, RadioButton және RadioGroup компоненттері атқарады. Ауыстырғыш екі күйде ғана бола алады: «қосылған» (ν немесе ●) және «ажыратылған» (□ немесе ○ ). Ауыстырғыштарды мүмкіндігіне қарай екі топқа бөледі: тәуелсіз және өзара тәуелді. Тәуелсіз ауыстырғыштардың жұмысы басқа ауыстырғыштарға байланыссыз, тәуелсіз болады.

CheckBox компоненті. Программада CheckBox компонентінің көмегімен жасалатын ауыстырғыш, тәуелсіз ауыстырғыштар тобына жатады. Әдетте, қажет болған жағдайда бірнеше ауыстырғыштарды бір топқа біріктіріп пайдаланады, ол үшін контейнердің ролін атқаратын арнаулы GroupBox және Panel және т.б. компоненттер қолданылады.

Әдетте қосымшада ауыстырғыштың күйін өзгерту үшін тышқанның сол жақ батырмасына шертеді, яғни қандай болғанына қарамастан әйтеуір күйі өзгеретін болса, онда CheckBox компоненті үшін міндетті түрде OnClick оқиғасы пайда болады. Бұл оқиғаны өңдеуге арналған функция, көбінесе ауыстырғыштың күйіне байланысты белгілі бір әрекеттердің немесе операторлардың орындалуын қамтамасыз ету үшін қолданылады.

Мысалы,
void __fastcall TForm1::CheckBox1Click(TObject *Sender)

{

if (CheckBox1->Checked = = true)

Memo1->Font->Size=10;

}
RadioButton компоненті. RadioButton компоненті тәуелді ауыстырғыштар қатарына жатады, яғни, бір контейнерде орналасқан RadioButton түріндегі бірнеше ауыстырғыштардың біреуі «қосылған» күйде болса, онда қалғандарының барлығы бірдей автоматты түрде «ажыратылған» күйге көшеді.
Жаттығу жұмыстары
1-жаттығу. Кездейсоқ сандар генераторын (random) пайдаланып жасалған массивтің max және min элементтерін табуды және массивті сұрыптауды қолданушының сұранысына байланысты бір-біріне тәуелсіз орындай алатын қосымша құрыңыз. /4.8-суреттегідей/



4.8-сурет. Қосымша терезесі.

#include "Unit1.h"

#include "stdlib.h"

TForm1 *Form1;

float a[100];

int Elem_sani=0;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---Орындау батырмасының коды ----------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

float max=a[0];

float min=a[0];

if (Edit1->Text=="")

{ShowMessage("Massiv elementterinin sanin beriniz");

Edit1->SetFocus();}

if (CheckBox1->Checked == True) //max элементті табу

{for (int i=0;i
if (a[i]>max) max=a[i];

}

Edit2->Text=FloatToStrF(max,ffFixed,5,2);

}

if (CheckBox2->Checked == True) //min элементті табу

{for (int i=0;i
if (a[i]
Edit3->Text=FloatToStrF(min,ffFixed,5,2);

}

if (CheckBox3->Checked == True)

// массивті өсу ретімен сұрыптау

for(int i=0;i
{ max=a[i]; int Nmax=i;

for(int j=i;j
if (a[j]>max) {max=a[j]; Nmax=j;}

a[Nmax]=a[i]; a[i]=max;

Memo2->Lines->Add("a["+Int

ToStr(i)+"]= "+FloatToStrF(max,ffFixed,5,2)); }

}

//------Массивті толтыру батырмасының коды-----------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

if (Edit1->Text=="")

{ShowMessage("Massiv elementterinin sanin beriniz");

Edit1->SetFocus();}

Elem_sani=StrToInt (Edit1->Text);

for(int i=0; i
{ a[i]= (float) random(100)/7-3;

Memo1->Lines->Add("a["+IntToStr(i)+"]=

"+FloatToStrF(a[i],ffGeneral,3,1));}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormActivate(TObject *Sender)

{Edit1->SetFocus();}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{Form1->Close();}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{Memo1->Clear(); Memo2->Clear();

Edit1->Clear(); Edit2->Clear(); Edit3->Clear();}

//---------------------------------------------------------------------------

2-жаттығу.

Студенттер туралы мәліметтер (фамилиясы, аты және туған жылы) класс түрінде анықталған. Группадағы студенттер туралы мәліметтерді сұрыптауды (фамилиясын немесе атын алфавит бойынша, туған жылдарын кему реті бойынша орналастыру) орындайтын программа жазыңыз. Программа терезесі 4.9- суретте көрсетілген.


4.9-сурет. Студенттер туралы мәліметтер
Терезедегі компоненттер қасиеттерінің және оқиғаларының мәндері:

Компоненттің аты

Қасиеттерінің мәндері, оқиғалары

Form1

Caption = 'RadioButton компонентiн пайдалану мысалы'

Label1

Caption = 'Фамилия'

Label2

Caption = 'Аты'

Label3

Caption = 'Туган жылы'

Memo1

Lines.Strings = ( ')

Edit1

Text қасиеті тазаланады, OnKeyPress = Edit1KeyPress

Edit2

Text қасиеті тазаланады, OnKeyPress = Edit2KeyPress

Edit3

Text қасиеті тазаланады, OnKeyPress = Edit3KeyPress

Button1

Caption = 'ЕНГIЗУДI ОРЫНДАУ', OnClick = Button1Click

Button2

Caption = 'СУРЫПТАУДЫ ОРЫНДАУ', OnClick = Button2Click

RadioGroup1

Caption = 'Сурыптау'

Items.Strings = (

'Фамилия бойынша'

'Аты бойынша'

'Туган жылы бойынша ')
1   2   3   4   5   6   7