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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Люди которые с графикой в borland 3.1 (dos) отпишитесь http://www.cyberforum.ru/cpp-beginners/thread1157381.html
Люди которые с графикой в borland 3.1 (dos) отпишитесь
C++ Как связать число символов и слово #include <iostream> #include <string> #include <sstream> using namespace std; int main() { string str, s1, s2; int i; http://www.cyberforum.ru/cpp-beginners/thread1157379.html
Очищение аргументов функции main C++
Здравствуйте! Как известно, в функцию main передаются два аргумента: int argc, char** argv Стоит ли использовать delete на argv ради экономии памяти, после парсинга аргументов?
Вложенные структуры. Ошибка с создании вложенного двунаправленного списка C++
Доброго времени суток. Хочу представить граф в виде списка смежности, но у меня компилятор выдает кучу ошибок, помогите разобраться пожалуйста. Заголовочный файл, описана структура: #include <stdio.h> class CGraph { private: struct Graph{ int mainVertex;
C++ Удалить начальные пробелы из введенной с клавиатуры строки http://www.cyberforum.ru/cpp-beginners/thread1157356.html
Помогите написать программу для Microsoft Visual Studio Вот что надо сделать: Написать программу, которая удаляет начальные пробелы из введенной с клавиатуры строки.
C++ Вычислить сумму ряда Дано действительное число х(0<x<=1). Вычислить сумму ряда с точностью Eps=10^-6 и указать количество слагаемых. \sum_{k=1}^{\propto }\frac{{(-1)}^{k}*{x}^{2*k+n}}{(k+n)!*k!} подробнее

Показать сообщение отдельно
Donnerwetter
40 / 40 / 12
Регистрация: 04.02.2014
Сообщений: 144

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

25.04.2014, 18:28. Просмотров 496. Ответов 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) подскажите, можно ли два кейса в моем коде тоже объединить в одну функцию сортировки по группам, ведь они делают практически одно и то же, отличаются только одной переменной (сдал/не сдал).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru