首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

帮修改个程序吧~该怎么解决

2012-03-19 
帮修改个程序吧~大大们帮改个程序吧,好多错误啊,改不出来了[codeC/C++][/#include iostream#include s

帮修改个程序吧~
大大们帮改个程序吧,好多错误啊,改不出来了
[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不能用字符串的。。。你自己先改了这个
[解决办法]

C/C++ code
#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;} 


[解决办法]

C/C++ code
#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;} 

热点排行