Dasturiy injiniring


Download 1.98 Mb.
Pdf ko'rish
bet5/8
Sana14.11.2021
Hajmi1.98 Mb.
#174566
1   2   3   4   5   6   7   8
Bog'liq
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(); 

   } 



2.4.5. sButton2 komponentasi ichiga quyidagicha kod yoziladi: 



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; 

    } 



2.9.  Uskunalar  panelidan  AlphaStandart  bo’limini  tanlab,  Form4  oynasiga  sPanel 



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. 




29 

 


Download 1.98 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling