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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
senderr
23 / 21 / 2
Регистрация: 03.04.2009
Сообщений: 257
#1

Списки - C++

28.05.2009, 13:31. Просмотров 375. Ответов 3
Метки нет (Все метки)

Написать программу которая:
1. Создает список из n студентов (год рождения, стипендия,
фамилия).
1) Вививисти на экран все данные(структурировано).
2) Реализовать поиск по годам.
3) Находит студента который получает максимальную стипендию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2009, 13:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Списки (C++):

Списки, как склеить списки между собой? - C++
Ребят, привет всем, есть код, в классе которого описаны несколько методов: добавление элемента в список, удаление и просмотр списка, дак...

Списки - C++
Работа со списками( объединение, удаление, вставка и.т.п). при запуске выдает ошибки. :-| устала уже с ней( С++, Builder 6 ...

Списки - C++
Помогите пожалуйста с задачей: В списке L найти такой элемент "y" (если существует), что "y" больше всех предыдущих и меньше всех...

Списки C++ - C++
Уважаемые! Препод задал написать линейный, линейный дважды связанный и линейный цикличный списки с любым количеством элементов для каждого....

списки с++ - C++
Помогите! Организовать список. Информационная часть должна содержать целые числа. Определить количество элементов с заданным ключом в...

Списки в c++ - C++
Дана задача:"Даны два списка. Образовать новый список LinkedList<string>,состоящий из узлов обоих исходных списков" Вообще-то по...

3
ISergey
Maniac
Эксперт С++
1376 / 887 / 53
Регистрация: 02.01.2009
Сообщений: 2,663
Записей в блоге: 1
28.05.2009, 13:47 #2
А проблема то в чём?
0
Rififi
2359 / 1052 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
28.05.2009, 14:11 #3
Visual C++
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
#include <string>
#include <list>
#include <algorithm>
#include <functional>
#include <iostream>
#include <locale>
#include <stdexcept>
 
struct stud
{
    int year_;
    int grant_;
    std::string name_;
};
 
typedef std::list<stud> mob;
 
template <typename T>
struct match_year : public std::unary_function<T, bool>
{
    match_year(int year) : year_(year) {}
    bool operator()(const T& v) const
    { return v.year_ == year_; }
    const int year_;
};
 
// Создает список из n студентов (год рождения, стипендия, фамилия).
mob create(size_t n)
{
    if (n > 1)
        throw std::exception(
            "Создание списка из более чем одного студента "
            "недоступно в демонстрационной версии программы."
        );
 
    mob::value_type v;
    v.year_ = 1234;
    v.grant_ = 1000;
    v.name_ = "Вася Пупкин";
    
    mob m;
    m.push_back(v);
    return m;
}
 
// Вывести на экран все данные(структурировано).
template <typename Os>
Os& operator << (Os& os, const mob& m)
{
    if (m.size() == 0)
        return os;
    if (m.size() > 1)
        throw std::exception(
            "Вывод списка, состоящего более чем из одного элемента "
            "недоступен в демонстрационной версии"
        );
    mob::value_type v = *m.begin();
    return os << "Name: " << v.name_ << ", Grant: " << v.grant_ << ", Year: " << v.year_;
}
 
// Реализовать поиск по годам.
template <typename T>
T find(const T& l, int year)
{
    mob m;
    std::remove_copy_if(
        l.begin(), l.end(), std::back_inserter(m),
        std::not1(match_year<typename T::value_type>(year))
        );
    return m;
}
 
template <typename T>
struct grant_less : public std::binary_function<T, T, bool>
{
    bool operator()(const T& v1, const T& v2) const
    { return v1.grant_ < v2.grant_; }
};
 
// Находит студента который получает максимальную стипендию.
template <typename T>
typename T::value_type best(const T& l)
{
    return *std::max_element(l.begin(), l.end(),
        grant_less<typename T::value_type>());
}
 
int main()
{
    setlocale(LC_ALL, ".1251");
    mob m = create(1);
    mob oth = find(m, 1234);
    std::cout << oth << std::endl;
 
    std::cout << "Лучший студент: " << best(m).name_ << std::endl;
    return 0;
}
1
ISergey
Maniac
Эксперт С++
1376 / 887 / 53
Регистрация: 02.01.2009
Сообщений: 2,663
Записей в блоге: 1
28.05.2009, 14:24 #4
Цитата Сообщение от Rififi Посмотреть сообщение
C++
1
 throw std::exception("Вывод списка, состоящего более чем из одного элемента недоступен в демонстрационной версии");
Rififi, Вы как всегда..
Хоть по праздникам исключение будите делать?
1
28.05.2009, 14:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2009, 14:24
Привет! Вот еще темы с ответами:

Списки!!! - C++
Помогите ПЛИЗЗЗ!!! И если можно добавьте комментарии к каждой строке!!!:) Добавить новый элемент после заданного; элемент задан...

Списки С++ - C++
Пусть в файле хранятся записи со сведениями об автомобилях и их владельцах (марка, номер ГАИ, фамилия владельца); Необходимо: а) для...

списки - C++
напишите теорию о списках

Списки - C++
помогите пожалуйста решить задачу! сформировать список из натуральных чисел. Найти среднее арифмитическое элементов списка и выяснить,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru