OOP Lab Report - 2
OOP Lab Report - 2
Submitted To:
Dr. Md. Ezharul Islam
Designation: Professor
Department of Computer Science and Engineering
Jahangirnagar University
Submitted By:
Fateema Binti Taher Eva
Roll: 403
Batch: 51
Department of Computer Science and Engineering
Jahangirnagar University
3. Apply function overloading for the duration calculation function (either send
an employee's structure variable or two individual time-structure variables in the
company program).
4. Use the default value/arguments for starting time as 9:00 AM (in the company
program ).
6. (optional) Make use of the features: 'static', 'inline functions', etc if applicable.
Source Code :
#include <bits/stdc++.h>
using namespace std;
int flag=0;
struct Time
{
int hr;
int minn;
int sec;
};
struct employee
{
Time entry;
Time exit;
};
if((e.entry.hr>=0 && e.entry.hr <24) && (e.exit.hr>=0 && e.exit.hr <24 ) && (e.entry.minn>=0
&& e.entry.minn<60) && (e.exit.minn>=0 && e.exit.minn <60) && (e.entry.sec>=0 && e.entry.sec
<60) && (e.exit.sec>=0 && e.exit.sec <60) )
{
if(e.exit.sec>=e.entry.sec) {
d.sec = e.exit.sec - e.entry.sec; }
else {
e.exit.sec=e.exit.sec+60;
d.sec = e.exit.sec - e.entry.sec;
e.exit.minn--;
if(e.exit.minn>=e.entry.minn) {
d.minn = e.exit.minn - e.entry.minn; }
else {
e.exit.minn=e.exit.minn+60;
d.minn = e.exit.minn - e.entry.minn;
e.exit.hr--;
}
if(e.exit.hr>=e.entry.hr) {
d.hr = e.exit.hr - e.entry.hr; }
else
{
e.exit.hr=e.exit.hr+24;
d.hr=e.exit.hr-e.entry.hr;
}
return d;
}
else
{
flag =1;
return d;
}
}
Time duration(Time en, Time ex){
Time d;
if((en.hr>=0 && en.hr <24) && (ex.hr>=0 && ex.hr <24 ) && (en.minn>=0 && en.minn<60) &&
(ex.minn>=0 && ex.minn <60) && (en.sec>=0 && en.sec <60) && (ex.sec>=0 && ex.sec <60) )
{
if(ex.minn>=en.minn) {
d.minn = ex.minn - en.minn; }
else {
ex.minn=ex.minn+60;
d.minn = ex.minn - en.minn;
ex.hr--;
}
if(ex.hr>=en.hr) {
d.hr = ex.hr - en.hr; }
else
{
ex.hr=ex.hr+24;
d.hr=ex.hr-en.hr;
}
return d;
}
else
{
flag =1;
return d;
}
}
void display(const Time& t, int n){
cout << "Time duration of " << n << "employee: ";
cout << t.hr << " hr " << t.minn << " m " << t.sec <<" s "<< endl;
}
int main()
{
employee e1, e2;
input(e1);
e2 = input();
Time d1, d2;
d1 = duration(e1);
d2 = duration(e2.entry, e2.exit);
if( flag ==0){
display(d1, 1);
display(d2, 2); }
else if (flag==1)
{
cout<<"Invalid Time Entered "<<endl;
}
return 0;
}
Output: