CNTT4A2 COMMUNITY

Thảo luận học tập


You are not connected. Please login or register

Go downThông điệp [Trang 1 trong tổng số 1 trang]

20/2/2012, 5:26 pm
whatsltd4us
whatsltd4us

Code:

  #include <iostream.h>
  #include <stdio.h>

   struct  hs
                {
                      char  ht [30] ;
                      int    ns ;
                  }; 
   
   typedef  struct    node
                  {
                      hs    info ;
                       node    *next ;
                      node    *prev; 
                  };

            struct  List
                {
                       node  *head ;
         node  *tail ;
                  };
// Kh?i t?o danh sách r?ng
   void  CreatList(List & L)
      {
         L.head = NULL ;
        L.tail = NULL ;
        }
   node *  new_ele =  NULL;

 
// Nh?p thông tin cho 1 ph?n t?
  node*  _input ()
     {
        node * q = new  node ;
        cout<< "\nHo ten : " ;
        fflush  (stdin) ;
        gets ( q -> info.ht ) ;
        cout<< "Nhap nam sinh : " ;
        cin>> q -> info.ns ;
        q -> next = q -> prev = NULL ;
        return q ;
      }

//  B? sung 1 ph?n t? vào cu?i danh sách
    void  AddTail  (List & L )
       {
          new_ele = _input () ;  // Nh?p thông tin c?a ph?n t? m?i
          if ( L.head == NULL ) // Ki?m tra danh sách r?ng
             {
                   //N?u ds r?ng thì
   //head = new_ele;
   //tail = head;
    L.head = L.tail = new_ele ;
              }
            else
            {
   //Ngu?c l?i
   //tail = new_ele->prev;
   //tail->next = new_ele;
   //tail = new_ele;
                 new_ele -> prev = L.tail ;
                L.tail -> next = new_ele;               
                 L.tail = new_ele;
              }
         }
 // In ra danh sách h?c sinh có nam sinh t? 1980 tr? v? dây

 void  Process  ( List  L )
        {
            node * p = L.head  ; // con tr? p tr? t?i ph?n t? d?u tiên c?a danh sách
            if  ( L.head == NULL ) //Ki?m tra danh sách r?ng
               cout<< "\nDanh sach rong !!! " ;
               cout<<"\n\n============================================\n";
               cout<< "\nDanh sach nhung nguoi sinh sau nam 1980 : \n  " ;
            while ( p -> next != NULL )
              {
                   if ( p -> info.ns > 1980 )
   //Trong khi (p!=NULL)& ( p -> info.ns > 1980 )
   //Th?c hi?n:
   //Xu?t ra thông tin p
   //p = p->next;
                    {
                        cout<<"\nHo ten : "<<p ->info.ht ;
         cout<<"\nNam sinh :"<<p->info.ns;
         cout<<"\n";
                       }
    p = p->next;
                  }
             }
//Xóa  thông tin h?c sinh cu?i danh sách
  void  DelTail  ( List  & L )
     {
        node *  p ;
        if  ( L.tail != NULL ) // N?u danh sách khác r?ng
          {
             L.tail = p ; //p là ph?n t? c?n h?y
   //Tách p ra kh?i xâu
                L.tail = L.tail -> prev ;
   L.tail -> next = NULL ;
             delete  p ; //H?y bi?n do p tr? d?n
             if ( L.head == NULL )
   //N?u nút d?u là r?ng thì nút cu?i r?ng
                   L.tail = NULL ;
             else
   //ngu?c l?i head->prev = NULL;
                  L.head -> prev = NULL ;
        }
        }

void main ()
       {
           List  L ;
           CreatList(L) ;
           int  t = 1 ;
           cout<<"\nThem 1 phan tu vao cuoi danh sach ";
           while  ( t ==1 )
              {
                   AddTail  ( L) ;
                   cout<< "Tiep tuc nhap ? ( 1 / 0 ) : " ;
                   cin>> t ;
                }
           Process( L ) ;
        }





http://vdvinh-nd.blogspot.com

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà whatsltd4us
20/2/2012, 10:28 pm
sir.wind
sir.wind

lỗi font rùi anh

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà sir.wind
21/2/2012, 8:20 pm
kienhl
kienhl

Đây là code chỉnh sửa theo cin.getline() nhé!
Chèn thêm thư viện #include<iomanip.h>
Thêm dòng lệnh cin.ignore() trước cin.getline()
Code:
#include <iostream.h>
   #include <stdio.h>
   #include <iomanip.h>

  struct  hs
                {
                      char  ht [30] ;
                      int    ns ;
                  }; 
 
  typedef  struct    node
                  {
                       hs    info ;
                      node    *next ;
                      node    *prev; 
                  };

            struct  List
                {
                      node  *head ;
          node  *tail ;
                  };
// Kh?i t?o danh sách r?ng
  void  CreatList(List & L)
      {
        L.head = NULL ;
        L.tail = NULL ;
        }
  node *  new_ele =  NULL;

 
// Nh?p thông tin cho 1 ph?n t?
  node*  _input ()
    {
        node * q = new  node ;
        cout<< "\nHo ten : " ;
        //fflush  (stdin) ;
        cin.ignore();
        cin.getline(q -> info.ht,30) ;
        cout<< "Nhap nam sinh : " ;
        cin>> q -> info.ns ;
        q -> next = q -> prev = NULL ;
        return q ;
      }

//  B? sung 1 ph?n t? vào cu?i danh sách
    void  AddTail  (List & L )
      {
          new_ele = _input () ;  // Nh?p thông tin c?a ph?n t? m?i
          if ( L.head == NULL ) // Ki?m tra danh sách r?ng
            {
                    //N?u ds r?ng thì
  //head = new_ele;
  //tail = head;
    L.head = L.tail = new_ele ;
              }
            else
            {
  //Ngu?c l?i
  //tail = new_ele->prev;
  //tail->next = new_ele;
  //tail = new_ele;
                new_ele -> prev = L.tail ;
                L.tail -> next = new_ele;               
                L.tail = new_ele;
              }
        }
 // In ra danh sách h?c sinh có nam sinh t? 1980 tr? v? dây

 void  Process  ( List  L )
        {
            node * p = L.head  ; // con tr? p tr? t?i ph?n t? d?u tiên c?a danh sách
            if  ( L.head == NULL ) //Ki?m tra danh sách r?ng
              cout<< "\nDanh sach rong !!! " ;
              cout<<"\n\n============================================\n";
              cout<< "\nDanh sach nhung nguoi sinh sau nam 1980 : \n  " ;
            while ( p -> next != NULL )
              {
                  if ( p -> info.ns > 1980 )
  //Trong khi (p!=NULL)& ( p -> info.ns > 1980 )
  //Th?c hi?n:
  //Xu?t ra thông tin p
  //p = p->next;
                    {
                        cout<<"\nHo ten : "<<p ->info.ht ;
        cout<<"\nNam sinh :"<<p->info.ns;
        cout<<"\n";
                      }
    p = p->next;
                  }
            }
//Xóa  thông tin h?c sinh cu?i danh sách
  void  DelTail  ( List  & L )
    {
        node *  p ;
        if  ( L.tail != NULL ) // N?u danh sách khác r?ng
          {
            L.tail = p ; //p là ph?n t? c?n h?y
  //Tách p ra kh?i xâu
                L.tail = L.tail -> prev ;
  L.tail -> next = NULL ;
            delete  p ; //H?y bi?n do p tr? d?n
            if ( L.head == NULL )
  //N?u nút d?u là r?ng thì nút cu?i r?ng
                  L.tail = NULL ;
            else
  //ngu?c l?i head->prev = NULL;
                  L.head -> prev = NULL ;
        }
        }

void main ()
      {
          List  L ;
          CreatList(L) ;
          int  t = 1 ;
          cout<<"\nThem 1 phan tu vao cuoi danh sach ";
          while  ( t ==1 )
              {
                  AddTail  ( L) ;
                  cout<< "Tiep tuc nhap ? ( 1 / 0 ) : " ;
                  cin>> t ;
                }
          Process( L ) ;
        }
http://tin4a2uneti.tk

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà kienhl
21/2/2012, 8:51 pm
smileofthedevil
smileofthedevil

Đồng chí Kiên xem lại code đồng chí sửa với. Nói chạy không dừng được. Của anh Vinh OK

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà smileofthedevil
21/2/2012, 9:39 pm
whatsltd4us
whatsltd4us

Các bạn tham khảo :
[You must be registered and logged in to see this link.]
http://vdvinh-nd.blogspot.com

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà whatsltd4us
21/2/2012, 11:30 pm
kienhl
kienhl

smileofthedevil đã viết:Đồng chí Kiên xem lại code đồng chí sửa với. Nói chạy không dừng được. Của anh Vinh OK
hẻ 06 máy mình chạy ngon mà, chú chạy kiểu gì mà nó không dừng được!
http://tin4a2uneti.tk

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà kienhl

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà Sponsored content

Về Đầu TrangThông điệp [Trang 1 trong tổng số 1 trang]

« Xem bài trước | Xem bài kế tiếp »

Bài viết mới cùng chuyên mục

    Bài viết liên quan với Danh sách liên kết kép

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

      Bạn không có quyền trả lời bài viết