读书人

枚举有关问题

发布时间: 2012-03-24 14:00:46 作者: rapoo

枚举问题
#include <iostream>
#include <string>

using std::cout;
using std::endl;
using std::cin;
using std::string;
enum Type {
January, january=January,
February, february=February,
March, march=March,
April,april=April,
May,may=May,
June,june=June,
July,july=July,
August,august=August,
September,september=September,
October,october=October,
November,november=November,
December,december=December};

bool year(int yea,Type mont,int da);
void value_input();
bool month(Type mont);
bool day(int yea,Type month,int da);

int main() {
value_input();

return 0;
}

void value_input() {



int da=0;
bool re=0;
int yea=0;
Type mont;

do {cout<<"请输入月、日、年: ";
cin>>yea>>mont>>da;

if(year(yea,mont,da)==1)
if(month(mont)==1)
if(day(yea,mont,da)==1)
re=1;
else re=0;
}while(re==0);
cout<<mont<<" "<<da<<","<<yea<<endl;

}

bool year(int yea,Type mont,int da) {//检验日期是超前
bool ye=0;
int a=0;
if(yea>2008 ||((yea=2008) && (mont+1>4)) || (yea=2008) && (mont+1==4) && (da>21))
ye=0;
else ye=1;
return ye;
}

bool month(Type mont) {//输入的是否是月
bool mo=0;
if((mont+1)>=1 && (mont+1)<=12) mo=1;
else mo=0;
return mo;
}
bool day(int yea,Type mont,int da) {//检验是否为真
bool d=0;
if((mont==January||mont==March||mont==May||mont==July||mont==August||mont==October||mont==December) && da<=31) d=1;
else if(((mont==april||mont==April)||
(mont==june || mont==June)||(mont==September || mont==september)
||(mont==November || mont==november)) && da<=30) d=1;
else if((((yea%4==0 && yea%100!=0)||yea%400==0)&&(mont==February ||mont==february )) && da<=29) d=1;
else if(mont==February && da<=28) d=1;
else d=0;
return d;
}


这个程序的错误好像是,枚举类型的数不能从键盘上输入,是不是真的,有没有解决方法,
我那个枚举类型,开始放在main()中不行,可能是前面有声明,
那个枚举类型发在那时什么需要注意的地方吗

[解决办法]
C++ Builder是由Borland公司 继Delphi之后又推出的一款高性能可视化集成开发工具。
具有快速的可视化开发环境,开发图形界面时只要简单地把控件拖到窗体上,定义一下它的属性,
设置一下它的外观,就可以快速地建立应用程序界面;

读书人网 >C++

热点推荐