Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti malumotlar tuzilmasi va algoritmlash Bajardi: Qobilov Ilhomjon
Download 186.11 Kb.
|
I algaritmlash
- Bu sahifa navigatsiya:
- Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы. 2. Abiturient
- Задание 2 МЕТОДЫ СОРТИРОВКИ Цель работы: ознакомиться с методами сортировки данных, наиболее часто применяемыми на практике.
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI malumotlar tuzilmasi va algoritmlash Bajardi: Qobilov Ilhomjon Задания для самостоятельного решения Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы. 2. Abiturient: Фамилия, Имя, Отчество, Адрес, Оценки. Создать массив объектов. Вывести: а) список абитуриентов, имеющих неудовлетворительные оценки; б) список абитуриентов, сумма баллов у которых не меньше заданной; в) выбрать N абитуриентов, имеющих самую высокую сумму баллов, и список абитуриентов, имеющих полупроходной балл. #include #include #include #include class Abiturient { public: Abiturient(const std::string& last_name, const std::string& first_name, const std::string& patronymic, const std::string& address, const std::vector : last_name(last_name), first_name(first_name), patronymic(patronymic), address(address), marks(marks) {} int getSumOfMarks() const { int sum = 0; for (int mark : marks) { sum += mark; } return sum; } bool hasUnsatisfactoryMarks() const { for (int mark : marks) { if (mark < 3) { return true; } } return false; } bool hasPassingScore(int passingScore) const { return getSumOfMarks() >= passingScore; } const std::string& getLastName() const { return last_name; } const std::string& getFirstName() const { return first_name; } const std::string& getPatronymic() const { return patronymic; } private:
std::string first_name; std::string patronymic; std::string address; std::vector }; int main() { // abituriyentlar malumotlari std::vector Abiturient("qodirov", "asliddin", "...vich", "yashnobod 5", {4, 5, 3, 4, 4}), Abiturient("sotvoldiyeva", "sabrina", ".....yevna", "fargona 5", {3, 4, 3, 3, 4}), Abiturient("homidov", "hamid", "....vich", "ул. Лермонтова, 10", {5, 5, 4, 5, 4}), Abiturient("sharopov", "ogabek", "...vich", "turon 3", {4, 4, 4, 5, 3}), Abiturient("sultonova", "muhlisa", ".... qizi", "beshqazoq 7", {5, 3, 5, 4, 4}), }; // a) Qoniqarsiz baholarga ega abiturientlarni ro'yxatga olish (3 dan kam ball) std::vector for (const auto& abiturient : abiturients) { if (abiturient.hasUnsatisfactoryMarks()) { abiturientsWithUnsatisfactoryMarks.push_back(abiturient); } } // б)qoniqarsiz bal toplagan abituriyentlar(otish bali - 20) int specifiedScore = 20; std::vector for (const auto& abiturient : abiturients) { if (abiturient.hasPassingScore(specifiedScore)) { abiturientsWithPassingScore.push_back(abiturient); } } // в) eng past bal toplagan abituriyentlar (assumed N = 2) int N = 2; std::sort(abiturients.begin(), abiturients.end(), [](const Abiturient& a, const Abiturient& b) { return a.getSumOfMarks() > b.getSumOfMarks(); }); std::vector // qora ekranda chiqadigan natijalar
std::cout << "\nEng kamida ball to'plagan abituriyentlar ro'yxati " << specifiedScore << ":\n"; for (const auto& abiturient : abiturientsWithPassingScore) { std::cout << abiturient.getLastName() << " " << abiturient.getFirstName() << " " << abiturient.getPatronymic() << "\n"; } std::cout << "\ntanlangan " << N << " eng yuqori ball olgan abituriyentlar:\n"; for (const auto& abiturient : topNAbiutrients) { std::cout << abiturient.getLastName() << " " << abiturient.getFirstName() << " " << abiturient.getPatronymic() << "\n"; } return 0; } Задание 2 МЕТОДЫ СОРТИРОВКИ Цель работы: ознакомиться с методами сортировки данных, наиболее часто применяемыми на практике. Дана последовательность, расположить ее четные (по значению) элементы по убыванию. #include #include #include int main() { std::vector // juft elementlarini saralash std::vector for (int num : sequence) { if (num % 2 == 0) { evenElements.push_back(num); } } // elementlarni kamayish tartibida saralash std::sort(evenElements.begin(), evenElements.end(), std::greater std::cout << "2ga bolinadigan, va kamayish tartibidagi elementlar: " ; for (int num : evenElements) { std::cout << num << " "; } std::cout << std::endl; return 0; } Download 186.11 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling