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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.90
_ALLEN_
3 / 3 / 0
Регистрация: 19.02.2010
Сообщений: 30
#1

Реализовать пользовательские типы: класс Person и класс String - C++

20.04.2010, 16:22. Просмотров 5706. Ответов 3
Метки нет (Все метки)

1)Разработать класс Person, который содержит соответствующие члены для хранения:
имени,
возраста,
пола и
телефонного номера.
Напишите функции-члены, которые смогут изменять эти члены данных индивидуально. Напишите функцию-член Person::Print(), которая выводит отформатированные данные о человеке.
2)Разработать класс String, который в дальнейшем будет использоваться для работы со строками. Класс должен содержать:
конструктор по умолчанию, позволяющий создать строку длиной 80 символов;
конструктор, позволяющий создавать строку произвольного размера;
конструктор, который создаёт строку и инициализирует её строкой, полученной от пользователя.
Класс должен содержать методы для ввода строк с клавиатуры и вывода строк на экран.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2010, 16:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать пользовательские типы: класс Person и класс String (C++):

Реализовать класс Person - C++
Описания членов - данных пользовательских классов. ПЕРСОНА имя – char* возраст – int пол – int(bool)

Реализовать класс Person (персона) - C++
в общем, утопающий студент просит о помощи, потому как сам уже себя не успеет спасти. нужно к понедельнику сдать 5 лабораторных на с++ ...

Класс: создать класс "Person" - C++
1,2 #include <iostream> #include <string> class Person { Person() : name("Alex"), address("Texas") {} private: ...

Создайте класс person. Создайте тип people, описывающий массив элементов типа person. - C++
Создайте класс person. У него должны быть поля: name: string; sex: ("муж", "жен"); height: 100..220. Кроме того, создайте тип people,...

Реализовать класс String - C++
Здравствуйте! Что-то не задается у меня ООП. Поэтому прошу помочь с мелкой задачкой. Реализовать класс String который содержит: ...

Реализовать класс "Person" - C++
задача: Реализовать класс Person содержащий следующие поля: Фамилия; Имя: Отчество; Кол-во полных лет; Адрес проживания; Email;...

3
Aye Aye
369 / 283 / 36
Регистрация: 17.12.2009
Сообщений: 567
21.04.2010, 17:31 #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
class Person{
   private:
   string name;
   size_t age;
   bool sex;
   string phone_number;
   public:
   Person(const string &n, const size_t &a, bool s,const string &p):
       name(n), age(a), sex(s), phone_number(p){}
   void set(const string &n, const size_t &a, bool s,const string &p)
   {
       name=n; age=a; sex=s; phone_number=p;
   }
   //ну и так далее, реализацию сам напишешь
   void put_name(const string& s);
   void put_age(const size_t& a);
   void put_sex(bool s);
   void put_number(const string& n);
   void print() const
   {
        cout << "name: " << name << '\n'
               << "age: " << age << '\n'
               << "sex: " << (sex ? "male" : "female") << '\n'
               << "Pnumber: " << phone_number << '\n';
   }
};
а класс - строка вот так:
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
class String{
   private:
   char *data;
   int max_length;
   public:
   String()
   {
        data=new char[80];
        max_length=80;
   }
   String(int i)
   {
       data = new char[i];
       max_length=i;
   }
    String(const String &s)
    {
        if (max_length < s.max_length)
        {
            delete [] data;
            data=new char[s.max_length];
            max_length=s.max_length
         }
         for(int i=0;i<max_length;i++)
         {
              data[i]=s.data[i];
         }
    }
    String(const char *s)
    {
         max_length=strlen(s) + 1;
         data=new char[max_length];
         for(int i=0;i<max_length;i++)
         {
              data[i]=*(s+i);
         }
     }
     ~String()
     {
          delete [] data;
     }
     //оператор вывода сам реализуешь
     friend ostream &operator<<(ostream &out, String &s);
};
3
Kaminkskiy
0 / 0 / 0
Регистрация: 18.05.2017
Сообщений: 1
19.05.2017, 00:00 #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
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
#include <iostream>
#include <conio.h>
#include <string.h>
 
using namespace std;
 
struct Date{ //Структура для дати народження людини
    short day;
    short month;
    short year;
    Date(short dayDirth, short monthBirth, short yearBirth)
    {
        this->day = dayDirth;
        this->month = dayDirth;
        this->year = dayDirth;
    }
    Date()
    {
        this->day = 0;
        this->month = 0;
        this->year = 0;
    }
};
 
struct Name{//Структура для ФІО людини
    char *SurName = new char[20];
    char *FirstName = new char[20];
    char *LastName = new char[20];
    char *floor = new char[10];
 
    void SetName(char *SurName, char *FirstName, char *LastName, char *floor)
    {
        strcpy_s(this->SurName, strlen(SurName), SurName);
        strcpy_s(this->FirstName, strlen(FirstName), FirstName);
        strcpy_s(this->LastName, strlen(LastName), LastName);
        strcpy_s(this->floor, strlen(floor), floor);
    }
    void SetName()
    {
        strcpy_s(this->SurName, 11, "No SurName");
        strcpy_s(this->FirstName, 13, "No FirstName");
        strcpy_s(this->LastName, 12, "No LastName");
        strcpy_s(this->floor, 9, "No floor");
    }
};
 
class Person { // Клас студент
 
public:
 
    Name name;
    Date DateOfBirth;
    int tel;
 
    Person();
    Person(const Person&obj);
    Person(char *SurName, char *FirstName, char *LastName, short day, short month, short year, char *floor, int tel);
    void IntPerson();
    void PrintPerson();
    ~Person();
};
 
Person::Person(){
    DateOfBirth = Date();
    this->name.SetName();
    tel = 0;
}
 
Person::~Person(){
    delete[] name.FirstName;
    delete[] name.LastName;
    delete[] name.SurName;
    delete[] name.floor;
}
 
Person::Person(char *SurName, char *FirstName, char *LastName, short day, short month, short year, char *floor, int tel)
{
    this->name.SetName(SurName, FirstName, LastName, floor);
    DateOfBirth = Date(day, month, year);
    this->tel = tel;
}
 
void Person::IntPerson()
{
    cout << "\t\tВведіть Фамілію: ";
    cin >> name.SurName; cout << endl;
    cout << "\t\tВведіть Ім'я: ";
    cin >> name.FirstName; cout << endl;
    cout << "\t\tВведіть Ім'я по-батькові: ";
    cin >> name.LastName; cout << endl;
    cout << "\t\tВведіть день народження: ";
    cin >> DateOfBirth.day; cout << endl;
    cout << "\t\tВведіть місяць народження: ";
    cin >> DateOfBirth.month; cout << endl;
    cout << "\t\tВведіть рік народження: ";
    cin >> DateOfBirth.year; cout << endl;
    cout << "\t\tВведіть стать людини: ";
    cin >> name.floor; cout << endl;
    cout << "\t\tВведіть номер телефона: ";
    cin >> tel; cout << endl;
}
void Person::PrintPerson()
{
    cout << "\t\t________________________________________\n\n";
    cout << "\t\tФІО людини:\n\t\t";
    cout << name.SurName << "\t" << name.FirstName << "\t" << name.LastName << "\n";
    cout << "\t\tДата народження: " << DateOfBirth.day << "." << DateOfBirth.month << "." << DateOfBirth.year << endl;
    cout << "\t\tДата пол: " << name.floor << "\n";
    cout << "\t\tНомер телефона: " << tel << "\n\n";
    cout << "\t\t________________________________________\n\n";
}
 
void main(){
    system("chcp 1251>text");
    
    Person B("Drakon", "Drakon", "Drakon", 8, 2, 1976, "муж", 9879809);
    B.PrintPerson();
    
    system("pause");
}
0
Antikl
190 / 186 / 53
Регистрация: 15.07.2015
Сообщений: 980
Завершенные тесты: 6
19.05.2017, 06:53 #4
использование инициализатора элемента данных не допускается

C++
1
2
3
4
5
struct Name{//Структура для ФІО людини
char *SurName = new char[20];
char *FirstName = new char[20];
char *LastName = new char[20];
char *floor = new char[10];
0
19.05.2017, 06:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2017, 06:53
Привет! Вот еще темы с ответами:

Создать класс данных Person и класс отображения данных - C++
Здравствуйте . Есть такое задание: Создать класс данных &lt;Data1&gt; и класс отображения данных - &lt;view1&gt;. Объект отображения...

Пользовательские типы в union - Нужно ли инстализировать как-то String, Object или Array? - C++
Во всех примерах в union используют простые типы (int, float), а если в union будет пользовательский тип, ну например так union value { ...

Класс Person - C++
Здравствуйте! Задание: Разработать класс Person, который содержит соответствующие члены для хранения: имени, возраста, пола и ...

Класс Person - C++
Здравствуйте есть одна задачка с вариантом её выполнения. Кто сможет помочь разобратьсяв этом запутанном задании? Вариант заданий...


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

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

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