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

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

Войти
Регистрация
Восстановить пароль
 
Михаил Брагин
Заблокирован
#1

Сформируйте массив, содержащий сведения о дисциплинах, которые желает изучать студент - C++

30.05.2015, 13:30. Просмотров 344. Ответов 6
Метки нет (Все метки)

Сформируйте массив, содержащий сведения о том, какие из пяти предлагаемых дисциплин по выбору желает изучать студент: фамилия студента, факультет, номер группы, пять дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается символом 1, иначе - 0. Напишите программу, которая выдает информацию о студентах в порядке убывания среднего балла. Выведите на экран дисциплину, которую не желают изучать большинство студентов

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

Создайте файл Студент. Занесите в отдельный файл записи из файла Студент, добавив сведения о новых студентах - C++
Создайте файл Студент. Занесите в отдельный файл записи из файла Студент, добавив сведения о новых студентах Вид файла студент: ...

Создать массив структур, содержащий сведения о телепередаче - C++
Создать массив структур , содержащий сведения о телепередачи . Структура записи - № канала , название канала , тип передачи ( F -фильм , N-...

Сформировать массив, содержащий сведения о телефонах абонентов - C++
вот моя задача: Сформировать массив, содержащий сведения о телефонах абонентов. Структурный тип содержит поля: фамилия абонента,...

Создать массив структур, содержащий сведения о студентах - C++
Создать массив структур, что содержит сведения о студенах. для каждого студент указать № студ.билета, дата рождения, ФИО студента, адрес.

Сформировать массив, содержащий сведения о сдаче студентами сессии - C++
натолкните на раздумия.. Сформировать массив, содержащий сведения о сдаче студентами сессии. Структурный тип содержит поля: индекс...

Сформировать массив, содержащий сведения о нападающих команды «Спартак». - C++
Сформировать массив, содержащий сведения о нападающих команды «Спартак». Структурный тип содержит поля: имена нападающих, число заброшенных...

6
Solitaire Raven
33 / 33 / 10
Регистрация: 20.04.2015
Сообщений: 198
30.05.2015, 16:12 #2
Михаил Брагин,Держите



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
#include <iostream>
#include <string>
#include <vector>
#include <exception>
#include <algorithm>
 
class invalid_initializer_list : public std::exception {
public:
    virtual const char* what () const noexcept {
        return "Initialzier list must have 5 members";
    }
};
 
std::string disciplines[] = { "Physics", "Computer science", "Mathematics", "Operational research", "General engineering" };
 
struct Student {
    std::string surname, faculty;
    int group;
    int chase[5]; // Раз уж символ 1 или 0, хотя я бы сделал bool...
    int average_score;
    Student(std::string s, std::string f, int g, const std::initializer_list<int>& c, int a) :
    surname(s), faculty(f), group(g), average_score(a) {
        if (c.size() != 5) throw invalid_initializer_list();
        std::copy(c.begin(), c.end(), chase);
    }
};
 
template<size_t SIZE>
std::string disciplines_to_s(const int (&arr)[SIZE]){
    std::string acc;
    int n = 0;
    std::for_each(std::begin(arr), std::end(arr), [&acc, &n] (int a) {
        if (a) {
            if (n) acc += ", ";
            acc += disciplines[n];
        }
        ++n;
    });
    return acc;
}
 
std::ostream& operator << (std::ostream& str, const Student& s) {
    return str <<
        "Surname: " << s.surname <<
        ", facluty: " << s.faculty <<
        ", group: " << s.group <<
        ", average score: " << s.average_score <<
        ", chosen disciplines: " << disciplines_to_s(s.chase) << std::endl;
}
 
int main ( ) {
    Student arr[] = {
        Student("Pupkin", "Maths and computer science", 101, { 0, 1, 1, 0, 0 }, 240),
        Student("Vasechkin", "Aerospace engineering", 201,   { 1, 1, 1, 0, 1 }, 260),
        Student("Morozov", "Civil engineering", 204,         { 1, 0, 1, 1, 1 }, 250)
    };
    
    std::sort(std::begin(arr), std::end(arr), [ ] (Student& a, Student& b) -> bool {
        return a.average_score > b.average_score;
    });
    
    std::for_each(std::begin(arr), std::end(arr), [ ] (Student& a) { 
        std::cout << a; 
    });
    
    std::pair<int, int> popularity[5];
    int n = 0;
    std::generate(std::begin(popularity), std::end(popularity), [&n, &arr] () -> std::pair<int, int> {
        int t = std::count_if(std::begin(arr), std::end(arr), [&n] (Student& ref) -> bool {
            return ref.chase[n];
        });
        ++n;
        return std::pair<int, int>(n - 1, t);
    });
    
    
    std::sort(std::begin(popularity), std::end(popularity), [ ] (std::pair<int, int>& a, std::pair<int, int>& b) -> bool {
        return a.second < b.second;
    });
    
    std::cout << "\nThe least popualar discipline: " << disciplines[popularity[0].first] << std::endl;
    
    return 0;
}
0
Михаил Брагин
Заблокирован
30.05.2015, 16:25  [ТС] #3
Компиляция не знает что такое noexpect

Добавлено через 10 минут
Solitaire Raven, компиляция не знает что такое noexpect
0
Solitaire Raven
33 / 33 / 10
Регистрация: 20.04.2015
Сообщений: 198
30.05.2015, 16:31 #4
Цитата Сообщение от Михаил Брагин Посмотреть сообщение
компиляция не знает что такое noexpect
У вас какой компилятор?
0
Михаил Брагин
Заблокирован
30.05.2015, 16:34  [ТС] #5
Solitaire Raven, visual studio 2008. Поменять не могу, т.к. для института, там тоже 2008 Visual Studio
0
Solitaire Raven
33 / 33 / 10
Регистрация: 20.04.2015
Сообщений: 198
30.05.2015, 16:41 #6
Михаил Брагин,
Цитата Сообщение от Михаил Брагин Посмотреть сообщение
visual studio 2008. Поменять не могу, т.к. для института, там тоже 2008 Visual Studio

В стандарте ISO C++11 введен оператор noexcept, но поддержка этой функции пока отсутствует в Visual C++.



http://https://msdn.microsoft.com/ru-ru/library/wfa0edys.aspx
0
Михаил Брагин
Заблокирован
30.05.2015, 16:43  [ТС] #7
Solitaire Raven, а по другому нельзя программу написать?
0
30.05.2015, 16:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2015, 16:43
Привет! Вот еще темы с ответами:

Дан массив записей, содержащий сведения о студентах группы - C++
Дан массив записей, содержащий сведения о студентах группы: фамилия и инициалы студента; дата рождения(число,месяц,год). Найти и вывести на...

Задача. Сформировать массив, содержащий сведения о телефонах абонентов - C++
Сформировать массив, содержащий сведения о телефонах абонентов. Структурный тип содержит поля: фамилия абонента, место жительства (название...

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

Сформировать массив, содержащий сведения о личной коллекции книголюба - C++
я всю голову уже сломала напишите решение этой задачи очень надо. последняя лаба Сформировать массив, содержащий...


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

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

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