jeudi 6 août 2020

How do I compare an object of arrays to a user created object

I am comparing the user created object Date myDate to the array myAppointments[i]

now it should return true if the values month, day, year are the same across myDate and myAppointments[i] the other values myAppointments[i] should not matter.

Here is main

/*
 * Homework 4  --  UPDATE as needed
*/ 

#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>

#include "Appointment.h"
using namespace std;

                             
void callPrint (Time &TimeOrApptObject) { TimeOrApptObject.print();} 
int main(){
    int month, day, year, hour, minute,howLong;
    Appointment  myAppointments[19];

    ifstream HW4DataFileHandle;

    HW4DataFileHandle.open("Lab6Data.txt");
    while (!HW4DataFileHandle.eof( )) {
        for (int i = 1; i < 20;  i++) {
            HW4DataFileHandle>>month;
            HW4DataFileHandle>>day;
            HW4DataFileHandle>>year;
            HW4DataFileHandle>>hour;
            HW4DataFileHandle>>minute;
            HW4DataFileHandle>>howLong;
            myAppointments[i] = Appointment( month, day, year, hour, minute, howLong);
        }
        cout <<"enter a month" <<endl;
        cin >> month;
        cout <<"enter a day" <<endl;
        cin >> day;
        cout <<"enter a year"<<endl;
        cin >> year;
        Date myDate( month, day, year);

        cout <<"Appointments for" << month <<"/" << day <<"/" << year <<":"<< endl;

        for (int i = 0; i <13; i++){
            if ( myAppointments[i]== Date myDate )
            { Time thisTime = myAppointments[i];
                thisTime.print();
                cout << endl;
            } 
        }
    }
}

Date.h

// Date.h -- Class Date    UPDATE  as needed
#ifndef DATE_H
#define DATE_H
class Date  {  
private:
    int month;
    int day;
    int year;
public:
Date(int m, int d, int y) : month(m), day(d), year(y)
    {
    }
    Date() = default;
    friend  bool friendTorCompare2Dates (const Date&,const Date& );

};
bool friendTorCompare2Dates (const Date& Right, const Date& Left)
{
    if (Right.month == Left.month && Right.day == Left.day )
        return true;
    else
        return false;
}

#endif

Time.h

//Time.h -- Class Time UPDATE  as needed
#ifndef TIME_H
#define TIME_H
using namespace std;
#include<iostream>

class Time {
private :
    int hour; int minute;
public:
Time(int h, int m) : hour(h)
    {
    }
    Time() = default;
    virtual void print() {
        cout << hour << " " << minute <<" "  ;
    }


};
#endif

Appointment.h

// Appointment.h -- Class Appointment   UPDATE as needed
//
#include "Time.h"
#include "Date.h"
#ifndef APPOINTMENT_H
#define APPOINTMENT_H
using namespace std;
class Appointment:  public Date, public Time {  
private:
    int howLong;
public:
Appointment(int month, int day, int year, int hour, int minute, int howLong) : 
    Date(month, day, year), Time(hour, minute), howLong(howLong)
    {
    }
 
    Appointment() = default; 
};

#endif

What do I need to change or add so that if ( myAppointments[i]== Date myDate ) works? Please include an example and if something needs added please indicate which bit of code it needs added to that would be much appreciated. Thank you for your time.

Aucun commentaire:

Enregistrer un commentaire