Kalkulyatorimizning dastlabki ishga tushirilgandagi holati


Download 308.07 Kb.
Sana18.06.2023
Hajmi308.07 Kb.
#1584162
Bog'liq
a


Kalkulyatorimizning dastlabki ishga tushirilgandagi holati.
Kalkulyatorimizni tayyorlash uchun kerakli bo’lgan o’zgaruvchilar.
Nazariy qism:Birinchi bo’lib yangi forma ochib oldik va formani saqlab oldik.Formaga TPanel degan 2ta komponenta tashlab oldik va birini natija oynasi uchun ikkinchisi tugmalar qatori uchun. Birinchi Panel ustiga TStaticText degan yana bitta komponenta joyladik. Ikkinchi Panlega TSpeedbutton degan komponenta tashladik va uni tugmalar uchun foydalandik. Shu joyda TButton degan komponentadan foydalansak ham bo’lar edi faqat kompilyator oynasida foksni o’ziga olib qolgani uchun TSpeedbuttondan foydalandik va bu tashlagan tugmalarimizga kalkulyatordagi kerakli ishora va raqamlarni joyladik.

Bundan so’ng raqamlarga kod yozishni boshladik va birinchi bo’lib bir raqamiga kodni yozib oldik va qolgan raqamlar uchun ham alohida kod yozmadik bundan sabab bir raqamining kodini qolgan raqamlarning kodini Events degan oynasidan OnClick hodisasidan birni kodiga bog’lab qo’ydim.




Raqamlarga kod yozib bo’lgandan so’ng ishoralarga kod yozishni boshladik va birinchi bo’lib natijalarni chiqaruvchi tenglikni kodini yozdik.



Bizga yana bir yangi xususiyat bu kalkulyatorimizga rasm joylash bo’ldi
Bu xususiyat kalkulyatorimiz dizaynini yanada bezab berdi.


Biz bundan so’ng yana bir ishora kodni yozdik bu darajaga oshirish va ildizdan chiqarish kodini yozdik.
Bu kod darajaga oshirish kodi:

Bu kod ildizdan chiqarish kodi:


Dastur kodidan nusxa:
//---------------------------------------------------------------------------

#include


#pragma hdrstop

#include "Unit1.h"


//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int amal = 0;
/*
1: Qo'shish
2: Ayirish
3: Ko'paytirish
4: Bo'lish
*/
bool amalbosildi = false;
bool raqamBosildi = false;
int tengBosildi = 0;

double birSon, ikkiSon, natija;


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn1Click(TObject *Sender)
{
int displayLength = 10;
raqamBosildi = true;
tengBosildi = 0;

if(stDisplay->Caption.Pos(",") != 0){


displayLength++;
}

if(stDisplay->Caption.Pos("-") != 0){


displayLength++;
}

if (amalbosildi) {


amalbosildi = false;
stDisplay->Caption = ((TSpeedButton*)Sender)->Caption;
} else{
if (stDisplay->Caption == "0"){
stDisplay->Caption = ((TSpeedButton*)Sender)->Caption;
}
else {
if (stDisplay->Caption.Length() < displayLength) {
stDisplay->Caption = stDisplay->Caption + ((TSpeedButton*)Sender)->Caption;
}

}
}


}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn0Click(TObject *Sender)
{
raqamBosildi = true;
tengBosildi = 0;
int displayLength = 10;

if(stDisplay->Caption.Pos(",") != 0){


displayLength++;
}

if(stDisplay->Caption.Pos("-") != 0){


displayLength++;
}

if (amalbosildi) {


amalbosildi = false;
stDisplay->Caption = "0";
}else{
if (stDisplay->Caption != "0"){
if (stDisplay->Caption.Length() < displayLength) {
stDisplay->Caption = stDisplay->Caption + ((TSpeedButton*)Sender)->Caption;
}
}
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnOchirClick(TObject *Sender)


{
if (stDisplay->Caption.Length() == 1){
stDisplay->Caption = "0";
} else {
stDisplay->Caption = stDisplay->Caption.SubString(1, stDisplay->Caption.Length() - 1);
}

}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnVergulClick(TObject *Sender)
{
raqamBosildi = true;
tengBosildi = 0;
if (amalbosildi) {
amalbosildi = false;
stDisplay->Caption = "0,";
} else{
if (stDisplay->Caption.Pos(",") == 0) {
stDisplay->Caption = stDisplay->Caption + ",";
}
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnIshoraClick(TObject *Sender)


{
tengBosildi = 0;
stDisplay->Caption = FloatToStr(StrToFloat(stDisplay->Caption) * (-1));

}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormKeyPress(TObject *Sender, System::WideChar &Key)
{
if (Key == '0') {
btn0->Click();
} else if (Key == '1') {
btn1->Click();
} else if (Key == '2') {
btn2->Click();
} else if (Key == '3') {
btn3->Click();
}else if (Key == '4') {
btn4->Click();
}else if (Key == '5') {
btn5->Click();
}else if (Key == '6') {
btn6->Click();
}else if (Key == '7') {
btn7->Click();
}else if (Key == '8') {
btn8->Click();
}else if (Key == '9') {
btn9->Click();
} else if (Key == ',' || Key == '.') {
btnVergul->Click();
} else if (Key == '=') {
btnTeng->Click();
} else if (Key == '+') {
btnQoshish->Click();
} else if (Key == '-') {
btnAyirish->Click();
} else if (Key == '*') {
btnKopaytirish->Click();
} else if (Key == '/') {
btnBolish->Click();
} else if (Key == vkBack) {
btnOchir->Click();
} else if (Key == '%') {
btnFoiz->Click();
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnCEClick(TObject *Sender)


{
stDisplay->Caption = "0";
tengBosildi = 0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnQoshishClick(TObject *Sender)


{
tengBosildi = 0;
if (amal != 0 && raqamBosildi) {
btnTeng->Click();
raqamBosildi = false;
}
amal = 1;
amalbosildi = true;
birSon = StrToFloat(stDisplay->Caption);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnAyirishClick(TObject *Sender)


{
tengBosildi = 0;
if (amal != 0 && raqamBosildi) {
btnTeng->Click();
raqamBosildi = false;
}
amal = 2;
amalbosildi = true;
birSon = StrToFloat(stDisplay->Caption);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnKopaytirishClick(TObject *Sender)


{
tengBosildi = 0;
if (amal != 0 && raqamBosildi) {
btnTeng->Click();
raqamBosildi = false;
}
amal = 3;
amalbosildi = true;
birSon = StrToFloat(stDisplay->Caption);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnBolishClick(TObject *Sender)


{
tengBosildi = 0;
if (amal != 0 && raqamBosildi) {
btnTeng->Click();
raqamBosildi = false;
}
amal = 4;
amalbosildi = true;
birSon = StrToFloat(stDisplay->Caption);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnTengClick(TObject *Sender)


{
tengBosildi++;

if (amal != 0 && !amalbosildi) {


raqamBosildi = false;
ikkiSon = StrToFloat(stDisplay->Caption);

switch(amal){


case 1:
natija = birSon + ikkiSon;
break;
case 2:
natija = birSon - ikkiSon;
break;
case 3:
natija = birSon * ikkiSon;
break;
case 4:
natija = birSon / ikkiSon;
break;
}

stDisplay->Caption = FloatToStr(natija);

if (tengBosildi == 1) {
birSon = ikkiSon;
}
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnCClick(TObject *Sender)


{
amal =0;
amalbosildi = false;
raqamBosildi = false;
stDisplay->Caption = "0";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnTeskariClick(TObject *Sender)


{
stDisplay->Caption = FloatToStr(1 / StrToFloat(stDisplay->Caption));
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnSqrClick(TObject *Sender)


{
stDisplay->Caption = FloatToStr(StrToFloat(stDisplay->Caption) * StrToFloat(stDisplay->Caption));
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnIldizClick(TObject *Sender)


{
stDisplay->Caption = FloatToStr(sqrt(StrToFloat(stDisplay->Caption)));
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnFoizClick(TObject *Sender)


{

if (amal == 3 && !amalbosildi) {


raqamBosildi = false;
tengBosildi = 0;
ikkiSon = StrToFloat(stDisplay->Caption);

natija = birSon * ikkiSon / 100;



stDisplay->Caption = FloatToStr(natija);

}
}
//---------------------------------------------------------------------------
Download 308.07 Kb.

Do'stlaringiz bilan baham:




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