Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
dkg_C
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
1

Проверки данных на вводе и френд-функция

12.09.2013, 01:12. Просмотров 634. Ответов 18
Метки нет (Все метки)

Доброго времени суток!
Сразу к делу:
1. Фамилия студента должна содержать только буквы. Может кто знает какую проверку? А то и исключения перепробовал, но ничего не выходит почему-то...
2. Семестр студента должен содержать целочисленные значения >= 1.
3. Оценки студента должны содержать целочисленные значения от 0 до 10.
Это о проверках (код ниже, строки прокомментированы так же как идут здесь пункты).

Еще столкнулся с проблемой, что не могу никак вникнуть в friend-функции. Никак не могу получить доступ к данным класса. friend-функция exam (она закомментирована). Буду рад любой помощи!

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
#include <iostream> 
#include <string> 
#include <locale>
 
using namespace std;
 
class Stud { 
protected: 
    char *surname;
    int marks[4]; 
    int semester;
public: 
    Stud();
    void set(); 
    void get(); 
    Stud(const Stud &St);
    friend void exam (const Stud &St); // friend??
    ~Stud();
}; 
 
Stud::Stud() {
    surname = new char[20];
}
 
void Stud::set() {
    cout << "Фамилия студента ";
    cin >> surname; /////////////////////////////////// 1
    cout << "Семестр студента ";
    cin >> semester; ////////////////////////////////// 2
    for( int i = 0; i < 4; i ++) { //////////////////// 3
        cout << "Введите " << i + 1 << " оценку - ";
        cin >> marks[i];
    }
    cout << "=======ВВОД ЗАКОНЧЕН=======" << endl;
}
 
/*void exam(const Stud &St) { /////////////////////friend?
    cout << "Фамилия студента ";
    cin >> surname; 
    cout << "Семестр студента ";
    cin >> semester;
    for( int i = 0; i < 4; i ++) {
        cout << "Введите " << i + 1 << " оценку - ";
        cin >> marks[i];
    }
    cout << "=======ВВОД ЗАКОНЧЕН=======" << endl;
}*/
 
 
void Stud::get() { 
    cout << "Фамилия - " << surname << " " << endl; 
    cout << "Оценки:" << endl;
    for (int i = 0; i < 4; i++) 
        cout << "Оценка " << i + 1 << " равна " << marks[i] << endl;
    cout << "Семестр " << semester << endl;
    cout << "=====ВЫВОД ЗАКОНЧЕН========" << endl;
    }
 
Stud::Stud(const Stud &St) {
    for(int i = 0; i < 4;i++) marks[i] = St.marks[i];
    semester = St.semester;
    surname = new char[strlen(St.surname)+1];
    strcpy(surname, St.surname);
}
 
Stud::~Stud() { 
    delete []surname;
    surname = NULL;
}
 
int main() {
    setlocale(LC_ALL, "RUS");
    Stud FIRST_TRY;
    FIRST_TRY.set();
    FIRST_TRY.get();
    cout << "=====КОПИЯ СТУДЕНТА========" << endl;
    Stud SECOND_TRY(FIRST_TRY);
    SECOND_TRY.get();
    Stud STUDENTS_ARRAY[2];
    STUDENTS_ARRAY[0] = FIRST_TRY;
    STUDENTS_ARRAY[1] = SECOND_TRY;
    cout << "=====МАССИВ СТУДЕНТОВ======" << endl;
    for (int i = 0; i < 2; i++)
        STUDENTS_ARRAY[i].get();
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2013, 01:12
Ответы с готовыми решениями:

Условие для проверки на ошибку при вводе
Есть функция выбора: int start_menu() { system(&quot;cls&quot;); while(1)//Создание...

Шаблонный класс, не работает с френд функцией
Переделал программу под шаблонный класс, все методы работают справно когда...

Функция проверки пароля
Подскажите по поводу проверки пароля, при вводе пароль, не пароль все равно...

Функция двурегистровой проверки строки
Доброго времени суток! Прошу помощи в решении одной дилеммы. Сразу приношу...

Функция проверки двумерного массива C++
Здравствуйте! Мне нужна помощь вот в чем - мое полное задание это написать...

18
Olivеr
413 / 409 / 95
Регистрация: 06.10.2011
Сообщений: 832
12.09.2013, 01:31 2
C++
1
friend void exam (Stud &St);
C++
1
2
3
4
5
6
7
8
9
10
11
12
void exam(Stud &St) 
{
    cout << "Фамилия студента ";
    cin >> St.surname;
    cout << "Семестр студента ";
    cin >> St.semester;
    for( int i = 0; i < 4; i ++) {
        cout << "Введите " << i + 1 << " оценку - ";
        cin >> St.marks[i];
    }
    cout << "=======ВВОД ЗАКОНЧЕН=======" << endl;
}
1
dkg_C
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
12.09.2013, 01:43  [ТС] 3
Вопрос с френдами решен. Отредактировал код из ОП. Остались проверки...
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
#include <iostream> 
#include <string> 
#include <locale>
 
using namespace std;
 
class Stud { 
protected: 
    char *surname;
    int marks[4]; 
    int semester;
public: 
    Stud(); 
    void get(); 
    Stud(const Stud &St);
    friend void exam (Stud &St); 
    ~Stud();
}; 
 
Stud::Stud() {
    surname = new char[20];
}
 
void exam(Stud &St) { 
    cout << "Фамилия студента ";
    cin >> St.surname; ///////////////////////////////////////1
    cout << "Семестр студента ";
    cin >> St.semester; //////////////////////////////////////2
    for( int i = 0; i < 4; i ++) {
        cout << "Введите " << i + 1 << " оценку - ";
        cin >> St.marks[i]; /////////////////////////////////3
    }
    cout << "=======ВВОД ЗАКОНЧЕН=======" << endl;
}
 
void Stud::get() { 
    cout << "Фамилия - " << surname << " " << endl; 
    cout << "Оценки:" << endl;
    for (int i = 0; i < 4; i++) 
        cout << "Оценка " << i + 1 << " равна " << marks[i] << endl;
    cout << "Семестр " << semester << endl;
    cout << "=====ВЫВОД ЗАКОНЧЕН========" << endl;
    }
 
Stud::Stud(const Stud &St) {
    for(int i = 0; i < 4;i++) marks[i] = St.marks[i];
    semester = St.semester;
    surname = new char[strlen(St.surname)+1];
    strcpy(surname, St.surname);
}
 
Stud::~Stud() { 
    delete []surname;
    surname = NULL;
}
 
int main() {
    setlocale(LC_ALL, "RUS");
    Stud FIRST_TRY;
    exam(FIRST_TRY);
    FIRST_TRY.get();
    cout << "=====КОПИЯ СТУДЕНТА========" << endl;
    Stud SECOND_TRY(FIRST_TRY);
    SECOND_TRY.get();
    Stud STUDENTS_ARRAY[2];
    STUDENTS_ARRAY[0] = FIRST_TRY;
    STUDENTS_ARRAY[1] = SECOND_TRY;
    cout << "=====МАССИВ СТУДЕНТОВ======" << endl;
    for (int i = 0; i < 2; i++)
        STUDENTS_ARRAY[i].get();
    system("pause");
    return 0;
}
0
Olivеr
413 / 409 / 95
Регистрация: 06.10.2011
Сообщений: 832
12.09.2013, 01:43 4
Цитата Сообщение от dkg_C Посмотреть сообщение
1. Фамилия студента должна содержать только буквы. Может кто знает какую проверку? А то и исключения перепробовал, но ничего не выходит почему-то...
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
#include <iostream>
#include <string>
#include <exception>
#include <algorithm>
#include <functional>
 
std::string f()
{
    std::string name;
    std::cin >> name;
    if ( std::any_of( std::begin(name), std::end(name), std::not1(std::ref(::isalpha)) ) )
        throw std::runtime_error("Names can only contain letters");
    return name;
}
 
int main()
{
    std::string name;
    try {
        name = f();
        std::cout << "Your name - " << name;
    } catch (const std::exception &e) {
        std::cout << e.what();
    }
    return 0;
}
1
dkg_C
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
12.09.2013, 01:52  [ТС] 5
Благодарю, но как мне "присобачить" в exam это? Т.е. я понимаю как, но как сделать с St.surname?
0
Olivеr
413 / 409 / 95
Регистрация: 06.10.2011
Сообщений: 832
12.09.2013, 02:09 6
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
#include <iostream>
#include <string>
#include <exception>
#include <algorithm>
#include <functional>
 
void exam()
{
    std::string surname;
    std::cout << "Фамилия студента ";
    std::cin >> surname;
    if ( std::any_of( std::begin(surname), std::end(surname), std::not1(std::cref(::isalpha)) ) )
        throw std::runtime_error("Names can only contain letters");
 
    const uint32_t min_s = 1, max_s = 20;
    uint32_t semester = min_s;
    do {
        std::cout << "Семестр студента ";
        std::cin.clear();
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    } while ( !(std::cin >> semester) || semester < min_s || semester > max_s );
 
    const uint32_t min_m = 0, max_m = 10;
    uint32_t marks[4];
    std::fill_n(marks, 4, min_m);
 
    for (uint32_t i = 0; i < 4u; ++i) {
        do {
            std::cout << "Введите " << i + 1 << " оценку - ";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        } while ( !(std::cin >> marks[i]) || marks[i] < min_m || marks[i] > max_m );
    }
}
 
int main()
{
    //Yivo::setlocale();
    exam();
    return 0;
}
1
dkg_C
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
12.09.2013, 11:59  [ТС] 7
При вставке в основной код выдает ошибки. И если в main() в exam убрать exam(FIRST_TRY) (то что в скобках), то не работает. Если же просто вызывать функцию работает, но не с объектами класса. Поэтому она ничего и не забивает в них, выдавая "пустые" данные.
C++
1
2
3
4
5
6
s.cpp(72): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
see declaration of 'strcpy'
ManifestResourceCompile:
 All outputs are up-to-date.
s.obj : error LNK2019: unresolved external symbol "void __cdecl exam(class Stud &)" (?exam@@YAXAAVStud@@@Z) referenced in function _main
 fatal error LNK1120: 1 unresolved externals
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
#include <iostream> 
#include <string> 
#include <locale>
#include <exception>
#include <algorithm>
#include <functional>
#include <cstdint>
 
using namespace std;
 
class Stud { 
protected: 
    char *surname;
    int marks[4]; 
    int semester;
public: 
    Stud(); 
    void get(); 
    Stud(const Stud &St);
    friend void exam (Stud &St); 
    ~Stud();
}; 
 
Stud::Stud() {
    surname = new char[20];
}
 
void exam()
{
    std::string surname;
    std::cout << "Фамилия студента ";
    std::cin >> surname;
    if ( std::any_of( std::begin(surname), std::end(surname), std::not1(std::cref(::isalpha)) ) )
        throw std::runtime_error("Names can only contain letters");
 
    const uint32_t min_s = 1, max_s = 20;
    uint32_t semester = min_s;
    do {
        std::cout << "Семестр студента ";
        std::cin.clear();
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    } while ( !(std::cin >> semester) || semester < min_s || semester > max_s );
 
    const uint32_t min_m = 0, max_m = 10;
    uint32_t marks[4];
    std::fill_n(marks, 4, min_m);
 
    for (uint32_t i = 0; i < 4u; ++i) {
        do {
            std::cout << "Введите " << i + 1 << " оценку - ";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        } while ( !(std::cin >> marks[i]) || marks[i] < min_m || marks[i] > max_m );
    }
    cout << "=======ВВОД ЗАКОНЧЕН=======" << endl;
}
    
 
void Stud::get() { 
    cout << "Фамилия - " << surname << " " << endl; 
    cout << "Оценки:" << endl;
    for (int i = 0; i < 4; i++) 
        cout << "Оценка " << i + 1 << " равна " << marks[i] << endl;
    cout << "Семестр " << semester << endl;
    cout << "=====ВЫВОД ЗАКОНЧЕН========" << endl;
    }
 
Stud::Stud(const Stud &St) {
    for(int i = 0; i < 4;i++) marks[i] = St.marks[i];
    semester = St.semester;
    surname = new char[strlen(St.surname)+1];
    strcpy(surname, St.surname);
}
 
Stud::~Stud() { 
    delete []surname;
    surname = NULL;
}
 
int main() {
    setlocale(LC_ALL, "RUS");
    Stud FIRST_TRY;
    exam(FIRST_TRY);
    FIRST_TRY.get();
    cout << "=====КОПИЯ СТУДЕНТА========" << endl;
    Stud SECOND_TRY(FIRST_TRY);
    SECOND_TRY.get();
    Stud STUDENTS_ARRAY[2];
    STUDENTS_ARRAY[0] = FIRST_TRY;
    STUDENTS_ARRAY[1] = SECOND_TRY;
    cout << "=====МАССИВ СТУДЕНТОВ======" << endl;
    for (int i = 0; i < 2; i++)
        STUDENTS_ARRAY[i].get();
    system("pause");
    return 0;
}
Добавлено через 3 часа 8 минут
UP!
0
Olivеr
413 / 409 / 95
Регистрация: 06.10.2011
Сообщений: 832
12.09.2013, 13:09 8
http://ideone.com/Kd5QUn

Добавлено через 23 секунды
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <string>
#include <locale>
#include <exception>
#include <algorithm>
#include <functional>
#include <cstdint>
 
class Stud
{
public:
    std::string surname;
    uint32_t semester;
    uint32_t marks[4];
 
    constexpr static uint32_t min_semester = 1;
    constexpr static uint32_t max_semester = 20;
    constexpr static uint32_t min_mark = 0;
    constexpr static uint32_t max_mark = 10;
 
public:
    Stud() noexcept
        : surname("<-unknown->"), semester(min_semester)
    {
        std::fill_n(marks, 4, Stud::min_mark);
    }
 
    void get() const;
    Stud(const Stud &St);
    void exam ();
    ~Stud() noexcept {}
};
 
void Stud::exam()
{
    std::cout << "Фамилия студента ";
    std::cin >> surname;
    if ( std::any_of( std::begin(surname), std::end(surname), std::not1(std::cref(::isalpha)) ) )
        throw std::runtime_error("Names can only contain letters");
 
    do {
        std::cout << "Семестр студента ";
        std::cin.clear();
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    } while ( !(std::cin >> semester) || semester < Stud::min_semester || semester > Stud::max_semester );
 
    for (uint32_t i = 0; i < 4u; ++i) {
        do {
            std::cout << "Введите " << i + 1 << " оценку - ";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        } while ( !(std::cin >> marks[i]) || marks[i] < Stud::min_mark || marks[i] > Stud::max_mark );
    }
    std::cout << "=======ВВОД ЗАКОНЧЕН=======" << std::endl;
}
 
 
void Stud::get() const
{
    std::cout << "Фамилия - " << surname << " " << std::endl;
    std::cout << "Оценки:" << std::endl;
    for (int i = 0; i < 4; i++)
        std::cout << "Оценка " << i + 1 << " равна " << marks[i] << std::endl;
    std::cout << "Семестр " << semester << std::endl;
    std::cout << "=====ВЫВОД ЗАКОНЧЕН========" << std::endl;
}
 
Stud::Stud(const Stud &St)
    : surname(St.surname), semester(St.semester)
{
    std::copy_n(St.marks, 4, marks);
}
 
int main() {
    setlocale(LC_ALL, "RUS");
    Stud FIRST_TRY;
    FIRST_TRY.exam();
    FIRST_TRY.get();
    std::cout << "=====КОПИЯ СТУДЕНТА========" << std::endl;
    Stud SECOND_TRY(FIRST_TRY);
    SECOND_TRY.get();
    Stud STUDENTS_ARRAY[2];
    STUDENTS_ARRAY[0] = FIRST_TRY;
    STUDENTS_ARRAY[1] = SECOND_TRY;
    std::cout << "=====МАССИВ СТУДЕНТОВ======" << std::endl;
    for (int i = 0; i < 2; i++)
        STUDENTS_ARRAY[i].get();
    system("pause");
    return 0;
}
1
dkg_C
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
12.09.2013, 13:29  [ТС] 9
Благодарю, но у меня не запускается :/
Подчеркивает npexcept, constexpr и кучу ошибок из-за этого лезет.
0
Olivеr
413 / 409 / 95
Регистрация: 06.10.2011
Сообщений: 832
12.09.2013, 13:34 10
dkg_C, уберите noexcept, статические члены объявите без constexpr, а их определение вынесите за класс.
0
gray_fox
What a waste!
1553 / 1258 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
12.09.2013, 13:43 11
dkg_C, http://ideone.com/2qNR05
1
dkg_C
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
13.09.2013, 02:03  [ТС] 12
gray_fox, понятно. Разобрался с этим. Но одно но: работают две проверки из 3
Не работает самая первая проверка. Вот ошибка:
C++
1
2
First-chance exception at 0x768bb727 in MyFirstPr.exe: Microsoft C++ exception: std::runtime_error at memory location 0x003ff584..
Unhandled exception at 0x768bb727 in MyFirstPr: Microsoft C++ exception: std::runtime_error at memory location 0x003ff584..
Добавлено через 3 часа 29 минут
UP!!!
0
Olivеr
413 / 409 / 95
Регистрация: 06.10.2011
Сообщений: 832
13.09.2013, 03:05 13
Цитата Сообщение от dkg_C Посмотреть сообщение
Не работает самая первая проверка. Вот ошибка:
что вводите в консоль?
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2013, 04:24 14
Цитата Сообщение от Olivеr Посмотреть сообщение
что вводите в консоль?
Наверное, русские символы. При знаковом char, isalpha() будет ошибку выдавать.
0
dkg_C
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
14.09.2013, 16:13  [ТС] 15
Английские символы вводятся в surname.
Ввожу цифру - выдает ошибку.alsav22 Olivеr
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
14.09.2013, 16:59 16
dkg_C, код показывайте.
0
dkg_C
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
14.09.2013, 18:29  [ТС] 17
alsav22, код выше был. gray_fox скидывал.
0
gray_fox
What a waste!
1553 / 1258 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
14.09.2013, 18:46 18
dkg_C, хз, видимо с кодировками заморочки.
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
14.09.2013, 19:43 19
А какая там защита ( при вводе фамилии)?

Добавлено через 18 минут
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
106
107
108
#include <iostream>
#include <string>
#include <stdexcept>
#include <algorithm>
#include <functional>
#include <limits>
#include <clocale>
#include <cctype>
#include <Windows.h>
 
bool f(char ch)
{
    if (isalpha(unsigned char(ch))) return true;
    return false;
}
 
class Stud
{
public:
    std::string surname;
    std::size_t semester;
    std::size_t marks[4];
 
    static std::size_t const min_semester = 1;
    static std::size_t const max_semester = 20;
    static std::size_t const min_mark = 0;
    static std::size_t const max_mark = 10;
 
public:
    Stud()
        : surname("<-unknown->"), semester(min_semester)
    {
        std::fill_n(marks, 4, Stud::min_mark);
    }
 
    void get() const;
    Stud(const Stud &St);
    void exam ();
    ~Stud() {}
};
 
void Stud::exam()
{
    do
    {
        std::cout << "Фамилия студента ";
        std::cin >> surname;
        if ( std::find_if( surname.begin(), surname.end(), std::not1(std::ptr_fun(f)) ) != surname.end())
            std::cout << "Names can only contain letters" << std::endl;
        else break;
    
    } while (true);
 
    do {
        std::cout << "Семестр студента ";
        std::cin.clear();
        while (std::cin.get() != '\n');
    } while ( !(std::cin >> semester) || semester < Stud::min_semester || semester > Stud::max_semester );
 
    for (std::size_t i = 0; i < 4u; ++i) {
        do {
            std::cout << "Введите " << i + 1 << " оценку - ";
            std::cin.clear();
           while (std::cin.get() != '\n');
        } while ( !(std::cin >> marks[i]) || marks[i] < Stud::min_mark || marks[i] > Stud::max_mark );
    }
    std::cout << "=======ВВОД ЗАКОНЧЕН=======" << std::endl;
}
 
 
void Stud::get() const
{
    std::cout << "Фамилия - " << surname << " " << std::endl;
    std::cout << "Оценки:" << std::endl;
    for (int i = 0; i < 4; i++)
        std::cout << "Оценка " << i + 1 << " равна " << marks[i] << std::endl;
    std::cout << "Семестр " << semester << std::endl;
    std::cout << "=====ВЫВОД ЗАКОНЧЕН========" << std::endl;
}
 
Stud::Stud(const Stud &St)
    : surname(St.surname), semester(St.semester)
{
    std::copy(St.marks, St.marks + 4, marks);
}
 
int main() 
{
    std::setlocale(0, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    Stud FIRST_TRY;
    FIRST_TRY.exam();
    FIRST_TRY.get();
    std::cout << "=====КОПИЯ СТУДЕНТА========" << std::endl;
    Stud SECOND_TRY(FIRST_TRY);
    SECOND_TRY.get();
    Stud STUDENTS_ARRAY[2];
    STUDENTS_ARRAY[0] = FIRST_TRY;
    STUDENTS_ARRAY[1] = SECOND_TRY;
    std::cout << "=====МАССИВ СТУДЕНТОВ======" << std::endl;
    for (int i = 0; i < 2; i++)
        STUDENTS_ARRAY[i].get();
    
    std::system("pause");
    return 0;
}
0
14.09.2013, 19:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2013, 19:43

Функция проверки признаков делимости
Известны следующие признаки делимости числа n: a) для делимости на 5...

Функция проверки даты на корректность
Проверить дату на корректность. Помогите, где ошибка? bool isrightdata(int...

Функция проверки делимости числа на 8
Для проверки делимости числа на 8, необходимо, чтобы сумма цифр числа делилась...


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

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

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