0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 11
1

Структуры, вывести фамилии и номера групп студентов, которые имеют хотя бы одну плохую оценку

04.02.2019, 12:18. Показов 4755. Ответов 5
Метки нет (Все метки)

Добрый день всем... Прошу помощи с заданием...
Описать структуру с именем STUDENT, которая имеет следующие поля:

1. Фамилия и инициалы.
2. Номер группы.
3. Успеваемость (массив из 5 элементов)

Написать программу, которая выполняет следующие действия
1. Ввод с клавиатуры данных в массив, который состоит из 10 структур типа STUDENT, записи должны быть упорядочены по алфавиту
2. Вывести на экран фамилии и номера групп студентов, которые имеют хотя бы одну оценку 2!
3. Если таких студентов нет, вывести соответствующее уведомление!

Заранее спасибо за помощь всем, кто откликнется!!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2019, 12:18
Ответы с готовыми решениями:

Структуры. Вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2.
1. Описать структуру с именем STUDENT, содержащую следующие поля: • NAME - фамилия и инициалы; •...

Вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2
Необходимо описать код с помощью классов. Задание: 1. Описать структуру с именем STUDENT,...

Структура Student: вывести фамилии и номера групп для студентов, имеющих двойки
Описать структуру с именем STUDENT, содержащую следующие поля: • фамилия и инициалы; • номер...

Определить попарно номера окружностей, которые имеют хотя бы одну общую точку
Пересекающиеся окружности. Даны натуральные числа x1,y1,r1...,x(n),y(n),r(n), которые задают...

5
Модератор
Эксперт С++
12464 / 10021 / 6032
Регистрация: 18.12.2011
Сообщений: 26,826
04.02.2019, 12:42 2
Лучший ответ Сообщение было отмечено Vimeo как решение

Решение

Вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2
0
593 / 429 / 135
Регистрация: 22.11.2017
Сообщений: 1,203
04.02.2019, 13:24 3
Vimeo, привет!
На скрине пример с 4 студентами. Переключил на 10 после отладки.
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
#include <iostream>
#include <xstring>
#include <locale>
#include <algorithm>
#include <array>
#include <tuple>
#include <iomanip>
 
using namespace std;
 
namespace std
{
    wostream& operator << (wostream& os, const tuple<wstring, wstring, array<unsigned short, 5u>> &student)
    {
        os << L"ФИО " << get<0u>(student)
            << L" номер группы " << get<1u>(student)
            << endl;
        return os;
    }
}
 
int main()
{
    system("color 0A");
    wcout.imbue(locale("rus_rus.866"));
    wcin.imbue(locale("rus_rus.866"));
 
    array<tuple<wstring, wstring, array<unsigned short, 5u>>, 10u> box;
    size_t ind = 0u;
    wcout << setfill(L'+');
    for (auto &student : box)
    {
        wstring name, num;
        array<unsigned short, 5u> marks;
        wcout << setw(70u) << L"" << endl;
        wcout << L"Студент " << ++ind << endl;
        wcout << L"ФИО ";
        wcin.ignore(wcin.rdbuf()->in_avail(), '\n');
        getline(wcin, name);
        wcout << L"Номер группы ";
        getline(wcin, num);
        wcout << L"5 оценок" << endl;
        for (auto &value : marks)
        {
            wcin >> value;
        }
        student = make_tuple(name, num, marks);
    }
    auto predicate = []
    (
        tuple<wstring, wstring, array<unsigned short, 5u>> t0,
        tuple<wstring, wstring, array<unsigned short, 5u>> t1
    )
    {
        return get<0u>(t0) < get<1u>(t1);
    };
    sort(box.begin(), box.end(), predicate);
    wcout << setw(70u) << L"" << endl;
    wcout << L"Список тех студентов, у кого есть хотя бы одна двойка" << endl;
    for (const auto &student : box)
    {
        wstring s1, s2;
        array<unsigned short, 5u> marks;
        tie(s1, s2, marks) = student;
        auto it = find(marks.begin(), marks.end(), 2u);
        if (it != marks.end())
        {
            wcout << student;
        }
    }
 
    system("pause");
    return 0;
}
Миниатюры
Структуры, вывести фамилии и номера групп студентов, которые имеют хотя бы одну плохую оценку  
0
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
04.02.2019, 13:33 4
SomniPhobia,
Цитата Сообщение от Vimeo Посмотреть сообщение
Описать структуру с именем STUDENT, которая имеет следующие поля


Добавлено через 5 минут
Цитата Сообщение от SomniPhobia Посмотреть сообщение
C++
1
2
3
namespace std
{
* * wostream& operator <<
И так лучше не делать.
1
593 / 429 / 135
Регистрация: 22.11.2017
Сообщений: 1,203
04.02.2019, 13:39 5
Azazel-San, я тренируюсь. Надо структуру - опишите структуру и измените шаблон
с array<tuple<wstring, wstring, array<unsigned short, 5u>>, 10u>
на array<students, 10u>
У кортежа плюс в том, что не нужно структуру описывать, минус - нет имён полей (анонимные поля).
Да, структура наглядней.
У автора включена поддержка C++17, я бы написал с декомпозицией (как для кортежа, так и для структуры) и прочими фишками 17 версии.

Добавлено через 43 секунды
Цитата Сообщение от Azazel-San Посмотреть сообщение
И так лучше не делать.
Спасибо за рекомендацию. В книге такое видел, тоже решил также написать.

Добавлено через 2 минуты
Цитата Сообщение от Azazel-San Посмотреть сообщение
И так лучше не делать.
Точно и без пространства имён работает. Спасибо!
0
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
04.02.2019, 13:51 6
Цитата Сообщение от SomniPhobia Посмотреть сообщение
Надо структуру - опишите структуру и измените шаблон
Мне не надо я не ТС. Но ТЗ есть ТЗ, нельзя его менять просто потому что захотелось, тем более оснований вроде нету, как для универской задачи все что надо - описано.
Цитата Сообщение от SomniPhobia Посмотреть сообщение
У автора включена поддержка C++17, я бы написал с декомпозицией (как для кортежа, так и для структуры) и прочими фишками 17 версии.
Впервые встречаюсь с экстрасенсом, можете погадать какое у меня будущее будет, я попаду в гугл работать?
Цитата Сообщение от SomniPhobia Посмотреть сообщение
Точно и без пространства имён работает. Спасибо!
Не увидел ниодной причины что бы его вообще перегружать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2019, 13:51
Помогаю со студенческими работами здесь

Выделить красным цветом имена и фамилии тех студентов, которые получили хотя бы одну оценку 10
задание для первого курса. Выделить красным цветом имена и фамилии тех студентов,которые получили...

Вывести на экран фамилии тех студентов, которые не выполнили и не сдали хотя бы одну работу
Program lab3; uses Crt; type vedomost=record nz_pr:string; nom_gr:string;

Определить фамилии студентов, получивших на экзамене хотя бы одну оценку “Неуд”
Разработайте процедуру с использованием инструкции Do Until для решения следующей задачи. В...

Найти количество и фамилии студентов, имеющих хотя бы одну оценку "удовлетворительно"
Целочисленная матрица А порядка 25x 4 содержит сведения о результатах сессии из 4 экзаменов для...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru