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

Наследование - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа численного дифф-ия с использованием многочлена третьей степени. Работает, но выдает что-то странное http://www.cyberforum.ru/cpp-beginners/thread894139.html
Мне нужно вычислить дифференциал интерполяционного многочлена Лагранжа третьей степени, и подставить значения иксов/игриков и аргумента. http://i2.imageban.ru/out/2013/06/07/6a0cec65a97d02b6bcc7ca18977c42d2.png http://i2.imageban.ru/out/2013/06/07/5a8fa5813aa4d7c4b3aa68f39adc5b1b.png http://i2.imageban.ru/thumbs/2013.06.07/0fc3475b5041da27bfec3d0b1275c246.png...
C++ виртуальные функции интересует 2 вопроса:1)Какими элементами могут отличаться экземпляры одной виртуальной функции, находящиеся в разных производных классах.2)А в переопределенной функции внутри одного класса 1)я так думаю что кол-вом принимающих аргументов,или их типами 2)Вообще ничем так как прототип и и переопределение должны совпадать,Я ПРАВ? http://www.cyberforum.ru/cpp-beginners/thread894126.html
Зачем нужны многоуровневые указатели C++
вопрос в названии темы
C++ Кто умеет блок схемы рисовать?
Помогите пожалуйста с блок схемой надо определить симметричность матрицы относительно главной диагонали.
C++ Что означает этот код http://www.cyberforum.ru/cpp-beginners/thread894117.html
void inline static Compare(Shape const* const s1, Shape const* const s2), что здесь означает запись const* const
C++ Чтение из бинарного файла Всем приветы. Подскажите или помогите, пожалста. Есть вот такая штука: #include "stdafx.h" #include <iostream> #include <fstream> using namespace std; fstream writ; // чтение ofstream out; // запись подробнее

Показать сообщение отдельно
LordSilren
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 32
07.06.2013, 07:50     Наследование
Доброе утро всем.
Есть готовая рабочая программа
"Студент. Преподаватель. Человек"
нужно закоментить код, не могу разобраться в нем

Man.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
26
27
28
29
#ifndef MAN_H
#define MAN_H
 
#include<iostream>
#include <string.h>
using namespace std;
 
class Man
{
public:
    Man();
    Man(int _age, int _gender);
    Man(int _age, int _gender,char *_name); 
    Man(const Man &x);
    ~Man();
 
    friend istream& operator >> (istream& in, Man &x);
    friend ostream& operator << (ostream& out, Man &x);
 
    virtual void Show() = 0;
    virtual void Get();
 
public:
    char *name;
    int gender;
    int age;
};
 
#endif MAN_H


Man.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
78
79
80
81
#include "Man.h"
 
 
Man::Man() {name = new char[30];}
 
Man::Man(int _age, int _gender) // конструктор с параметрами
{
    age = _age;
    gender = _gender;
    name = new char[30];
}
 
Man::Man(int _age, int _gender,char *_name) // конструктор с параметрами
{
    age = _age;
    gender = _gender;
    name = new char[30];
    strcpy(name, _name);
}
 
Man::Man(const Man &x)// конструктор копирования
{
    age = x.age;
    gender = x.gender;
    name = new char[30];
    strcpy(name, x.name);
}
 
 
Man::~Man()
{
    delete name;
}
 
 
void Man:: Show()
{
    cout << "/////////////////////////\n" << endl;
    cout << "Возраст: " << age << endl;
    if(gender == 1) cout << "Пол: мужской" << endl;
    if(gender == 2) cout << "Пол: женский" << endl;
    cout << "Имя: " << name << endl;
    cout << "\n/////////////////////////" << endl;
}
 
void Man::Get()
{
    cout << "Введите возраст" << endl;
    cin >> age;
    
    while(true)
    {
        cout << "Выберите пол:\n" << endl;
        cout << "1: мужской" << endl << "2: женский" << endl;
        cin >> gender;
        if((gender != 1) && (gender != 2)) cout << "неверный ввод!" << endl;
        else break;
    }
 
    cout << "Введите имя" << endl;
    cin >> name;
}
 
istream& operator >> (istream& in, Man &x)
{
    cout << "Введите возраст" << endl;
    in >> x.age;
    
    while(true)
    {
        cout << "Выберите пол:\n" << endl;
        cout << "1: мужской" << endl << "2: женский" << endl;
        in >> x.gender;
        if((x.gender != 1) && (x.gender != 2)) cout << "неверный ввод!" << endl;
        else break;
    }
 
    cout << "Введите имя" << endl;
    in >> x.name;
    return in;
}


Student.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
26
#pragma once
#ifndef STUDENT_H
#define STUDENT_H
#include "man.h"
class Student :
    public Man
{
public:
    Student();
    Student(int _form, int _lvl);
    Student(int _form, int _lvl, char *_prof);
    ~Student(void);
 
    Student New_Prof();
    int End();
    void Get();
    void Show();
 
    friend istream& operator >> (istream &in, Student &x);
public: 
    int form;
    int lvl;
    char *prof;
};
 
#endif STODENT_H


Student.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
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include "Student.h"
 
Student::Student()
{
    prof = new char[20];
}
Student::Student(int _form, int _lvl)
{
    form = _form;
    lvl = _lvl;
    prof = new char[20];
}
 
Student::Student(int _form, int _lvl, char *_prof) 
{
    form = _form;
    lvl = _lvl;
    prof = new char[20];
    strcpy(prof, _prof);
}
 
Student Student::New_Prof ()
{
    delete [] prof;
    prof = new char [20];
    cin >> prof;
    return *this;
}
 
int Student:: End()
{
    int e;
    e = 4 - lvl;
    return e;
}
 
void Student:: Get()
{
    cout << "Введите возраст" << endl;
    cin >> age;
    
    while(true)
    {
        cout << "Выберите пол:\n" << endl;
        cout << "1: мужской" << endl << "2: женский" << endl;
        cin >> gender;
        if((gender != 1) && (gender != 2)) cout << "неверный ввод!" << endl;
        else break;
    }
 
    cout << "Введите имя" << endl;
    cin >> name;
 
    cout << "Введите специальность:" << endl;
    cin >> prof;
 
    while(true)
    {
        cout << "Выберите форму обучения:\n" << endl;
        cout << "1: очная" << endl << "2: заочная" << endl << "3: экстернат" << endl << "4: очно - заочная" << endl;
        cin >> form;
        if((form != 1) && (form != 2) && (form != 3) && (form != 4)) cout << "Неверный ввод!" << endl;
        else break;
    }
 
    cout << "Введите курс:" << endl;
    cin >> lvl;
}
 
istream& operator >> (istream &in, Student &x)
{
    cout << "Введите возраст" << endl;
    in >> x.age;
    
    while(true)
    {
        cout << "Выберите пол:\n" << endl;
        cout << "1: мужской" << endl << "2: женский" << endl;
        in >> x.gender;
        if((x.gender != 1) && (x.gender != 2)) cout << "неверный ввод!" << endl;
        else break;
    }
 
    cout << "Введите имя" << endl;
    in >> x.name;
 
    cout << "Введите специальность:" << endl;
    in >> x.prof;
 
    while(true)
    {
        cout << "Выберите форму обучения:\n" << endl;
        cout << "1: очная" << endl << "2: заочная" << endl << "3: экстернат" << endl << "4: очно - заочная" << endl;
        in >> x.form;
        if((x.form != 1) && (x.form != 2) && (x.form != 3) && (x.form != 4)) cout << "Неверный ввод!" << endl;
        else break;
    }
 
    cout << "Введите курс:" << endl;
    in >> x.lvl;
 
    
 
    return in;
}
 
void Student:: Show()
{
    cout << "/////////////////////////\n" << endl;
 
    cout << "Возраст: " << age << endl;
    if(gender == 1) cout << "Пол: мужской" << endl;
    if(gender == 2) cout << "Пол: женский" << endl;
    cout << "Имя: " << name << endl;
 
    cout << "Специальность: " << prof << endl;
    
    switch(form)
    {
        case 1:
            cout << "Очная форма обучения" << endl;
            break;
        
        case 2:
            cout << "Заочная форма обучения" << endl;
            break;
 
        case 3:
            cout << "Экстернат" << endl;
            break;
 
        case 4:
            cout << "Очно - заочная форма обучения" << endl;
            break;
    }
 
    cout << "Курс: " << lvl << endl;
 
    cout << "\n/////////////////////////" << endl;
}
 
Student::~Student(void)
{
}


Teacher.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
26
27
#pragma once
#ifndef TEACHER_H
#define TEACHER_H
#include "man.h"
 
class Teacher : public Man
{
public:
    Teacher(void);
    Teacher(float _pay);
    Teacher(float _pay, char *_post);
    ~Teacher(void);
 
    friend istream& operator >> (istream& in, Teacher &x);
 
    void Show();
    void Get();
 
    void New_Post();
    void New_Pay();
 
public:
    char *post;
    float pay;
};
 
#endif TEACHER_H


Teacher.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include "Teacher.h"
 
Teacher::Teacher()
{
    post = new char[20];
}
 
Teacher::Teacher(float _pay)
{
    pay = _pay;
    post = new char[20];
}
 
Teacher::Teacher(float _pay, char *_post)
{
    pay = _pay;
    post = new char[20];
    strcpy(post, _post);
}
 
void Teacher:: Show()
{
    cout << "/////////////////////////\n" << endl;
 
    cout << "Возраст: " << age << endl;
    //out << "Пол: " << x.gender << endl;
    if(gender == 1) cout << "Пол: мужской" << endl;
    if(gender == 2) cout << "Пол: женский" << endl;
    cout << "Имя: " << name << endl;
    cout << "Должность: " << post << endl;
    cout << "Зар. плата: " << pay << endl;
 
    cout << "\n/////////////////////////" << endl;
}
 
void Teacher::New_Post()
{
    delete [] post;
    post = new char[20];
    cin >> post;
}
 
void Teacher:: New_Pay()
{
    cin >> pay;
}
 
Teacher::~Teacher(void)
{
    delete [] post;
}
 
void Teacher::Get()
{
    cout << "Введите возраст" << endl;
    cin >> age;
    while(true)
    {
        cout << "Выберите пол:\n" << endl;
        cout << "1: мужской" << endl << "2: женский" << endl;
        cin >> gender;
        if((gender != 1) && (gender != 2)) cout << "НЕВЕРНЫЙ ВВОД!" << endl;
        else break;
    }
 
    cout << "Введите имя" << endl;
    cin >> name;
    cout << "Укажите должность преподавателя: " << endl;
    cin >> post;
    cout << "Зарплата" << endl;
    cin >> pay;
}
 
istream& operator >> (istream& in, Teacher &x)
{
    cout << "Введите возраст" << endl;
    in >> x.age;
    while(true)
    {
        cout << "Выберите пол:\n" << endl;
        cout << "1: мужской" << endl << "2: женский" << endl;
        in >> x.gender;
        if((x.gender != 1) && (x.gender != 2)) cout << "НЕВЕРНЫЙ ВВОД!" << endl;
        else break;
    }
 
    cout << "Введите имя" << endl;
    in >> x.name;
    cout << "Укажите должность преподавателя: " << endl;
    in >> x.post;
    cout << "Зарплата" << endl;
    in >> x.pay;
    return in;
}


Main.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <locale.h>
#include "Teacher.h"
#include "Man.h"
#include "Student.h"
int main()
{
    setlocale(LC_ALL, "Russian");
 
    Man *pmas[2]; int x, t, s;
    Teacher T; Student S;
    /*T.Get(); 
    T.Show();
    T.Show();
    /*pmas[0] = new Teacher(); 
    pmas[1] = new Student();
    pmas[0] ->Get();
    pmas[0] -> Show();
    pmas[1] ->Get();
    pmas[1] -> Show();*/
 
    while(1)
    {
        cout << "1: Преподаватель\n" << "2: Студент\n" << "3: Выход\n"; 
        cin >> x;
        switch(x)
        {
            case 1:
                T.Get();
                T.Show();
                while(1)
                {
                    cout << "1: Сменить должность\n" << "2: Сменить зарплату\n" << "3: Выход\n";
                    cin >> t;
                    switch(t)
                    {
                    case 1:
                        cout <<"Введите новую должность";
                        T.New_Post();
                        T.Show();
                        break;
                    case 2:
                        cout <<"Введите новую зарплату";
                        T.New_Pay();
                        T.Show();
                        break;
                    case 3:
                        break;
                    default:
                        cout << "неверный ввод\n";
                    }
                    if(t == 3) break;
                }
                break;
            
            case 2:
                S.Get();
                S.Show();
                while(1)
                {
                    cout << "1: Сменить специальность\n" << "2: Сколько еще учиться\n" << "3: Выход\n";
                    cin >> s;
                    switch(s)
                    {
                    case 1:
                        cout <<"Введите новую специальность\n";
                        S.New_Prof();
                        S.Show();
                        break;
                    case 2: 
                        int z;
                        z = S.End();
                        cout << "Осталось единиц времени: " << z << endl;
                        break;
                    case 3:
                        break;
                        //exit(0);
                    default:
                        cout << "неверный ввод\n";
                    }
                    if(s == 3) break;
                }
                break;
 
            case 3:
                exit(0);
            
            default:
                cout<<"Неверный ввод\n"; 
            break;
        }
    }
    return 0;
}


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