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

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

Войти
Регистрация
Восстановить пароль
 
Dariya2304
1 / 1 / 0
Регистрация: 11.09.2013
Сообщений: 7
#1

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

12.03.2014, 20:43. Просмотров 368. Ответов 5
Метки нет (Все метки)

Нужно создать два класса. Первый 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 20:43     Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer
Посмотрите здесь:

Создать два производных класса от колоды карт C++
Дата в формате <день>.<месяц>.<год> C++
Создать класс Date – дата, содержащая поля: день, месяц, год. C++
C++ Создать класс Date для работы с датами в формате "год. месяц. день"
C++ Создать класс Date для работы с датами в формате «год.месяц.день»
C++ Реализовать класс Date (дата)
Создать два класса: фермер и реестр C++
C++ Создать класс Date для работы с датами в формате "год.месяц.день" / C++ для начинающих
Создать класс Date, который может выводить даты в формате DD YYYY и MM/DD/YY C++
Создать два подкласса одного класса C++
C++ Создать два класса: вещественные числа и вектор вещественных чисел
На базе класса “дата” создать класс “сообщение” C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2450 / 1622 / 238
Регистрация: 24.11.2012
Сообщений: 3,992
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
:)
Эксперт С++
4384 / 3227 / 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
2450 / 1622 / 238
Регистрация: 24.11.2012
Сообщений: 3,992
13.03.2014, 04:53     Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer #6
Цитата Сообщение от Dariya2304 Посмотреть сообщение
но теперь выполняется только int main, а int main1 -- нет.
А почему она должна выполняться, если ее никто не вызвает?
Yandex
Объявления
13.03.2014, 04:53     Создать два класса: Date (дата в формате ДД.ММ.ГГ) и Performer
Ответ Создать тему
Опции темы

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