C Help I cant find whats wrong in my program The sample outp

C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \"12 hour mode is turned on\", and now I\'m getting all sorts of errors. Anything helps. Thank you.

-In this project, the “current time” should be stored in 24-hour format. Only when the user actually interacts with the program will the output and input be sometimes in 12-hour format. Implement a main menu that will allow the user to (1) enter the current time, (2) add a forward delta to the “current time”, (3) add a backwards delta to the “current time”, (4) display the current time, (5) toggle the interface mode between 24-hour and 12-hour (should impact both getTime and printTime). The program should identify invalid input for the main menu. When entering the current time, only allow hours between 0 and 23 and minutes between 0 and 59. Accept only ‘a’ and ‘p’ when entering the time in 12-hour mode. When entering time deltas, only allow positive values or 0 (this is true for both forward and backwards time deltas).

Sample Output: (user input in italics)

1 - Enter a time

2 - Add delta to time

3 - Subtract delta from time

4 - Display current time

5 - Toggle 24-hour mode

6 - Exit

> 1

Enter the time with whitespace separating the hours and minutes: 5 50

1 - Enter a time

2 - Add delta to time

3 - Subtract delta from time

4 - Display current time

5 - Toggle 24-hour mode

6 - Exit

> 4

The current time is 05:50

1 - Enter a time

2 - Add delta to time

3 - Subtract delta from time

4 - Display current time

5 - Toggle 24-hour mode

6 - Exit

> 2

Enter an increment of hours and minutes (separated by a space): 0 120

The new time would be 07:50

1 - Enter a time

2 - Add delta to time

3 - Subtract delta from time

4 - Display current time

5 - Toggle 24-hour mode

6 - Exit

> 2

Enter an increment of hours and minutes (separated by a space): 2 20

The new time would be 08:10

1 - Enter a time

2 - Add delta to time

3 - Subtract delta from time

4 - Display current time

5 - Toggle 24-hour mode

6 - Exit

> 5

12-hour mode turned on

1 - Enter a time

2 - Add delta to time

3 - Subtract delta from time

4 - Display current time

5 - Toggle 24-hour mode

6 - Exit

> 1

Enter the time with whitespace separating the hours, minutes, and either \'a\' for am or \'p\' for pm: 0 15 a

1 - Enter a time

2 - Add delta to time

3 - Subtract delta from time

4 - Display current time

5 - Toggle 24-hour mode

6 - Exit

> 4

The current time is 12:15 am

1 - Enter a time

2 - Add delta to time

3 - Subtract delta from time

4 - Display current time

5 - Toggle 24-hour mode

6 - Exit

> 3

Enter a decrement of hours and minutes (separated by a space): 1 15 The new time would be 11:00 pm

1 - Enter a time

2 - Add delta to time

3 - Subtract delta from time

4 - Display current time

5 - Toggle 24-hour mode

6 - Exit

> 3

Enter a decrement of hours and minutes (separated by a space): 0 90 The new time would be 10:45 pm

*****This is the program I wrote:

#include<iostream>
using namespace std;
void calcDeltaFutr(int h, int m, int deltaH, int deltaM, int& hNew, int& mNew);
void calcDeltaPast(int h, int m, int deltaH, int deltaM, int& hNew, int& mNew);
void getTime(int &h, int &m, bool mode);
void rollTimeForward(int& h, int& m);
void rollTimeBack(int& h, int& m);
void printTime(int h, int m, bool mode);
int current_h=-1,current_m=-1;//current time..
bool mode=true;//24 hr format
int main()
{
   int choice=-1,c=0;
   while(choice!=6)//loop.. exits when user gives 6
   {
       cout<<\"\ 1 - Enter a time\ 2 - Add delta to time\ 3 - Subtract delta from time\ 4 - Display current time\ 5 - Toggle 24-hour mode\ 6 - Exit\ \";
       cout<<\"Enter ur choice:\";
       cin>>choice;//taking user choice
       if((choice!=1)&&c==0)
       {
           cout<<\"\ First Enter current time....\ \ \";//errror message..
       }
       else if(choice==1)
       {
           c=1;
           getTime(current_h,current_m,mode);//calling function that takes time from the user
           //cout<<current_h<<\" \"<<current_m<<\"\ \";
       }
       else if(choice==2)
       {
           int deltaH,deltaM,hNew,mNew;
           cout<<\"Enter an increment of hours and minutes (separated by a space):\";
           cin>>deltaH;cin>>deltaM;
           calcDeltaFutr(current_h,current_m,deltaH,deltaM,hNew,mNew);
           cout<<\"\ The New time would be:\";
           printTime(hNew,mNew,mode);
       }
       else if(choice==3)
       {
               int deltaH,deltaM,hNew,mNew;
           cout<<\"Enter an decrement of hours and minutes (separated by a space):\";
           cin>>deltaH;cin>>deltaM;
           calcDeltaPast(current_h,current_m,deltaH,deltaM,hNew,mNew);
           cout<<\"\ The New time would be:\";
           printTime(hNew,mNew,mode);
          
       }
       else if(choice==4)
       {
           cout<<\"\ The Current time is:\";
           printTime(current_h,current_m,mode);  
       }
       else if(choice==5)
       {
           if(mode==true)
               mode = false;
           else mode = true;
       }
       else
       {
           cout<<\"\ \ Select appropriate choice...\ \ \";//error message  
       }  
   }
   return 0;
}
void getTime(int& h,int& m,bool mode)//function that takes current time as input from the user
{
   int hh,mm;
  
   while(true)
   {
   if(mode==true)
   {
       cout<<\"\ Enter the time with whitespace separating the hours and minutes:\";
       cin>>hh;
       cin>>mm;
       if(hh>=24 || mm >= 60|| hh<0 || mm <0)
       {
           cout<<\"\ Error:invalid time..enter again..\ \";
       }
       else break;
   }
   else
   {
       char c;
       cout<<\"Enter the time with whitespace separating the hours and minutes and (a/p)character:\";
       cin>>hh;
       cin>>mm;
       cin>>c;
       if(hh>=13 || mm >= 60|| hh<=0 || mm <0||(c!=\'a\'&&c!=\'p\'))
       {
           cout<<\"\ Error:invalid time..enter again..\ \";
       }
       else
       {
       if(c==\'p\')
       {
           if(hh!=12)hh=12+hh;  
       }
       else if(hh==12)hh=0;
       break;
       }  
   }
  
   }
   h=hh;m=mm;
   //cout<<hh<<\" \"<<mm<<\"\ \";  
   //cout<<h<<\" \"<<m<<\"\ \";
}
void calcDeltaPast(int h, int m, int deltaH, int deltaM, int& hNew, int& mNew)
{
   hNew = deltaH-h;
   mNew = deltaM-m;
   rollTimeBack(hNew, mNew);
}
void rollTimeBack(int& h , int& m)
{
   if(m<0)
   {
       while(m<0)
       {
           h=h-1;
           m=m+60;  
       }  
   }
   if(h<0)
   {
       cout<<\"\ ERROR: Limit exceeded.. rounding hours..\ \";
       h=0;  
   }
}
void calcDeltaFutr(int h, int m, int deltaH, int deltaM, int& hNew, int& mNew)
{
   hNew = deltaH+h;
   mNew = deltaM+m;
   rollTimeForward(hNew, mNew);
   cout<<hNew<<\":\"<<mNew<<\"\ \";
}
void rollTimeForward(int& h, int& m)
{
   int hh=h,mm=m;
   if(mm>60)
   {
       while(mm>60)
       {
           hh=hh+1;
           mm=mm-60;  
       }
       cout<<hh<<\":\"<<mm<<\"\ \";
   }
   if(hh>24)
   {
       cout<<\"\ \ Error : limit exceeded..Rounding hours..\ \";
       hh=hh%24;  
   }
   h=hh;m=mm;
}
void printTime(int h, int m, bool mode)
{
  
  
   if(mode==true)
   {
   if(h<9)
   cout<<\'0\';
   cout<<h<<\":\";
   if(m<9)
   cout<<\'0\';
   cout<<m<<\"\ \";
   }
   else
   {
       if(h<12)
       {
           if(h==0)cout<<\"12:\";
           else
           {
               if(h<9)
               cout<<\'0\';
               cout<<h<<\":\";
           }
           if(m<9)
           cout<<\'0\';
           cout<<m<<\" a\ \";
              
       }
       else
       {
           if(h==12)cout<<\"12:\";
           else
           {
               cout<<h-12;
               cout<<\":\";  
           }
           if(m<9)
           cout<<\'0\';
           cout<<m<<\" p\ \";
       }
   }

}

Solution

// C++ code


#include <fstream> // file processing
#include <iostream> // cin and cout
#include <cctype> // toupper
#include <iomanip> // setw
#include <cstring> // cstring functions strlen, strcmp, strcpy stored in string.h
#include <string.h> // string class
#include <stdlib.h>

using namespace std;

void calcDeltaFutr(int h, int m, int deltaH, int deltaM, int& hNew, int& mNew, bool mode);
void calcDeltaPast(int h, int m, int deltaH, int deltaM, int& hNew, int& mNew, bool mode);
void getTime(int &h, int &m, bool mode);
void rollTimeForward(int& h, int& m, bool mode);
void rollTimeBack(int& h, int& m, bool mode);
void printTime(int h, int m, bool mode);
int current_h=-1,current_m=-1;//current time..
bool mode=true;//24 hr format
int main()
{
int choice=-1,c=0;
while(choice!=6)//loop.. exits when user gives 6
{
cout<<\"\ 1 - Enter a time\ 2 - Add delta to time\ 3 - Subtract delta from time\ 4 - Display current time\ 5 - Toggle 24-hour mode\ 6 - Exit\ \";
cout<<\"Enter ur choice:\";
cin>>choice;//taking user choice
if((choice!=1)&&c==0)
{
cout<<\"\ First Enter current time....\ \ \";//errror message..
}
else if(choice==1)
{
c=1;
getTime(current_h,current_m,mode);//calling function that takes time from the user
//cout<<current_h<<\" \"<<current_m<<\"\ \";
}
else if(choice==2)
{
int deltaH,deltaM,hNew,mNew;
cout<<\"Enter an increment of hours and minutes (separated by a space):\";
cin>>deltaH;cin>>deltaM;
calcDeltaFutr(current_h,current_m,deltaH,deltaM,hNew,mNew, mode);
current_h = hNew;
current_m = mNew;
cout<<\"\ The New time would be:\";
printTime(hNew,mNew,mode);
}
else if(choice==3)
{
int deltaH,deltaM,hNew,mNew;
cout<<\"Enter an decrement of hours and minutes (separated by a space):\";
cin>>deltaH;cin>>deltaM;
calcDeltaPast(current_h,current_m,deltaH,deltaM,hNew,mNew,mode);
current_h = hNew;
current_m = mNew;
cout<<\"\ The New time would be:\";
printTime(hNew,mNew,mode);
  
}
else if(choice==4)
{
cout<<\"\ The Current time is:\";
printTime(current_h,current_m,mode);
}
else if(choice==5)
{
if(mode==false)
mode = true;
else mode = false;
}
else
{
cout<<\"\ \ Select appropriate choice...\ \ \";//error message
}
}
return 0;
}
void getTime(int& h,int& m,bool mode)//function that takes current time as input from the user
{
int hh,mm;
  
while(true)
{
if(mode==true)
{
cout<<\"\ Enter the time with whitespace separating the hours and minutes:\";
cin>>hh;
cin>>mm;
if(hh>=24 || mm >= 60|| hh<0 || mm <0)
{
cout<<\"\ Error:invalid time..enter again..\ \";
}
else break;
}
else
{
char c;
cout<<\"Enter the time with whitespace separating the hours and minutes and (a/p)character:\";
cin>>hh;
cin>>mm;
cin>>c;
cin.ignore();
if(hh>=13 || mm >= 60|| hh<0 || mm <0||(c!=\'a\'&&c!=\'p\'))
{
cout<<\"\ Error:invalid time..enter again..\ \";
}
else
{
if(c==\'p\')
{
if(hh!=12)hh=12+hh;
}
else if(hh==12)
hh=0;
break;
}
}
  
}
h=hh;m=mm;
//cout<<hh<<\" \"<<mm<<\"\ \";
//cout<<h<<\" \"<<m<<\"\ \";
}
void calcDeltaPast(int h, int m, int deltaH, int deltaM, int& hNew, int& mNew, bool mode)
{
hNew = h-deltaH;
mNew = m-deltaM;
rollTimeBack(hNew, mNew, mode);
}
void rollTimeBack(int& h , int& m, bool mode)
{
cout << mode << endl;
if(mode == false)
{
if(m<0)
{
while(m<0)
{
h=h-1;
m=m+60;
}
}

if(h < 0)
h = h + 12;
}

else
{
if(m<0)
{
while(m<0)
{
h=h-1;
m=m+60;
}
}
if(h<0)
{
cout<<\"\ ERROR: Limit exceeded.. rounding hours..\ \";
h=0;
}
}

}
void calcDeltaFutr(int h, int m, int deltaH, int deltaM, int& hNew, int& mNew, bool mode)
{
hNew = deltaH+h;
mNew = deltaM+m;
rollTimeForward(hNew, mNew, mode);
}

void rollTimeForward(int& h, int& m, bool mode)
{
int hh=h,mm=m;
if(mm>=60)
{
hh=hh+mm/60;
mm=mm%60;
cout<<hh<<\":\"<<mm<<\"\ \";
}
if(hh>24)
{
cout<<\"\ \ Error : limit exceeded..Rounding hours..\ \";
hh=hh%24;
}


h=hh;m=mm;
}

void printTime(int h, int m, bool mode)
{
  
  
if(mode==true)
{
if(h<9)
cout<<\'0\';
cout<<h<<\":\";
if(m<9)
cout<<\'0\';
cout<<m<<\"\ \";
}
else
{
if(h<12)
{
if(h==0)cout<<\"12:\";
else
{
if(h<9)
cout<<\'0\';
cout<<h<<\":\";
}
if(m<9)
cout<<\'0\';
cout<<m<<\" am\ \";
  
}
else
{
if(h==12)cout<<\"12:\";
else
{
cout<<h-12;
cout<<\":\";
}
if(m<9)
cout<<\'0\';
cout<<m<<\" pm\ \";
}
}
}

/*
output:

1 - Enter a time
2 - Add delta to time
3 - Subtract delta from time
4 - Display current time
5 - Toggle 24-hour mode
6 - Exit
Enter ur choice:1

Enter the time with whitespace separating the hours and minutes:5 50

1 - Enter a time
2 - Add delta to time
3 - Subtract delta from time
4 - Display current time
5 - Toggle 24-hour mode
6 - Exit
Enter ur choice:2
Enter an increment of hours and minutes (separated by a space):2 20
8:10

The New time would be:08:10

1 - Enter a time
2 - Add delta to time
3 - Subtract delta from time
4 - Display current time
5 - Toggle 24-hour mode
6 - Exit
Enter ur choice:5

1 - Enter a time
2 - Add delta to time
3 - Subtract delta from time
4 - Display current time
5 - Toggle 24-hour mode
6 - Exit
Enter ur choice:1
Enter the time with whitespace separating the hours and minutes and (a/p)character:0 15 a

1 - Enter a time
2 - Add delta to time
3 - Subtract delta from time
4 - Display current time
5 - Toggle 24-hour mode
6 - Exit
Enter ur choice:4

The Current time is:12:15 am

1 - Enter a time
2 - Add delta to time
3 - Subtract delta from time
4 - Display current time
5 - Toggle 24-hour mode
6 - Exit
Enter ur choice:2
Enter an increment of hours and minutes (separated by a space):1 15

The New time would be:01:30 am

1 - Enter a time
2 - Add delta to time
3 - Subtract delta from time
4 - Display current time
5 - Toggle 24-hour mode
6 - Exit
Enter ur choice:3
Enter an decrement of hours and minutes (separated by a space):1 15
0

The New time would be:12:15 am

1 - Enter a time
2 - Add delta to time
3 - Subtract delta from time
4 - Display current time
5 - Toggle 24-hour mode
6 - Exit
Enter ur choice:3
Enter an decrement of hours and minutes (separated by a space):1 15
0

The New time would be:11:00 pm

1 - Enter a time
2 - Add delta to time
3 - Subtract delta from time
4 - Display current time
5 - Toggle 24-hour mode
6 - Exit
Enter ur choice:6


Select appropriate choice...

*/

C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \
C++ Help, I can\'t find what\'s wrong in my program. The sample output is below and the program I wrote is below that. I\'m having issues with the \

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site