- •Программалауда қазіргі қолданылып жүрген технологиялар. Объектіге бағдарланған программалаудың негізгі қағидалары
- •Әдістемелік нұсқаулар
- •Void assign(double Len, double Wide); // // функция -элемент
- •Өзіндік жұмыс тапсымалары
- •Негізгі визуалдық компоненттер. Vcl кітапханасының компоненттері. Қасиеттері, әдістері және оқиғалары
- •OnClick оқиғасын шақыру.
- •Жаттығу жұмыстары
- •Өзіндік жұмыс тапсымалары
- •Қосымша құруда тізімдерді пайдалану
- •Өзіндік жұмыс тапсырмалары
- •Қосымшадағы ауыстырғыштардың қызметі
- •Әдістемелік нұсқаулар
- •Жаттығу жұмыстары
- •Өзіндік жұмыс тапсымалары:
- •Қосымшадағы терезелердің және мәзірлердің жұмысын ұйымдастыру. Форма және мәзірлер
- •Әдістемелік нұсқаулар
- •Жаттығу жұмыстары
- •Өзіндік жұмыс тапсырмалары
- •Массивтермен жұмыс жасауға арналған компоненттер
- •Әдістемелік нұсқаулар
- •Жаттығу жұмыстары
- •Өзіндік жұмыс тапсымалары
- •Ерекше жағдайларды өңдеу түсінігі. Ерекше жағдайлар класы
- •Әдістемелік нұсқаулар
- •Өңдеуші қызметінің мысалы
- •Жаттығу жұмыстары
- •Wіndows интерфейсінің компоненттерін қолданып файлдарды басқару
- •Әдістемелік нұсқаулар
- •Өзіндік жұмыс тапсымалары
- •Әдістемелік нұсқаулар
- •IndexName – кестеге екінші индексті белгілейді. Бұл қасиетті кесте ашық болғанда өзгертуге болмайды.
- •Insert, Edit, Delete, Append – жазба қосу үшін кестелерді жазу, өңдеу, алып тастау, жазбаларды қосу режимдерiне ауыстырады
- •Жаттығу жұмыстары
- •Өзіндік жұмысқа тапсырмалар
- •Әдістемелік нұсқаулар
- •Терезесі және Add Table диалогтық панелі пайда болады.
- •Таңдаған кесте пайда болады
- •Компоненттерді орналастыру
- •DataModule-ге орналастыру
- •QReport парағын пайдаланып есеп беруді ұйымдастыру
- •Жаттығу жұмыстары
- •Қосымшаның анықтамалық жүйесін құру
- •Жаттығу жұмыстары
- •Өзіндік жұмыстарға тапсырмалары
- •Қосымшаны таратуға даярлау. Дистрибутивтер. Орнатушы инсталляциялық пакетті Install Shield Express утилитасы арқылы жасау
- •Әдістемелік нұсқаулар
- •Мәндерін және кілттерді анықтау
Өзіндік жұмыс тапсырмалары
Тізімдерді және олардың қасиеттері мен әдістерін, уақиғаларын пайдалана отырып:
Азық-түлік дүкенінің ассортименті туралы мәлімет беретін;
Поликлиниканың дәрігерлері туралы мәлімет беретін;
Математикалық формулалар анықтамалығының қызметін атқаратын;
Кітапханадағы картотека қызметін атқаратын;
Атына сәйкес түстерді көрсете алатын;
Атына сәйкес фигураларды көрсете алатын;
Атына сәйкес музыка ойнай алатын;
Фильмдер картотекасының қызметін атқаратын;
Футбол клубтары туралы анықтамалар беретін;
Қаладағы мәдени орталықтарда өтетін іс-шаралар туралы ақпарат беретін;
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<Elem_sani;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<Elem_sani;i++) {
if (a[i]<min) min=a[i]; }
Edit3->Text=FloatToStrF(min,ffFixed,5,2);
}
if (CheckBox3->Checked == True)
// массивті өсу ретімен сұрыптау
for(int i=0;i<Elem_sani;i++)
{ max=a[i]; int Nmax=i;
for(int j=i;j<Elem_sani;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<Elem_sani;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 = ( 'Фамилия бойынша' 'Аты бойынша' 'Туган жылы бойынша ') |
Программаның мәтіні:
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
class stud
{public:
AnsiString fam, ati;
int tugG;
};
stud grup[10]; int n=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
// 'ЕНГIЗУДI ОРЫНДАУ' батырмасының коды
{
grup[n].fam=Edit1->Text;
grup[n].ati=Edit2->Text;
grup[n].tugG=StrToInt(Edit3->Text);
Memo1->Lines->Add(grup[n].fam+" "+
grup[n].ati+" "+IntToStr(grup[n].tugG));
n++;
Edit1->Clear();Edit2->Clear();Edit3->Clear();
Edit1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyPress(TObject *Sender,
char &Key)
{
if(Key==13) Edit2->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2KeyPress(TObject *Sender,
char &Key)
{
if(Key==13) Edit3->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit3KeyPress(TObject *Sender,
char &Key)
{
if(Key==13) Button1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
// 'СУРЫПТАУДЫ ОРЫНДАУ' батырмасының коды
{
if(RadioGroup1->ItemIndex==0) //fam boinsha syriptay bastaldi
{ Memo1->Clear();
for(char i='А';i<='Я';i++)
for (int j=0;j<n;j++)
if(grup[j].fam[1]==i)
Memo1->Lines->Add(grup[j].fam+" "+
grup[j].ati+" "+IntToStr(grup[j].tugG));
} // fam boinsha syriptay bitti
if(RadioGroup1->ItemIndex==1) //ati boinsha syriptay bastaldi
{ Memo1->Clear();
for(char i='А';i<='Я';i++)
for (int j=0;j<n;j++)
if(grup[j].ati[1]==i)
Memo1->Lines->Add(grup[j].ati+" "+
grup[j].fam+" "+IntToStr(grup[j].tugG));
} //ati boinsha syriptay bitti
if(RadioGroup1->ItemIndex==2) //tugG boinsha syriptay bastaldi
{Memo1->Clear();
for(int i=0;i<n;i++)
{ stud max=grup[i]; int maxI=i;
for (int j=i;j<n;j++)
if(grup[j].tugG > max.tugG)
{max=grup[j]; maxI=j;}
Memo1->Lines->Add(max.ati+" "+
max.fam+" "+IntToStr(max.tugG));
grup[maxI]=grup[i];
grup[i]=max;
}
}//tugG boinsha syriptay bitti
}
