任何帮助使此代码更小的C ++
any help to make this code smaller c++
用于程序输入用户day
/month
/year
然后valdite
如果输入day < 1
日期,则应更正为day = 1
,并且
如果d>30
,则day = 30
日期,如果输入,则用户月份应介于 1 到 12 之间,也是年份(2000 到 2015 年之间)
我需要使我的代码更小并缩短特别是更正的功能
我做了三个功能:一个用于打印输入
秒用于校正数据
第三个是用户输入的瓦尔迪特
这是我的代码:
#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);
}
}
}
}
这里是 qusetion :
编写一个接受日、月和年的整数值的函数,并以有效格式返回它们。如果日高于 30,则将其转换为 30。如果月份高于 12,则它将月份转换为 12。同样,如果日或月低于 1,则将它们转换为 1。最后,它确保年份在 2000 年至 2015 年之间。如果所有输入都有效,则返回 true,否则返回 false。编写一个程序,提示用户输入日、月和年。然后,程序使用上面编写的函数验证它们,并显示验证所有输入是否有效。否则,程序将显示无效和函数返回的输入的更正值。使用按引用传递方法。
让你corrected
这样的功能:
if(d<1 || d>31) // if d less then 1 OR greater than 31
{
d = d<1 ? 1:31; // if d<1, d will become 1 else 31
}
if(m<1 || M>12) // if m less then 1 OR greater than 12
{
m = m<1 ? 1:12; // if m<1, m will become 1 else 12
}
if(y<2000 || y>2015) // if y less then 2000 OR greater than 2015
{
y = y<2000 ? 2000:2015; // if y<2000, y will become 2000 else 2015
}
print24(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 ;
}
自:
bool valid (int &d , int &m , int & y)
{
return d<=30 && d >=1 && m <=12 && m>=1 && y>=2000 && y<=2015;
}
第二个示例是此块:
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);
}
}
这可以简化如下:
m=1;
if(y<2000)
{
y=2000;
}
else if(y>2015)
{
y=2015;
}
print24(d, m, y);
}
相关文章:
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 需要以下代码的帮助,下面的代码有什么问题
- 我需要帮助将我的代码从 c++ 转换为 java
- 需要帮助理解这个基本的 Vector3D 结构的代码
- 调试套接字 c++ 代码并帮助我理解
- Stroustrup的C++书挑战赛,有人可以帮助我理解这段代码吗?
- 我需要一些帮助来理解一些涉及C++链表的代码
- 如何在SWIG的帮助下使用C++Go代码中的共享库?
- 在 NS3 中遇到了以下代码行.需要帮助理解它
- 我需要帮助理解以下代码的作用
- 为什么这段代码不直接使用 C++ 幂函数?有人可以帮助我使用此代码中的电源函数吗?
- 我需要帮助弄清楚如何将getline纳入PresentStringPrompt,以摆脱重复的代码
- 需要帮助识别简单多线程代码中的错误
- 有人可以帮助我分解这条代码
- 代码-帮助学习ear
- C++代码帮助(循环)
- OpenMP代码帮助
- 搜索引擎用二叉树代码c++帮助请
- 吃豆人碰撞代码帮助在c++和SFML
- 关于四舍五入和生成正确输入的代码帮助