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

Обработка данных класса "Студент"

12.12.2019, 12:11. Показов 722. Ответов 1
Метки нет (Все метки)

Определить класс «Студент». Сведения о студенте состоят из его фамилии, кода группы, в которой он учится, оценок по сессии и номера курса. Предусмотреть возможность вывода списков студентов одного курса; поиска однофамильцев в группах и на разных курсах. Если таких студентов нет, вывести соответствующее сообщение. Определить для студента, фамилия которого вводится с клавиатуры среднего балла по сессии.

Просьба помочь с поиском однофамильцев в группе (case1) и на одном курсе (case2).

На данный момент программа выглядит так:
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#include <iostream.h>
#include <windows.h>
#include <iomanip.h>
char bufRus[256];
char* Rus(const char* text)
{
    CharToOem(text,bufRus);
    return bufRus;
}
 
class student
{
        char familia[20];
        int ocenki[12];
        char grupa[10];
        int kurs; 
 
    public:
        void vvod();
        float srbal();
//      int poisk(char*);
        void vivod();
};
 
void student::vvod()
{
    int i,j;
    cout<<Rus("\nВведите фамилию студента: ");
    cin>>familia;
    cout<<Rus("Введите оценки студента последовательно:\n");
    for(i=1;i<=10;i++)
    {
        cout<<Rus("Оценка №")<<i<<": ";
        cin>>ocenki[i];
        if(ocenki[i]<2||ocenki[i]>5)
        {
            cout<<Rus("\nНеверная оценка!!! Введите заново!");
            i--;
        }
    }
    do
    {
    cout<<Rus("Введите номер курса: ");
    cin>>kurs;
    if(kurs<1||kurs>4)
        {
            cout<<Rus("\nНеверный курс!!! Введите заново!\n");
            j=1;
        }
    else j=0;
    }
    while(j==1);
    cout<<Rus("\n Введите код группы: ");
    cin>>grupa;
}
 
 
float student::srbal()
{
    int i;
    float rez=0;
    for(i=1;i<=10;i++)
    {
        rez=rez+ocenki[i];
    }
    rez=rez/10;
    return rez;
}
 
 
 
 
/*int student:: poisk(char* fam)
{
    
}*/
 
 
void student::vivod()
{
    cout<<setw(15)<<familia;
    cout<<setw(8)<<grupa;
    cout<<setw(6)<<kurs;
    cout<<setw(8)<<srbal();
    cout<<endl;
}
 
 
 
void head()
{
    cout<<endl<<setw(15)<<Rus("Фамилия");
    cout<<setw(8)<<Rus("Группа");
    cout<<setw(6)<<Rus("Курс");
    cout<<setw(8)<<Rus("Ср.Бал");
    cout<<endl;
}
 
 
 
 
void main()
{
    student kolvo[20];
    int kol,i,option;
    cout<<Rus("\n Введите количество студентов: ");
    cin>>kol;
    for (i=1;i<=kol;i++)
    {
        kolvo[i].vvod();
    }
    while(option!=0)
    {
        cout<<endl<<setw(4)<<Rus("\n Код");
        cout<<setw(12)<<Rus("Операция\n\n");
        cout<<setw(4)<<Rus("1 ");
        cout<<setw(18)<<Rus("Поиск однофамильцев в одной группе\n");
        cout<<setw(4)<<Rus("2 ");
        cout<<setw(18)<<Rus("Поиск однофамильцев с одного курса\n");  
        cout<<setw(4)<<Rus("3 ");
        cout<<setw(18)<<Rus("Список всех студентов\n");  
        cout<<setw(4)<<Rus("0 ");
        cout<<setw(8)<<Rus("Выход\n");
        cout<<Rus("\n\nВведите код операции: ");
        cin>>option;
        switch (option)
        {   
            case 1:
                {
                    
                }
 
            case 2:
                {
                    
                }
            
            case 3:
                {
                    cout<<endl<<setw(15)<<Rus("Фамилия");
                    cout<<setw(8)<<Rus("Группа");
                    cout<<setw(6)<<Rus("Курс");
                    cout<<setw(8)<<Rus("Ср.Бал");
                    cout<<endl;
                    for(i=1;i<=kol;i++)
                    {
                        kolvo[i].vivod();
                    }
                    break;
                }
            
            case 0:
                {
                    cout<<Rus("\nСпасибо за внимание!\n")<<endl;
                    option=0;
                    break;
                }
            default:
                cout<<Rus("\nОшибка! Неверный код операции!!\n")<<endl;
        }
    }
}
Результат программы на картинках
Миниатюры
Обработка данных класса "Студент"   Обработка данных класса "Студент"  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2019, 12:11
Ответы с готовыми решениями:

Обработка данных в структурах "Студент"
Задача 1. При решении задачи требуется реализовать тип данных struct, соответствующий варианту...

Создать класс "Студент" и классы "Бюджетный студент" и "Коммерческий студент"
Доброго времени суток. Помогите с задачкой. Наследование. Создать класс студент и классы бюджетный...

Реализация класса "Студент" и наследование от него класса "Аспирант"
Помогите, пожалуйста! Создать абстрактный базовый класс Person, описывающий обычного человека....

Два класса: "Студент" и "Курс"
Дано 2 класса: stud, содержащий сведения о студенте (фамилия, вуз, номер группы) и курс, содержащий...

1
6565 / 4550 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
12.12.2019, 13:08 2
Цитата Сообщение от EkaterinaLind Посмотреть сообщение
Просьба помочь с поиском однофамильцев в группе (case1) и на одном курсе (case2).
Попробуй так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
case 1:
{
    typedef std::map<std::pair<std::string, std::string>, int> TItems;
    TItems items;
    for (size_t i = 0; i < kol; ++i)
        ++items[std::make_pair(kolvo[i].grupa, kolvo[i].familia)];
 
    bool found = false;
    for (TItems::iterator it = items.begin(), end = items.end(); it != end; ++it)
        if (it->second > 1)
        {
            std::cout << it->first.first << ", " << it->first.second << ": " << it->second << std::endl;
            found = true;
        }
 
    if (!found)
        std::cout << "NOT FOUND" << std::endl;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2019, 13:08
Помогаю со студенческими работами здесь

В массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию
в массиве структур студент с полями &quot;ИМЯ&quot; &quot;ВОЗРАСТ&quot; &quot;УСПЕВАЕМОСТЬ&quot; выполнить сортировку по...

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

Структура "Студент": неправильный ввод данных
вообщем такая проблема что ввод данных неправильный первого студента вводит нормально, но потом...

База данных "Студент"(Turbo C)
База данных &quot;Студент&quot;


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

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

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