View Single Post
Old 05-04-2008, 20:13   #1
zergling
Senior Member
 
L'Avatar di zergling
 
Iscritto dal: Oct 2003
Cittā: Chicago, IL
Messaggi: 504
[C++] Problema con While

Ciao a tutti,
Sto scrivendo un programma che sia in grado di convertire l'ora in 24h in 12h... Mi sono creato 3 funzioni e tutto fila liscio fino a quando devo eseguire il while loop in main
Come faccio ad useguire il while loop che mi consenta di richiamare le mie tre funzioni? E' possibile?
Ciao e grazie

#include <iostream>

using namespace std;

void input(int& hour, int& minutes);
char conversion(int& hour, char& day_night);
void output(int hour, int minutes, char day_night, char& answer);

int main()
{
int hour, minutes;
char day_night, answer;

do
{
input(hour, minutes);
conversion(hour, day_night);
output(hour, minutes, day_night, answer);
}while((answer == 'y')||(answer == 'Y'));

return 0;
}
void input(int& hour, int& minutes)
{
bool check = false;
while (((hour >24) || (hour < 0)) || ((minutes < 0)||(minutes > 59)))
{
if (check == true)
{
cout << "\nEnter minutes: ";
cin >> minutes;
if((minutes > 60) || (minutes < 0))
{
cout << "ERROR! Minutes can not be " << minutes << endl;
continue;
}
}

else
{
cout << "Enter hour in 24h notation: ";
cin >> hour;

if((hour >24) || (hour < 0))
{
cout << "ERROR! Hour can not be " << hour << endl;
continue;
}
else
{
check = true;
cout << "\nEnter minutes: ";
cin >> minutes;
}

if((minutes > 60) || (minutes < 0))
{
cout << "ERROR! Minutes can not be " << minutes << endl;
continue;

}
}
}
}

char conversion(int& hour, char& day_night)
{
if((hour >=13) && (hour <=23))
day_night = 'p';

else if (hour == 24)
day_night = 'a';

else
day_night = 'a';

if(hour > 12)
hour = hour -12;

return hour;
}

void output(int hour, int minutes, char day_night, char& answer)
{
cout << "\nThe time in 12H notation is: ";

if (day_night == 'p')
cout << hour << ":" << minutes << " " << "P.M" << endl;
else
cout << hour << ":" << minutes << " " << "A.M" << endl;

cout << "\nWould you like to run the program again? (y/n)";
cin >> answer;
}
zergling č offline   Rispondi citando il messaggio o parte di esso