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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
Mezza Morta
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 53
#1

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

11.12.2012, 12:34. Просмотров 2421. Ответов 8
Метки нет (Все метки)

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

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

2. Написать программу, выполняющую следующие действия:
а) ввод с клавиатуры данных в массив, состоящий из десяти объектов типа STUDENT: записи должны быть упорядочены по возрастанию среднего балла;
б) вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5;
в) если таких студентов нет, вывести соответствующее сообщение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 12:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить класс с именем STUDENT (C++):

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

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

Создайте класс с именем student /Классы - C++
Создайте класс с именем student, содержащий поля: фамилия и инициалы, номер группы, успеваемость (массив из пяти элементов). ...

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

Создать класс student, который использует файл student.txt - C++
Доброе время суток. Тащемта задача такова: Нужно создать класс student, который использует файл student.txt(содержит в себе список...

Определить класс с именем MARSH - C++
Вообще не имею представления, как даже начать делать данную задачу. Вчитывался в теорию по данной теме описывания классов, но все равно,...

8
tinne
9 / 9 / 0
Регистрация: 13.10.2012
Сообщений: 279
11.12.2012, 12:40 #2
C++
1
2
3
4
5
6
Class Student
{
char* name;
int group;
int num[5];
}
Класс Student
0
Mezza Morta
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 53
11.12.2012, 13:18  [ТС] #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];

дальше так?
0
Oleshko
21 / 21 / 1
Регистрация: 11.12.2012
Сообщений: 64
11.12.2012, 13:24 #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];
}
0
Mezza Morta
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 53
11.12.2012, 13:38  [ТС] #5
я просто не очень разбираюсь в этом, не моя специальность)
по подобию пытался сделать,не получается(
0
Oleshko
21 / 21 / 1
Регистрация: 11.12.2012
Сообщений: 64
11.12.2012, 18:55 #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. здесь нет проверок!!!
сами доделайте
0
Mezza Morta
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 53
11.12.2012, 23:18  [ТС] #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. здесь нет проверок!!!
сами доделайте

если бы я ещё знал как это все вбивать)) я с С++ первый раз сталкиваюсь)
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
11.12.2012, 23:22 #8
В деструкторе нужно освобождать выделенную память
C++
1
2
3
4
Student::~Student()
{
     delete [] name;
}
0
Oleshko
21 / 21 / 1
Регистрация: 11.12.2012
Сообщений: 64
12.12.2012, 00:07 #9
ну разные проверки на то, что вы вводите)
там можно вместо цифры ввечти строку и все полетит (например)
и да, я забыл освободить память (в мейне нужно масив удалить еще)

Добавлено через 15 секунд
ну разные проверки на то, что вы вводите)
там можно вместо цифры ввечти строку и все полетит (например)
и да, я забыл освободить память (в мейне нужно масив удалить еще)
0
12.12.2012, 00:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 00:07
Привет! Вот еще темы с ответами:

Определить класс с именем Aeroflot - C++
Задание: 1) Определить класс с именем AEROFLOT, содержащий следующие поля: а) Название пункта назначения рейса; б) номер рейса; в) тип...

Определить класс с именем ZNAK - C++
Само задание: 1. Определить класс с именем ZNAK, содержащий следующие поля: Фамилия, Имя. Знак Зодиака День рождения (массив из...

Определить класс с именем AEROFLOT - C++
1. Определить класс с именем AEROFLOT, содержащий следующие поля: О название пункта назначения рейса; О номер рейса; О тип самолета. ...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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