Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Lập trình C++ | Xây dựng lớp thời gian Time!

  1. #1
    Ngày gia nhập
    08 2008
    Bài viết
    5

    Mặc định Lập trình C++ | Xây dựng lớp thời gian Time!

    Em bắt đầu học đến lập trình hướng đối tượng với C++.
    Các Bác xử lí giúp Em bài này với:

    Xây dựng lớp thời gian Time.Dữ liệu thành phần bao gồm giờ,phút,giây.Các hàm thành phần:hàm tạo,hàm truy cập dữ liệu,hàm normalize() để chuẩn hóa dữ liệu năm trong khoảng quy định của giờ (0<giờ<24),phút(0<phút<60),giây(0<giây<60),h ầm advance(int h,int m,int s) để tăng thời gian hiện hành của đối tượng đang tồn tại,hàm reset(int h,int m,int s) để chỉnh lại thời gian hiện hành của một đối tượng đang tồn tại và một hàm print() để hiển thị dữ liệu.

    Mong các Bác giúp đỡ.E mới học CNTT nên còn gà lắm.hj

  2. #2
    Ngày gia nhập
    10 2008
    Bài viết
    178

    Code:
    Các Bác xử lí giúp Em bài này với:
    bài đầu tiên thì bạn nên tự code lấy cho nó hiểu.nhờ người khác code dùm đọc không hiểu đâu bạn

  3. #3
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Gợi ý chút:

    Lớp timer sẽ có các thuộc tính sau:
    + Giờ
    + phút
    + giây

    Các phương thức sau:
    + Khởi tạo (có tham số và không tham số)
    + normalize() để chuẩn hóa dữ liệu năm trong khoảng quy định của giờ (0<giờ<24),phút(0<phút<60),giây(0<giây<60)
    Cái này chắc nếu giây lớn hơn 60 giây thì tăng phút lên à? Đoán thế :d
    + advance(int h,int m,int s) để tăng thời gian hiện hành của đối tượng đang tồn tại (tăng giờ cũ, phút cũ, giây cũ lên h, m, s rồi gọi hàm chuẩn hóa trên là ok)
    + reset(int h,int m,int s) để chỉnh lại thời gian hiện hành của một đối tượng đang tồn tại -> gán lại là xong
    +print() để hiển thị dữ liệu -> in ra thôi

    Bạn code đi có gì mình giải đáp cho

  4. #4
    Ngày gia nhập
    08 2008
    Bài viết
    5

    Các pác xem cho E với,chỗ nào sai,phương thức nào chưa đúng....Chỉ giúp E với.
    Code:
    #include<iostream.h>
    #include<conio.h>
    //---------------------------------------
    class time
    {
     private:
    	int h,m,s;
     public:
    	time()
    	{
    	  h=m=s=0;
    	}
    	void normalize();
    	void init();
    	void display();
    	void advance();
    	void reset();
    };
    //---------------------------------------------
    void time::init()
    {
        cout<<"Nhap du lieu:"<<endl;
        cout<<"Gio:";cin>>this->h;
        cout<<"Phut:";cin>>this->m;
        cout<<"Giay:";cin>>this->s;
    }
    //--------------------------------------------
    void time::display()
    {
        cout<<"Xin thong bao,Bay gio la:"<<this->h<<":"<<this->m<<":"<<this->s;
    }
    //-------------------------------------------------
    void time::advance()
    {
        while(this->s>=60)
        {
          this->m+=1;
          this->s-=60;
        }
        while(this->m>=60)
        {
          this->h+=1;
          this->m-=60;
        }
    
        while(this->h>=24)  this->h-=24;
    }
    //---------------------------------------------------
    void time::reset()
    {
       cout<<endl<<"Ban muon chinh lai thoi gian hien tai."<<endl;
       cout<<"Gio:";cin>>this->h;
       cout<<"Phut:";cin>>this->m;
       cout<<"Giay:";cin>>this->s;
    }
    //--------------------------------------------------
    void main()
    {
        clrscr();
        time a;
        a.init();
        a.advance();
        a.display();
        a.reset();
        cout<<"Thoi gian sau khi da chinh lai."<<endl;
        a.display();
        getch();
    }
    Đã được chỉnh sửa lần cuối bởi theboy1904 : 22-04-2009 lúc 09:33 AM. Lý do: Dùng đúng Form post bài.

  5. #5
    Ngày gia nhập
    10 2008
    Bài viết
    178

    Code:
    void time::advance()
    {
        while(this->h>=24)  this->h-=24;
        while(this->m>=60)
        {
          this->h+=1;
          this->m-=60;
        }
        while(this->s>=60)
        {
          this->m+=1;
          this->s-=60;
        }
    }
    cái này chưa tối ưu nếu nhập vào là 5h 59p 60g chương trình bạn chạy chưa đúng

  6. #6
    Ngày gia nhập
    08 2008
    Bài viết
    5

    Mặc định Lập trình C++ | Xây dựng lớp thời gian Time!

    Code:
    void time::advance()
    {
        while(this->s>=60)
        {
          this->m+=1;
          this->s-=60;
        }
        while(this->m>=60)
        {
          this->h+=1;
          this->m-=60;
        }
    
        while(this->h>=24)  this->h-=24;
    }
    OK rùi anh ơi.Test thử giúp E xem còn lỗi nào nữa hok?
    Ai gợi ý cho E cái hàm thành phần normalize(),hàm này có nhiệm vụ khi người dùng nhập sai giá trị (VD:giờ,phút,giây <0) thì hàm này sẽ báo cho người dùng biết là sai và yêu cầu nhập lại.

  7. #7
    Ngày gia nhập
    10 2008
    Bài viết
    178

    hàm normalize() bạn có thể viét như sau
    PHP Code:
    bool time::normalize()
    {
        if(
    0||>= 24 |||| >= 60 || || >=60)//kiểm tra các điều kiên sai
        
    {
            
    cout << "sai : vui long nhap lai: \n";//thong báo nhập lại
            
    return false;//trả về cho hàm là false
        
    }
        return 
    true;//trả về cho hàm là true

    đây là ví dụ cho hàm nhâp
    PHP Code:
    void time::init()
    {
        
    bool f false;//khai báo biến f kiểu bool ban đầu khởi tạo = false
        
    while(!f)//trong khi f != true thì tiếp tục lặp
        
    {
            
    cout<<"Nhap du lieu:"<<endl;
            
    cout<<"Gio:";cin>>this->h;
            
    cout<<"Phut:";cin>>this->m;
            
    cout<<"Giay:";cin>>this->s;
            
    normalize();//gọi hàm normalize() nếu nhập đúng hàm cho giá trị true => f = true ngừng lặp
                                        //còn cho giá trị false thì tiếp tục nhập lại

        
    }

    còn một cái nữa là đề yêu cầu
    hàm advance(int h,int m,int s) để tăng thời gian hiện hành của đối tượng
    hình như cậu hiểu hơi sai vấn đề hàm này
    Đã được chỉnh sửa lần cuối bởi rua_con : 22-04-2009 lúc 12:40 PM.

  8. #8
    Ngày gia nhập
    08 2008
    Bài viết
    5

    đầu tiên E cũng làm hàm advande() là tăng nhưng thầy bảo làm như vậy,khi người dùng có nhập hơn giá trị thì sẽ tự động thay đổi cho đúng với qui tắc.
    A giải thích giúp E cái code trên đi,mấy dòng chưa hiểu?
    Thanks!

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

    giải thích rùi đó bác chỗ nào không hiểu thì bác nói rõ lun nha

  10. #10
    Ngày gia nhập
    08 2008
    Bài viết
    5

    Cám ơn Bác nhé.E hiểu rùi

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

  1. Chương trình xây dựng bảng số nguyên tố trong compile-time bằng template - cách giảm thời gian biên dịch ?
    Gửi bởi boss14420 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 5
    Bài viết cuối: 06-10-2013, 01:45 AM
  2. Time Stopper 3.12 - Kéo dài thời gian dùng thử phần mềm
    Gửi bởi chjentha11 trong diễn đàn Software (Phần mềm) | Ebooks
    Trả lời: 0
    Bài viết cuối: 20-09-2011, 07:41 PM
  3. Lớp Time in ra thời gian chạy không tốt - Cách khắc phục
    Gửi bởi Cpro trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 10
    Bài viết cuối: 20-02-2009, 07:39 PM
  4. Lớp Time in ra thời gian chạy không tốt - Cách khắc phục
    Gửi bởi Cpro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 10
    Bài viết cuối: 20-02-2009, 07:39 PM
  5. Dùng time kết hợp date/time/year để auto...
    Gửi bởi luboquanvu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 33
    Bài viết cuối: 13-12-2008, 10:58 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