Announcement

Collapse
No announcement yet.

cần hàm nhập ngày, tháng, năm đơn giản hơn cái này!!!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • cần hàm nhập ngày, tháng, năm đơn giản hơn cái này!!!

    đây là hàm nhập của em, anh chị nào có cách đỡ cực hơn một chút thì chỉ em, chứ khi gõ code mà cứ gõ thế này thì chết:
    khai báo private của lớp DATE có 3 thành phần kiểu int là day, month, year; sau đây là hàm nhập:
    Code:
    void DATE :: input()
    {
    	cout<<"enter year:	";
    	do
    	{
    		cin>>year;
    		if(year < 0)
    			cout<<"error! annex year, plesed!:	";
    		else
    		{
    			cout<<"enter month:	  ";
    			do
    			{
    				cin>>month;
    				if(month < 1 || month > 12)
    					cout<<"error! annex month, plesed!:	";
    				else
    				{
    					cout<<"enter day:	";
    					if(month == 4 || month == 6 || month == 9 || month == 11)
    						do
    						{
    							cin>>day;
    								if(day < 1 || day >30)
    									cout<<"error! annex day, plesed!:	";
    						}while(day < 1 || day >30);
    					else
    						if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month ==12)
    							do
    							{
    								cin>>day;
    								if(day < 1 || day > 31)
    									cout<<"error! annex day, plesed!:	";
    							}while(day < 1 || day > 31);
    						else
    							if(year % 4 == 0 && year % 100 != 0)
    								do
    								{
    									cin>>day;
    									if(day < 1 || day > 28)
    										cout<<"error! annex day, plesed!:	";
    								}while(day < 1 || day > 28);
    							else
    								do
    								{
    									cin>>day;
    									if(day < 1 || day > 29)
    										cout<<"error! annex day, plesed!:	";
    								}while(day < 1 || day > 29);
    				}
    			}while(month < 1 || month > 12);
    		}
    	}while(year <0);
    }
    Last edited by 11520537; 02-11-2012, 23:45.
    Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

  • #2
    Bạn nên viết 1 hàm kiểm tra tính hợp lệ của ngày tháng năm riêng, như thế hàm input sẽ dễ nhìn hơn

    Comment


    • #3
      kiểm tra năm nhuận
      HTML Code:
      int Date::Check_Year() const
      {
      	return((year%4==0 && year%100!=0) || year%400==0); 
      }
      kiểm tra ngày nhập vào
      HTML Code:
      int Date::Check_Date() const
      {
      	if(year <1 || month<1 || month>12 || day<1)
      		return 0;
      	else
      	{
      		switch (month)
      		{
      		case 1: case 3: case 5: case 7: case 8: case 10: case 12:
      			if(day>31)
      				return 0;
      			else
      				return 1;
      			break;
      		case 4: case 6: case 9: case 11:
      			if(day>30)
      				return 0;
      			else
      				return 1;
      			break;
      		case 2:
      			if(Check_Year())
      			{
      				if(day>29)
      					return 0;
      			}
      			else
      				if(day>28)
      					return 0;
      			break;
      		}
      	}
      }
      hàm nhập:
      HTML Code:
      void Date::Input_Date()
      {
      	cout<<"\t Please input date: ";
      	cin>>day;
      	cout<<"\t Please input month: ";
      	cin>>month;
      	cout<<"\t Please input yeah: ";
      	cin>>year;
      }
      trong main()
      HTML Code:
      	Date D1;
      	do{
      		cout<<"Please input infomation of Date D1:"<<endl<<endl;
      		D1.Input_Date();
      		if(D1.Check_Date()==0)
      			cout<<"Date D1 don't exist! please try input again."<<endl;
      	}while(D1.Check_Date()==0);
      xúc tích nhất rồi đó
      Last edited by 11520579; 03-11-2012, 10:50.

      Comment

      LHQC

      Collapse
      Working...
      X