帮修改个程序吧~
大大们帮改个程序吧,好多错误啊,改不出来了
[code=C/C++][/#include <iostream>
#include <string>
using namespace std;
class Month
{
public:
Month(int M);
Month(string str);
Month();
int get_Month1();
string get_Month2();
void output1(ostream& outs);
void output2(ostream& outs);
private:
int num;
}
Month::Month(int M):num(M)
{
}
Month::Month(string str)
{
switch(str)
{case "Jan":num=1;break;
case "Feb":num=2;break;
case "Mar":num=3;break;
case "Apr":hnum=4;break;
case "May":num=5;break;
case "Jun":num=6;break;
case "Jul":num=7;break;
case "Aug":num=8;break;
case "Sep":num=9;break;
case "Oct":hnum=10;break;
case "Nov":num=11;break;
case "Dec":num=12;break;
default:cout<<"intput error!";
}
}
Month::Month():num(0)
{
}
string Month::get_Month1()
{int a=num;
string str;
switch(a)
{case 1:str="Jan";break;
case 2:str="Feb";break;
case 3:str="Mar";break;
case 4:str="Apr";break;
case 5:str="May";break;
case 6:str="Jun";break;
case 7:str="Jul";break;
case 8:str="Aug";break;
case 9:str="Sep";break;
case 10:str="Oct";break;
case 11:str="Nov";break;
case 12:str="Dec";break;
default:cout<<"monthnum error!";
return str;
}
}
int Month::get_Month2()
{return(num);
}
void Month::output1(ostream& outs)
{string str;
str=get_Month1();
outs<<str<<endl;
}
void Month::output2(ostream& outs)
{int a;
a=get_Month2();
outs<<a<<endl;
}
int main()
{string str1;
int a;
cout<<"please input frist three char of a month:";
cin>>str1;
Month month1(str1);
month1.output1(cout);
cout<<"please input the number of a month:";
cin>>a;
Month month2(a);
month2.output2(cout);
return 1;
}
]
[解决办法]
那么多,switch不能用字符串的。。。你自己先改了这个
[解决办法]
#include <iostream>#include <string>using namespace std;class Month{public: Month(int M); Month(string str); Month(); int get_Month1(); string get_Month2(); void output1(ostream& outs); void output2(ostream& outs);private: int num;};//少了;号Month::Month(int M):num(M){}Month::Month(string str){/**C++的switch不支持非整型 switch(str) { case "Jan":num = 1;break; case "Feb":num = 2;break; case "Mar":num = 3;break; case "Apr":hnum = 4;break;//hnum? case "May":num = 5;break; case "Jun":num = 6;break; case "Jul":num = 7;break; case "Aug":num = 8;break; case "Sep":num = 9;break; case "Oct":hnum = 10;break;//hnum? case "Nov":num = 11;break; case "Dec":num = 12;break; default:cout << "intput error!"; }*/ if(str == "Jan") num = 1; else if(str == "Feb") num = 2; else if(str == "Mar") num = 3; else if(str == "Apr") num = 4; else if(str == "May") num = 5; else if(str == "Jun") num = 6; else if(str == "Jul") num = 7; else if(str == "Aug") num = 8; else if(str == "Sep") num = 9; else if(str == "Oct") num = 10; else if(str == "Nov") num = 11; else if(str == "Dec") num = 12; else cout << "intput error!";}Month::Month():num(0){}string Month::get_Month2()//string Month::get_Month1()注意你原先的声名的函数名是string get_Month2();{ int a = num; string str; switch(a) { case 1:str = "Jan";break; case 2:str = "Feb";break; case 3:str = "Mar";break; case 4:str = "Apr";break; case 5:str = "May";break; case 6:str = "Jun";break; case 7:str = "Jul";break; case 8:str = "Aug";break; case 9:str = "Sep";break; case 10:str = "Oct";break; case 11:str = "Nov";break; case 12:str = "Dec";break; default:cout << "monthnum error!"; } return str;//语句位置}int Month::get_Month1()//int Month::get_Month2注意你原先的声名的函数名是int get_Month1();{ return (num);}void Month::output2(ostream& outs)//根据上面函数名关系调整一下,函数名2输出string{ string str; str = get_Month2();//原先使用的get_Month1()返回的是int outs << str << endl;}void Month::output1(ostream& outs)////根据上面函数名关系调整一下,函数名1输出int{ int a; a = get_Month1();//原先使用的get_Month2()返回的是string outs << a << endl;}int main(){ string str1; int a; cout << "please input frist three char of a month:"; cin >> str1; Month month1(str1); month1.output1(cout); cout<<"please input the number of a month:"; cin >> a; Month month2(a); month2.output2(cout); return 1;}
[解决办法]
#include <iostream>#include <string>using namespace std;class Month{public: Month(int M); Month(string str); Month(); string get_Month1(); int get_Month2(); void output1(ostream& outs); void output2(ostream& outs); private: int num;};Month::Month(int M):num(M){ }Month::Month(string str){ switch(str) // 不是常量,别的问题都改好了 { case "Jan":num=1;break; case "Feb":num=2;break; case "Mar":num=3;break; case "Apr":num=4;break; case "May":num=5;break; case "Jun":num=6;break; case "Jul":num=7;break; case "Aug":num=8;break; case "Sep":num=9;break; case "Oct":num=10;break; case "Nov":num=11;break; case "Dec":num=12;break; default:cout<<"intput error!";break; }}Month::Month():num(0){}string Month::get_Month1(){ int a=num; string str; switch(a) { case 1:str="Jan";break; case 2:str="Feb";break; case 3:str="Mar";break; case 4:str="Apr";break; case 5:str="May";break; case 6:str="Jun";break; case 7:str="Jul";break; case 8:str="Aug";break; case 9:str="Sep";break; case 10:str="Oct";break; case 11:str="Nov";break; case 12:str="Dec";break; default:cout<<"monthnum error!"; return str; }}int Month::get_Month2(){ return(num);}void Month::output1(ostream& outs){ string str; str=get_Month1(); outs<<str<<endl;}void Month::output2(ostream& outs){ int a; a=get_Month2(); outs<<a<<endl;}int main(){ string str1; int a; cout<<"please input frist three char of a month:"; cin>>str1; Month month1(str1); month1.output1(cout); cout<<"please input the number of a month:"; cin>>a; Month month2(a); month2.output2(cout); return 1;}