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

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

Войти
Регистрация
Восстановить пароль
 
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 934
#1

Проблема с перегрузками функций - C++

14.04.2011, 20:04. Просмотров 247. Ответов 4
Метки нет (Все метки)

Описать класс с именем STUDENT, содержащий следующие поля: фамилия и инициалы;номер группы; успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
а) ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT;записи должны быть упорядочены по возрастанию номера группы;
б) вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 4,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
97
98
99
100
101
102
103
104
105
106
107
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#define L 25
using namespace std;
class STUDENT
{
 
public :
    char firstname[L];
    char lastname[L];
    int groupnumber;
    int label[5];
friend ostream& operator<<(ostream& out,STUDENT &a);//именно с &
friend istream& operator>>(istream &in,STUDENT &a,int MAX);
};
 
 
float sred(int *a,int n)
{float j=0;
for (int i=0;i<n;i++)
    j+=a[i];
 
return (j/n);
 
}
 ostream& operator<<(ostream& out,STUDENT &a)
{
return (out<<a.firstname<<" "<<a.lastname<<" № "<<a.groupnumber);   
}
istream& operator>>(istream &in,STUDENT &a,int MAX)
{   
        for (int i=0;i<MAX;i++)
        {cout<<"Введите фамилию"<<i+1<<"-го"<<" студента:";
        cin.sync();//!!!
        cin.getline(a[i].firstname,L);
 
        cout<<"Введите имя"<<i+1<<"-го"<<" студента:";
        cin.get(a[i].lastname,L);
 
        cout<<"Номер группы:";cin>>a[i].groupnumber;
        for (int j=0;j<5;j++)
        { cout <<"Введите отметку по "<<j+1<<"-й дисциплине:";
        cin>>a[i].label[j];}}
        
}
 
int _tmain(int argc, _TCHAR* argv[])
{setlocale(LC_ALL,"Russian");int MAX;
 
cout<<"Программа:\n";
cout<<"1)Cоздает списки студентов!\n";
cout<<"2)Сортирует по номеру группы!\n";
cout<<"3)Выводит списки студентов,имеющих балл выше 4.0!\n";
cout<<"~~~~~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~~~\n";
cout<<"Введите размер списка студентов:";cin>>MAX;
 
STUDENT *a;float *labelsred;int *index,*num;int i,j;
a=new STUDENT[MAX];
labelsred=new float[MAX];
index=new int[MAX];
num=new int[MAX];
(cin,a);
for (i=0;i<MAX;i++)
{
    labelsred[i]=sred(&a[i].label[0],5);
    num[i]=a[i].groupnumber;
    index[i]=i;
}
int n,m,buffer1,buffer2;float buffer3;
n=MAX;
for (int i=0;i<n;i++)
{m=i;
for (int j=i+1;j<n-1;j++)
{
    if (num[j]<num[m])
    {m=j;
    buffer1=num[i];
    num[i]=num[m];
    num[m]=buffer1;
    buffer2=index[i];
    index[i]=index[m];
    index[m]=buffer2;
    buffer3=labelsred[i];
    labelsred[i]=labelsred[m];
    labelsred[m]=buffer3;
    }
 
}
 
}
 
for (int y=0;y<MAX;y++)
{ cout<<index[y]+1<<")"<<a[y];}
cout<<"Cписок студентов,у кого средний бал больше 4.0 :\n";
int kol=0;
for (int i=0;i<MAX;i++)
{
    if (labelsred[i]> 4.0) { cout<<a[i];kol++;}
}
 
if (kol==0) cout<<"Таких студентов нет!!!\n";
getch();
 
 
    return 0;
}
Не перегружается операция ввода
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 20:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблема с перегрузками функций (C++):

Найти ошибки в задаче с перегрузками функций - C++
Помогите, пожалуйста, определить, где здесь ошибка:cry: Никак не могу найти.. Буду очень благодарна! #include &lt;iostream&gt; ...

Шаблон для класса с перегрузками операторов - C++
Доброе время суток. Есть класс Fract реализующий дробь. Не получается сделать шаблон, чтобы можно было складывать Fract&lt;int&gt; + Fract&lt;long&gt;...

Программа с классами комплексных чисел и перегрузками операций - C++
Задание состоит из таких частей: Для выбранного варианта определите класс, включив в него: • конструктор по умолчанию; • конструктор...

Класс «Номер телефона», проблема с парой функций - C++
Есть задание (ниже). Я сделал всё из обоих пунктов, но функции Out_All ShowSameCode ShowSameType Find не работают . Никак не могу понять...

Проблема именно с видимостью функций другим файлам - C++
Я создал чисто тестовый пример проекта который создает след. ошибку со строчкой: в тест проекте есть 4 файла: hll.h 100.cpp ...

Создать класс "Сектор единичного круга" с перегрузками - C++
Создать класс Сектор единичного круга в прямоугольной системе координат OXY с центром в точке O(0,0), который определяется двумя...

4
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
14.04.2011, 20:40 #2
а с чего оно у вас должно работать? посмотрите как правильно надо перегружать оператор ввода, к тому же вы не возвращаете ссылку на поток
пример
C++
1
2
3
4
5
6
istream & operator>>(istream &input, Array &num)
{
        for (int i=0; i<num.size; i++)
                input>>num.ptr[i]; // 
        return input;
}
0
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 934
14.04.2011, 20:44  [ТС] #3
Цитата Сообщение от panicwassano Посмотреть сообщение
а с чего оно у вас должно работать? посмотрите как правильно надо перегружать оператор ввода, к тому же вы не возвращаете ссылку на поток
поясните и что крнкретно я не так сделал?
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
14.04.2011, 20:49 #4
Что конкретно непонятно? вы используете глобальные cin и cout, и при чтении из потока нужно возвратить ссылку на поток, посмотрите мой пример или в вашем коде перегрузку вывода
0
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 934
14.04.2011, 20:57  [ТС] #5
Если не трудно помогите код поменять,я не соображу че то
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2011, 20:57
Привет! Вот еще темы с ответами:

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h - C++
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...

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

Вызов функций внутри других функций - C++
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; using namespace std; ...

Объявление функций внутри других функций - C++
Иногда вижу в некоторых исходниках на c объявление функций, внутри main. Например: main(){ double sum(int max_num); } ...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
14.04.2011, 20:57
Ответ Создать тему
Опции темы

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