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ố 13 kết quả

Đề tài: Tạo danh sách sản phẩm bằng liến kết đơn

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

    Mặc định Tạo danh sách sản phẩm bằng liến kết đơn

    Em có tạo 1 danh sách liên kết đơn để quản lí sản phẩm nhưng không hiểu sao khi xuất ra nó chỉ có giá trị là 0.Mong anh chị giúp em
    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    struct sanpham
    {
        
    char ten[20];
        
    float gia;    
    };
    typedef struct sanpham sp;
    typedef struct node
    {
        
    sp info;
        
    struct node *pNext;
    }
    NODE;
    typedef struct list
    {
        
    NODE *pHead;
            
    NODE *pTail;
    }LIST;
    void Init(LIST &l)
    {
        
    l.pHead=NULL;
            
    l.pTail=NULL;
    }
    NODE *getNODE(sp x)
    {
        
    NODE *p=new NODE;
        if(
    p==NULL) return NULL;
        
    p->info=x;
        
    p->pNext=NULL;
        return 
    p;
    }
    void Addhead(LIST &l,NODE *p)
    {
        if(
    l.pHead==NULL)
            
    l.pHead=l.pTail=p;
        else
        {
            
    p->pNext=l.pHead;
            
    l.pHead=p;
        }        
    }
    void nhap(sp &x)
    {
        
    flushall();
            
    float t;
        
    printf("nhap ten sp:");gets(x.ten);
        
    printf("nhap gia:");scanf("%f",&t);
            
    t=x.gia;
    }
    void Input(LIST &l)
    {
        
    sp x;
        
    int n;
        
    printf("nhap so sp:");scanf("%d",&n);
        for(
    int i=0;i<n;i++)
        {
            
    nhap(x);
            
    NODE *p=getNODE(x);
        
            if(
    p!=NULL)
                        
    Addhead(l,p);
        }
    }
    void Output(LIST l)
    {
        
    int i=1;
        
    NODE *p=l.pHead;
        while(
    p!=NULL)
        {
            
    printf("%c %f\n",p->info);
                    
    p=p->pNext;
        }
    }
    void main()
    {
        
    clrscr();
        LIST 
    l;
        
    Input(l);
        
    Output(l);
            
    getch();


  2. #2
    Ngày gia nhập
    02 2010
    Bài viết
    113

    Trích dẫn Nguyên bản được gửi bởi nhocpro913 Xem bài viết
    Em có tạo 1 danh sách liên kết đơn để quản lí sản phẩm nhưng không hiểu sao khi xuất ra nó chỉ có giá trị là 0.Mong anh chị giúp em
    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    struct sanpham
    {
        
    char ten[20];
        
    float gia;    
    };
    typedef struct sanpham sp;
    typedef struct node
    {
        
    sp info;
        
    struct node *pNext;
    }
    NODE;
    typedef struct list
    {
        
    NODE *pHead;
            
    NODE *pTail;
    }LIST;
    void Init(LIST &l)
    {
        
    l.pHead=NULL;
            
    l.pTail=NULL;
    }
    NODE *getNODE(sp x)
    {
        
    NODE *p=new NODE;
        if(
    p==NULL) return NULL;
        
    p->info=x;
        
    p->pNext=NULL;
        return 
    p;
    }
    void Addhead(LIST &l,NODE *p)
    {
        if(
    l.pHead==NULL)
            
    l.pHead=l.pTail=p;
        else
        {
            
    p->pNext=l.pHead;
            
    l.pHead=p;
        }        
    }
    void nhap(sp &x)
    {
        
    flushall();
            
    float t;
        
    printf("nhap ten sp:");gets(x.ten);
        
    printf("nhap gia:");scanf("%f",&t);
            
    t=x.gia;
    }
    void Input(LIST &l)
    {
        
    sp x;
        
    int n;
        
    printf("nhap so sp:");scanf("%d",&n);
        for(
    int i=0;i<n;i++)
        {
            
    nhap(x);
            
    NODE *p=getNODE(x);
        
            if(
    p!=NULL)
                        
    Addhead(l,p);
        }
    }
    void Output(LIST l)
    {
        
    int i=1;
        
    NODE *p=l.pHead;
        while(
    p!=NULL)
        {
            
    printf("%c %f\n",p->info);
                    
    p=p->pNext;
        }
    }
    void main()
    {
        
    clrscr();
        LIST 
    l;
        
    Input(l);
        
    Output(l);
            
    getch();

    viết hàm xuất 1 sản phẩm...
    rồi sao đó trong hàm output gọi nó ra....!!!!

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

    em bổ sung thêm bạn làm thêm cái hàm hủy nút đi, đề phòng việc memory leak, tại mình thấy nhiều bạn lên hỏi là bài thì chạy đúng chạy xong thì máy rơi vào trạng thái lag. Mặc dù hệ điều hành có thể tự thu hồi tuy nhiên an toàn nên cho một hàm hủy.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

  4. #4
    Ngày gia nhập
    02 2010
    Bài viết
    113

    Trích dẫn Nguyên bản được gửi bởi kimcy1992 Xem bài viết
    em bổ sung thêm bạn làm thêm cái hàm hủy nút đi, đề phòng việc memory leak, tại mình thấy nhiều bạn lên hỏi là bài thì chạy đúng chạy xong thì máy rơi vào trạng thái lag. Mặc dù hệ điều hành có thể tự thu hồi tuy nhiên an toàn nên cho một hàm hủy.
    câu cuối có nhầm hok kimcy1992
    cái này cấp phát động nên nhất thiết là phải cần...
    chủ topic qua bên bài con trỏ của anh langman xem về cái nỳ!!!
    đến giờ út vẫn còn koi!!!!

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Trích dẫn Nguyên bản được gửi bởi kimcy1992 Xem bài viết
    em bổ sung thêm bạn làm thêm cái hàm hủy nút đi, đề phòng việc memory leak, tại mình thấy nhiều bạn lên hỏi là bài thì chạy đúng chạy xong thì máy rơi vào trạng thái lag. Mặc dù hệ điều hành có thể tự thu hồi tuy nhiên an toàn nên cho một hàm hủy.
    đừng nhầm như thế, os có chức năng này,

    có thể cái em nhìn thấy chỉ là trên windows downloadable app, à nó to, nó chạy trên nền tảng tốt thì nó thêm smart vào được, quản lý thu hồi, nhưng thử nghĩ xem, nếu em làm việc trên box, robotic hoặc phone, hoặc otheros điều này có ko?

    đối với những ứng dụng mức native thì ko có đâu ku à.....

    ngó qua code này nhé : http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
    code của ms nó cũng có : // Free the memory when finished with it

    Tại sao và ntn thì vấn đề (memory management) là 1 vấn đề ko hề nhỏ, nó là 1 hệ tư tưởng khá lớn đấy, hiểu sơ bộ cũng hơi mệt đấy. Nói chung là code có malloc mà ko free thì có đẹp mấy cũng vất thôi.
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Mặc định Tạo danh sách sản phẩm bằng liến kết đơn

    Trích dẫn Nguyên bản được gửi bởi utkunglt Xem bài viết
    câu cuối có nhầm hok kimcy1992
    cái này cấp phát động nên nhất thiết là phải cần...
    + lâu rồi ko gặp út, út dạo này thế nào rồi, đã ra trường chưa ??
    + chuẩn luôn malloc là phải free
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  7. #7
    Ngày gia nhập
    02 2010
    Bài viết
    113

    Trích dẫn Nguyên bản được gửi bởi langman Xem bài viết
    + lâu rồi ko gặp út, út dạo này thế nào rồi, đã ra trường chưa ??
    + chuẩn luôn malloc là phải free
    zới lại chủ topic xem lại hàm nhập ngen!!! koi sơ thấy lạ lạ ngay cái phép gán nỳ:
    C Code:
    1. t=x.gia;
    p/s: dạ em mới vừa thi liên thông xong anh!!! đậu rầu!!!hihi
    đang tiếp tục bò lếch đây anh !!!

  8. #8
    Ngày gia nhập
    11 2012
    Bài viết
    136

    Nguyên bản được gửi bởi utkunglt
    câu cuối có nhầm hok kimcy1992
    cái này cấp phát động nên nhất thiết là phải cần...
    Em cảm ơn hai anh nhé, chắc hôm mà em đọc phần giải thích giải phóng chính quyền mà anh langman đưa ra về hệ điều hành cũ chắc em hiểu nhầm là mới có. hiii cảm ơn cái link của anh đưa nhiều đúng là vấn đề quá lớn luôn.
    @utkunglt cho em hỏi thi liên thông khó không anh em định học hết năm sau nữa không liên thông nhưng mà nhà bảo liên thông, giờ em chả biết có hay không nữa hì nhà mất mạng mấy hôm mới giờ mới có xong mà cấp phát bằng new cái câu này là vô nghĩa thì phải if(p==NULL) hôm trước em viết vậy có bạn kimlama nhắc và đưa cái link mới để ý thấy http://en.cppreference.com/w/cpp/mem...w/operator_new
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

  9. #9
    Ngày gia nhập
    02 2010
    Bài viết
    113

    Trích dẫn Nguyên bản được gửi bởi kimcy1992 Xem bài viết
    mà cấp phát bằng new cái câu này là vô nghĩa thì phải if(p==NULL)
    C++ Code:
    1. NODE *p=new NODE;
    2. if(p==NULL)
    3.            return NULL;
    nó không có vô nghĩa đâu em!!! nó dùng để kiểm tra có thể cấp phát được ko?(trong trường hợp không đủ bộ nhớ chẳng hạn), y như các thao tác trên danh sách, thì ta luôn kiểm tra xem danh sách mà ta đang làm việc có rỗng hay không vậy!!! cẩn thận vẫn tốt hơn!!!

  10. #10
    Ngày gia nhập
    11 2012
    Bài viết
    136

    em đang đọc bản offline của trang này thấy nó cũng phân ra lắm loại lắm anh ạ, chắc phải nghiên cứu giờ tạm đó đã thi xong em lại học, mai cố cấu trúc dữ liệu là ok rồi mà lại hơi dốt khoản này hiii.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

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

  1. Bài tập C++ Lỗi bài tập danh sách liên liết đơn
    Gửi bởi ngoctuanqt trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 27-11-2014, 03:30 PM
  2. Trả lời: 5
    Bài viết cuối: 13-12-2012, 02:54 PM
  3. Tìm một phần tử có trong danh sách và thêm vào một phần tử mới ngay sau đó
    Gửi bởi nhantqt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 22-04-2010, 11:35 PM
  4. chèn phần từ vảo một danh sách có thứ tự?
    Gửi bởi diur trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 09-04-2010, 08:39 PM
  5. DSLK | Danh sách liên kết trên C| Xoá phần tử ở sau phần tử q
    Gửi bởi 7261819 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 17
    Bài viết cuối: 24-06-2009, 05:48 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