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

Создать класс Letter, содержащий следующие элементы - C++

Восстановить пароль Регистрация
 
маня
1 / 1 / 0
Регистрация: 28.04.2012
Сообщений: 114
01.10.2012, 16:11     Создать класс Letter, содержащий следующие элементы #1
Создать класс Letter, содержащий следующие элементы:
- поле «отправитель» Person* Sender;
- поле «получатель» Person* Receiver;
- поле «адрес» char* Address;
- метод отправки письма int Send(); (если хотя бы одно поле не заполнено, то уведомить об ошибке – вернуть 1, иначе 0)
- метод получения адресной информации (ФИО1+ФИО2+адрес) char* GetInfo();
- конструктор с параметрами Letter(Person* sender, Person* receiver, char* Address);
- конструктор без параметров
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrRuslanBB
4 / 4 / 0
Регистрация: 02.04.2012
Сообщений: 276
06.02.2013, 19:00     Создать класс Letter, содержащий следующие элементы #2
Маня, у вас получилось создать этот класс?? Если да и у вас остался код будте добры скинуть))
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
06.02.2013, 22:06     Создать класс Letter, содержащий следующие элементы #3
Цитата Сообщение от MrRuslanBB Посмотреть сообщение
Маня, у вас получилось создать этот класс?? Если да и у вас остался код будте добры скинуть))
чё там создавать то? делов на пару минут... но больше возни с char *, чем с самим классом
я смотрю на всё это с большим не пониманием... в С++ есть контейнер string, есть прекрасный набор шаблонов STL, чего вы возитесь с этими char *?
MrRuslanBB
4 / 4 / 0
Регистрация: 02.04.2012
Сообщений: 276
07.02.2013, 01:34     Создать класс Letter, содержащий следующие элементы #4
по заданию надо char* использовать))

ну вот вообщем, что я накидал)) пока полный бред, т.к. полностью не разобрался - каша в голове полная!

если можете подредактируйте, дополните))

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
#include <iostream.h>
#include <string.h>
 
class Letter {
 Person*Sender;
 Person*Receiver;
 char*Adress;
 public;
  char*GetInfo();
  Letter(char*,char*,char*,char*,char*,char*,char*);
};
 
char*Letter::GetInfo(){
char*Result;
strcpy(Result, FirstName1);
strcpy(Result, " ");
strcpy(Result, LastName1);
strcpy(Result, " ");
strcpy(Result, Otchestvo1);
strcpy(Result, " ");
strcpy(Result, FirstName2);
strcpy(Result, " ");
strcpy(Result, LastName2);
strcpy(Result, " ");
strcpy(Result, Otchestvo2);
strcpy(Result, " ");
strcpy(Result, Adress);
strcpy(Result, " ");
return Result;
};
 
Letter::Letter(char*FN1, char*LN1, char*Ot1, char*FN2, char*LN2, char*Ot2, char*Adres) {
strcpy(FirstName, FN1);
strcpy(LastName, LN1);
strcpy(Otchestvo, Ot1);
strcpy(FirstName, FN2);
strcpy(LastName, LN2);
strcpy(Otchestvo, Ot2);
strcpy(Otchestvo, Adress);
};
 
void main(){
Letter Hum("Mikola", "Andrey", "Vladimirovich", "Alekseev", "Anton", "Olegovich", Honshonkova 51");
cout<<Hum.GetInfo();
}.
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
07.02.2013, 02:46     Создать класс Letter, содержащий следующие элементы #5
Цитата Сообщение от MrRuslanBB Посмотреть сообщение
по заданию надо char* использовать))

ну вот вообщем, что я накидал)) пока полный бред, т.к. полностью не разобрался - каша в голове полная!
действительно каша)))

давайте натолкну вас на путь сперва

читаем задание
Создать класс Letter, содержащий следующие элементы:
- поле «отправитель» Person* Sender;
- поле «получатель» Person* Receiver;
- поле «адрес» char* Address;
- метод отправки письма int Send(); (если хотя бы одно поле не заполнено, то уведомить об ошибке – вернуть 1, иначе 0)
- метод получения адресной информации (ФИО1+ФИО2+адрес) char* GetInfo();
- конструктор с параметрами Letter(Person* sender, Person* receiver, char* Address);
- конструктор без параметров
разберём прям по пунктам...
класс - есть структура, с одним отличием - у структуры public методы по дефолту, у класса - private, всё, больше отличий нет, хорошо...
делаем
Создать класс Letter
C++
1
2
3
class Letter
{
};
создали... читаем дальше
- поле «отправитель» Person* Sender;
- поле «получатель» Person* Receiver;
из текста видим, что есть какой-то класс Person, на который надо создать два указателя - либо он отправил, либо прислал письмо... пока не понятно что за класс Person, но, очевидно, он тоже private - можно насобачить аналогично:

C++
1
2
3
4
5
class Letter
{
    Person * Sender;
    Person * Receiver;
};
далее

- поле «адрес» char* Address;
хорошо, дадим это поле:

C++
1
char * Address;
и теперь самая работа:
-метод отправки письма int Send(); (если хотя бы одно поле не заполнено, то уведомить об ошибке – вернуть 1, иначе 0)
- метод получения адресной информации (ФИО1+ФИО2+адрес) char* GetInfo();
- конструктор с параметрами Letter(Person* sender, Person* receiver, char* Address);
- конструктор без параметров
метод отправки
C++
1
2
3
int Send()
{ if ((Sender!="")||(Reciver!="")) return 1;
   else return 0;}
метод получения - по аналогии,
далее

конструктор с параметрами:
C++
1
Letter(Person* sender, Person* receiver, char* Address);
на удивление так и будет

C++
1
Letter(Person* sender, Person* receiver, char* address) {Sender = sender; Reciever = receiver; Address = address};
но в private придётся добавить:

C++
1
2
3
4
5
6
7
8
class Letter
{
 ...
 char * address; (я бы добавил string)
 
public:
 Letter(Person* sender, Person* receiver, char* address) {Sender = sender; Reciever = receiver; Address = address};
};
и последний пункт - - конструктор без параметров

ок...
C++
1
2
3
4
5
6
7
8
class Letter
{
 ...
 
public:
 ....
 Letter(): Sender(NULL), Reciver(NULL), Address(NULL) {};
};
но вообще в этих конструкторах надо определить функции new для всех char* и создать дестркуторы c delete[] для них же ) поэтому описал в общих чертах
MrRuslanBB
4 / 4 / 0
Регистрация: 02.04.2012
Сообщений: 276
08.02.2013, 01:15     Создать класс Letter, содержащий следующие элементы #6
Спасибо, многое прояснили, вот всё задание))

Создать класс Letter, содержащий следующие элементы:
- поле «отправитель» Person*Sender;
- поле «получатель» Person*Receiver;
- поле «адрес» char*Address;
- метод отправки письма int Send(); (если хотя бы одно поле не заполнено, то уведомить об ошибке – вернуть 1, иначе 0)
- метод получения адресной информации (ФИО+ФИО+адрес) char* GetInfo();
- конструктор с параметрами Letter(Person* sender, Person* receiver, char* Address);

Создать класс Person, содержащий следующие элементы:
- поле «имя» char*FirstName;
- поле «фамилия» char*LastName;
- поле «отчество» char*Otchestvo;
- метод получения (ФИО) char*GetFIO();
- конструктор с параметрами Person(char*FirstName, char*LastName, char*Otchestvo);

В классе Letter переопределить оператор! (унарный оператор класса), новое действие вернуть по адресу.


вот класс Person, вроде разобрал:
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
class Person {
 char*FirstName;
 char*LastName;
 char*Otchestvo;
  public:
  char*GetFIO();
  Person(char*,char*,char*); //konstruktor s parametrami
};
 
char*Person::GetFIO(){
char*Result;
strcpy(Result, FirstName);
strcpy(Result, " ");
strcpy(Result, LastName);
strcpy(Result, " ");
strcpy(Result, Otchestvo);
strcpy(Result, " ");
return Result;
};
 
Person::Person(char*FN, char*LN, char*Ot) {
strcpy(FirstName, FN);
strcpy(LastName, LN);
strcpy(Otchestvo, Ot);
};
 
void main(){
Person Hum("Podnebesny", "Ruslan", "Mikhailovich");
cout<<Hum.GetFIO();
}.
а вот Letter ещё не разобрал))
вот, что у меня вышло с вашей помощью:


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
class Letter {
 Person*Sender;
 Person*Receiver;
 char*Adress;                           
 public:                            
  int Send(){ if ((Sender!="")||(Reciver!="")) return 1; //metod otpravki
   else return 0;};                                  //--------------
 
  char*GetInfo();                   //metod poluchenia
 Letter(char*,char*,char*,char*,char*,char*,char*); //----------------
 Letter(Person*sender, Person*receiver, char*adress) {Sender=sender; Reciever=receiver; Adress=adress}; //konstruktor s parametrami
};
 
 
char*Letter::GetInfo(){
char*Result;
strcpy(Result, FirstName1);
strcpy(Result, " ");
strcpy(Result, LastName1);
strcpy(Result, " ");
strcpy(Result, Otchestvo1);
strcpy(Result, " ");
strcpy(Result, FirstName2);
strcpy(Result, " ");
strcpy(Result, LastName2);
strcpy(Result, " ");
strcpy(Result, Otchestvo2);
strcpy(Result, " ");
strcpy(Result, Adress);
strcpy(Result, " ");
return Result;
};
 
Letter::Letter(char*FN1, char*LN1, char*Ot1, char*FN2, char*LN2, char*Ot2, char*Adres) {
strcpy(FirstName, FN1);
strcpy(LastName, LN1);
strcpy(Otchestvo, Ot1);
strcpy(FirstName, FN2);
strcpy(LastName, LN2);
strcpy(Otchestvo, Ot2);
strcpy(Otchestvo, Adress);
};
 
void main(){
Letter Hum("Mikola", "Andrey", "Vladimirovich", "Artorev", "Maksim", "Viktorovich", "Bashanova 65");
cout<<Hum.GetInfo();
};
Yandex
Объявления
08.02.2013, 01:15     Создать класс Letter, содержащий следующие элементы
Ответ Создать тему
Опции темы

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