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

Воспользовавшись записью СТУДЕНТ определите количество отличных оценок, полученных группой по всем предметам - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ С чего начать ? http://www.cyberforum.ru/cpp-beginners/thread451130.html
привет всем я изучал web языки программирования такие как PHP С недавнего времени заинтересовался Cи вот хотел бы узнать у вас в чем различие между C++ и C#? С какого языка лучше начать? при...
C++ Найти сумму всех положительных элементов данного массива Дан двумерный массив размерностью N x M ( N И M вводятся с клавиатуры). Найти сумму всех положительных элементов данного массива. Произвести вывод данного массива в виде матрицы. http://www.cyberforum.ru/cpp-beginners/thread451126.html
Копирование файла в обратном порядке C++
вот написала прогу...она копирует файл,а как зделать чтоб копировать в обратном порядке??? #include <fstream> #include <stdlib.h> #include <iostream> #include <windows.h> using namespace std; ...
C++ Помогите решить задачу с использованием структуры
Помогите решить задачу:Нужно ввести фамилию и узнать информацию о студенте #include<stdio.h> #include<conio.h> struct student_spisok { char prizv; char vulica; int nt; int sr; }
C++ Вот нашол такой код http://www.cyberforum.ru/cpp-beginners/thread451095.html
Вот нашол такой код : #include <iostream> // cin, out #include <clocale> // поддержка русского языка #include <conio.h> // _getch() #include <stdlib.h> // поддержка функции очистки экрана...
C++ Работа с файлами Создайте файл.Каталог файлов.Выберите и занесите в отдельный файл сведения о файлах,размер которых превышает заданное число блоков. 4.4 Написание сообщений латиницей следует применять, только если... подробнее

Показать сообщение отдельно
AmaTeRaTsu
94 / 27 / 2
Регистрация: 31.05.2011
Сообщений: 123

Воспользовавшись записью СТУДЕНТ определите количество отличных оценок, полученных группой по всем предметам - C++

22.02.2012, 21:41. Просмотров 1102. Ответов 6
Метки (Все метки)

Привет. Прощу помочь с решением задачи на структуру. Я нашел тут на форуме схожую задачу, но она определяет количество отличников, а не отличных оценок. За любую помощь буду премного благодарен.

Вот код:
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
 
#include <iostream>                          //Подключаем библиотеку функций ввода-вывода
#include <string>
#include <conio.h>
 using namespace std;
struct STUDENT{
        char FIO[30]; 
        char group[8]; 
        int ocenki[5];
} ;
//Функция сортировки списка студентов по фамилии в алфавитном порядке
//Входной параметр S - массив записей о студентах
void sortM(STUDENT *S, int N)
{
        STUDENT tmp;                               //Хранит временно данные о студенте (используется в сортировке)
        bool sort = true;                          //Указывает нужно сортировать или нет
        int i;                                     //Счетчик цикла
    //Сортировка методом пузырька
        while (sort)                               //Цикл (пока нужно сортировать)
        {
                sort=false;                            //Делаем предположение, что сортировать уже не нужно
                                for (i=0; i < N-1; i++)                    //Просматриваем все записи минус один
                        if (strcmp(S[i].FIO,S[i+1].FIO)>0) //strcmp - функция сравнения строк, если первая больше второй
                        {
                                tmp=S[i];                      //Меняем эти строки местами
                                S[i]=S[i+1];
                                S[i+1]=tmp;
                                sort=true;                     //Считаем, что нужно дальше сортировать
                        }
        }                                          //Конец цикла (пока нужно сортировать)
}
 
//Функция определения студентов хотя бы с одной пятеркой
//Входной параметр S - массив записей о студентах
void student2(STUDENT *S,int N)
{
                STUDENT *T = new STUDENT[N];                             //Массив "отличников"
        int i,j;                                   //Переменные циклов
        int k = 0;                                 //Количество "отличников" (пока 0)
        for (i=0; i<N; i++)                       //Смотрим по всем записям
        {
                for (j=0; j<5; j++)                    //Смотрим все оценки студента
                        if (S[i].ocenki[j]==5)             //Если нашли пятерку
                        {
                                T[k]=S[i];                     //Добавляем запись о студенте в массив "отличников"
                                k++;                           //Увеличиваем число отличников на 1
                                break;                         //Выходим из цикла по оценкам
                        }
        }
        if (k>0)                                   //Если есть студенты с пятерками
        {
                cout<<endl<<"Studenti, imeuschie p9terki:"<<endl;  //Вывод "Студенты, имеющие пятерки"
 
                for (i=0; i<k; i++)                    //Выводим всех студентов с пятерками
                        cout<<T[i].FIO<<"    "<<T[i].group<<endl;
        }
        else                                       //Если студентов с пятерками не найдено
                cout<<endl<<"Net studentov s p9terkami"<<endl;  //Вывод "Нет студентов с пятерками"
        cout<<"---------------------------"<<endl;
        cout<<"Koli4estvo studentov polu4ivwie p9terki: "<<k;
 delete []T;
}
 
 
//Объявляем функции
//Главная функция
int main()
{
        int N = 0;
        setlocale(LC_CTYPE,"Rus");
cout << "Введите количество студентов: ";
                cin >> N;
 
                STUDENT *S = new STUDENT[N];
 
                //STUDENT M[N];//Массив записей о студентах (N элементов)
        int i,j;                                   //Переменные циклов
 
 
        cout<<"Vvedite informaciu o studentah:"<<endl;  //Вывод "Введите информацию о студентах"
 
        for (i=0; i<N; i++)                       //Цикл по всем записям
        {
                cout<<"Student "<<i+1<<":"<<endl;      //Вывод "Студент 1..10"
                cout<<"FIO: ";                         //Вывод "ФИО"
 
                cin>>S[i].FIO;                         //Ввод ФИО
                cout<<"Gruppa: ";                      //Вывод "Группа"
 
                cin>>S[i].group;                       //Ввод группы
                for (j=0; j<5; j++)                    //Цикл по пяти оценкам
                {
                        cout<<"Ocenka "<<j+1<<": ";        //Вывод "Оценка 1.. 5"
 
                        cin>>S[i].ocenki[j];               //Ввод j-ой оценки
                }
        }
 
 
 
 
        sortM(S,N);                                  //Вызов функции сортировки записей
                                                   //Вывод "Упорядоченный массив записей по ФИО"
        cout<<endl<<"Uporyadochennii massiv zapisei po FIO:"<<endl;
        for (i=0; i<N; i++)
                {//Цикл по всем 10 записям
                                                       //Вывод "ФИО, группа, оценки"
                cout<<S[i].FIO<<"    "<<S[i].group<<"    ";
                                for(int j=0;j<5;j++)
                                        cout<<S[i].ocenki[j]<<"  ";
                                cout<<endl;
                }
        student2(S,N);                               //Вызов функции определения студентов с пятерками
                delete []S;
                
 getch();
}
Вот скриншот не полного результата:
0
Миниатюры
Воспользовавшись записью СТУДЕНТ определите количество отличных оценок, полученных группой по всем предметам  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru