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

Đề tài: em có 1 bài về cơ chế hoạt động của queue.các anh chị xem giúp e nhé!

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

    Mặc định em có 1 bài về cơ chế hoạt động của queue.các anh chị xem giúp e nhé!

    Code:
    #include<iostream.h>
    #include<string.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<ctype.h>
    const Max = 100;
    class queue
    {
          private:
    		  int front,rear; //dau va cuoi queue
    		  int nodes[Max];
          public:
    		  queue()   // cau tu khoi dong queue
    		  {
    			  front = 0;
    			  rear = -1;
    		  }
    		  void xuat();
    		  int empty();  // kiem tra queue bi rong khong
    		  int full();   // kiem tra queue co bi day chua
    		  int insert(); // them mot nut vao cuoi queue
    		  int remove(); // xoa nut o dau queue
    		  int queuesize(); // xac dinh so nut co trong queue
    };
    int queue::queuesize()
    {
        return(rear - front + 1);
    }
    int queue::empty()
    {       int kq;
    	if (rear<front) kq=1;
    	else kq=0;
    	return (kq);
    }
    int queue::full()
    {
    	int  kq;
        if (rear == (Max-1)) kq=1;
    	else kq=0 ;
    	return(kq);
    }
    int queue::insert()
    {        int x;
    	 cout<<"\n Nhap phan tu can them vao queue ";
    	 cin>>x;
    	 if(full()) cout<<endl<<"queue bi day ";
    	 else
    	  return (nodes[++rear]=x);
    }
    int queue::remove()
    {
           if(empty())
           cout<<endl<<"\n queue bi rong khong the lay ra them phan tu nao";
           else
    	return nodes[front++];
    }       
    void queue::xuat()
    {
       for(int i=rear;i>=front;i--)
         cout<<"   "<<nodes[i];
    }
    
    void menu()
    {
      cout<<"\n An (t/T) them phan tu vao queue ";
      cout<<"\n An (l/L) lay phan tu ra khoi queue ";
      cout<<"\n An (x/X) xuat cac phan tu con lai cua queue ";
      cout<<"\n An (q/Q) de thoat ra ";
    }
    int main()
    {
       queue a;
       clrscr();
       menu();
       while(1)
        {
          switch(toupper(getch()))
    	{
    	  case 't':
    	  case 'T':
    
    		   cout<<"\n Phan tu "<<a.insert()<<" them vao thanh cong\n";
    		   menu();
    		   break;
    	  case 'l':
    	  case 'L':if(!a.empty())
    		   cout<<"\n Phan tu "<<a.remove()<<" duoc lay ra thanh cong\n ";
    		   else cout<<"\n queue bi rong khong the lay ra them phan tu nao \n ";
    		   menu();
    		   break;
    	  case 'x':
    	  case 'X':if(!a.empty())
    		   cout<<"\n Phan tu con lai la : ";
    		   else
    		   cout<<"\n queue bi rong";
                       a.xuat();
    		   menu();
    		   break;
    	  case 'q':
    	  case 'Q':cout<<"\n Ban da thoat ra thanh cong ";
    		   goto tt;
    	}
         }
        tt:getch();
    }
    chuong_gio

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Bạn post bài thế này thì biết giúp bạn thế nào?
    Bạn hỏi về gì? Lỗi hay tối ưu?....
    Không biết ghi gì luôn ...

  3. #3
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    C++ Code:
    1. #include<iostream>
    2. const int MaxQueue = 100;
    3.  
    4. //free-standing function
    5. namespace r2{
    6.   void clrscr(){
    7.     std::cout << "\033[2J\033[1;1f" << std::flush;
    8.   }
    9.   void menu(std::ostream& oss){
    10.     oss << "\n An (t/T) them phan tu vao queue ";
    11.     oss << "\n An (l/L) lay phan tu ra khoi queue ";
    12.     oss << "\n An (x/X) xuat cac phan tu con lai cua queue ";
    13.     oss << "\n An (q/Q) de thoat ra ";
    14.   }
    15. }
    16.  
    17. class queue{
    18. private:
    19.   int front,rear; //dau va cuoi queue
    20.   int nodes[MaxQueue];
    21. public:
    22.   queue():front(0), rear(-1){
    23.   }  
    24.   void xuat(std::ostream& ) const;
    25.   bool empty() const;  // kiem tra queue bi rong khong
    26.   bool full() const;   // kiem tra queue co bi day chua
    27.          
    28.   void insert(); // them mot nut vao cuoi queue
    29.   void remove(); // xoa nut o dau queue
    30.   int queuesize() const; // xac dinh so nut co trong queue
    31. };
    32.  
    33. int queue::queuesize() const{
    34.     return(rear - front + 1);
    35. }
    36.  
    37. bool queue::empty() const{
    38.   return rear < front;      
    39. }
    40.  
    41. bool queue::full() const{
    42.   return front == MaxQueue - 1;
    43. }
    44.  
    45. void queue::insert(){        
    46.   if(full())
    47.     std::cout<<"It's full...\n";
    48.   else{
    49.     int item;
    50.     std::cout << "Enter items :";
    51.     std::cin >> item;
    52.     nodes[++rear] = item;
    53.   }
    54.   std::cin.ignore(80, '\n');
    55. }
    56.  
    57. void queue::remove(){
    58.   if(empty())
    59.     std::cout << "\n queue bi rong khong the lay ra them phan tu nao";
    60.   else
    61.     nodes[front++];
    62. }
    63.        
    64. void queue::xuat(std::ostream& oss) const{
    65.   if(empty())
    66.     std::cout << "Nothing to show.\n";
    67.   else{
    68.     for(int x = rear; x >= front; --x)
    69.       oss << "   "<< nodes[x];
    70.   }
    71. }
    72.  
    73. int main(){
    74.   queue a_queue;
    75.   char user_answer;
    76.  
    77.   do{
    78.     r2::menu(std::cout);
    79.     std::cin >> user_answer;
    80.     switch(user_answer)
    81.     {
    82.       case 't':
    83.       case 'T':
    84.         a_queue.insert();
    85.         break;
    86.       case 'l':
    87.       case 'L':
    88.         a_queue.remove();
    89.         break;
    90.       case 'x':
    91.       case 'X':
    92.         a_queue.xuat(std::cout);
    93.         break;
    94.       case 'q':
    95.       case 'Q':
    96.         user_answer = 'q';
    97.       default :
    98.         std::cout << "Invalid option.\n";
    99.         break;
    100.     }
    101.     r2::clrscr();
    102.   }while(user_answer != 'q');
    103.    
    104.   return 0;
    105. }
    Cái menu driver viết búa xua, 1 số hàm không chạm vào thuộc tính thì gán cho nó const liền.

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

    em cảm ơn!anh chị xem giúp e với đề đó thì làm như vậy có đc k?anh,chị có thể làm bài này giúp em sử dụng con trỏ trong class đc k ạ?
    chuong_gio

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    em cảm ơn!anh chị xem giúp e với đề đó thì làm như vậy có đc k?anh,chị có thể làm bài này giúp em sử dụng con trỏ trong class đc k ạ?
    Con trỏ là sao, cấp phát động cho mãng lúc run-time à ? Give more information please !

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

    Mặc định em có 1 bài về cơ chế hoạt động của queue.các anh chị xem giúp e nhé!

    trong queue có 2 con trỏ là f và r trỏ tới 2 đầu của queue.khi thêm 1 phần tử vào queue sẽ thực hiện thêm vào cuối queue,khi đó con trỏ r sẽ trỏ tới vị trí của phần tử mới tức là r tăng.khi loại bỏ 1 ptu trong queue cũng vậy,f cũng sẽ tăng lên.e k hiểu lắm về con trỏ nên mong các a chị làm giúp e đề tài này sử dụng con trỏ,trong class thì càng tốt.e cảm ơn!
    chuong_gio

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

  1. Làm sao tạo phần mềm bắt buộc có đĩa CD hoặc CD ảo mới chạy.
    Gửi bởi binhdt35 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 11-11-2012, 01:35 PM
  2. Bài tập stack & queue ai giúp với
    Gửi bởi conglam92 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 17-03-2012, 10:37 PM
  3. Lập trình C Cơ chế hoạt động của hàm con trỏ
    Gửi bởi pen_abramovic trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 27-10-2011, 10:55 PM
  4. Lập trình C giúp em về bài mô phỏng hoạt động máy ATM với
    Gửi bởi cherlevo trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 22-09-2011, 09:57 PM
  5. "Cơ chế hoạt động gửi nhận Web (Http)". Giúp mình tìm hiểu
    Gửi bởi HappyBunny trong diễn đàn Thắc mắc chung
    Trả lời: 1
    Bài viết cuối: 01-06-2010, 09:54 AM

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