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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
akiam
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 39
#1

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

29.01.2013, 23:44. Просмотров 2120. Ответов 22

1.Описать структуру с именем STUDENT, содержащую следующие поля:
• NAME – фамилия и инициалы;
• GROUP – номер группы;
• SES - успеваемость (массив из пяти элементов).
2. Написать программу, выполняющую следующие действия :
• ввод с клавиатуры данных в массив STUDENT, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию содержимого поля GROUP;
• вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 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
#include <iostream.h>
#include <string>
#include <fstream>
#include <conio.h>
using namespace std;
 
struct STUDENT 
{ 
    char name[10]; 
    int group; 
    float ses[5]; 
};
 
int main() 
{   
    const int size = 10; 
    STUDENT student[size];
    int i, j; 
    int n = 0; //s4et4ik stydentov
    int count = 0; 
 
    for ( i = 0; i < size; i++)  // vvod
    {  
        //cout << "Vvedi familiu " << endl; 
        cin >> student[n].name; 
        //cout << "Nomer gryppi " << endl; 
        cin >> student[n].group; 
        //cout << "Vvedi 5 ocenok " << endl; 
        for (int i = 0; i < 5; i++) 
        cin >> student[n].ses[i]; 
        n++;
        
    } 
    float sum = 0; //symma ocenok
    for ( i = 0; i < size; i++) 
    {
        for (j = 0; j < 5; j++) 
          sum += student[i].ses[j]; 
          
            if(sum / 5 > 4.0) //yslovie horowista
            { 
                cout << student[i].name <<" "; 
                cout << student[i].group << endl; 
            }  
            else  
                count++;
 
            sum = 0;
        } 
    if(count == size) 
        cout << "Net takih! " << endl; 
 
    return 0;
}
Помогите,пожалуйста, с : записи должны быть упорядочены по возрастанию содержимого поля GROUP;
Да знаю тем тоны, но я так и не нашёл рабочую сортировку с её выводом на экран.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2013, 23:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Описать структуру с именем STUDENT (C++):

Описать структуру с именем STUDENT - C++
помогите,пожалуйста! написала прогу,она не работает(((( #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include&lt;conio.h&gt; ...

Описать структуру с именем STUDENT - C++
№1 Написать программу,которая считывает текст из файла и выводит на экран только предложения,содержащие введенное с клавиатуры слово. ...

Описать структуру с именем STUDENT - C++
Описать структуру с именем STUDENT, содержащую следующие поля:  фамилия и инициалы;  номер группы;  успеваемость (массив из пяти...

Описать структуру с именем Student - C++
Описать структуру с именем Student, содержащую следующие поля: имя, группа, успеваемость (массив из 4 элементов). Написать программу,...

Описать структуру с именем Student - C++
Описать структуру с именем Student, содержащую следующие поля: - фамилия и инициалы; - номер группы; - успеваемость (массив из пяти...

Описать структуру с именем STUDENT - C++
Описать структуру с именем STUDENT, содержащую следующие поля: фамилии и инициалы; • номе группы; • успеваемость (массив и пят...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
30.01.2013, 14:59 #16
Цитата Сообщение от akiam Посмотреть сообщение
Всё почти круто, но оценки выводятся в непонятном формате,
А если так?
C++
1
cout << student[i].ses[j] << " ";
1
akiam
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 39
30.01.2013, 15:04  [ТС] #17
спасибо огромное, а на будущее можете объяснить в чём ошибка была?)
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
30.01.2013, 15:07 #18
Цитата Сообщение от akiam Посмотреть сообщение
спасибо огромное, а на будущее можете объяснить в чём ошибка была?)
вы пробовали вывести массив, а надо было элементы массива в цикле.
1
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
30.01.2013, 15:12 #19
Суть в том, что ses является массивом, поэтому к нему тоже нужно применять индексацию.
C++
1
student[i].ses[j] // доступ к j-му элементу массива ses i-го элемента массива student
1
akiam
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 39
30.01.2013, 15:21  [ТС] #20
Конечный вариант, работает 100% на Visual studio 2006.
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
#include <iostream.h>
#include <string>
#include <fstream>
#include <conio.h>
using namespace std;
 
struct STUDENT 
{ 
    char name[50]; 
    int group; 
    
    float ses[5]; 
};
 
int main() 
{   
    const int size = 10; 
    STUDENT student[size];
    int i, j; 
    int n = 0; //s4et4ik stydentov
    int count = 0; 
 
    for ( i = 0; i < size; i++)  // vvod zna4enii
    {  
        //cout << "Vvedi familiu " << endl; 
        cin >> student[n].name; 
        //cout << "Nomer gryppi " << endl; 
        cin >> student[n].group; 
        //cout << "Vvedi 5 ocenok " << endl; 
        for (int i = 0; i < 5; i++) 
        cin >> student[n].ses[i]; 
        n++;
        
    } 
 for (i =0; i<n; i++)
        {
        for (int j =0; j<n; j++)
            {
            if (student[i].group<student[j].group) 
                {
                STUDENT c=student[i];
                student[i]=student[j];
                student[j]=c;
                }
           }
      }
    for (i=0; i<n; i++)
        {
        cout<<student[i].name<<" ";
        cout<<student[i].group<<" ";
        for (int j =0; j<5; j++) 
        cout << student[i].ses[j] << " ";
        cout<<endl;
        }
    float sum = 0; //symma ocenok
    for ( i = 0; i < size; i++) 
    {
        for (j = 0; j < 5; j++) 
          sum += student[i].ses[j]; 
          
            if(sum / 5 > 4.0) //yslovie horowista
            { 
                cout << student[i].name <<" "; 
                cout << student[i].group << endl; 
            } 
           else  
                count++;
 
            sum = 0;
        }  
    
    if(count ==size) 
        cout << "No " << endl; 
 getch();
    return 0;
}
Добавлено через 12 секунд
Всем спасибо.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
30.01.2013, 15:33 #21
C++
1
2
3
4
5
6
7
8
9
10
11
12
for ( i = 0; i < size; i++)  // vvod zna4enii
    {  
        //cout << "Vvedi familiu " << endl; 
        cin >> student[n].name; 
        //cout << "Nomer gryppi " << endl; 
        cin >> student[n].group; 
        //cout << "Vvedi 5 ocenok " << endl; 
        for (int i = 0; i < 5; i++) 
        cin >> student[n].ses[i]; 
        n++;
        
    }
n тут лишняя, хватает параметра цикла в качестве индекса. И нехорошо одинаково называть локальные переменные.
C++
1
2
3
4
5
6
7
8
9
10
for ( i = 0; i < size; i++)  // vvod zna4enii
    {  
        //cout << "Vvedi familiu " << endl; 
        cin >> student[i].name; 
        //cout << "Nomer gryppi " << endl; 
        cin >> student[i].group; 
        //cout << "Vvedi 5 ocenok " << endl; 
        for (int j = 0; j < 5; j++) 
        cin >> student[i].ses[j];       
    }
0
akiam
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 39
30.01.2013, 15:54  [ТС] #22
убираю n++ , выскакивает, что нет студентов
добавляю n++ всё норм
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
30.01.2013, 15:58 #23
akiam, сейчас еще раз посмотрел. Да, n у вас завязан с будущим алгоритмом программы, его действительно убирать не нужно, но вот название параметра вложенного цикла поменяйте на j.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2013, 15:58
Привет! Вот еще темы с ответами:

Описать структуру с именем STUDENT - C++
Помогите пожалуйста написать программу на C++ для Visual Studio. Описать структуру с именем STUDENT, содержащую следующие поля: ...

Описать структуру с именем STUDENT - C++
Пожалуйста помогите! Описать структуру с именем STUDENT, содержащую следующие поля: • NAME - фамилия и инициалы; • GROUP - номер...

Описать структуру с именем Student - C++
Вот задание . Описать структуру с именем Student, содержащую следующие поля: name – имя, group – группа, marks – успеваемость (массив из 4...

Описать структуру с именем STUDENT - C++
Описать структуру с именем STUDENT, содержащую следующие поля: -фамилия и инициалы;-номер группы;-успеваемость (массив из пяти...


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

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

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