Форум программистов, компьютерный форум CyberForum.ru

Вектор объектов "Студент" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с SVG C++ http://www.cyberforum.ru/cpp-beginners/thread1556031.html
Всем Добрый день! Прошу помощи по следующему вопросу: Стоит задача получить из SVG файла координаты точек и типы фигур, из которых состоит изображение. Посоветуйте,пожалуйста, библиотеку для работы с SVG и примеры работы с SVG файлами Заранее спасибо!
C++ Проверить, есть ли среди элементов главной диагонали матрицы A (5×5) положительные и есть ли среди элементов г Проверить, есть ли среди элементов главной диагонали матрицы A (5×5) положительные и есть ли среди элементов главной диагонали матрицы B (4×4) элементы, большие единицы http://www.cyberforum.ru/cpp-beginners/thread1556026.html
C++ Неправильный подсчет количества треугольников
Здравствуйте, уважаемые пользователи. Вынужден обратиться к Вам за помощью, так как сам просто не понимаю, в чем беда. Передо мной поставлена следующая задача: На вход в программу подается набор пар чисел - координат точек на плоскости. Необходимо написать программу, обнаруживающую треугольник наибольшей площади среди всех треугольников, задаваемых этими точками. Обратите внимание, что не любая...
C++ Алгоритм работы цикла FOR ?
Правильно ли я понимаю, как работает этот цикл. Постоянно путаюсь. 1. Присваиваются значение в инициализирующем блоке 2. Выполняется первая итерация 3. Условный блок (второй блок) 4. Модификация (третий блок) 5. Повторяются пункты 2-4 для n-ой итерации То есть вначале проверяется условие, а потом прибавляется значение? И условие НЕ проверяется после инициализации?
C++ Рассчитать надбавку к зарплате за стаж http://www.cyberforum.ru/cpp-beginners/thread1555989.html
Как рассчитать надбавку к зарплате за стаж, если стаж от 2 до 5 лет, надбавка составляет 2%, если стаж от 5 до 10 лет - 5%.Ввести зарплату и стаж вывести надбавку и сумму к выплате.
C++ Самодельный list Всем доброго времени суток. Сейчас готовлюсь к экзамену по С++ и при изучении одного вопроса возникли непонятки. В вопросе о построении связных списков есть подвопрос самодельных list. И сколько всего перечитывал - не могу понять что именно имеется в виду...знаю только что это как бы идея связных списков, упакованная в контейнер с интерфейсом типа LinkedList, но что именно это значит...Прошу... подробнее

Показать сообщение отдельно
Barrent
 Аватар для Barrent
211 / 87 / 27
Регистрация: 04.05.2013
Сообщений: 260
Завершенные тесты: 1
20.10.2015, 11:13     Вектор объектов "Студент"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iomanip>
 
using namespace std;
 
class Student {
    //VARIABLES
private:
    string name;
    string surname;
    int grade;
 
    //CONSTRUCTORS
public:
    Student(string name, string surname, int grade) :name(name), surname(surname), grade(grade) {};
    Student(const Student& student) :name(student.name), surname(student.surname), grade(student.grade) {};
 
    //METHODS
public:
    Student& operator=(const Student& student) {
        name = student.name;
        surname = student.surname;
        grade = student.grade;
        return *this;
    }
 
    int CompareName(const Student& student) const {
        return name.compare(student.name);
    }
 
    int CompareSurname(const Student& student) const {
        return surname.compare(student.surname);
    }
    int CompareGrade(const Student& student) const {
        if (grade < student.grade)
            return -1;
        if (grade > student.grade)
            return 1;
        return 0;
    }
 
    friend ostream& operator<< (ostream& stream, const Student& student) {
        stream << "Grade:" << setw(2) << student.grade;
        stream << "   Name:" << setw(10) << student.name;
        stream << "   Surname:" << setw(10) << student.surname << endl;
        return stream;
    }
};
 
void Init(vector<Student>& students);
void Print(const vector<Student>& students);
 
int main()
{
    vector<Student> students;
 
    Init(students);
    cout << "Original list: :" << endl;
    Print(students);
 
    //Сортировка по имени по возрастанию    
    sort(students.begin(), students.end(), [](const Student& left, const Student& right) {return left.CompareName(right) < 0; });
    cout << "\nSorted ascending by name:" << endl;
    Print(students);
 
    //Стабильная сортировка по фамилии по возрастанию   
    stable_sort(students.begin(), students.end(), [](const Student& left, const Student& right) {return left.CompareSurname(right) > 0; });
    cout << "\nSorted descending by surname:" << endl;
    Print(students);
 
    //Переставляем 3 записи с наименьшим курсом в начало списка
    for (int i = 0; i < 3; i++) {
        auto iter = min_element(students.begin() + i, students.end(), [](const Student& left, const Student& right) {return left.CompareGrade(right) < 0; });
        if (iter != students.end()) {
            int index_min = iter - students.begin();        //позиция минимального элемента 
            students.insert(students.begin() + i, iter, iter + 1);      //копию минимального вставляем вперед после уже найденых минимальных
            students.erase(students.begin() + index_min + 1);           //удаляем оригинал
        }
    }
 
    cout << "\nFirst three students have lowest grade:" << endl;
    Print(students);
    system("pause");
    return 0;
}
 
void Init(vector<Student>& students) {
    students.emplace_back("Vasiliy", "Petrov", 2);
    students.emplace_back("Trololo", "Ololoev", 1);
    students.emplace_back("Ololo", "Trololoev", 1);
    students.emplace_back("Agent", "K", 1);
    students.emplace_back("X", "Axis", 1);
    students.emplace_back("Temkasky", "C-Man", 2);
}
 
void Print(const vector<Student>& students) {
    for (const Student& student : students)
        cout << student;
}
 
Текущее время: 19:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru