UML диаграммаси:
(Algebra:kvadrat tenglama) ax2+bx+x=0 kvadrat tenglamasi uchun
KvTenglama nomli sinf yarating. Sinf quyidagilardan iborat bo’lsin:
- Uchta koeffitsientni namoyon qiluvchi a, b va c maydonlari.
- a, b va c argumentli konstruktor.
- a, b va c uchun uchta get funksiya.
- b2-4ac ni, ya’ni diskriminantni qaytaruvchi getDiskriminant funksiyasi.
- getIldiz1() va getIldiz2() funksiyalari. Ular quyidagi ifodalarni hisoblab
qaytaradi:
Agar diskiriminant 0 dan kichik bo’lsa, bu funksiyalar 0 qiymat qaytarsin.
Sinfni implementatsiya qiling. Foydalanuvchidan a, b va c larga qiymat kiritish
so’rovi va diskriminantga bog’liq holda, mos natijani ekranga chiqaruvchi test
dastur yozing. Agar diskriminant musbat bo’lsa ikkita ildiz chiqsin. Agar
discriminant 0 ga teng bo’lsa, bitta ildiz, aks holda “Haqiqiy ildizlari yo’q” xabari
chiqsin.
(Uchburchak sinfi) GeometricObject sinfidan meros oluvchi Uchburchak nomli sinf yarating. Sinf quyidagilardan tashkil topishi lozim:
Uchburchakning tomonlarini ifodalovchi, double turidagi tomon1, tomon2 va tomon3 nomli ma’lumot maydonlari.
“Jimlik qoidasiga ko’ra” uchburchakning barcha tomonlarini 1.0 ga ta’minlovchi argumentsiz konstruktor.
Uchburchakning tomonlarini tomon1, tomon2 va tomon3 qiymatlar bilan ta’minlovchi konstruktor.
Uchburchakning yuzasini qaytaruvchi getYuza() nomli funksiya.
Uchburchakning perimetrini qaytaruvchi getPerimetr() nomli funksiya.
Sinfni implementatsiya qiling. Foydalanuvchidan uchburchakninig tomonlarini, rangini, 1 yoki 0 ni( ya’ni uchburchak sohasi bo’yalgani yoki bo’yalmaganligini anglatadi) kiritishini talab qiluvchi test dasturi tuzing. Dasturda Uchbburchak ob’yekti kiritilgan tomonlar haqidagi ma’lumotlar bilan yaratilsin. Dastur uchburchakning yuzasini, perimetri haqidagi ma’lumotlarni ekranga chiqarishi lozim.
(Nuqta sinfi Nuqta sinfini yozing. Uch o’lchamli fazodagi nuqtani aniqlovchi UchDNuqta nomli sinf yarating. UchDNuqta sinfi Nuqta sinfidan meros olsin. Unda quyidagi a’zolar bo’lsin:
z-koordinata o’qini tavsiflovchi z nomli ma’lumot maydoni.
(0,0,0) nuqtani tavsiflovchi argumentsiz konstruktor.
Ko’rsatilgan koordinatalar bilan ob’yektni yaratuvchi konstruktor.
Sinflarni implementatsiya qiling. (0,0,0) va (10, 30, 25.5) nuqtalari orasidagi masofani ekranga chiqaruvchi dastur tuzing.
(MyInteger sinfi) MyInteger nomli sinf yarating. Sinf quyidagilardan iborat bo’lsin:
int turidagi qiymat nomli ma’lumot maydoni.
MyInteger ob’yektini yaratuvchi konstruktor.
int qiymatni qaytaruvchi konstanta get funksiyasi.
Agar qiymat juft, toq yoki tub son bo’lsa, u holda isJuft(), isToq(), isTub() true qiymat qaytaruvchi konstanta funksiyalar.
Agar qiymat juft, toq yoki tub son bo’lsa, u holda isJuft(int), isToq(int), isTub(int) true qiymat qaytaruvchi static funksiyalar.
Sinfni implementatsiya qiling. Sinfdagi barcha funksiyalarni testlovchi dastur yozing.
(Massivning o’rtacha qiymati) Massiv elementlarining o’rta arifmetik
qiymatlarini qaytaruvchi, qayta yuklanagan urtacha nomli funksiyalarni
yarating. Funkisya prototiplari quyidagicha:
int urtacha(const int* array, int size);
double urtacha(const double* array, int size);
O’nta double va int turidagi qiymatlar orqali dasturni testlab ko’ring.
(Sarala) Quyidagicha berilgan funksiyaning tanasini davom ettiring.
Funksiya massiv elementlarini saralashini tekshiring.
template
bool isSarala(const T list[], int size)
Funksiyani int, double va string turlaridagi qiymatlar bilan tekshiring.
Asosiy – int funksiya tarkibida Doira nomli sinf yarating va unda doira1, doira2 va doira3 nomli ob’yektlar qurilishini rejalashtiring. Dastlabki ikkita ob’yekt mos ravishda, 10 va 15 qiymatlardagi, uchinchisi esa, jimlik qoidasi qiymatidagi radiuslarda qurilsin. Dastur ishga tushirilganida, yaratilgan ob’yektlarning mos radius qiymatlari va ularning yuzalari konsol oynaga chiqariladigan boʻlsin.
Do'stlaringiz bilan baham: |