You are on page 1of 5

#include <iostream>

#include<fstream>
using namespace std;

struct activity {

char* title;
char* userid;
int duration;
float priority;
int c = 0;
activity()
{
title = new char;
userid = new char;
duration = 0;
priority = 0.00;
}

activity(char* t, char* u, int d, float c)


{
title = new char[strlen(t)];
int i;
for (i = 0;i < strlen(t);i++)
{
title[i] = t[i];
}
title[i] = '\0';
userid = new char[strlen(u)];
for (i = 0;i < strlen(u);i++)
{
userid[i] = u[i];
}
userid[i] = '\0';
duration = d;
priority = c;
}

void print()
{
cout << "title= " << title << endl;
cout << "userid= " << userid << endl;
cout << "duration= " << duration << endl;
cout << "priority= " << priority << endl;

};

void Q_1(activity***** calendar)


{
char user[10];
int d;
int m;
cout << "ENTER THE USER ID : ";
cin >> user;
cout << "ENTER THE MONTH : ";
cin >> m;
m = m - 1;
cout << "ENTER THE DAY : ";
cin >> d;
d = d - 1;
}
int main()
{
int day;
int month;
int start_time;
int end_time;
char user[7];
char title[50];
activity***** calendar;
char a[50];
calendar = new activity * ***[12];
for (int i = 0;i < 12;i++) // Declaration of array
{
if (i == 0 || i == 2 || i == 4 || i == 6 || i == 7 || i == 9 || i ==
11)
{
calendar[i] = new activity * **[31];
for (int j = 0;j < 31;j++)
{
calendar[i][j] = new activity * *[24];
for (int k = 0;k < 24;k++)
{

calendar[i][j][k] = new activity * [1];


calendar[i][j][k][0] = NULL;

}
}
}
else if (i == 1)
{
calendar[i] = new activity * **[28];
for (int j = 0;j < 28;j++)
{
calendar[i][j] = new activity * *[24];
for (int k = 0;k < 24;k++)
{
calendar[i][j][k] = new activity * [1];
calendar[i][j][k][0] = NULL;
}
}
}
else
{
calendar[i] = new activity * **[30];
for (int j = 0;j < 30;j++)
{
calendar[i][j] = new activity * *[24];
for (int k = 0;k < 24;k++)
{

calendar[i][j][k] = new activity * [1];


calendar[i][j][k][0] = NULL;
}
}
}
}
fstream workload;
workload.open("activities.txt", ios::in);
while (!workload.eof()) {
workload.getline(a, 50);
cout << a << endl;
int j;
for (j = 0;a[j] != '/'; j++)
{
if (j == 0)
{
day = (a[j] - 48)-1;
}
else if (j == 1)
{
day = ((a[0] - 48) * 10) + (a[1] - 48)-1;
}
}

int k;
for (k = j + 1;a[k] != ','; k++)
{
if (k == (j + 1))
{
month = (a[k] - 48)-1;
}
else
{
month = ((a[k - 1] - 48) * 10) + (a[k] - 48)-1;
}
}
int l;
for (l = k + 1;a[l] != ','; l++)
{
if (l == (k + 1))
{
start_time = a[l] - 48;
}
else
{
start_time = ((a[l - 1] - 48) * 10) + (a[l] - 48);
}
}

int m;
for (m = l + 1;a[m] != ','; m++)
{
if (m == (l + 1))
{
end_time = a[m] - 48;
}
else
{
end_time = ((a[m - 1] - 48) * 10) + (a[m] - 48);
}
}
int n;
int i = 0;
for (n = m + 1;a[n] != ','; n++)
{
user[i] = a[n];
i++;
}
user[i] = '\0';
cout << endl;

int o;
for (o = n + 1;a[o] != ','; o++)
{
}

int p;
i = 0;
for (p = o + 1;a[p] != ','; p++)
{
title[i] = a[p];
i++;
}
title[i] = '\0';
float priority;
int sum;
for (int q = p + 1;a[q] != '\0'; q++)
{
if (a[q - 2] == '.')
{
sum = (((a[q - 1] - 48)) * 10) + (a[q] - 48);
priority = (sum) / static_cast<float>(100);
}
else
{
priority = (a[q]-48) / static_cast<float>(10);
}
}

int duration = end_time - start_time;


//cout<<endl << priority << endl;
calendar[month][day][start_time][0] = new activity(title, user,
duration, priority);

if (!calendar[month][day][start_time][0])
{
calendar[month][day][start_time][0] = new activity(title, user,
duration, priority);
calendar[month][day][start_time][0]->c = 1;

}
else
{
int n1 = calendar[month][day][start_time][0]->c;
n1++;
char** t = new char* [n1];char** id = new char* [n1];int* d = new
int[n1];int* p = new int[n1];
for (int i = 0;i < n1;i++)
{

t[i] = calendar[month][day][start_time][i]->title;
id[i] = calendar[month][day][start_time][i]->userid;
d[i] = calendar[month][day][start_time][i]->duration;
p[i] = calendar[month][day][start_time][i]->priority;
}
//delete[]calendar[month-1][day-1][start_time][0];
//delete[]calendar[month-1][day-1][start_time];
calendar[month][day][start_time] = new activity * [n1];
for (int i = 0;i < n1;i++)
{
calendar[month][day][start_time][i] = new activity(t[i],
id[i], d[i], p[i]);
}
calendar[month][day][start_time][n1] = new activity(title, user,
duration, priority);
calendar[month][day][start_time][0]->c = n1;
cout << calendar[month][day][start_time][0]->c;
}

for (int i = 0;i < calendar[month][day][start_time][0]->c;i++)


{
cout << "Calender: \n";
calendar[month][day][start_time][i]->print();
calendar[month][day][start_time][i]->duration;
}

}
workload.close();

Q_1(calendar);
}

You might also like