Tajriba ishi № 19
Mavzu: Individual erkin dastur loyihalash.
Ishni bajarishdan maqsad: Calendar dasturini Visual Studio dasturida yaratish.
Nazariy qism:
Calendar dasturi – hohlagan sanani kiritgan vaqtda bizga shu sananing haftaning qaysi kuniga to’g’ri kelishini ko’rsatuvchi dastur hisoblanadi. Bu dastur yordamida boshqa calendar dasturlaridan farqli faqat hafta kuni ko’rsatiladi. Afzallik tomoni bu dastur yordamida C ++ dasturlash tilida int tipi qabul qila oladigana barcha yillar uchun hafta kunlarini aniqlashimiz mumkin.
Buni quyidagiga dasturda ko’rib chiqamiz:
Calendar dasturi faqat asosiy oynadan tashkil topgan bo’lib, hamma amallar shu oynada bajariladi. Bu oynaning ko’rinishi quyidagicha:
Bunda sana kun, oy va yilni kiritish uchun comboBox komponentasidan foydalanamiz. Sanani yil, oy va kunni kiritigandan so’ng Xisoblash tugmachasi bosiladi bunda quyi textBox komponentasida bizga natija ko’rsatiladi.
Natija :
Agar sana xato kiritilsa bunda bizga sana xato kiritilganligi to’g’risida xabar beriladi:
Dastur kodi quyidagicha:
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
ok = 1;
kun = System::Convert::ToInt64(comboBox1->Text);
yil = System::Convert::ToInt64(comboBox3->Text);
if(comboBox2->Text == "Yanvar")
oy = 1;
else if(comboBox2->Text == "Fevral")
oy = 2;
else if(comboBox2->Text == "Mart")
oy = 3;
else if(comboBox2->Text == "Aprel")
oy = 4;
else if(comboBox2->Text == "May")
oy = 5;
else if(comboBox2->Text == "Iyun")
oy = 6;
else if(comboBox2->Text == "Iyul")
oy = 7;
else if(comboBox2->Text == "Avgust")
oy = 8;
else if(comboBox2->Text == "Sentabr")
oy = 9;
else if(comboBox2->Text == "Oktabr")
oy = 10;
else if(comboBox2->Text == "Noyabr")
oy = 11;
else if(comboBox2->Text == "Dekabr")
oy = 12;
else
ok = 0;
if(yil < 0 || kun <= 0 || kun > 31)
ok = 0;
if(oy == 4 || oy == 6 || oy == 9 || oy == 11){
if(kun == 31)
ok = 0;
}
if(ok && oy == 2){
if(yil % 4 != 0){
if(kun > 28)
ok = 0;
}
else{
if(yil % 100 == 0){
if(yil % 400 == 0){
if(kun > 29)
ok = 0;
} else{
if(kun > 28)
ok = 0;
}
}
else{
if(kun > 29)
ok = 0;
}
}
}
for(int i = 1; i < oy; i ++)
if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
kun += 31;
else if(i == 2)
if(yil % 4 == 0)
if(yil % 100 == 0 && yil % 400 != 0)
kun += 28;
else
kun += 29;
else
kun += 28;
else
kun += 30;
__int64 s = ((yil - 1) * 365 + (yil - 1) / 4 + kun - (yil - 1) / 100 + (yil - 1) / 400) % 7;
if(ok)
switch(s) {
case 0 : textBox1 ->Text = "Yakshanba"; break;
case 1 : textBox1 ->Text = "Dushanba"; break;
case 2 : textBox1 ->Text = "Seshanba"; break;
case 3 : textBox1 ->Text = "Chorshanba"; break;
case 4 : textBox1 ->Text = "Payshanba"; break;
case 5 : textBox1 ->Text = "Juma"; break;
case 6 : textBox1 ->Text = "Shanba"; break;
}
else
textBox1->Text = "Bunday sana mavjud emas !";
}
};
}
Do'stlaringiz bilan baham: |