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

Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer - C++

Восстановить пароль Регистрация
 
Dariya2304
1 / 1 / 0
Регистрация: 11.09.2013
Сообщений: 7
12.03.2014, 20:43     Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer #1
Нужно создать два класса. Первый Date (дата в формате ДД.ММ.ГГ), второй Performer. Объекты второго класса имеют поля 1)имя (char) 2)фамилия (char) 3)дата(Date).
Вопрос: Это можно реализовать не используя наследование? Если да, то как?
Код, который у меня написан, прилагается.

C++ (Qt)
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
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string>
using namespace std;
//Оголошення та опис класу Дата
class Date
{
    int Day, Month, Year;
    public:
    Date();
    Date (int x, int y, int z);
    Date(const Date & src);
    ~Date();
    int GetDay() {return Day;};
    int GetMonth() {return Month;};
    int GetYear() {return Year;};
    void Show();
    void SetDay(int a) {Day=a;};
    void SetMonth(int b) {Month=b;};
    void SetYear(int c) {Year=c;};
};
Date::Date()
{
    cout<<"Constr. without options working\n";
    Day=12;
    Month=05;
    Year=2014;
};
Date::Date(int x, int y, int z)
{
    cout<<"Constr. with options working\n";
    cin>>x>>y>>z;
    Day=x;
    Month=y;
    Year=z;
};
Date::Date(const Date & src)
{
    Day=src.Day;
    Month=src.Month;
    Year=src.Year;
    cout<<"Copywriter working\n";
};
Date::~Date()
{
    cout<<"Destr. working\n";
};
void Date::Show()
{
    cout<<Day<<"."<<Month<<"."<<Year<<".\n";
};
 
/*int main()
{
    int x, y, z;
    Date obj1 (x, y, z);
    Date obj2;
    Date obj3(obj1);
    obj1. Show();
    obj2. Show();
    obj3.Show();
    _getch();
    return 0;
}*/
 
//Оголошення та опис класу Послуга
enum Service 
{ 
    Clean,CleanWindows,Childrengarden,Repairs,Mixed
};
 
//Оголошення та опис класу Виконавець
class Performer
{
private:
    char Name[20], Surname[20];
    Date Birthday;
public:
    Performer ();                       //конструктор без параметрів
    Performer (char a[20],char b[20],Date obj);//конструктор з параметрами
    Performer (const Performer & T);    //конструктор копіювання
    void Show1();
    ~Performer();                       //деструктор
};
Performer::Performer()
{
    cout<<"Constr. without options working(1)\n";
    const char a1[5]="Ivan", b1[7]="Ivanov";
    strcpy_s (Name,5,a1);
    strcpy_s (Surname,7,b1);
    Date Birthday (int x, int y, int z);
};
Performer::Performer(char a[20],char b[20],Date obj)
{
    cout<<"Constr. with options working(1)\n";
    fgets(a,20,stream);
    fgets(b,20,stream);
    strcpy_s(Name,strlen(a),a);
    strcpy_s(Surname,strlen(b),b);
    Date::Date (const Date & Birthday);
};
/*Performer::Performer(const Performer & src1)
{
    Name=src1.Name;
    Surname=src1.Surname;
    Birthday=src1.Birthday;
    cout<<"Copywriter working(1)\n";
};*/
Performer::~Performer()
{
    cout<<"Destr. working(1)\n";
};
void Performer::Show1()
{
    cout<<Name<<" "<<Surname<<"\n";
    Birthday.Show();
};
 
int main1()
{
    char a2[20], b2[20];
    int x, y, z;
    Date obj1 (x, y, z);
    Date obj2;
    Date obj3(obj1);
    Performer Second();
    Performer First (a2[20], b2[20],obj1);
    Performer Third (First);
    First. Show1();
    Second. Show1();
    Third.Show1();
    _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
12.03.2014, 21:06     Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer #2
Уже и реализовано без наследования. В чем проблемы?
Dariya2304
1 / 1 / 0
Регистрация: 11.09.2013
Сообщений: 7
12.03.2014, 22:14  [ТС]     Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer #3
Проблема в этом:
1>------ Build started: Project: lab1, Configuration: Debug Win32 ------
1>Compiling...
1>main_file.cpp
1>.\main_file.cpp(92) : warning C4930: 'Date Birthday(int,int,int)': prototyped function not called (was a variable definition intended?)
1>.\main_file.cpp(97) : error C2065: 'stream' : undeclared identifier
1>.\main_file.cpp(101) : error C2143: syntax error : missing ')' before 'const'
1>.\main_file.cpp(101) : error C2059: syntax error : ')'
1>.\main_file.cpp(128) : error C2664: 'Performer::Performer(char [],char [],Date)' : cannot convert parameter 1 from 'char' to 'char []'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>.\main_file.cpp(131) : error C2228: left of '.Show1' must have class/struct/union
1>Build log was saved at "file://d:\Дария\Учебное\Программирование и информатика\9 семестр (магистр)\lab1\lab1\lab1\Debug\BuildLog.htm"
1>lab1 - 5 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.03.2014, 23:24     Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer #4
Цитата Сообщение от Dariya2304 Посмотреть сообщение
error C2228: left of '.Show1' must have class/struct/union
Уберите скобки в 127 строке.
Хотя этого будет маловато. Ошибок-то ещё тьма. Почему выделили только эту?
Dariya2304
1 / 1 / 0
Регистрация: 11.09.2013
Сообщений: 7
12.03.2014, 23:56  [ТС]     Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer #5
Со всеми остальными ошибками уже справилась. Спасибо за 127 строку. Помогли! Скомпилировала, но теперь выполняется только int main, а int main1 -- нет. Что делать?

C++ (Qt)
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
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string>
using namespace std;
//Оголошення та опис класу Дата
class Date
{
    public:
    int Day, Month, Year;
    Date();
    Date (int x, int y, int z);
    Date(const Date & src);
    ~Date();
    int GetDay() {return Day;};
    int GetMonth() {return Month;};
    int GetYear() {return Year;};
    void Show();
    void SetDay(int a) {Day=a;};
    void SetMonth(int b) {Month=b;};
    void SetYear(int c) {Year=c;};
};
Date::Date()
{
    cout<<"Constr. without options working\n";
    Day=12;
    Month=05;
    Year=2014;
};
Date::Date(int x, int y, int z)
{
    cout<<"Constr. with options working\n";
    cin>>x>>y>>z;
    Day=x;
    Month=y;
    Year=z;
};
Date::Date(const Date & src)
{
    Day=src.Day;
    Month=src.Month;
    Year=src.Year;
    cout<<"Copywriter working\n";
};
Date::~Date()
{
    cout<<"Destr. working\n";
};
void Date::Show()
{
    cout<<Day<<"."<<Month<<"."<<Year<<".\n";
};
 
int main()
{
    int x, y, z;
    Date obj1 (x, y, z);
    Date obj2;
    Date obj3(obj1);
    obj1. Show();
    obj2. Show();
    obj3.Show();
    _getch();
    return 0;
}
 
//Оголошення та опис класу Послуга
enum Service 
{ 
    Clean,CleanWindows,Childrengarden,Repairs,Mixed
};
 
//Оголошення та опис класу Виконавець
class Performer
{
private:
    char Name[20], Surname[20];
    Date Birthday;
public:
    Performer ();                       //конструктор без параметрів
    Performer (char a[20],char b[20],Date obj);//конструктор з параметрами
    Performer (const Performer & T);    //конструктор копіювання
    void Show1();
    ~Performer();                       //деструктор
};
Performer::Performer()
{
    cout<<"Constr. without options working(1)\n";
    const char a1[5]="Ivan", b1[7]="Ivanov";
    strcpy_s (Name,5,a1);
    strcpy_s (Surname,7,b1);
    Date::Date ();
};
Performer::Performer(char a[20],char b[20],Date obj)
{
    cout<<"Constr. with options working(1)\n";
    gets_s(a,20);
    gets_s(b,20);
    strcpy_s(Name,strlen(a),a);
    strcpy_s(Surname,strlen(b),b);
    Date::Date ();
};
/*Performer::Performer(const Performer & src1)
{
    Name=src1.Name;
    Surname=src1.Surname;
    Birthday=src1.Birthday;
    cout<<"Copywriter working(1)\n";
};*/
Performer::~Performer()
{
    cout<<"Destr. working(1)\n";
};
void Performer::Show1()
{
    cout<<Name<<" "<<Surname<<"\n";
    Birthday.Show();
};
 
int main1()
{
    char a2[20], b2[20];
    int x, y, z;
    Date obj1 (x, y, z);
    Date obj2;
    Date obj3(obj1);
    Performer First (a2, b2,obj1);
    Performer Second;
    //Performer Third (First);
    First. Show1();
    Second. Show1();
    //Third.Show1();
    _getch();
    return 0;
}
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
13.03.2014, 04:53     Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer #6
Цитата Сообщение от Dariya2304 Посмотреть сообщение
но теперь выполняется только int main, а int main1 -- нет.
А почему она должна выполняться, если ее никто не вызвает?
Yandex
Объявления
13.03.2014, 04:53     Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer
Ответ Создать тему
Опции темы

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