Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 14 kết quả

Đề tài: Nhập ngày tháng năm theo định dạng cho trước trong C++

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    10

    Question Nhập ngày tháng năm theo định dạng cho trước trong C++

    Ta có code sau:
    Code:
    #include "stdafx.h"
    #include "conio.h"
    void main()
    {
    	int ngay,thang,nam;
    	scanf("%d/%d/%d",&ngay,&thang,&nam);
    	printf("%d\n",ngay);
    	printf("%d\n",thang);
    	printf("%d\n",nam);
    	getch();
    }
    Khi chạy chương trình trên thì bắt buộc ta nhập vào ngày tháng năm có dấu / .Đó là trong C, nếu trong C++ mình phải làm thế nào? Mong nhận được sự chỉ dẫn của các bạn

  2. #2
    Ngày gia nhập
    09 2011
    Nơi ở
    Khi ta ở chỉ là nơi đất ở, khi ta đi đất bỗng hóa tâm hồn
    Bài viết
    55

    C++ Code:
    1. #include<iostream.h>
    2. int main()
    3. {
    4.     int ngay,thang,nam;
    5.     cout<<"Nhap ngay thang nam:";
    6.     cin>>ngay>>thang>>nam;
    7.     cout<<"Ban da nhap:\nNgay"<<ngay<<"    Thang:"<<thang<<"    Nam:"<<nam;
    8.     /*int ngay,thang,nam;
    9.     scanf("%d/%d/%d",&ngay,&thang,&nam);
    10.     printf("%d\n",ngay);
    11.     printf("%d\n",thang);
    12.     printf("%d\n",nam);*/
    13.     return 0;
    14.     //getch();
    15. }
    Chạy trên CFree
    Đã được chỉnh sửa lần cuối bởi nang : 02-10-2011 lúc 09:12 PM.
    Cái thuở còn đánh con bé hàng xóm chỉ vì nó không xách cặp hộ đi học. Cái thuở thèm làm người lớn, để bố mẹ khỏi đánh đòn đau mỗi khi mắc lỗi, để được “con nít” gọi mình là người lớn. Cái thuở con nít. Cái thuở ấy xa thật xa. Cô bé hàng xóm đi lấy chồng. Tôi không còn con nít. Và đôi lúc cái thằng người lớn như đã ước mơ một thời, giờ…Vâng…Rất lạ..Có khi nó muốn làm con nít!

  3. #3
    Ngày gia nhập
    09 2011
    Nơi ở
    Khi ta ở chỉ là nơi đất ở, khi ta đi đất bỗng hóa tâm hồn
    Bài viết
    55

    C++ Code:
    1. #include<iostream.h>
    2. int kiemtra(int ngay,int thang,int nam);
    3. int laNamNhuan(int nam);
    4. int main()
    5. {
    6.     int check=1;
    7.     int ngay,thang,nam;
    8.     do{
    9.         cout<<"Nhap ngay thang nam:\n";
    10.     cin>>ngay>>thang>>nam;
    11.     check = kiemtra(ngay,thang,nam);
    12.     if(check==0) cout<<"Ban da nhap sai!Yeu cau nhap lai!\n";
    13.     }while (check==0);
    14.     cout<<"Ban da nhap dung!";
    15.     return 0;
    16. }
    17. int laNamNhuan(int nam)
    18. {
    19.     if(nam%400==0) return 1;
    20.     else
    21.         {
    22.         if((nam%100==0)&&(nam%4!=0)) return 1;
    23.         }
    24.     cout<<nam<<"khong phai la nam nhuan!\n";
    25.     return 0;  
    26.    
    27. }
    28. int kiemtra(int ngay,int thang,int nam)
    29. {
    30.     if(ngay<=0) return 0;
    31.     else
    32.         {
    33.             if(thang==2&&ngay>28&&!laNamNhuan(nam)) return 0;
    34.                 else   
    35.                     {
    36.                         if(thang==2&&ngay>29&&laNamNhuan(nam))return 0;
    37.                         else
    38.                             {
    39.                             if((thang==1||thang==3||thang==5||thang==7||thang==8||thang==10||thang==12)&&ngay>31) return 0;
    40.                             else   
    41.                                 {
    42.                                     if((thang==4||thang==6||thang==9||thang==11)&&ngay>30) return 0;
    43.                                 }
    44.                             }
    45.                     }
    46.         }
    47.     return 1;  
    48. }
    code full

    Nhap ngay thang nam:
    29
    2
    2010
    2010khong phai la nam nhuan!
    Ban da nhap sai!Yeu cau nhap lai!
    Nhap ngay thang nam:
    29
    2
    2000
    Ban da nhap dung!Press any key to continue . . .
    Đã được chỉnh sửa lần cuối bởi nang : 02-10-2011 lúc 09:24 PM.
    Cái thuở còn đánh con bé hàng xóm chỉ vì nó không xách cặp hộ đi học. Cái thuở thèm làm người lớn, để bố mẹ khỏi đánh đòn đau mỗi khi mắc lỗi, để được “con nít” gọi mình là người lớn. Cái thuở con nít. Cái thuở ấy xa thật xa. Cô bé hàng xóm đi lấy chồng. Tôi không còn con nít. Và đôi lúc cái thằng người lớn như đã ước mơ một thời, giờ…Vâng…Rất lạ..Có khi nó muốn làm con nít!

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    10

    Code của mình trong C: bắt người dùng phải nhập ngày/tháng/năm. VD: phải nhập: 2/10/2011 thì đúng, nếu nhập theo bất kì cách nào cũng là sai. Nghĩa là khi nhập vào ngày tháng năm có dấu / chương trình không ghi nhận bất kì dấu / nào hết mà chỉ đưa giá trị ngày,tháng,nam vào. C thì mình làm được còn C++ thì không biết phải làm sao?

  5. #5
    Ngày gia nhập
    09 2011
    Nơi ở
    Khi ta ở chỉ là nơi đất ở, khi ta đi đất bỗng hóa tâm hồn
    Bài viết
    55

    Trích dẫn Nguyên bản được gửi bởi blue_rosevnn Xem bài viết
    Code của mình trong C: bắt người dùng phải nhập ngày/tháng/năm. VD: phải nhập: 2/10/2011 thì đúng, nếu nhập theo bất kì cách nào cũng là sai. Nghĩa là khi nhập vào ngày tháng năm có dấu / chương trình không ghi nhận bất kì dấu / nào hết mà chỉ đưa giá trị ngày,tháng,nam vào. C thì mình làm được còn C++ thì không biết phải làm sao?
    Nhập ngày, tháng, năm thì phải kiểm tra năm nhuận hay không, tháng 31 hay 30 ngày. Còn muốn nhập như bạn nói thì xử lý theo xâu là cách tốt nhất. Xâu sẽ có dạng:
    str = xx/xx/xxxx hay là:

    str[2] = str[5] = '/'
    Cái thuở còn đánh con bé hàng xóm chỉ vì nó không xách cặp hộ đi học. Cái thuở thèm làm người lớn, để bố mẹ khỏi đánh đòn đau mỗi khi mắc lỗi, để được “con nít” gọi mình là người lớn. Cái thuở con nít. Cái thuở ấy xa thật xa. Cô bé hàng xóm đi lấy chồng. Tôi không còn con nít. Và đôi lúc cái thằng người lớn như đã ước mơ một thời, giờ…Vâng…Rất lạ..Có khi nó muốn làm con nít!

  6. #6
    Ngày gia nhập
    06 2010
    Bài viết
    17

    Mặc định Nhập ngày tháng năm theo định dạng cho trước trong C++

    @nang: Cần gì phải dài dòng như vậy:


    C++ Code:
    1. #include<iostream.h>
    2. int kiemtra(int ngay,int thang,int nam);
    3. int laNamNhuan(int nam);
    4. int SoNgay[]={0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    5. int main()
    6. {
    7.     int check=1;
    8.     int ngay,thang,nam;
    9.     do{
    10.         cout<<"Nhap ngay thang nam:\n";
    11.     cin>>ngay>>thang>>nam;
    12.     check = kiemtra(ngay,thang,nam);
    13.     if(check==0) cout<<"Ban da nhap sai!Yeu cau nhap lai!\n";
    14.     }while (check==0);
    15.     cout<<"Ban da nhap dung!";
    16.     return 0;
    17. }
    18. int laNamNhuan(int nam)
    19. {
    20.    
    21.     if((nam%4==0&&nam%100!=0)||(nam%400==0))
    22.         return 1;
    23.     return 0;
    24.    
    25. }
    26. int kiemtra(int ngay,int thang)
    27. {
    28.     if(ngay<0)
    29.         return 0;
    30.     if(ngay>SoNgay[thang])
    31.         return 0;
    32.     return 1;
    33. }
    C++ Code:
    1. int i=0, n=1;
    2. while(i<n)
    3.     cout << "Vô tận!";

  7. #7
    Ngày gia nhập
    09 2011
    Nơi ở
    Khi ta ở chỉ là nơi đất ở, khi ta đi đất bỗng hóa tâm hồn
    Bài viết
    55

    @lhduchieu: code tuy dài nhưng độ phức tạp thì như nhau bạn ạ. Cách bạn khá hay
    Cái thuở còn đánh con bé hàng xóm chỉ vì nó không xách cặp hộ đi học. Cái thuở thèm làm người lớn, để bố mẹ khỏi đánh đòn đau mỗi khi mắc lỗi, để được “con nít” gọi mình là người lớn. Cái thuở con nít. Cái thuở ấy xa thật xa. Cô bé hàng xóm đi lấy chồng. Tôi không còn con nít. Và đôi lúc cái thằng người lớn như đã ước mơ một thời, giờ…Vâng…Rất lạ..Có khi nó muốn làm con nít!

  8. #8
    Ngày gia nhập
    06 2010
    Bài viết
    17

    Liên quan đến ngày tháng, đây là code của mình, xin lỗi vì mình không có chú thich, các bạn xem có gì chỉ cho mình thêm:

    C++ Code:
    1. #include <stdio.h>
    2. #include <tchar.h>
    3. #include "iostream"
    4. #include "iomanip"
    5. #include <ctime>
    6. using namespace std;
    7.  
    8. int menu();
    9. int GioHeThong();
    10. int GioNhap();
    11. int SoNgay[]={0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    12. class NgayThang
    13. {
    14. private:
    15.     int ngay;
    16.     int thang;
    17.     int nam;
    18. public:
    19.     int NhapNgay();
    20.     int XuatNgay();
    21.     int Init(int ng, int th, int n);
    22.     int KTNgayHopLe();
    23.     int ThangThuocQuy();
    24.     int SoNgayTrongThang();
    25.     int NgayHomSau();
    26.     int NgayHomTruoc();
    27. };
    28.  
    29. int _tmain(int argc, _TCHAR* argv[])
    30. {
    31.    
    32.     int lc;
    33.     do{
    34.         menu();
    35.         cout << "Lua chon: ";
    36.         cin >> lc;
    37.         cout << endl;
    38.         switch(lc)
    39.         {
    40.         case 1:
    41.             GioHeThong();
    42.             break;
    43.         case 2:
    44.             GioNhap();
    45.             break;
    46.         }
    47.     }while(lc!=3);
    48.     return 0;
    49. }
    50.  
    51. int KTNamNhuan(int nam)
    52. {
    53.     if((nam%4==0&&nam%100!=0)||(nam%400==0))
    54.         return 1;
    55.     return 0;
    56. }
    57. int NgayThang::NhapNgay()
    58. {
    59.     cin >> ngay >> thang >> nam;
    60.     return 0;
    61. }
    62. int NgayThang::XuatNgay()
    63. {
    64.     cout << "Ngay moi nhap la " << ngay << "/" << thang << "/" << nam << ends;
    65.     return 0;
    66. }
    67. int NgayThang::Init(int ng, int th, int n)
    68. {
    69.     ngay=ng;
    70.     thang=th;
    71.     nam=n;
    72.     return 0;
    73. }
    74. int NgayThang::KTNgayHopLe()
    75. {
    76.     if(ngay<0)
    77.         return 0;
    78.     if(ngay>SoNgay[thang])
    79.         return 0;
    80.     return 1;
    81. }
    82. int NgayThang::ThangThuocQuy()
    83. {
    84.     if(1 <= thang && thang <= 3)
    85.         cout << "thuoc quy I" << endl;
    86.     else if(4 <= thang && thang <= 6)
    87.         cout << "thuoc quy II" << endl;
    88.     else if(7 <= thang && thang <= 9)
    89.         cout << "thuoc quy III" << endl;
    90.     else if(10 <= thang && thang <= 12)
    91.         cout << "thuoc quy IV" << endl;
    92.     return 0;
    93. }
    94. int NgayThang::SoNgayTrongThang()
    95. {
    96.     if(KTNamNhuan(nam)==1)
    97.         SoNgay[2]=29;
    98.     cout << "So ngay trong thang: " << SoNgay[thang] << endl;
    99.     return 0;
    100. }
    101. int NgayThang::NgayHomTruoc()
    102. {
    103.     int ng, thg, na;
    104.     ng=ngay;
    105.     thg=thang;
    106.     na=nam;
    107.     if(KTNamNhuan(na)==1)
    108.         SoNgay[2]=29;
    109.     ng--;
    110.     if(ng<1)
    111.     {
    112.         thg--;
    113.         ngay=SoNgay[thg];
    114.         if(thg<1)
    115.         {
    116.             na--;
    117.             thg=12;
    118.             ng=SoNgay[thg];
    119.         }
    120.     }
    121.     cout << "Ngay hom truoc: " << ng << "/" << thg << "/" << na << endl;
    122.     return 0;
    123. }
    124. int NgayThang::NgayHomSau()
    125. {
    126.     int ng, thg, na;
    127.     ng=ngay;
    128.     thg=thang;
    129.     na=nam;
    130.     if(KTNamNhuan(na)==1)
    131.         SoNgay[2]=29;
    132.     ng++;
    133.     if(ng>SoNgay[thg])
    134.     {
    135.         thg++;
    136.         ng=1;
    137.         if(thg>12)
    138.         {
    139.             na++;
    140.             thg=1;
    141.         }
    142.     }
    143.     cout << "Ngay hom sau: " << ng << "/" << thg << "/" << na << endl;
    144.     return 0;
    145. }
    146. int menu()
    147. {
    148.     cout << "           MENU        " << endl;
    149.     cout << "1. Dung gio he thong" << endl;
    150.     cout << "2. Dung gio nhap tu ban phim" << endl;
    151.     cout << "3. Ket thuc chuong trinh" << endl;
    152.     return 0;
    153. }
    154. int GioHeThong()
    155. {
    156.     NgayThang ngt;
    157.     tm time;
    158.     _getsystime(&time);
    159.     cout << "Ngay hom nay: " << time.tm_mday << "/" << time.tm_mon + 1 << "/" << time.tm_year + 1900<< ends;
    160.     ngt.Init(time.tm_mday, time.tm_mon +1, time.tm_year +1900);
    161.     cout << "thang nay " << ends;
    162.     ngt.ThangThuocQuy();
    163.     ngt.SoNgayTrongThang();
    164.     ngt.NgayHomSau();
    165.     ngt.NgayHomTruoc();
    166.     cout << endl;
    167.     return 0;
    168. }
    169. int GioNhap()
    170. {
    171.     NgayThang ngt;
    172.     cout << "Moi nhap ngay thang nam: ";
    173.     ngt.NhapNgay();
    174.     ngt.XuatNgay();
    175.     if(ngt.KTNgayHopLe()==0)
    176.     {
    177.         cout << "Ngay khong hop le" << endl;
    178.     }
    179.     else
    180.     {
    181.         ngt.ThangThuocQuy();
    182.         ngt.SoNgayTrongThang();
    183.         ngt.NgayHomSau();
    184.         ngt.NgayHomTruoc();
    185.     }
    186.     cout << endl;
    187.     return 0;
    188. }
    C++ Code:
    1. int i=0, n=1;
    2. while(i<n)
    3.     cout << "Vô tận!";

  9. #9
    Ngày gia nhập
    10 2011
    Bài viết
    10

    Chuyện check ngày tháng năm có hợp lý hay không mình đã nghĩ đến. Nhưng cốt lõi vấn đề của mình muốn ở đây là ép người ta phải nhập vào phải có dấu / này.
    Code xuất ngày của mình chỉ để chứng minh rằng: mấy dấu / không được chương trình đưa vào mà thôi.
    C thì làm được nhưng C++ không biết thế nào?

  10. #10
    Ngày gia nhập
    09 2011
    Nơi ở
    Khi ta ở chỉ là nơi đất ở, khi ta đi đất bỗng hóa tâm hồn
    Bài viết
    55

    Cái này bạn trình bày theo hướng đối tượng. Tiện đây cho hỏi lhduchieu:
    Nghe nói năm nhuận âm và năm nhuận dương khác nhau. Đây là code của năm tính theo lịch dương. Lịch âm thế nào bạn?
    Cái thuở còn đánh con bé hàng xóm chỉ vì nó không xách cặp hộ đi học. Cái thuở thèm làm người lớn, để bố mẹ khỏi đánh đòn đau mỗi khi mắc lỗi, để được “con nít” gọi mình là người lớn. Cái thuở con nít. Cái thuở ấy xa thật xa. Cô bé hàng xóm đi lấy chồng. Tôi không còn con nít. Và đôi lúc cái thằng người lớn như đã ước mơ một thời, giờ…Vâng…Rất lạ..Có khi nó muốn làm con nít!

Các đề tài tương tự

  1. Cách Tìm Kiếm dữ Liệu SQl theo ngày tháng năm trong C#?
    Gửi bởi duy_quang422 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 31-07-2013, 06:24 PM
  2. MS SQL với C# Tìm kiếm theo tháng năm trong sql như thế nào ?
    Gửi bởi ga_cntt trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 1
    Bài viết cuối: 22-04-2013, 01:04 AM
  3. Nhập vào 1 tháng của năm bất kì, in ra lịch theo tuần tương ứng của tháng đó.
    Gửi bởi longtth trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 07-12-2011, 09:22 PM
  4. Tìm dữ liệu theo ngày tháng năm trong C#
    Gửi bởi chipsnguyen trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 19-09-2011, 08:01 AM
  5. Nhập vào ngày, tháng, năm. Tìm ngày tiếp theo
    Gửi bởi lequangnam trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 12-03-2009, 06:42 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn