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

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

Войти
Регистрация
Восстановить пароль
 
Donnerwetter
40 / 40 / 12
Регистрация: 04.02.2014
Сообщений: 144
#1

Задача на битовые поля - C++

25.04.2014, 18:28. Просмотров 510. Ответов 0
Метки нет (Все метки)

Есть такая задача. Написать программу учета сдачи зачетов при помощи битовых полей. Структура содержит поля: фамилия, группа, зачеты (битовое поле). Предусмотреть вывод списков сдавших все зачеты и должников по группам и в алфавитном порядке.

Вот мой код, пока сделал только сортировку по группам:

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
#include <iostream>
using namespace std;
 
struct student
{
    char name [100];//фамилия студента
    int group;//номер группы
 
    union test
    {
        unsigned int result: 1;//результат теста (сдан/не сдан)
    }Res;
 
}Stud;
 
void main()
{
    student mas_struct[20];//массив структур
    int i=0;
    char choice='y';
    while(choice=='y'||choice=='Y')
    {
        cout <<"\n\nEnter student's name: " <<endl;
        cin>>Stud.name;
 
        cout<<"Enter group number: " <<endl;
        cin>>Stud.group;
 
        int result;
        cout<<"0 - test failed, 1 - test passed" <<endl;
        cin>>result;
 
        Stud.Res.result=result;
 
        mas_struct[i]=Stud;
        i++;
        cout<<"\n\nContinue?(Y/N): ";
        cin>>choice;
    }
 
    int list_choice;
 
    cout<<"\nEnter 1 to see the list of students who passed test"<<endl;//"1" - вывод списка сдавших
    cout<<"\nEnter 0 to see the list of students who failed test"<<endl;//"0" - вывод списка не сдавших
 
    switch(list_choice)
    {
    case 1:
        int sort_choice;
        cout <<"\n\nChoose sort type: 0 - by groups, 1 - by names"<<endl;
        cin>>sort_choice;
        if (sort_choice==0)
        {
            cout << "\n\nEnter group number: " <<endl;
            int number;
            cin >> number;
            int count=0;
 
            for (int j=0; j<i; j++)
            {
                if (mas_struct[j].group==number&&mas_struct[j].Res.result==1)
                {
                    cout << "\n\nStudent's name: " << mas_struct[j].name <<endl;
                    cout << "Group number: " << mas_struct[j].group <<endl;
                    count++;
                }
            }
            cout<<count<<" students in group "<<number<<" passed test."<<endl;
            break;
        }
    case 2:
        int sort_choice_2;
        cout <<"\n\nChoose sort type: 0 - by groups, 1 - by names"<<endl;
        cin>>sort_choice_2;
        if (sort_choice_2==0)
        {
            cout << "\n\nEnter group number: " <<endl;
            int number;
            cin >> number;
            int count=0;
 
            for (int j=0; j<i; j++)
            {
                if (mas_struct[j].group==number&&mas_struct[j].Res.result==0)
                {
                    cout << "\n\nStudent's name: " << mas_struct[j].name <<endl;
                    cout << "Group number: " << mas_struct[j].group <<endl;
                    count++;
                }
            }
            cout<<count<<" students in group "<<number<<" failed test."<<endl;
            break;
        }
    }
 
}
Помогите, пожалуйста, написать:

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

Задача на битовые поля - C++
Написать программу для хранения в битовом поле информации о конфигурации компьютера. вот моя программа, очень долго не мог понять что от...

Битовые операции, битовые поля. - C++
Здравствуйте! Еслть 4 диапазона чисел: 0-100, 0-100, 0-6000, 0-3. Сделать в виде битовых операций. Записать в unsigned int. Использовать...

Битовые поля. Поля без типа и имени - C++
Вчера сделал очень интересную и болезненную ошибку (с точки зрения времени, так как искал я ее долго)... представьте структуру (битовое...

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

Битовые поля - C++
struct TKeyFlags { int Old :1; int :6; int ...

Битовые поля - C++
Народ, напишите программу для включения 3-го разряда однобайтового числа и переключения 7-го. Никак не понимаю что и как...Напишите пож..

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2014, 18:28
Привет! Вот еще темы с ответами:

Битовые поля - C++
Подскажите пожалуйста, как мне сохранить две цифры с помощью битовых полей?

Битовые поля - C++
В приложении 1 есть пример использования битовых полей. В выделенной строке структуре присваивается бит, полученный из функции. (Кстати,...

Битовые поля - C++
Добрый вечер! Помогите, пожалуйста, найти ошибку в программе. Компиляцию проходит безошибочно, но данных не выдает при запуске. ...

Битовые поля - C++
Доброго времени суток. Читаю книгу &quot;Освой самостоятельно С++ за 21 день&quot;, наткнулся на битовые поля. Читаю про их объявление: &quot;Они всегда...


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

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

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