| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 523 人关注过本帖
标题:数据准确性检测
只看楼主 加入收藏
呜呜1
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2013-9-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
数据准确性检测
#include<iostream>
using  namespace  std;
class  Date
{  private:
  int  year;
  int  month;
  int  day;

bool  isLeapYear();
public:
bool  check();
void set_date();
    void  show_date();
   
};
void  Date::set_date()
{   cin>>year;
     cin>>month;check();
     cin>>day;check();}
void  Date::show_date()
{ cout<<year<<" "<<month<<" "<<day<<endl;
}
bool Date::isLeapYear()
 {
     return (year%4==0 && year%100!=0)||(year%400==0);
 }
 bool Date::check()
 {
     
int max_day;
int max[12]={31,28,31,30,31,30,31,31,30,31,30,31};
     if(isLeapYear())
     { ++max[1];
     }
    max_day = max[month];
    /*if((month>12)||(day>max_day))
    {cout<<"输入错误,请重新输入:"<<endl;
         set_date();
    }*/
     
        if(month>12)
         { cout<<"输入月份错误,请重新输入:"<<endl;
         
            set_date();
         }
        max_day = max[month];
         if(day>max_day)
     {
         cout<<"输入天错误,请重新输入:"<<endl;
         set_date();
     }
 
    return  0;
 }
    int  main()
   
    {  Date  d;
cout<<"请输入一个四位的阿拉伯数字表示的年,一个两位阿拉伯数字表示的月,一个两位的阿拉伯数字表示的日,并用回车分别输入"<<'\n';
       d.set_date();
      
        d.show_date();
       cin.get();
       return  0;
       }
    我输入“2012 3 45 ”,运行结果显示输入天数错误,我重新输入“2012 3 4”结果还是显示输入天数错误,请大家看看程序哪里出现问题,求助
搜索更多相关主题的帖子: private include public return 检测 
2013-10-29 08:42
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
void  Date::set_date()
{   cin>>year;
     cin>>month;check();
     cin>>day;check();}
day还未赋值,就check?
2013-10-29 09:57
nba199044
Rank: 2
等 级:论坛游民
帖 子:21
专家分:23
注 册:2012-3-21
收藏
得分:10 
void  Date::set_date()
{   cin>>year;
     cin>>month;
    cin>>day;        
     check();
}你应该先接收完所有数据,在进行判断,逻辑错误
2013-10-29 12:32
苑天尤
Rank: 2
等 级:论坛游民
帖 子:17
专家分:16
注 册:2013-10-12
收藏
得分:0 
#include<iostream>
 using  namespace  std;
 class  Date
 {  
 private:
   int  year;
   int  month;
   int  day;
   bool  isLeapYear();
public:
   bool  check();
   void  set_date();
   void  show_date();
     
};
  void  Date::set_date()
 {  
     cin>>year;
     cin>>month;check();
     cin>>day;check();
 }
 void  Date::show_date()
 {
     cout<<year<<" "<<month<<" "<<day<<endl;
 }
 bool Date::isLeapYear()
 {
      return (year%4==0 && year%100!=0)||(year%400==0);
 }
 bool Date::check()
 {   
    int max_day;
    int max[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
     if(isLeapYear())
      {
         ++max[2];
         cout<<"这一年是闰年"<<endl;
     }
   
     /*if((month>12)||(day>max_day))
     {cout<<"输入错误,请重新输入:"<<endl;
          set_date();
     }*/
      
         if(month>12)
          {
             cout<<"输入月份错误,请重新输入:"<<endl;
         
             set_date();
          }
         max_day = max[month];
          if(day>max_day)
      {
          cout<<"输入天错误,请重新输入:"<<endl;
          set_date();
      }

     return  0;
 }
     int  main()
     
    {  Date  d;
 cout<<"请输入一个四位的阿拉伯数字表示的年,一个两位阿拉伯数字表示的月,一个两位的阿拉伯数字表示的日,并用回车分别输入"<<'\n';
        d.set_date();
        
        d.show_date();
        cin.get();
        return  0;
        }
2013-10-29 13:38
呜呜1
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2013-9-10
收藏
得分:0 
回复 4楼 苑天尤
我运行了你回复的程序,结果还是不行啊
2013-10-29 22:27
呜呜1
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2013-9-10
收藏
得分:0 
回复 2楼 rjsp
我是想边接收数据,边进行检测,这样貌似不行啊,
2013-10-29 22:34
呜呜1
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2013-9-10
收藏
得分:0 
回复 3楼 nba199044
灰常谢谢,我想边接受数据,边进行检测,结果没成功
2013-10-29 22:36
快速回复:数据准确性检测
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013178 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved