Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 30.10.2016
Сообщений: 17
1

Класс паспорт и его наследование

05.06.2017, 12:45. Просмотров 1709. Ответов 5
Метки нет (Все метки)


Помогите пожалуйста с таким заданием:

Задание 1. Создайте класс «Паспорт».
- Данные класса - серия, номер паспорта, когда и кем выдан. Создать конструктор произвольных паспортных данных, конструктор по умолчанию и копирования. Определите методы для вывода данных паспорта как всех вместе так и по частям.

Задание 2. Создайте производный класс «Паспортный стол», в котором свяжите паспортные данные с ФИО человека, дате рождения (день, месяц, год) и адресом прописки. Организуйте поиск данных гражданина по фамилии, изменение фамилии, вывод паспортных данных, отсортированных по фамилии, поиск данных о людях, которые имеют одинаковое место прописки.
Я не могу понять как создать этот класс. вот моя попытка:

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
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
using namespace std;
 
class passport {
    protected:
    string series;
    int number;
    string issued;
    
    public:
 
//-------the constructor of the arbitrary data-------
    
    
//-------the default constructor-------
    
        passport () {
            series = "default"; 
            number = 0; 
            issued = "default";
        }
    
//------the copy constructor-------
    
        passport (passport &P) {
            series = P.series;
            number = P.number;
            issued = P.issued;
        }
 
//------- FUNCTIONS FOR OUTPUTING OF DATA-------
        void get_pass (passport P) {
            cout << "The passport`s series: " << P.series << endl;
            cout << "The passport`s number: " << P.number << endl;
            cout << "The passport was issued: " << P.issued << endl;
        }
    
        string get_series () {
            return series;
        }
    
        int get_number() {
            return number;
        }
    
        string get_issued () {
            return issued;
        }
    
    
};
 
// +++++++===THE NEW CLASS===+++++++    
 
class passport_office : public passport {
    
    public:
    string fName, lName, adress;
    int dd, mm, yy;
    
    
//-------constructor for copying of data-------
 
        passport_office (int dd1, int mm1, int yy1, string fName1, string lName1) {
            dd=dd1;
            mm = mm1;
            yy = yy1;
            fName = fName1;
            lName = lName1;
        }
        
        change_lName () {
            cout << "Enter the new last name: ";
            cin >> lName;
        }
        
        get_poffice () {
            cout << series;
            cout << "Date of birdth: " << dd << "/" << mm << "/" << yy;
            
        }
};
    
    
int main () {
    
    passport_office A (01, 01, 2000, "fname" , "sname");
    
    A.get_pass (A);
    cout << endl<< A.dd;
    
 
 
    return 0;
}
Как это можно реализовать корректно сохранив все принципы ООП ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2017, 12:45
Ответы с готовыми решениями:

Класс Паспорт
Помогите новичку в программирование подогнать программу под требования,выручите пожалуйста вот...

Наследование. Класс Basic и его наследники Virus и AntiV
Доброго времени суток! Поясните пожалуйста как правильно прописать данное наследование: имеется...

Наследование: реализовать иерархию классов (класс String, его потомки - SymbString и BinStryng)
Написать программу, демонстрирующую работу с объектами двух типов: Т1 и Т2, для чего создать...

Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине Украины
Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине...

5
281 / 235 / 114
Регистрация: 07.09.2016
Сообщений: 587
05.06.2017, 13:27 2
какая тупость в задании. надо же додуматься паспортный стол от паспорта наследовать.
1
Форумчанин
Эксперт CЭксперт С++
8164 / 5012 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
05.06.2017, 14:11 3
Цитата Сообщение от vortex_ Посмотреть сообщение
Я не могу понять как создать этот класс.
Я тоже. При наследовании, производный класс получает все члены и методы базового класса. Получается, паспортный стол имеет "серию, номер паспорта, когда и кем выдан". Что является абсурдом.
Максимум что можно сделать с этими классами - связать их по свойству "когда и кем выдан" или же "коду подразделения". Но никак не наследовать.
0
0 / 0 / 0
Регистрация: 30.10.2016
Сообщений: 17
05.06.2017, 14:27  [ТС] 4
Цитата Сообщение от DU3 Посмотреть сообщение
какая тупость в задании. надо же додуматься паспортный стол от паспорта наследовать.
не я создавал задание

Добавлено через 3 минуты
Цитата Сообщение от MrGluck Посмотреть сообщение
Я тоже. При наследовании, производный класс получает все члены и методы базового класса. Получается, паспортный стол имеет "серию, номер паспорта, когда и кем выдан". Что является абсурдом.
Максимум что можно сделать с этими классами - связать их по свойству "когда и кем выдан" или же "коду подразделения". Но никак не наследовать.
Цитата Сообщение от MrGluck Посмотреть сообщение
Максимум что можно сделать с этими классами - связать их по свойству "когда и кем выдан" или же "коду подразделения".
а как это можно реализовать?
0
MrGluck
07.06.2017, 11:35
  #5
 Комментарий модератора 
vortex_, запрещено дублировать темы
0
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 10
07.06.2017, 12:18 6
C++
1
2
3
4
5
6
7
8
class CPassport
{
private:
int m_serial;
int m_number;
time_t m_issued;
std::string m_department;
};
C++
1
2
3
4
5
6
7
class CPerson
{
private:
std:string m_fullname;
std::string m_address;
time_t m_birthday;
};
C++
1
2
3
4
5
6
7
typedef std::pair<CPassport, CPerson> Somebody;
class CPassportOffice
{
private:
std::map<string, std::vector<&Somebody>> m_map;  // прописка -> массив людей
std::list<Somebody> m_list; // связанный список людей, отсортированный по фамилиям
};
Добавлено через 16 минут
Цитата Сообщение от Conan Посмотреть сообщение
std::map<string, std::vector<&Somebody>> m_map; // прописка -> массив людей
C++
1
std::map<std::string, std::vector<Somebody&>> m_map;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2017, 12:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Абстрактный класс, наследование, класс хранится в другом классе
Нужна помощь. Написать программу: 1 класс. Имеется абстрактный класс который описывает какую-то...

Наследование: базовый класс Квадрат, производный класс Пирамида
Помогите, пожалуйста!:cry: Добавлено через 6 минут Создать класс КВАДРАТ, член класса- длинна...

Наследование. Класс Круг и класс эллипс
Здравствуйте уважаемые программисты. Нужно исправить ошибки в программе. Честно я в этом ничего не...

Описать класс "геометрические фигуры", используя абстрактный класс и наследование
Всех приветствую! Вобщем трабла такая: надо написать класс геометрические фигуры, соответственно...


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

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

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