for program to input the user day / month / year and then valdite
the input if day < 1 the day should be corrected to day = 1 and also
if d>30 the day will be day = 30 and if input the user month should be between 1 and 12 also the year (betwwen 2000 and 2015 )
i need to make my code smaller and Cut short especalliy the function of corrected
i made three function : one for print the input second for corrected data and third for valdite the input of user
here is my code :
#include<iostream>
using namespace std ;
void print24(int &d , int &m, int &y);
bool valid (int &d , int &m , int & y);
void corrected (int & d , int & m , int & y);
int main()
{
int day , month , year ;
cout<<"Enter Date between 1/1//2000 to 30/12//2014 in format <D M Y>" << endl ;
cin>>day>>month>>year ;
cout<<"Date Entered : ";
print24(day ,month , year);
cout<<endl ;
if(valid( day , month , year))
{
cout<<"You Entered Valid Date :";
print24(day ,month , year);
}
else
{
cout<<endl<<"You Entered inValid Date ! "<<endl;
cout<<"Corrected Date is : ";
corrected (day , month , year);
}
}
void print24(int &d , int &m , int & y)
{
cout<<d<<"/"<<m<<"/"<<y;
}
bool valid (int &d , int &m , int & y)
{
if (d<=30 && d >=1 && m <=12 && m>=1 && y>=2000 && y<=2015)
return true ;
else
return false ;
}
void corrected (int &d , int &m , int &y)
{
if(d<1)
{
d=1 ;
if(m<1)
{
m=1;
if(y<2000)
{
y=2000;
print24(d ,m , y);
}
else if(y>2015)
{
y=2015 ;
print24(d ,m , y);
}
else
{
y=y ;
print24(d ,m , y);
}
}
else if(m>12)
{
m=12 ;
if(y<2000)
{
y=2000;
print24(d ,m , y);
}
else if(y>2015)
{
y=2015 ;
print24(d ,m , y);
}
else
{
y=y ;
print24(d ,m , y);
}
}
else
{
m=m ;
if(y<2000)
{
y=2000;
print24(d ,m , y);
}
else if(y>2015)
{
y=2015 ;
print24(d ,m , y);
}
else
{
y=y ;
print24(d ,m , y);
}
}
}
///////////////////////////////////////////////////////////////////////////////////////
else if(d>30)
{
d=30 ;
if(m<1)
{
m=1;
if(y<2000)
{
y=2000;
print24(d ,m , y);
}
else if(y>2015)
{
y=2015 ;
print24(d ,m , y);
}
else
{
y=y ;
print24(d ,m , y);
}
}
else if(m>12)
{
m=12 ;
if(y<2000)
{
y=2000;
print24(d ,m , y);
}
else if(y>2015)
{
y=2015 ;
print24(d ,m , y);
}
else
{
y=y ;
print24(d ,m , y);
}
}
else
{
m=m ;
if(y<2000)
{
y=2000;
print24(d ,m , y);
}
else if(y>2015)
{
y=2015 ;
print24(d ,m , y);
}
else
{
y=y ;
print24(d ,m , y);
}
}
}
///////////////////////////////////////////////////////////////////////////////////
else
{
d=d ;
if(m<1)
{
m=1;
if(y<2000)
{
y=2000;
print24(d ,m , y);
}
else if(y>2015)
{
y=2015 ;
print24(d ,m , y);
}
else
{
y=y ;
print24(d ,m , y);
}
}
else if(m>12)
{
m=12 ;
if(y<2000)
{
y=2000;
print24(d ,m , y);
}
else if(y>2015)
{
y=2015 ;
print24(d ,m , y);
}
else
{
y=y ;
print24(d ,m , y);
}
}
else
{
m=m ;
if(y<2000)
{
y=2000;
print24(d ,m , y);
}
else if(y>2015)
{
y=2015 ;
print24(d ,m , y);
}
else
{
y=y ;
print24(d ,m , y);
}
}
}
}
and here the qusetion :
Write a function that accept integer values for day, month and year and return them in valid format. If day is above 30, then it convert day to 30. If month is above 12 then it convert month to 12. Similarly if day or month is below 1 then it converts them to 1. Finally it ensures that the years are between 2000 and 2015. If all inputs are valid then it returns true else it returns false. Write a program that prompts user to input day, month and year. The program then validates them using the function written above and displays validate if all the input are valid. Otherwise the program displays invalid and the corrected values of input returned by the function. Use pass by reference method.
Aucun commentaire:
Enregistrer un commentaire