Tajriba ishi №4
1 – chi topshiriq. 2 -chi jadval 2 –chi ustunda kеltirilgan maydonlarga ega bo’lgan sinf tuzing. Tashkil qilingan sinfingiz quyidagi vazifalarni bajaruvchi mеtodlardan iborat bo’lsin:
konstruktor;
ob`еkt to’g’risida ma`lumotni ekranga chiqarish;
individual topshiriqda ko’rsatilgan vazifani bajaruvchi mеtod (funksiya).
Ma`lumotlarni kiritish, qayta ishlash va natijani chiqarish ushun textBox, Label, Button va Panel komponentalaridan foydalaning.
Dastlab Dori class ini yaratib olamiz:
class Dori {
public:
Dori(string nomi, string date, string firma, string davlat) {
this->nomi = nomi;
this->date = date;
this->firma = firma;
this->davlat = davlat;
}
string nomi;
string date;
string firma;
string davlat;
};
Masala shartiga ko’ra , kiritilgan sanaga ko’ra ishlab chiqarilganiga necha kun bolganligini aniqlash kerak.
Sanani saqlash uchun Date nomli Struct tuzamiz:
struct Date {
int d, m, y;
};
Asosiy funksiyalar:
Kabisani aniqlash uchun qowimcha funksiya:
int countLeapYears(Date d)
{
int years = d.y;
if (d.m <= 2)
years--;
return years / 4
- years / 100
+ years / 400;
}
Asosiy asosiy funksiya:
int getDifference(Date dt1, Date dt2)
{
int n1 = dt1.y * 365 + dt1.d;
for (int i = 0; i < dt1.m - 1; i++)
n1 += monthDays[i];
n1 += countLeapYears(dt1);
int n2 = dt2.y * 365 + dt2.d;
for (int i = 0; i < dt2.m - 1; i++)
n2 += monthDays[i];
n2 += countLeapYears(dt2);
return (n2 - n1);
}
Windows Form bilan ishlashda ko’pincha Managed String ni oddiy string ga aylantirish kerak bo’ladi. Shuning uchun unga funksiya tuzib olamiz:
#include
string toString(System::String^ _managed_string) {
return msclr::interop::marshal_as(_managed_string);
}
UI tuzish:
OK tugmasining funksiyasini yozish:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
string nomi = toString(name_edittext->Text);
string firma = toString(firma_edittext->Text);
string davlat = toString(davlati_edittext->Text);
DateTime dt = dateTimePicker1->Value.Date;
string sanasi = to_string(dt.Day) + '/' + to_string(dt.Month) + '/' + to_string(dt.Year);
Dori dori(nomi,sanasi , firma, davlat);
DateTime today = dateTimePicker2->Value.Date;
Date dt1 = { dt.Day,dt.Month,dt.Year };
Date dt2 = { today.Day,today.Month,today.Year };
label1->Text = gcnew System::String(("Ishlab chiqarilganiga " + to_string(getDifference(dt1,dt2)) + " kun bo'ldi").c_str());
}
Natija:
Github https://github.com/AzikDeveloper/Dasturlash4 dan yuklab olishingiz mumkin
Do'stlaringiz bilan baham: |