Dasturiy injiniring
Download 1.98 Mb. Pdf ko'rish
|
MTM uchun oyin dasturi
2. Matematik o’yin
Form4 oynasiga o’tamiz. Form4 oynasini Form5 oynasiga biriktiramiz ya’ni #include "Unit5.h" kutubxonasini qo’shib qo’yamiz. 2.1. Uskunalar panelidan Additional bo’limini tanlab, Form4 oynasiga 14 ta Shape komponentasini olib joylashtiriladi. 2.1.1. 1-5 va 14 Shape komponentasi Shape xususiyatiga stRectangle tanlanadi. 2.1.2. 1-5 va 14 Shape komponentasi Height xususiyatiga 65 deb yoziladi. 2.1.3. 1-5 va 14 Shape komponentasi Width xususiyatiga 65 deb yoziladi. 2.1.4. 6-10 va 13 Shape komponentasi Shape xususiyatiga stEllipse tanlanadi. 2.1.5. 6-10 va 13 Shape komponentasi Height xususiyatiga 65 deb yoziladi. 20
2.1.6. 6-10 va 13 Shape komponentasi Width xususiyatiga 65 deb yoziladi. 2.1.7. 11 va 12 Shape komponentasi Shape xususiyatiga stEllipse, stRectangle tanlanadi. 2.1.8. 11 va 12 Shape komponentasi Height xususiyatiga 48 deb yoziladi. 2.1.9. 11 va 12 Shape komponentasi Width xususiyatiga 48 deb yoziladi. 2.2. Uskunalar panelidan Standart bo’limini tanlab, Form4 oynasiga 15 ta Label komponentasini olib joylashtiriladi. 2.2.1. Barcha Labellarlar shift tugmasi bosib turgan holda belgilanadi. Ob’yektni ko’rinishiga doir xossalaridan Font tanlanadi(... bosilgan holda). Fornt shirift = “ Times New Roman”, qalin, 20 razmerga sozlanadi va OK tugmasi bosiladi. Label1 shirifti 22 razmerga va Label2 shirifti 36 razmerga qo’yiladi. Label komponentalari mos ravishda Shape komoanentalari ichiga joylashtiriladi. Faqatgina label1 va label2 komponentalari random tanlagan "+" yoki "-" ishorasini ko’rsatib turadi. Label15 komponentasi raqmlar tushish tezligini boshqaradi. Qayerga joylashtirish esa ahamiyatsiz. Glabal holda ushbu o’zgaruvchilarni elon qilamiz: int v=1,r,summa=0,summa1=0,a[20],etok=0; 2.3. System bo’limidan Timer komponentasini olib Form1 oynasiga ixtiyoriy joylashtiriladi. 1.3.1. Sichqonchaning chap tugmasini Timer1 ustiga 2 marta bosgan holda quyidagi kod yoziladi: void __fastcall TForm4::Timer1Timer(TObject *Sender) { Label2->Top= Label2->Top+v; Label3->Top= Label3->Top+v; Label4->Top= Label4->Top+v; Label5->Top= Label5->Top+v; Label6->Top= Label6->Top+v; Label7->Top= Label7->Top+v; Label8->Top= Label8->Top+v; Label9->Top= Label9->Top+v; Label10->Top= Label10->Top+v; Label11->Top= Label11->Top+v;
21
Label12->Top= Label12->Top+v; Label13->Top= Label13->Top+v; Label14->Top= Label14->Top+v; Shape1->Top= Shape1->Top+v; Shape2->Top= Shape2->Top+v; Shape3->Top= Shape3->Top+v; Shape4->Top= Shape4->Top+v; Shape5->Top= Shape5->Top+v; Shape6->Top= Shape6->Top+v; Shape7->Top= Shape7->Top+v; Shape8->Top= Shape8->Top+v; Shape9->Top= Shape9->Top+v; Shape10->Top= Shape10->Top+v; Shape13->Top= Shape13->Top+v; Shape14->Top= Shape14->Top+v; if(Shape1->Top>607) {
Shape1->Visible=0; Shape2->Visible=0; Shape3->Visible=0; Shape4->Visible=0; Shape5->Visible=0; Shape6->Visible=0; Shape7->Visible=0; Shape8->Visible=0; Shape9->Visible=0; Shape10->Visible=0; Shape13->Visible=0; Shape14->Visible=0; Label2->Visible=0; Label3->Visible=0; Label4->Visible=0; Label5->Visible=0; Label6->Visible=0; Label7->Visible=0; Label8->Visible=0; Label9->Visible=0; Label10->Visible=0; Label11->Visible=0; Label12->Visible=0; Label13->Visible=0; Label14->Visible=0; Timer1->Enabled=0; S1->Caption="Start"; sPanel1->Caption="0"; sButton2->Visible=1; }
} 2.4. Uskunalar panelidan Additional bo’limini tanlab, Form1 oynasiga 2 ta sButton komponentasini olib joylashtiriladi.
22
2.4.1. sButton1 komponentasi Caption xususiyatiga "OK" deb yoziladi; 2.4.2. sButton2 komponentasi Caption xususiyatiga "Start" deb yoziladi; 2.4.3. sButton2 ob’yektni ko’rinishiga doir xossalaridan Font tanlanadi(... bosilgan holda). Fornt shirift = “ Times New Roman”, qalin, 72 razmerga sozlanadi va OK tugmasi bosiladi. sButton1 razmeri 16 shiriftda bo’ladi. 2.4.4. sButton1 tugmasi ichiga quyidagi kod yoziladi: void __fastcall TForm4::sButton1Click(TObject *Sender) { if(sEdit1->Text!=""&&etok==StrToInt(sEdit1->Text)) { summa=0; sPanel1->Caption=StrToInt(sPanel1->Caption)+5; summa1=0; for(int i=0; i<12; i++) {
a[i]=rand()%StrToInt(Label15->Caption); if(i<=5) { summa=summa+a[i]; } else { summa1=summa1+a[i]; } }
Label3->Caption=IntToStr(a[0]); Label4->Caption=IntToStr(a[1]); Label5->Caption=IntToStr(a[2]); Label6->Caption=IntToStr(a[3]); Label7->Caption=IntToStr(a[4]); Label8->Caption=IntToStr(a[5]); Label9->Caption=IntToStr(a[6]); Label10->Caption=IntToStr(a[7]); Label11->Caption=IntToStr(a[8]); Label12->Caption=IntToStr(a[9]); Label13->Caption=IntToStr(a[10]); Label14->Caption=IntToStr(a[11]); r=rand()%2; if(r==0) { Label2->Caption="-"; Label1->Caption="-"; etok=summa-summa1; 23
} else {
Label2->Caption="+"; Label1->Caption="+"; etok=summa+summa1; }
Shape1->Visible=1; Shape2->Visible=1; Shape3->Visible=1; Shape4->Visible=1; Shape5->Visible=1; Shape6->Visible=1; Shape7->Visible=1; Shape8->Visible=1; Shape9->Visible=1; Shape10->Visible=1; Shape13->Visible=1; Shape14->Visible=1; Label2->Visible=1; Label3->Visible=1; Label4->Visible=1; Label5->Visible=1; Label6->Visible=1; Label7->Visible=1; Label8->Visible=1; Label9->Visible=1; Label10->Visible=1; Label11->Visible=1; Label12->Visible=1; Label13->Visible=1; Label14->Visible=1; Label2->Top=20; Label3->Top=35; Label4->Top=35; Label5->Top=35; Label6->Top=35; Label7->Top=35; Label8->Top=35; Label9->Top=35; Label10->Top=35; Label11->Top=35; Label12->Top=35; Label13->Top=35; Label14->Top=35; Shape1->Top=15; Shape2->Top=15; Shape3->Top=15; Shape4->Top=15; 24
Shape5->Top=15; Shape6->Top=15; Shape7->Top=15; Shape8->Top=15; Shape9->Top=15; Shape10->Top=15; Shape13->Top=15; Shape14->Top=15; sEdit1->Text=""; sEdit2->Text=""; sEdit3->Text=""; sEdit1->SetFocus(); }
else {
sEdit1->Text=""; sEdit1->SetFocus(); } }
void __fastcall TForm4::sButton2Click(TObject *Sender) { S1->Click(); sButton2->Visible=false; } 2.5. Uskunalar panelidan AlphaStandart bo’limini tanlab, Form4 oynasiga 3 ta sEdit komponentasini olib joylashtiriladi. 2.5.1. sEdit1 ob’yektni ko’rinishiga doir xossalaridan Font tanlanadi (... bosilgan holda). Fornt shirift = “ Times New Roman”, qalin, 16 razmerga sozlanadi va OK tugmasi bosiladi. sEdit2 va sEdit3 razmeri 10 shiriftda va oddiy bo’ladi. Shape11 va Shape12 komponentalari ichiga joylashadi. Hamda Seditlar Text ning xususiyati o’chiriladi. 2.5.2. OnKeyPress ob’yekt ichki xususiyatiga quyidagi kod yoziladi: void __fastcall TForm4::sEdit2KeyPress(TObject *Sender, char &Key) { if(int(Key)==13) { sEdit3->SetFocus(); //sEdit3 niki sButton1 ga SetFocus() bo’ladi. } }
2.6. Form4 Caption xususiyatiga "Matematika" deb yozib qo’yiladi. 2.7. OnClouse xususiyatiga quyidagi kod yoziladi: 25
void __fastcall TForm4::FormClose(TObject *Sender, TCloseAction &Action) { Shape1->Visible=0; Shape2->Visible=0; Shape3->Visible=0; Shape4->Visible=0; Shape5->Visible=0; Shape6->Visible=0; Shape7->Visible=0; Shape8->Visible=0; Shape9->Visible=0; Shape10->Visible=0; Shape13->Visible=0; Shape14->Visible=0; Label2->Visible=0; Label3->Visible=0; Label4->Visible=0; Label5->Visible=0; Label6->Visible=0; Label7->Visible=0; Label8->Visible=0; Label9->Visible=0; Label10->Visible=0; Label11->Visible=0; Label12->Visible=0; Label13->Visible=0; Label14->Visible=0; Timer1->Enabled=0; sPanel1->Caption="0"; S1->Caption="Start"; Form5->Show(); } 2.8. Standart bo’limidan MainMenu komponentasini olib Form4 oynasiga ixtiyoriy joylashtiriladi(Ma’lumotlar Standart joylashib qoladi). 2.8.1. MainMenu1ning ob’yektni ko’rinishiga doir xossalaridan Items tanlanadi (... bosiladi). 2.8.2. MainMenu1 Itemsga "Chiqish" hamda "Start" tugmasini hosil qilamiz. Chiqish tugmasi ichiga quyidagi kod yoziladi: void __fastcall TForm4::C1Click(TObject *Sender) { Shape1->Visible=0; Shape2->Visible=0; Shape3->Visible=0; Shape4->Visible=0; Shape5->Visible=0; Shape6->Visible=0; Shape7->Visible=0; 26
Shape8->Visible=0; Shape9->Visible=0; Shape10->Visible=0; Shape13->Visible=0; Shape14->Visible=0; Label2->Visible=0; Label3->Visible=0; Label4->Visible=0; Label5->Visible=0; Label6->Visible=0; Label7->Visible=0; Label8->Visible=0; Label9->Visible=0; Label10->Visible=0; Label11->Visible=0; Label12->Visible=0; Label13->Visible=0; Label14->Visible=0; sPanel1->Caption="0"; S1->Caption="Start"; Form5->Show(); Form4->Close(); } Start tugmasi ichiga quyidagicha kod yoziladi: void __fastcall TForm4::s1Click(TObject *Sender) { if(Timer1->Enabled) { Timer1->Enabled=0; S1->Caption="Start"; sButton2->Visible=1; } else { summa=0; summa1=0; S1->Caption="Stop"; Timer1->Enabled=1; for(int i=0; i<12; i++) { a[i]=rand()%StrToInt(Label15->Caption); if(i<=5) { summa=summa+a[i]; } else { summa1=summa1+a[i]; } }
27
Label3->Caption=IntToStr(a[0]); Label4->Caption=IntToStr(a[1]); Label5->Caption=IntToStr(a[2]); Label6->Caption=IntToStr(a[3]); Label7->Caption=IntToStr(a[4]); Label8->Caption=IntToStr(a[5]); Label9->Caption=IntToStr(a[6]); Label10->Caption=IntToStr(a[7]); Label11->Caption=IntToStr(a[8]); Label12->Caption=IntToStr(a[9]); Label13->Caption=IntToStr(a[10]); Label14->Caption=IntToStr(a[11]); r=rand()%2; if(r==0) {
Label2->Caption="-"; Label1->Caption="-"; etok=summa-summa1; }
else {
Label2->Caption="+"; Label1->Caption="+"; etok=summa+summa1; }
Shape1->Visible=1; Shape2->Visible=1; Shape3->Visible=1; Shape4->Visible=1; Shape5->Visible=1; Shape6->Visible=1; Shape7->Visible=1; Shape8->Visible=1; Shape9->Visible=1; Shape10->Visible=1; Shape13->Visible=1; Shape14->Visible=1; Label2->Visible=1; Label3->Visible=1; Label4->Visible=1; Label5->Visible=1; Label6->Visible=1; Label7->Visible=1; Label8->Visible=1; Label9->Visible=1; Label10->Visible=1; Label11->Visible=1; Label12->Visible=1; Label13->Visible=1; Label14->Visible=1; Label2->Top=20; Label3->Top=35;
28
Label4->Top=35; Label5->Top=35; Label6->Top=35; Label7->Top=35; Label8->Top=35; Label9->Top=35; Label10->Top=35; Label11->Top=35; Label12->Top=35; Label13->Top=35; Label14->Top=35; Shape1->Top=15; Shape2->Top=15; Shape3->Top=15; Shape4->Top=15; Shape5->Top=15; Shape6->Top=15; Shape7->Top=15; Shape8->Top=15; Shape9->Top=15; Shape10->Top=15; Shape13->Top=15; Shape14->Top=15; } }
komponentasini olib joylashtiriladi va Caption xususiyatiga "0" deb yoziladi. Bu achkolar sonini ko’rsatib turadi.
2.1-rasm. Matematika ya’ni form4 oynasi tayyor holda. |
ma'muriyatiga murojaat qiling