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

Описать структуру с именем STUDENT - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ графика в с++ http://www.cyberforum.ru/cpp-beginners/thread598913.html
кто то когда то писал на форуме про графическую библиотеку, она гораздо мощнее стандартного GUI windows и гораздо проще чем direct и это не OpenGL , может кто знает что это?
C++ алгоритм разложения функции y(x)=Pi*x/((e^3x)-1). Я пробовал делать два раза но препод не принял. Даже не объяснил, что делать. Помогите пожалуйста http://www.cyberforum.ru/cpp-beginners/thread598903.html
В первый день спортсмен пробежал X километров, а затем он...(цикл while) C++
В первый день спортсмен пробежал X километров, а затем он каждый день увеличивал пробег на 10% от предыдущего значения. По данному числу Y определите номер дня, когда суммарный пробег спортсмена составит не менее Y километров. Например, при вводе X=10,Y=100 программа должна вывести 8. помогите решить.
не пойму где дописать C++
надо v сделать динамическим и чтобы удаляло тоесть mass есть, теперь v надо сделать динамическим и чтобы удаляло его вот условие задачи: Задан двумерный динамический массив, найти все элементы больше за среднее арифметическое в каждой строке и удалить их. вот сам код: #include <iostream> #include <conio.h>
C++ Совершенное число http://www.cyberforum.ru/cpp-beginners/thread598886.html
В линейном динамическом массиве уничтожить все совершенные числа. Совершенное число (сумма делителей = самому числу) Например 6 = 1 +2 +3
C++ Преобразовать с использованием промежуточных переменных для поэлементных действий #include "iostream.h" #include "conio.h" #include "math.h" int main() { float a,b,f; a=1000; b=0.01; f=pow(a+b,2)-(pow(a,2)+2*a*b)/pow(b,2); printf( "%f",f); подробнее

Показать сообщение отдельно
paxak93
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 28
11.06.2012, 20:16  [ТС]     Описать структуру с именем STUDENT
Цитата Сообщение от diagon Посмотреть сообщение
Функция примерно так будет выглядеть(не проверял)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
double srbalgrup(student *gr, int n, int k) //k - номер группы
{
    double sum = 0;
    int count = 0;
    
    for (int i = 0; i < n; ++i)
    {
        if (gr->group == k)
        {
            double gr_sum = 0;
            
            for (int j = 0; j < 5; ++j)
                gr_sum += gr->ses[j];
            
            sum += gr_sum / 5;
            ++count;
        }
    }
    
    return sum / count;
}
Просто пускаете эту функцию для всех групп.
Интерфейс написать не могу, ибо тогда придется лезть в винду.
вот что получается:
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include "iostream"
#include "fstream"
 
using namespace std;
 
struct student 
{
    char name[20];//фамилия студента
    int group; //номер группы
    int  ses[5]; //оценки
};
 
double sort(student *,int n);    // прототип функции сортировки по среднему балу
double horoshist(student *,int n); // прототип функции вывод студентов у которых 4 и 5
double srbalgrup(student *,int n);// прототи функции среднего балла по группе
int main()
{
    setlocale(LC_CTYPE,"Russian"); //русский шрифт в консоле
    int n, i, j; //обьявляем переменные
    cout << "Введите количество структур типа студент - ";
    cin >> n; //число элементов в массиве структур
    
    student *stud1 = new student [n]; //выделение динамической памяти под массив структур
 
    ifstream instr("inform.txt");   //открытие файла для ввода
    if(!instr) //если файл не найден тогда....
    {
        cout<<"File can not be open\n"; //выводим сообщение
        return 0; //выход из программы
    }                                          
 
    cout << endl << "Фамилия\tГруппа\t\t    Оценки" << endl << endl;
    
    //заполнение массива считыванием из файла
    for(i = 0; i < n; i++)
    { 
        instr >> stud1[i].name >> stud1[i].group;
        cout << stud1[i].name << '\t' << stud1[i].group; 
            for(j = 0; j < 5; j++)
            {
                instr >> stud1[i].ses[j];
                cout << '\t' << stud1[i].ses[j];
            }   
            cout << endl;
    }  
    instr.close(); //закрываем файл
 
    cout << endl << "Mассив STUD1 по возрастанию среднего балла" << endl;
    cout << endl << "Фамилия\tГруппа\t\t     Оценки\t\t     Средний бал" << endl << endl;
    sort(stud1, n); //вызываем функцию сортировки
 
    cout << endl << "Фамилии и номера групп для всех студентов, имеющих оценки только 4 и 5" << endl;
    cout << endl << "Фамилия\tГруппа" << endl << endl;
    horoshist(stud1, n); //вызываем функцию для вывода хорошистов
    cout<<endl<<"Средний балл по группам"<<endl;
    srbalgrup(stud1,n);
    delete [] stud1; //очищаем память
    system("pause >> null"); //ждем пока пользователь нажмет любую клавишу
    return 0; //выход с программы
}
 
 
//сортировку делаеи спомощью "Пузырьковой сортировки"
double sort(student *gr, int n)
{
    double s; //перемееная для подсчета суммы балов каждого студента
    double *avg = new double [n]; //выделяем память под массив хранящщего средние балы каждого студента
    
    //находим средний бал каждого студента
    for(int i = 0; i < n; i++)  
    {
        s = 0.;
        for(int j = 0; j < 5; j++)
        {
            s += gr[i].ses[j];
            avg[i] = s / 5;
        }
    }
 
    bool flag = true; //обьявляем булевую переменную и даем есть значение "истина"
        
        while(flag) //пока "истина" делаем
        {
            flag = false;  //устанавливаем переменную в "ложь"
                    
            for(int i = 0; i < n - 1; ++i)
            {
                if(avg[i] > avg[i + 1]) //если элемент массива большн следующий элемент, тогда
                {
                    //меняем массивы в структуре местами
                    student x = gr[i];
                    gr[i] = gr[i + 1];
                    gr[i + 1] = x;
                    
                    //а также меняем местами и элементы в массиве средних оценок 
                    double temp = avg[i];
                    avg[i] = avg[i + 1];
                    avg[i + 1] = temp;
           
                    flag = true; //уснанавлюем в "истина"
                }
            }
        }
 
        //выводим на экран отсортированную структуру
        for(int i = 0; i < n; i++)
        
    { 
        cout << gr[i].name << '\t' << gr[i].group; 
            for(int j = 0; j < 5; j++)
            {
                cout << '\t' << gr[i].ses[j];
                
            }
            cout << "\t" << avg[i]; //выводим на экран средний бал
            cout << endl;
    }  
    delete [] avg; //освобождаем память
    return 0;
}
 
 
//ищем хорошистов
double horoshist(student *gr, int n)
{
    int x, z = 0; //объявляем переменные
 
    for(int i = 0; i < n; i++)
    {
        x = 0;
        for(int j = 0; j < 5; j++)
        {
            
            if(gr[i].ses[j] == 4 || gr[i].ses[j] == 5)
            {
                x++; //считаем количество 4 и 5 у каждого студента
            }
        }
        if (x == 5) //если количество 4 и 5 равен 5 тогда...
        {
            cout << gr[i].name << '\t' << gr[i].group << endl; //выводи этих студентов
            z++;//подсчитываем количеств хорошистов
        }
        
    }
    if (z == 0) //если хорошистов нет, тогда ....
        {
            cout << "Среди студентов нет хорошистов" <<endl; //выводим сообщение об этом
        }
    return 0;
}
//ищем средний балл по группам
double srbalgrup(student *gr, int n)
{
    int k=0;
    double sum = 0;
    int count = 0;
    
    for (int i = 0; i < n; ++i)
    {
        if (gr->group == k)
        {
            double gr_sum = 0;
            
            for (int j = 0; j < 5; ++j)
                gr_sum += gr->ses[j];
            
            sum += gr_sum / 5;
            ++count;
            
        }
    cout<<sum<<endl;
    }   
    return 0;
}
Миниатюры
Описать структуру с именем STUDENT  
 
Текущее время: 18:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru