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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
Mezza Morta
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 53
11.12.2012, 12:34     Определить класс с именем STUDENT #1
1. Определить класс с именем STUDENT, содержащий следующие поля:
а) Фамилия и инициалы;
б) Номер группы;
в) Успеваемость (массив из пяти элементов).

Определить методы доступа к этим полям и перегруженные операции извлечения и вставки для объектов типа STUDENT.

2. Написать программу, выполняющую следующие действия:
а) ввод с клавиатуры данных в массив, состоящий из десяти объектов типа STUDENT: записи должны быть упорядочены по возрастанию среднего балла;
б) вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5;
в) если таких студентов нет, вывести соответствующее сообщение.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tinne
9 / 9 / 0
Регистрация: 13.10.2012
Сообщений: 279
11.12.2012, 12:40     Определить класс с именем STUDENT #2
C++
1
2
3
4
5
6
Class Student
{
char* name;
int group;
int num[5];
}
Класс Student
Mezza Morta
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 53
11.12.2012, 13:18  [ТС]     Определить класс с именем STUDENT #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void v()
    {
        cout << "Фамилия: ";
        cin >> name;
        cout << "Номер группы: ";
        cin >> group;
        cout << "Успеваемость: ";
        cin >> num;
        cout << "5: ";
        cin >> num[0];
        cout << "4: ";
        cin >> num[1];
        cout << "3: ";
        cin >> num[2];
        cout << "2: ";
        cin >> num[3];
        cout << "1: ";
        cin >> num[4];

дальше так?
Oleshko
 Аватар для Oleshko
21 / 21 / 1
Регистрация: 11.12.2012
Сообщений: 64
11.12.2012, 13:24     Определить класс с именем STUDENT #4
C++
1
2
3
4
5
6
7
8
9
cin >> num[0];
cout << "4: ";
cin >> num[1];
cout << "3: ";
cin >> num[2];
cout << "2: ";
cin >> num[3];
cout << "1: ";
cin >> num[4];
А если у вас будет не 5 елементов, а 50... Вы и их без цыкла будете вводить?
C++
1
2
3
4
5
6
unsigned short i = 0;
for (i = 0; i < n; ++i)
{
cout << i << ":";
cin >> num[i];
}
Mezza Morta
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 53
11.12.2012, 13:38  [ТС]     Определить класс с именем STUDENT #5
я просто не очень разбираюсь в этом, не моя специальность)
по подобию пытался сделать,не получается(
Oleshko
 Аватар для Oleshko
21 / 21 / 1
Регистрация: 11.12.2012
Сообщений: 64
11.12.2012, 18:55     Определить класс с именем STUDENT #6
*.h файл

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
#include "stdafx.h"
 
using namespace std;
 
typedef unsigned short US;
 
class Student
{
private:
 
    char* name;
    US group_number;
    US mark[5];
 
public:
 
    Student( void );
    ~Student( void );
    Student Input ( void );
    void Show ( void );
    double MiddleMark ( void );
    bool GoodMark ( void );
    void ShowNameGroup ( void );
 
};
*.cpp файл
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
#include "stdafx.h"
#include "Student.h"
#include <iostream>
 
Student::Student(void)
{
    name = new char[50];
    group_number = 0;
    size_t i = 0;
    for (i = 0; i <5; ++i)
    {
        mark[i] = 0;
    }
}
 
Student::~Student(void)
{
}
 
Student Student::Input (void)
{
    name = new char[50];
    cout << "Input name: ";
    cin >> name;
    cout << "Input group number: ";
    cin >> group_number;
    size_t i = 0;
    cout << "Input informafion about marks:\n";
    for (i = 0; i <5; ++i)
    {
        cout << i + 1 << " subject: ";
        cin >> mark[i];
    }
    return *this;
}
 
void Student::Show (void)
{
    cout << "Name: " << name << endl;
    cout << "Group number " << group_number << endl;
    size_t i = 0;
    cout << "Informafion about marks:\n";
    for (i = 0; i <5; ++i)
    {
        cout << i + 1 << "subject: " << mark[i] << endl;
    }
    cout << endl;
}
 
 
 
double Student::MiddleMark ( void)
{
    double temp = 0;
    size_t i = 0;
    for (i = 0; i < 5; ++i)
        temp += mark[i];
    return temp / 5;
}
 
bool Student::GoodMark ( void )
{
    size_t j = 0;
 
        for (j = 0; j < 5; ++j)
        {
            if ( mark[j] == 4 || mark[j] == 5)
            return true;
        }
        return false;
}
 
void Student::ShowNameGroup ( void )
{
    cout << "\nName: " << name << endl;
    cout << "Group number " << group_number << endl;
}
main
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
#include "stdafx.h"
#include "Student.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    Student *arrStud; //масив
 
    arrStud = (Student*) malloc (sizeof (Student) ); //выделяем память (1 елемент в масиве)
    US n = 0;
 
    cout << "Input count of student(s): ";
    cin >> n;
 
    arrStud = ( Student*) realloc (arrStud, (n)*sizeof ( Student ) );//расширяем к необходимым размерам
 
    register size_t i = 0, j = 0;
    for (i = 0; i < n; ++i)//читаем информацию
    {
        cout << "\n------ input information about " << i + 1 << " student: ------\n";
        arrStud[i].Input();
    }
    
    Student temp;
    //сортировка
    for (i = 0; i < n; ++i)
        for (j = 0; j < n-1; ++j)
        {
            if ( arrStud[j].MiddleMark() > arrStud[j+1].MiddleMark() )
            {
                temp = arrStud[j];
                arrStud[j] = arrStud[j+1];
                arrStud[j+1] = temp;
            }
        }
 
 
    cout <<"\n-----------Sort array--------\n";
    for (i = 0; i < n; ++i)
        arrStud[i].Show();
    cout << "-----------------------------\n";
 
    bool isGood = false;
    //ищим отличников :)
    cout << "Student(s) with minimum 1 good mark:\n";
    for (i = 0; i < n; ++i)
    {
        if ( arrStud[i].GoodMark() ) 
        {
            isGood = true;
            cout << "This student have a good mark: \n";
            arrStud[i].ShowNameGroup();
        }
    }
 
    if (!isGood) cout << "There is no student with good mark\n";
 
    system ("pause");
    return 0;
}
P.S. здесь нет проверок!!!
сами доделайте
Mezza Morta
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 53
11.12.2012, 23:18  [ТС]     Определить класс с именем STUDENT #7
каких проверок?

Добавлено через 17 минут
Цитата Сообщение от Oleshko Посмотреть сообщение
*.h файл

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
#include "stdafx.h"
 
using namespace std;
 
typedef unsigned short US;
 
class Student
{
private:
 
    char* name;
    US group_number;
    US mark[5];
 
public:
 
    Student( void );
    ~Student( void );
    Student Input ( void );
    void Show ( void );
    double MiddleMark ( void );
    bool GoodMark ( void );
    void ShowNameGroup ( void );
 
};
*.cpp файл
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
#include "stdafx.h"
#include "Student.h"
#include <iostream>
 
Student::Student(void)
{
    name = new char[50];
    group_number = 0;
    size_t i = 0;
    for (i = 0; i <5; ++i)
    {
        mark[i] = 0;
    }
}
 
Student::~Student(void)
{
}
 
Student Student::Input (void)
{
    name = new char[50];
    cout << "Input name: ";
    cin >> name;
    cout << "Input group number: ";
    cin >> group_number;
    size_t i = 0;
    cout << "Input informafion about marks:\n";
    for (i = 0; i <5; ++i)
    {
        cout << i + 1 << " subject: ";
        cin >> mark[i];
    }
    return *this;
}
 
void Student::Show (void)
{
    cout << "Name: " << name << endl;
    cout << "Group number " << group_number << endl;
    size_t i = 0;
    cout << "Informafion about marks:\n";
    for (i = 0; i <5; ++i)
    {
        cout << i + 1 << "subject: " << mark[i] << endl;
    }
    cout << endl;
}
 
 
 
double Student::MiddleMark ( void)
{
    double temp = 0;
    size_t i = 0;
    for (i = 0; i < 5; ++i)
        temp += mark[i];
    return temp / 5;
}
 
bool Student::GoodMark ( void )
{
    size_t j = 0;
 
        for (j = 0; j < 5; ++j)
        {
            if ( mark[j] == 4 || mark[j] == 5)
            return true;
        }
        return false;
}
 
void Student::ShowNameGroup ( void )
{
    cout << "\nName: " << name << endl;
    cout << "Group number " << group_number << endl;
}
main
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
#include "stdafx.h"
#include "Student.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    Student *arrStud; //масив
 
    arrStud = (Student*) malloc (sizeof (Student) ); //выделяем память (1 елемент в масиве)
    US n = 0;
 
    cout << "Input count of student(s): ";
    cin >> n;
 
    arrStud = ( Student*) realloc (arrStud, (n)*sizeof ( Student ) );//расширяем к необходимым размерам
 
    register size_t i = 0, j = 0;
    for (i = 0; i < n; ++i)//читаем информацию
    {
        cout << "\n------ input information about " << i + 1 << " student: ------\n";
        arrStud[i].Input();
    }
    
    Student temp;
    //сортировка
    for (i = 0; i < n; ++i)
        for (j = 0; j < n-1; ++j)
        {
            if ( arrStud[j].MiddleMark() > arrStud[j+1].MiddleMark() )
            {
                temp = arrStud[j];
                arrStud[j] = arrStud[j+1];
                arrStud[j+1] = temp;
            }
        }
 
 
    cout <<"\n-----------Sort array--------\n";
    for (i = 0; i < n; ++i)
        arrStud[i].Show();
    cout << "-----------------------------\n";
 
    bool isGood = false;
    //ищим отличников :)
    cout << "Student(s) with minimum 1 good mark:\n";
    for (i = 0; i < n; ++i)
    {
        if ( arrStud[i].GoodMark() ) 
        {
            isGood = true;
            cout << "This student have a good mark: \n";
            arrStud[i].ShowNameGroup();
        }
    }
 
    if (!isGood) cout << "There is no student with good mark\n";
 
    system ("pause");
    return 0;
}
P.S. здесь нет проверок!!!
сами доделайте

если бы я ещё знал как это все вбивать)) я с С++ первый раз сталкиваюсь)
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
11.12.2012, 23:22     Определить класс с именем STUDENT #8
В деструкторе нужно освобождать выделенную память
C++
1
2
3
4
Student::~Student()
{
     delete [] name;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 00:07     Определить класс с именем STUDENT
Еще ссылки по теме:

C++ Создать класс student, который использует файл student.txt
Определить класс с именем ZNAK C++
C++ Определить класс с именем STUDENT. Написать программу на C++

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

Или воспользуйтесь поиском по форуму:
Oleshko
 Аватар для Oleshko
21 / 21 / 1
Регистрация: 11.12.2012
Сообщений: 64
12.12.2012, 00:07     Определить класс с именем STUDENT #9
ну разные проверки на то, что вы вводите)
там можно вместо цифры ввечти строку и все полетит (например)
и да, я забыл освободить память (в мейне нужно масив удалить еще)

Добавлено через 15 секунд
ну разные проверки на то, что вы вводите)
там можно вместо цифры ввечти строку и все полетит (например)
и да, я забыл освободить память (в мейне нужно масив удалить еще)
Yandex
Объявления
12.12.2012, 00:07     Определить класс с именем STUDENT
Ответ Создать тему
Опции темы

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