201-guruh talabasi Rustamov Farruxning Mustaqil ishi
Download 107.08 Kb.
|
Rustamov Programalash maruza
- Bu sahifa navigatsiya:
- Mustaqil ish-4
- Mustaqil ish-5
- Dastur kodi
- Mustaqil ish-6
- Dastur kodi
- Mustaqil ish-7
Mustaqil ish-3
Talabaning n ta fandan olgan baholari kridit fan nomlari ma’lum bo’lsa uning GPA ballarini hisoblang va kursdan kursga o’tishini aniqlang. 10ta talaba uchun tahlil qilish. Dastur kodi: #include #include using namespace std; class Talaba{ public: virtual void kirit()=0; }; class Fan:public Talaba {private: string nomi; int kredit; int baho; public: Fan(){} Fan(string nomi, int kredit, int baho) { this->nomi = nomi; this->kredit = kredit; if(baho<3) this->baho=0; else this->baho = baho; } virtual void kirit() { cout << "Baho: "; cin >> baho; } friend float GPA(Fan *fan[],int n); }; float GPA(Fan *fan[],int n) { int a=0,b=0; for(int i=0; i return a*1./b; } int main() { int n,k; cout << "Talabalar soni: "; cin >>k; cout << "Fan soni: "; cin >> n; string s[n],g[n]; float z[k]; int h[n]; Fan *fan[n]; for(int i=0; i cout <> g[i]; cout << "Kredit soni: " ; cin >> h[i]; } for(int m=0; m for(int i=0; i < n; i++) { fan[i] = new Fan(); cout <cout << "Kredit soni: " << h[i] << endl; fan[i]->kirit(); } z[m]=GPA(fan,n); } for(int m=0; m cout <<"Talaba " < Mustaqil ish-4 Bank akount hisob raqamini nomli sinf yaratilgan, tashqi funksiya hisob raqami to’g’ri ochilganligini tekshiradigan , qancha pul borligini qaytaradigan va bir yilda qo’yilgan o’rtacha so’mmani hisoblovchi funksoyalardan foydalaning. Dastur kodi: #include using namespace std; class filiall{ public: virtual void kirit()=0; }; class Bank: public filiall { private: float m_sum; public: Bank(){} Bank(float sum): m_sum(sum) { } virtual void kirit() { cout << "Mablag': "; cin >> m_sum; } friend ostream& operator<< (ostream &out, const Bank &sum) { out << sum.m_sum<< " so'm "; return out; } Bank& operator+(Bank sum) { m_sum = m_sum + sum.m_sum; return *this; } Bank& operator/(int value) { m_sum= m_sum/ value; return *this; } }; template Bank urtacha(T *bank[], int uzunlik) { T summ = 0; for (int i=0; i < uzunlik; ++i) summ = summ + *bank[i]; summ = summ / uzunlik; return summ; } template Bank umumiy(T *bank[], int uzunlik) { T l = 0; for (int i=0; i < uzunlik; ++i) l = l + *bank[i]; return l; } void hisobraqam(string w) { string hisob_raqam; int d; cout << "Bank faoliyatidan foydalanish uchun yangi hisob raqami yarating!!!\n"; cout << "Shartlari:\t 8ta simvol, kamida 2ta harfdan va raqamlardan foydalaning!\n Hisob raqami kiriting:"; s: getline(cin,hisob_raqam); d=hisob_raqam.size(); int k,j=0; if (d==8) { for(int i=0; i k=int(hisob_raqam[i]); if(65<=k&&k<=90||97<=k&&k<=122||128<=k&&k<=175||224<=k&&k<=247) j++; } if(j<2) { cout << "Hisob raqami uchun 2tadan kam harf kiritilgan!!!\nQayta urinib ko'ring: "; goto s; } else cout < else{ cout << "Simvollar 8ta emas!!!\nQayta urinib ko'ring: "; goto s; } } int main() { string b_nomi,ism; int n; cout << "Bank nomi: "; getline(cin,b_nomi); cout << "Foydalanuvchi nomi: "; getline(cin,ism); hisobraqam(ism); cout << "\nYillik nechi marotaba bankga pul qo'yasiz: "; cin >> n; Bank *bank[n]; for(int i=0; i cout <<"\t\t"< } Mustaqil ish-5 Kitob do’koni nomli sinf hosil qiling. Bu sinf quyidagigilarni hal qilsin. N ta kitobdan oxirgi 5ta nashrni aniqlash , eng qimmat , eng arzon kitob muallifini aniqlash va sotuv statistikasini aniqlang. Eng qimmat hisob bo’yicha kitob kam sotildimi? , eng arzon kitob ko’p sotildimi? Yoki yo’qligini aniqlash. Dastur kodi: #include using namespace std; class Kitob { public: string sarlavha; string muallif; int yil; double narx; int sotish; Kitob(string sarlavha, string muallif, int yil, double narx, int sotish) { this->sarlavha = sarlavha; this->muallif = muallif; this->yil = yil; this->narx = narx; this->sotish = sotish; }}; class Kitob_dukon { public: Kitob_dukon(vector void Oxirgi_nashrlarni_chop_etish(int n) { cout << "Oxirgi " << n << " nashrlar:" << endl; int i = 1; for (auto it = kitoblar.rbegin(); it != kitoblar.rend() && i <= n; ++it, ++i) { cout << i << ". " << it->sarlavha << " tomonidan " << it->muallif << " (" << it->yil << ")" << endl;}cout << endl; } void Narxlar_statistikasini_chop_etish() { auto min_narx = min_element(kitoblar.begin(),kitoblar.end(),[](const Kitob& k1,const Kitob& k2){return k1.narx < k2.narx;}); auto max_narx = max_element(kitoblar.begin(),kitoblar.end(),[](const Kitob& k1,const Kitob& k2){return k1.narx < k2.narx;}); cout << "Eng qimmat kitob muallifi: (" << max_narx->narx << "): " << max_narx->muallif << endl; cout << "Eng arzon kitob muallifi: (" << min_narx->narx << "): " << min_narx->muallif << endl; cout << endl; } void Sotish_statistikasini_chop_etish() { double jami_daromad = 0; int umumiy_savdo = 0; for (const auto& kitob : kitoblar) { jami_daromad += kitob.narx * kitob.sotish; umumiy_savdo += kitob.sotish; } cout << "Jami daromad: $" << jami_daromad << endl; cout << "Umumiy savdo: " << umumiy_savdo << endl; auto min_narx = min_element(kitoblar.begin(), kitoblar.end(), [](const Kitob& k1, const Kitob& k2){ return k1.narx < k2.narx;}); auto max_narx = max_element(kitoblar.begin(), kitoblar.end(), [](const Kitob& k1, const Kitob& k2){ return k1.narx < k2.narx;}); if (max_narx->sotish if (min_narx->sotish == max_element(kitoblar.begin(),kitoblar.end(),[](const Kitob& k1,const Kitob &k2){return k1.sotish cout << "Eng arzon kitob eng ko'p sotilgan." << endl; } cout << endl; } private: vector int main() { vector Kitob("Vatan", "Fernando Aramburu", 2021, 25.99, 100), Kitob("1775 ko'chalar", "Xose A. Gomes Iglesias", 2020, 19.99, 150), Kitob("Soyalar monarxi", "Xaver Serks", 2020, 35.99, 50), Kitob("Sofiya bo'lishning sehrlari", "Elisabet Benavent", 2019, 15.99, 200), Kitob("Ruhlar labirinti", "Karlos Ruis Zafon", 2021, 29.99, 80), Kitob("G'afur G'ulom", "Shum bola", 2018, 12.99, 300), }; Kitob_dukon kitob_dukon(kitoblar); kitob_dukon.Oxirgi_nashrlarni_chop_etish(5); kitob_dukon.Narxlar_statistikasini_chop_etish(); kitob_dukon.Sotish_statistikasini_chop_etish(); return 0; } Mustaqil ish-6 Dasturni yuz berishi mumkin bo’lgan istisno holatlarni yozing. > 0 ; Log(a)/log(b) , a<0 , b<0 ; a/b b!=0 ; a,b,c uchburchak ; Dastur kodi: #include using namespace std; // 1) ildizda x >0 shartga istisno xolat uchun double srt(double x) { if (x < 0)throw "Manfiy sonning kvadrat ildizini topib bo'lmadi."; return sqrt(x);} // 2) log(a)/log(b) a>0 , b>0 holat uchun istisno holatlar double logg(double a, double b) { if (a < 0 || b < 0) throw "a va b ham musbat bo'lishi kerak"; else cout << log(a)*1./log(b);} // 3) Arcsin(x) , asin(x) x qarashli [-1 , 1] qiymatlar sohasiga tegishli emas. double arccsin(double k) { if (-1 <= k || k <= 1) throw "a [-1, 1] oraliqda bo'lishi kerak";} string uchburchak(float a, float b, float c) { if(a+b>c && b+c>a && a+c>b) return "Uchburchak bo'la oladi!!!"; else throw "Uchburchak bo'la olmaydi"; } int main() { try { cout << srt(-4) << endl;} catch (const char* error){cout << "Xatolik: " << error << endl;} try { cout << logg(9,-2) << endl ;} catch (const char* xato) { cout << "Xatolik: " << xato << endl; } try { cout << arccsin(-3) < // a/b , b!=0 ga holatr uchun float a,b,c; cin >> a >> b; if(b==0) cout << " Maxraj 0 bo'lishi mumkin emas, qolgan barcha holatda o'rinli"; else cout <cout << "a = "<< a << " b = "<return 0;} Mustaqil ish-7 Masala: “exception” sinfining “what()” metodidan boshqa yana qanday metodlari bor? C++ kodi bajarilganda dasturda har xil turdagi xatolar yuzaga kelishi mumkin - dasturchilar tomonidan kodlash xatolari, noto'g'ri kiritilgan xatolar yoki boshqa kutilmagan xatolar. Xatolik yuz berganda, C++ odatda dasturning bajarilishini to'xtatadi va xato xabari hosil qiladi. Ko'pgina stsenariylarda mantiqiy va ish vaqti xatolari haqida xabar berish va qayta ishlashning afzal qilingan usuli istisnolardan foydalanishdir. Istisnolar xatolarni aniqlash va ma'lumotlarni qo'ng'iroqlar to'plamiga uzatish uchun rasmiy va aniq belgilangan usulni ta'minlaydi. 0>0> Download 107.08 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling