Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <conio.h>
- #include <cstdio>
- #include <time.h>
- #include <string>
- #include <string.h>
- #include <locale.h>
- #include <iostream>
- #include <iostream>
- using namespace std;
- class Date{
- private:
- int day;
- int month;
- int year;
- public:
- Date(){
- cout << "Date constructor" << endl;
- time_t t=time(NULL);
- struct tm* aTm = localtime(&t);
- day=aTm->tm_mday;
- month=aTm->tm_mon+1;
- year=aTm->tm_year+1900;
- }
- ~Date(){
- cout << "Date destructor" << endl;
- }
- Date(int d, int m, int y){
- cout << "Date constructor param" << endl;
- day = d;
- month = m;
- year = y;
- }
- Date(const Date &d){
- cout << "Date constructor copy" << endl;
- day=d.day;
- month=d.month;
- year=d.year;
- }
- int getDay(){
- return day;
- }
- Date& setDay(int d){
- day = d;
- return *this;
- }
- int getMonth(){
- return month;
- }
- Date& setMonth(int m){
- month = m;
- return *this;
- }
- int getYear(){
- return year;
- }
- Date& setYear(int y){
- year = y;
- return *this;
- }
- void printDate(){
- printf("Date: %02d.%02d.%02d\n", day, month, year);
- }
- };
- enum Type {instrumental,vocal, stishok, proza};
- class Artist{
- private:
- char* name;
- char* surname;
- public:
- Artist(){
- cout << "Artist constructor" << endl;
- name = new char[5];
- name = "Null";
- surname = new char[5];
- surname = "Null";
- }
- Artist(char* n, char* m){
- cout << "Artist constructor param" << endl;
- name = new char[strlen(n)+1];
- surname = new char[strlen(m)+1];
- strcpy(name, n);
- strcpy(surname, m);
- }
- Artist(const Artist &a){
- cout << "Artist constructor copy" << endl;
- name = new char[strlen(a.name)+1];
- surname = new char[strlen(a.surname)+1];
- strcpy(name, a.name);
- strcpy(surname, a.surname);
- }
- ~Artist(){
- cout << "Artist destructor" << endl;
- }
- friend ostream& operator<<(ostream& os, Artist& artist);
- friend istream& operator>>(istream& is, Artist& artist);
- char* getName(){
- return name;
- }
- char* getSurname(){
- return surname;
- }
- Artist& setName(char* n){
- name = new char[strlen(n)+1];
- strcpy(name, n);
- return *this;
- }
- Artist& setSurname(char* n){
- surname = new char[strlen(n)+1];
- strcpy(surname, n);
- return *this;
- }
- void printArtistInfo(){
- cout << "Name: " << name << " ";
- cout << "Surname: " << surname << endl;
- }
- };
- ostream& operator<<(ostream& os, Artist& artist) {
- cout << "Artist";
- os << "Artist Name: " << artist.getName() << endl;
- os << "Artist Surname: " << artist.getSurname() << endl;
- return os;
- }
- istream &operator>>(istream & is, Artist& artist) {
- cout << "Artist Name: ";
- is >> artist.getName();
- cout << "Artist Surname: ";
- is >> artist.getSurname();
- return is;
- }
- class Scene: public Artist{//виступ
- private:
- Type type;
- int dur;
- char* title;
- public:
- Scene(){
- cout << "Scene constructor" << endl;
- type = stishok;
- title = new char[5];
- title = "Null";
- dur = 0;
- }
- Scene(Type ty, char* n, char* m, char* t, int d): Artist(n, m){
- cout << "Scene constructor param" << endl;
- type = ty;
- title = new char[strlen(t)+1];
- strcpy(title, t);
- dur = d;
- }
- Scene(Scene &sc): Artist(sc.getName(), sc.getSurname()){
- cout << "Scene constructor copy" << endl;
- type = sc.type;
- title = new char[strlen(sc.title)+1];
- strcpy(title, sc.title);
- dur = sc.dur;
- }
- ~Scene(){
- cout << "Scene destructor" << endl;
- }
- void printInfo(){
- switch(type){
- case(instrumental):
- {
- cout << "Type: " << "Instrumental" << endl;
- break;
- }
- case(vocal):
- {
- cout << "Type: " << "Vocal" << endl;
- break;
- }
- case(stishok):
- {
- cout << "Type: " << "Stishok" << endl;
- break;
- }
- case(proza):
- {
- cout << "Type: " << "Proza" << endl;
- break;
- }
- }
- cout << "Title: " << title << endl;
- cout << "Artist info: " << endl;
- printArtistInfo();
- cout << "Duration: " << dur << endl;
- }
- char* getTitle(){
- return title;
- }
- Scene& setTitle(char* t){
- title = new char[strlen(t)+1];
- strcpy(title, t);
- return *this;
- }
- Type getType(){
- return type;
- }
- Scene& setType(Type t){
- type = t;
- return *this;
- }
- int getDur(){
- return dur;
- }
- Scene& setDur(int d){
- dur = d;
- return *this;
- }
- void getArtist(){
- }
- friend ostream& operator<<(ostream& os, Scene& scene);
- friend istream& operator>>(istream& is, Scene& scene);
- };
- ostream& operator<<(ostream& os, Scene& scene)
- {
- os << "Scene title: " << scene.getTitle() << endl;
- os << "Type: ";
- switch(scene.getType()){
- case(instrumental):
- {
- cout << "Type: " << "Instrumental" << endl;
- break;
- }
- case(vocal):
- {
- cout << "Type: " << "Vocal" << endl;
- break;
- }
- case(stishok):
- {
- cout << "Type: " << "Stishok" << endl;
- break;
- }
- case(proza):
- {
- cout << "Type: " << "Proza" << endl;
- break;
- }
- }
- os << endl;
- scene.printArtistInfo();
- os << "Duration: " << scene.dur << endl;
- os << endl;
- return os;
- }
- istream &operator>>(istream & is, Scene& scene)
- {
- cout << "Scene title: ";
- is >> scene.title;
- cout << "Type: 1. Instrumental, 2. Vocal, 3. Stishok, 4. Proza" << endl;
- cout << "Enter from 1 to 5: ";
- int c;
- is >> c;
- switch (c - 1)
- {
- case(instrumental):
- {
- scene.type = instrumental;
- break;
- }
- case(vocal):
- {
- scene.type = vocal;
- break;
- }
- case(stishok):
- {
- scene.type = stishok;
- break;
- }
- case(proza):
- {
- scene.type = proza;
- break;
- }
- }
- cout << "Artist Name: ";
- char* s;
- s = new char[20];
- is >> s;
- scene.setName(s);
- cout << "Artist Surname: ";
- is >> s;
- scene.setSurname(s);
- cout << "Duration:";
- cin >> scene.dur;
- return is;
- }
- class Concert{
- private:
- char* org;
- Date date;
- Scene* scenes;
- int cnt;
- public:
- Concert(){
- cout << "Concert constructor" << endl;
- org = new char[5];
- org = "Null";
- date = Date();
- cnt = 0;
- }
- Concert(char* o, Date& d, Scene* sc, int c){
- cout << "Concert constructor param" << endl;
- org = new char[strlen(o)+1];
- strcpy(org, o);
- date = Date(d);
- cnt = c;
- scenes = new Scene[cnt];
- for(int i=0; i<cnt; i++){
- scenes[i] = sc[i];
- }
- }
- Concert(Concert const &c){
- cout << "Concert constructor copy" << endl;
- org = new char[strlen(c.org)+1];
- strcpy(org, c.org);
- date = Date(c.date);
- cnt = c.cnt;
- scenes = new Scene[cnt];
- for(int i=0; i<cnt; i++){
- scenes[i] = c.scenes[i];
- }
- }
- ~Concert(){
- cout << "Concert destructor" << endl;
- }
- char* getOrg(){
- return org;
- }
- Concert& setOrg(char* o){
- org = new char[strlen(o)+1];
- strcpy(org, o);
- return *this;
- }
- Date& getDate(){
- return date;
- }
- Concert& setDate(Date d){
- date = d;
- return *this;
- }
- Scene* getScenes(){
- return scenes;
- }
- Concert& setScenes(int c, Scene* sc){
- cnt = c;
- scenes = new Scene[cnt];
- for(int i=0; i<cnt; i++){
- scenes[i] = sc[i];
- }
- return *this;
- }
- int getCount(){
- return cnt;
- }
- Concert& addOne(const Scene& sc){
- Scene* newScenes = new Scene[cnt+1];
- for (int i=0; i<cnt; i++){
- newScenes[i] = scenes[i];
- }
- newScenes[cnt] = sc;
- cnt++;
- scenes = new Scene[cnt];
- for(int i=0; i<cnt; i++){
- scenes[i] = newScenes[i];
- }
- return *this;
- }
- void printInfo(){
- cout << "Org: " << org << endl;
- for (int i=0; i<cnt; i++){
- cout << "Scene " << i+1 << ":" << endl;
- scenes[i].printInfo();
- cout << endl;
- }
- cout << "Date: ";
- date.printDate();
- cout << "Count: " << cnt << endl;
- }
- void shortInfo(){
- cout << "Org: " << org << endl;
- for (int i=0; i<cnt; i++){
- cout << "Title:" << scenes[i].getTitle() << endl;
- cout << "Duration: " << scenes[i].getDur() << endl;
- cout << endl;
- }
- }
- friend ostream& operator<<(ostream& os, Concert& concert);
- friend istream& operator>>(istream& is, Concert& concert);
- };
- ostream& operator<<(ostream& os, Concert& concert) {
- os << "Cocnert org: " << concert.org << endl;
- concert.getDate().printDate();
- for (int i=0; i<concert.cnt; i++){
- os << "Scene " << i+1 << ":" << endl;
- concert.scenes[i].printInfo();
- os << endl;
- }
- os << endl;
- return os;
- }
- istream& operator>>(istream& is, Concert& concert) {
- cout << "Cocnert org:";
- is >> concert.org;
- cout << "Scenes count : ";
- is >> concert.cnt;
- concert.scenes = new Scene[concert.cnt];
- for(int i=0; i<concert.cnt; i++){
- is >> concert.scenes[i];
- }
- cout << endl;
- return is;
- }
- int main()
- {
- // Date d(5,7,10);
- // d.printDate();
- // d.setDay(7);
- // d.printDate();
- // Artist a("Vasya", "Pupkin");
- // a.printArtistInfo();
- // a.setName("Vasiok");
- // a.printInfo();
- // cout << endl;
- // Scene sc1(proza, "Vasya", "Pupkin", "Yeah1", stishok);
- // Scene sc2(proza, "Vasya", "Pupkin", "Yeah2", stishok);
- // Scene sc3(proza, "Vasya", "Pupkin", "Yeah3", stishok);
- // sc1.printInfo();
- // Scene* scs = new Scene[3];
- // scs[0] = sc1;
- // scs[1] = sc2;
- // scs[2] = sc3;
- // cout << endl;
- cout << "<< Artist empty >>" << endl;
- Artist a1;
- cout << "<< Artist with param >>" << endl;
- Artist a2("Vasya", "Pupkin");
- cout << "<< Artist copy >>" << endl;
- Artist a3(a2);
- cout << endl;
- cout << "<< Scene empty >>" << endl;
- Scene s1;
- cout << "<< Artist with param >>" << endl;
- Scene s2(proza, "Vasya", "Pupkin", "Yeah2", stishok);
- cout << "<< Artist copy >>" << endl;
- Scene s3(s2);
- cout << endl;
- Scene sc1(proza, "Vasya", "Pupkin", "Yeah1", stishok);
- Scene* scs = new Scene[3];
- scs[0] = sc1;
- scs[1] = s2;
- cout << endl;
- cout << endl;
- cout << endl;
- Date d ;
- Concert c = Concert("Slava", d, scs, 2);
- c.shortInfo();
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement