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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.78
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
27.04.2012, 22:44     Описать структуру с именем STUDENT #1
Всем привет) Не могу решить задачу.
Описать структуру с именем STUDENT, содержащую следующие поля:
• фамилия и инициалы;
• номер группы;
• успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT;
• упорядочить записи по возрастанию номера группы;
• вывод на дисплей фамилий и номеров групп для всех студентов, включённых в массив, если средний бал студента больше 4.0; если таких студентов нет, то вывести соответствующее сообщение.
Я не могу перевести массив успеваемости в Int, чтобы посчитать средний балл.
Вот что у меня есть.
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
// andrei3.cpp : Defines the entry point for the console application.
//
// 2kontrol.cpp : Defines the entry point for the console application.
//
// 2 контрольная 2 семестра.
#include "stdafx.h"
#include <fstream>
#include <string>
#include <stdlib.h>
#include <iostream>
using namespace std;
 
const int l_name = 15, l_ysp=5;
struct Student
{
        int num;
        char name[l_name];
        char ysp[l_ysp];
        int summ[5];
};
void selection_sort(Student *tr, const int sz);
 
int _tmain(int argc, _TCHAR* argv[])
 
{
    setlocale (LC_ALL, "Rus");
   // const int l_name = 9;  
    const int l_Student=100;
    Student dbase[l_Student];    
    int sr;
    //int summ=0;
    
    fstream infile;
    infile.open("dbase.txt", ios::in);
    if (!infile.is_open())
    {
        cout << "Error opening file\n";
        return 0;
    }
 
    int cnt = 0;
    while(!infile.eof())
    {
        infile >> dbase[cnt].name
               >> dbase[cnt].num
               >> dbase[cnt].ysp;
        ++cnt;
    };
    //selection_sort(dbase, cnt);       
    
    
 
    for (int i = 0; i < cnt; i++)
    {
        for (int k=0; k<l_ysp; k++)
        {
    //      dbase[k].summ=dbase[k].summ+dbase[k].ysp;
            
        }
    //  cout <<dbase[0].summ<<endl;        
    }
    
/*
    while (true) 
    {
        cout << "Введите средний балл студента или 0:"; cin >>sr;
        if (sr==0) return 0;
        bool not_found = true;
        for (int i = 0; i < cnt; i++)
        {
            if ( dbase[i].ysp>4)
            {               
                    cout << dbase[i].name <<' '<< dbase[i].num << ' ' << dbase[i].ysp << endl;
                    not_found = false;
                
            }
        }
 
    
    }
    */
    return 0;
}
 
/*
void selection_sort(Student *tr,const int sz)
{
    for (int i = 0; i < sz; ++i)
    {
        int minimum = i;
        for (int j = i + 1; j < sz; ++j)
        {
            if (strcmp(tr[j].num,tr[minimum].num) < 0)
            {
                Student temp = tr[minimum];
                tr[minimum] = tr[j];
                tr[j] = temp;
            }
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2012, 22:44     Описать структуру с именем STUDENT
Посмотрите здесь:

C++ описать структуру с именем STUDENT
Описать структуру с именем STUDENT C++
C++ описать структуру с именем STUDENT
Описать структуру с именем STUDENT C++
C++ Описать структуру с именем Student
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
07.05.2012, 18:57  [ТС]     Описать структуру с именем STUDENT #21
MrCold, и где же она тут работает? 22, 2 ,2 ,22?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
07.05.2012, 19:00     Описать структуру с именем STUDENT #22
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Van111, поставил все равно ошибки
какие?
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
07.05.2012, 19:05     Описать структуру с именем STUDENT #23
22 и 2 это номера групп


заполните файл самостоятельно и все поймете

Добавлено через 2 минуты
Уже вам писал
Цитата Сообщение от MrCold Посмотреть сообщение
Файл должен содержать 10 строк :
* * * фамилия студента , *номер группы и 5 оценок :
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
07.05.2012, 19:09  [ТС]     Описать структуру с именем STUDENT #24
Van111, с memcpy
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
07.05.2012, 22:41     Описать структуру с именем STUDENT #25
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Van111, с memcpy
напишите саму ошибку ,что выдаёт компилятор(поконкретнее)?
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
07.05.2012, 22:53  [ТС]     Описать структуру с именем STUDENT #26
Van111, error C2664: 'memcpy' : cannot convert parameter 1 from 'trent' to 'void *'
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
08.05.2012, 18:48     Описать структуру с именем STUDENT #27
KOPC1886, блин корс вы же не новичёк, 200 сообщений на счету а с указателями запутались
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void selection_sort(trent *tr, const int sz)
{
trent tmp;
int is=1;
while(is)
{
is=0;
for (int i=1;i<=sz;i++)
{
        
        if (tr[i].num < tr[i-1].num)
        {
        memcpy(&tmp,&tr[i-1],sizeof(trent));
        memcpy(&tr[i-1],&tr[i],sizeof(trent));
        memcpy(&tr[i],&tmp,sizeof(trent));
        is=1;
        }
}
}    
   
    
}
я заметил у вас там структура trent поменялась на структуру student следственно в коде тоже надо все trent на student поменять
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
08.05.2012, 19:54  [ТС]     Описать структуру с именем STUDENT #28
Van111, причем тут сообщения) А вот с указателями да..я не очень с ними.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
08.05.2012, 20:01     Описать структуру с именем STUDENT #29
Цитата Сообщение от KOPC1886 Посмотреть сообщение
причем тут сообщения)
ну раз 200 сообщений то значит что то кодете на форуме, значит опыт есть)
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
08.05.2012, 20:38  [ТС]     Описать структуру с именем STUDENT #30
Van111, чего то у меня после сортировки не всё выводится
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
09.05.2012, 09:36     Описать структуру с именем STUDENT #31
KOPC1886, выложите полный код
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
10.05.2012, 23:01  [ТС]     Описать структуру с именем STUDENT #32
Van111,
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
#include "stdafx.h"
#include <fstream>
#include <string>
#include "windows.h"
#include <stdlib.h>
#include <iostream>
using namespace std;
 
const int l_name = 25, l_ysp=5;
struct Student 
{
        int num;
        char name[l_name];
        char ysp[l_ysp];
        int summ[5];
};
void selection_sort( Student  *tr, const int sz);
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "Rus");
   // const int l_name = 9;  
    const int l_trent=100;
    Student dbase[l_trent];    
    
    float sr;
    
    int ser=0;
    fstream infile;
    infile.open("dbase4.txt", ios::in);
    if (!infile.is_open())
    {
        cout << "Error opening file\n";
        return 0;
    }
 
    int cnt = 0;
    while(!infile.eof())
    {
        infile >> dbase[cnt].name
               >> dbase[cnt].num
               >> dbase[cnt].ysp;
        ++cnt;
    };
    
    const int size=100;
    float summ[size];
    
    for (int i = 0; i < cnt; i++)
    {
        for (int k=0; k<l_ysp;k++)
        {
      
            ser=ser+dbase[i].ysp[k]-'0';    
        }
        
        summ[i]=ser/l_ysp;
        
        ser=0;
        
    }
    //selection_sort(dbase, cnt);
        
    while (true) 
    {
        cout << "Введите средний балл студента или 0:"; cin >>sr;
        if (sr==0) return 0;
        bool not_found = true;
        for (int i = 0; i < cnt; i++)
        {
            if (summ[i]>sr)
            {               
                    cout << dbase[i].name <<' '<< dbase[i].num << ' ' << dbase[i].ysp << endl;
                    not_found = false;
                
            }
        }    
    }
    
    
    return 0;
}
 
void selection_sort( Student  *tr, const int sz)
{
 Student tmp;
int is=1;
while(is)
{
is=0;
for (int i=1;i<=sz;i++)
{
        
        if (tr[i].num < tr[i-1].num)
        {
        memcpy(&tmp,&tr[i-1],sizeof( Student ));
        memcpy(&tr[i-1],&tr[i],sizeof( Student ));
        memcpy(&tr[i],&tmp,sizeof( Student ));
        is=1;
        }
}
}    
   
    
}
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
11.05.2012, 16:48     Описать структуру с именем STUDENT #33
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
 
#include <fstream>
#include <string>
#include "windows.h"
#include <stdlib.h>
#include <iostream>
using namespace std;
 
const int l_name = 25, l_ysp=5;
struct Student 
{
        int num;
        char name[l_name];
        char ysp[l_ysp];
        int summ[5];
};
void selection_sort( Student  *tr, const int sz);
 
int main(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "Rus");
   // const int l_name = 9;  
    const int l_trent=100;
    Student dbase[l_trent];    
    
    float sr;
    
    int ser=0;
    fstream infile;
    infile.open("dbase4.txt", ios::in);
    if (!infile.is_open())
    {
        cout << "Error opening file\n";
        return 0;
    }
 
    int cnt = 0;
    while(!infile.eof())
    {
        infile >> dbase[cnt].name
               >> dbase[cnt].num
               >> dbase[cnt].ysp;
        ++cnt;
    };
    
    const int size=100;
    float summ[size];
    
    for (int i = 0; i < cnt; i++)
    {
        for (int k=0; k<l_ysp;k++)
        {
      
            ser=ser+dbase[i].ysp[k]-'0';    
        }
        
        summ[i]=ser/l_ysp;
        
        ser=0;
        
    }
    selection_sort(dbase, cnt-1);//тут у вас не дочёт смотрите на минус один, там его не было
        
    while (true) 
    {
        cout << "Ââåäèòå ñðåäГ*ГЁГ© ГЎГ*ëë ñòóäåГ*ГІГ* èëè 0:"; cin >>sr;
        if (sr==0) return 0;
        bool not_found = true;
        for (int i = 0; i < cnt; i++)
        {
            if (summ[i]>sr)
            {               
                    cout << dbase[i].name <<' '<< dbase[i].num << ' ' << dbase[i].ysp << endl;
                    not_found = false;
                
            }
        }    
    }
    
    
    return 0;
}
 
void selection_sort( Student  *tr, const int sz)
{
 Student tmp;
int is=1;
while(is)
{
is=0;
for (int i=1;i<=sz;i++)
{
        
        if (tr[i].num < tr[i-1].num)
        {
        memcpy(&tmp,&tr[i-1],sizeof( Student ));
        memcpy(&tr[i-1],&tr[i],sizeof( Student ));
        memcpy(&tr[i],&tmp,sizeof( Student ));
        is=1;
        }
}
}    
   
    
}
вот файл dbase4.txt
qtyu 5 qut utyw 4 wtyu eut 3 eut
у меня всё правильно рассортировалось
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
11.05.2012, 19:49  [ТС]     Описать структуру с именем STUDENT #34
у меня в файле вот как записано -

Sinkov 45 55553
Petrov 32 54324
ivanov 67 54344

Добавлено через 15 секунд
последний почему то не выводит вообще
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
11.05.2012, 20:54     Описать структуру с именем STUDENT #35
Цитата Сообщение от Van111 Посмотреть сообщение
C++
1
2
3
4
5
6
7
while(!infile.eof())
    {
        infile >> dbase[cnt].name
               >> dbase[cnt].num
               >> dbase[cnt].ysp;
        ++cnt;
    };
разберитесь с этим - у вас должна быть записано - строка число строка
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
11.05.2012, 21:32  [ТС]     Описать структуру с именем STUDENT #36
Van111, а что с этим не так?
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
11.05.2012, 21:55     Описать структуру с именем STUDENT #37
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Van111, а что с этим не так
55553 - это не строка для infile
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
11.05.2012, 22:02  [ТС]     Описать структуру с именем STUDENT #38
почему? а как мне тогда оценки то считывать? и потом средний бал вычислять?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2012, 17:50     Описать структуру с именем STUDENT
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
12.05.2012, 17:50     Описать структуру с именем STUDENT #39
Цитата Сообщение от KOPC1886 Посмотреть сообщение
почему? а как мне тогда оценки то считывать? и потом средний бал вычислять?
считай как число переведи в строку(itoa()) строка называется stroka[6]
C++
1
2
3
4
5
6
7
char buf[2]=" ";
int chislo[5]
for(int i=0;i<5;i++)
{
buf2[0]=stroka[i];
chislo[i]=atoi(buf);
}
в массиве chislo содержатся пять оценок
Yandex
Объявления
12.05.2012, 17:50     Описать структуру с именем STUDENT
Ответ Создать тему

Метки
student, student c++, описать структуру, описать структуру c++, описать структуру student c++, описать структуру student, описать структуру с именем student, структура student, структура student c++, структуры данных, структуры данных c++
Опции темы

Текущее время: 17:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru