爱问知识人 爱问共享资料 医院库

vc 的一个问题

首页

vc++的一个问题

编译时出错了。我不知道什么地方错了。
希望高手指教。下面是代码
#include<iostream.h>
class Date
{
private:
  int m_nMonth;
  int m_nDay;
  int m_nYear;
public:
  Date (int t1,int t2,int t3)
  {
       m_nDay=t1;
    m_nMonth=t2;
       m_nYear=t3;  
  };
  void Print();
  void setval(int ,int ,int );
  void Addoneday();
};
void Date::Print()
{
  cout<<m_nDay<<"/"<<m_nMonth<<"/"<<m_nYear<<endl;
  cout<<"增加一天之后的日期是:"<<endl;
}
void Date::setval(int d,int m,int y)
{
  m_nDay=d;
  m_nMonth=m;
  
  m_nYear=y;
}
void Date::Addoneday()
{
  switch(char(m_nMonth))
  {
    case' 1':
  case '3':
  case '5':
  case '7':
  case '8':
  case '10':
  case '12':
  {
    if(m_nDay==31)
      {
    m_nDay=1;
    m_nMonth++;
    if(m_nMonth==13)
    {
      m_nMonth=1;
      m_nYear++;
    }
    
     else
      m_nDay++;
    break;
  }
    break;
  case '4':
  case '6':
  case '9':
  case '11':
  {
    if(m_nDay==30)
    {
      m_nDay=1;
      m_nMonth++;
    }
    else
      m_nDay++;
    break;
  }
  break;
  case '2':
  {
    if(m_nYear%4==0)
    {
      if(m_nDay==29)
      {
        m_nDay=1;
        m_nMonth++;
      }
      else
        m_nDay++;
      break;
    }
    else
      if(m_nDay==28)
      {
        m_nDay=1;
        m_nMonth++;
      }
      else
        m_nDay++;
      
    break;
  }
  break;
  cout<<"加1后的日期是:"<<m_nDay<<"/"<<m_nMonth<<"/"<<m_nYear;
    
}
void main()
{
  int d1,m1,y1;
  cout<<"请输入日期(日/月/年):"<<endl;
  cin>>d1>>m1>>y1;
  Date myDate(d1,m1,y1);
  myDate.Print();
  myDate.Addoneday ();
  
    char set;
  cout<<"是否要重新设置(y/n)";
  cin>>set;
  while(set=='y'||set=='Y')
  {
  cout<<"请输入新的日期(日/月/年):";
  cin>>d1>>m1>>y1;
   tval (d1,m1,y1);
    myDate.Print();
  cout<<"是否继续设置(y/n)";
  cin>>set;
  myDate.Addoneday ();
  }
}

提交回答
好评回答
  • 2018-03-30 12:37:27
      /*虽然我已经调试通过程序,但是有几点建议:
    1。请以后不要那样写程序,谁也看不明白。太乱了。记住:先设计在编码,逻辑结构要清晰简单,为以后合作编写程序的时候为别人提供参考,而且代码出现问题也可以好找出错误所在
    2。对于 case 即使不执行也让它执行一个空操作
    3。
      对于case语句中的同一条件下,不要多用break语句,使用相同的出口,你可能自己都不知道什么地方出口了吧,你程序的错误就在这个地方,提示的错误就是找不到程序的结束。 修改后的程序如下(本程序只未了能通过调试而修改没有注重其他如编程标准和详细注释等方面的追究,如要深究,请自己多下工夫)*/ #include class Date { private: int m_nMonth; int m_nDay; int m_nYear; public: Date (int t1,int t2,int t3) { m_nDay=t1; m_nMonth=t2; m_nYear=t3; } void Print(); void setval(int ,int ,int ); void Addoneday(); }; void Date::Print() { cout>d1>>m1>>y1; Date myDate(d1,m1,y1); myDate。
      Print(); myDate。Addoneday (); char set; cout>set; while(set=='y'||set=='Y') { cout>d1>>m1>>y1; tval (d1,m1,y1); myDate。
      Print(); cout>set; myDate。Addoneday (); } } 。

    张***

    2018-03-30 12:37:27

类似问题

换一换
  • 软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈
关注
爱问

关注爱问微信公众号,开启知识之旅,随时随地了解最新资讯。

确定举报此问题

举报原因(必选):