Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/41: Рейтинг темы: голосов - 41, средняя оценка - 4.90
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352

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

27.04.2012, 22:44. Показов 8103. Ответов 38

Студворк — интернет-сервис помощи студентам
Всем привет) Не могу решить задачу.
Описать структуру с именем 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;
            }
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.04.2012, 22:44
Ответы с готовыми решениями:

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

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

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

38
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
07.05.2012, 18:57  [ТС]
Студворк — интернет-сервис помощи студентам
MrCold, и где же она тут работает? 22, 2 ,2 ,22?
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
07.05.2012, 19:00
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Van111, поставил все равно ошибки
какие?
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
07.05.2012, 19:05
22 и 2 это номера групп


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

Добавлено через 2 минуты
Уже вам писал
Цитата Сообщение от MrCold Посмотреть сообщение
Файл должен содержать 10 строк :
* * * фамилия студента , *номер группы и 5 оценок :
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
07.05.2012, 19:09  [ТС]
Van111, с memcpy
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
07.05.2012, 22:41
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Van111, с memcpy
напишите саму ошибку ,что выдаёт компилятор(поконкретнее)?
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
07.05.2012, 22:53  [ТС]
Van111, error C2664: 'memcpy' : cannot convert parameter 1 from 'trent' to 'void *'
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
08.05.2012, 18:48
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 поменять
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
08.05.2012, 19:54  [ТС]
Van111, причем тут сообщения) А вот с указателями да..я не очень с ними.
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
08.05.2012, 20:01
Цитата Сообщение от KOPC1886 Посмотреть сообщение
причем тут сообщения)
ну раз 200 сообщений то значит что то кодете на форуме, значит опыт есть)
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
08.05.2012, 20:38  [ТС]
Van111, чего то у меня после сортировки не всё выводится
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
09.05.2012, 09:36
KOPC1886, выложите полный код
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
10.05.2012, 23:01  [ТС]
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;
        }
}
}    
   
    
}
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
11.05.2012, 16:48
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
у меня всё правильно рассортировалось
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
11.05.2012, 19:49  [ТС]
у меня в файле вот как записано -

Sinkov 45 55553
Petrov 32 54324
ivanov 67 54344

Добавлено через 15 секунд
последний почему то не выводит вообще
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
11.05.2012, 20:54
Цитата Сообщение от Van111 Посмотреть сообщение
C++
1
2
3
4
5
6
7
while(!infile.eof())
    {
        infile >> dbase[cnt].name
               >> dbase[cnt].num
               >> dbase[cnt].ysp;
        ++cnt;
    };
разберитесь с этим - у вас должна быть записано - строка число строка
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
11.05.2012, 21:32  [ТС]
Van111, а что с этим не так?
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
11.05.2012, 21:55
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Van111, а что с этим не так
55553 - это не строка для infile
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
11.05.2012, 22:02  [ТС]
почему? а как мне тогда оценки то считывать? и потом средний бал вычислять?
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
12.05.2012, 17:50
Цитата Сообщение от 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 содержатся пять оценок
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2012, 17:50
Помогаю со студенческими работами здесь

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

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

Описать структуру с именем student
Нужна помощь в решении задачи в Borland C, 16. Ввести структуру СТУДЕНТ с полями ФИО, ГОД РОЖДЕНИЯ, КОД ГРУППЫ. Написать и протестировать...

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

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


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru