|
Halstead ko'rsatkichlarining afzalliklari
|
bet | 5/6 | Sana | 17.01.2024 | Hajmi | 68,49 Kb. | | #139359 |
Bog'liq Javlonbek Jumaboyev MK 90 Halstead ko'rsatkichlarining afzalliklari
Halstead Metrics har qanday dasturlash tiliga tegishli.
Halstead ko'rsatkichlarini hisoblash oson.
U xatolarning yuzaga kelish tezligini oldindan aytib berishi mumkin.
Bu dasturlarning umumiy sifatini o'lchashni ta'minlaydi.
Bu loyihani rejalashtirish va hisobot berishda yordam beradi.
U talab qilinadigan parvarishlash harakatini taxmin qilishi mumkin.
Bu dasturlash strukturasini to'liq tahlil qilishni talab qilmaydi.
Halstead ko'rsatkichlarining kamchiliklari
Bu butun kodni tahlil qilishni talab qiladi, bu katta dasturlarda amalga oshirilmasligi mumkin.
Rivojlanish harakatlari yoki narxini baholash uchun bashoratli model sifatida mos kelmasligi mumkin.
Ob'ektga yo'naltirilgan dasturlash yoki funktsional dasturlash kabi ba'zi dasturlash paradigmalari uchun aniq natijalarni bermasligi mumkin.
Ko'rsatkichlarga dasturchining kodlash uslubi va dasturlash amaliyoti ta'sir qilishi mumkin, bu esa dasturning haqiqiy murakkabligini aks ettirmasligi mumkin.
Ko'rsatkichlar modullilik, qayta foydalanish yoki texnik xizmat ko'rsatish kabi kodning sifatini hisobga olmaydi.
Topshiriq
Talabalar ism-familiyasi, yoshi va ballaridan iborat jadval yarating va talabalarni ism-familiyasini alfavit bo‘yicha tartibga keltiring.
#include
#include
#include
#include
struct Talaba {
std::string ism_familiya;
int yosh;
double ballar;
};
bool alifboBo'yichaTartibla(const Talaba &a, const Talaba &b) {
return a.ism_familiya < b.ism_familiya;
}
int main() {
// Talabalarni saqlash uchun vektor
std::vector talabalar;
// Talabalar jadvalini to'ldirish
talabalar.push_back({"Alijon Akbarov", 20, 85.5});
talabalar.push_back({"Dilnoza Otajonova", 22, 90.0});
talabalar.push_back({"Bekzod Jumayev", 21, 78.3});
talabalar.push_back({"Zarnigor Abdullayeva", 19, 95.2});
// Talabalarni ism-familiyasi bo'yicha tartiblash
std::sort(talabalar.begin(), talabalar.end(), alifboBo'yichaTartibla);
// Jadvalni chiqarish
std::cout << std::setw(25) << "Ism-Familiya" << std::setw(10) << "Yosh" << std::setw(10) << "Ballar" << std::endl;
std::cout << std::setfill('-') << std::setw(45) << "" << std::setfill(' ') << std::endl;
for (const Talaba &talaba : talabalar) {
std::cout << std::setw(25) << talaba.ism_familiya << std::setw(10) << talaba.yosh << std::setw(10) << talaba.ballar << std::endl;
}
return 0;
}
Dasturning takrorlanmas operatorlari (operatorlar lug‘ati) sonini hisoblab chiqamiz. Bu holda ajratuvchi belgilar, dastur(yoki funktsiya) nomlari va operatsiya belgilarini ham qo‘shib hisoblaymiz:
|
| |