Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 3 trên tổng số 3 Đầu tiênĐầu tiên 123
Từ 21 tới 27 trên tổng số 27 kết quả

Đề tài: Bảng Băm ứng dụng Từ Điển (phương pháp kết nôi trực tiếp)

  1. #21
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    Mặc định Bảng Băm ứng dụng Từ Điển (phương pháp kết nôi trực tiếp)

    Hix, pó tay, trước khi đọc data phải check file có tồn tại không , nếu không thì tạo file dữ liệu không có từ nào (new file) , còn ghi thế nào mà cũng không biết thì chịu rồi , biết định dạng , không biết tạo file thì làm ăn gì :(
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  2. #22
    Ngày gia nhập
    01 2008
    Bài viết
    20

    Mình biết tao cũng như ghi file bạn à, nhưng hiện mình đang làm theo cái từ điển mà mình download dc. Mình sẽ post cái từ điển của mình lên cho bạn xem code ròi trả lời mình sau. Mình cũng xin nói rõ vấn đề hiện tai là: khi người dùng xóa file dict thì chạy chương trình sẽ không tìm thấy dữ liệu, đáng lí ra trong cái từ điển này khi người dùng xóa file thì nó phải tự tao nên file mới hoặc cho dù có file đi nữa thì khi chạy chương trình nó cũng có thể ghi đè dc. Mình xem hoài mà không hiểu lí do tại sao ? nếu như theo đúng code thì khi load dict lên
    strcpy(index,DIR);
    strcpy(dict,DIR);
    sẽ copy hai file này vào dict nếu chọn tiếp tục '1'
    case '1': strcat(index,"thuatngu.idx\0");
    strcat(dict,"thuatngu.dict\0");
    thì sẽ cộng 2 file index vào thuatngu.idx và dict vào thuatngu.dict thì lúc đó ta đã có dc file dữ liệu nhưng mình nhìn thì thấy code này không có

    FILE*f;
    f=fopen("dict","wt"); và
    f=fopen("index","wb"); mình nghĩ là thiếu chỗ đó nhưng khi mình thêm vào thì nó tạo ra dc file dict và file index nhưng khi mình xóa dữ liệu đi chạy chương trình vẩn báo không tìm thấy dữ liệu, bạn thấy cách hiểu của mình có đúng hay không ? nêu sai thì mong bạn giúp mình: file dữ liệu đó dc tạo như thế nào ? thanks bạn nhiều
    Attached Files Attached Files

  3. #23
    Ngày gia nhập
    01 2008
    Bài viết
    20

    Mong các bạn trả lời gấp cho mình vấn đè này, Mình xin cảm ơn nhiều.

  4. #24
    Ngày gia nhập
    01 2008
    Bài viết
    20

    Tối nay nộp bài rồi sáng sớm mai báo cáo, mong các bạn xem giúp mình vấn đề này đi ạ. đang rất gấp !!!!!!!!!!!!!!!!!!!!!

  5. #25
    Ngày gia nhập
    04 2011
    Bài viết
    2

    Mặc định viết lại code bằng c

    Trích dẫn Nguyên bản được gửi bởi iamvtn Xem bài viết
    Link Download Code(box.net)

    Bảng băm ứng dụng từ điển (phương pháp kết nối trực tiếp giải quyết sung đột bằng DSLK đơn) Cài đặt bằng C++.
    Rất mong sự góp ý của bác pro.
    PHP Code:
    /*Program Ung dung bang bam (phuong phap ket noi truc tiep)
     lam Tu Dien cai dat bang C++ (giai quyet sung dot bang DSLK don)
     ·  Date: 22/2/2008
    -------------------------------------------------------------------------
    VU THANH NAM - CONG NGHE THANG LONG
    MA SV: A0707
    Email: iamvtn@gmail.com
    Y!M  : iamvtn
    Skype: iamvtn
    Copyright (C) 2008 iamvtn - All Rights Reserved
    Debug by Borland C++ 5.02
    *************************************************************************
    */
    #include <iostream.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <cstring.h>
    #include <stdio.h>
    #define M 26  // so Buckets

    class Dictionary;
    class 
    Node  // lop node
    {
          private:
           
    char word[100];  // truong word la mot tu tieng anh
          
    char mean[100];  // truong mean la nghia cua tu
          
    Node *next;      // truong next chi nut tiep theo khi nut bi xung dot
       
    public:
           
    Node();
          
    Node (Node *k);
          
    Node(char nword[],char nmean[]);
          
    Node(char nWord[]);
          
    void displayWord();
          
    void displayMeaning();
          
    void Input();
       
    friend class Dictionary;
    };

    void Node::Input()             // Ham nhap tu va nghia cho Node
    {
        
    cout<<"\nInput word: ";
        
    gets(word);
        
    cout<<"Mean: ";
        
    gets(mean);
    };

    void Node::displayWord()
    {
        
    cout<<"\n\t\tWord:"<<word;
    }

    void Node::displayMeaning()
    {
        
    cout<<"\t\tMean:"<<mean;
    }

    Node::Node(char nWord[])
    {
        
    strcpy(word,nWord);
        
    next=NULL;
    }

    Node::Node(char nword[],char nmean[])
    {
        for(
    int i 0;100i++)
        {
            
    word[i] = '\0';
            
    mean[i] = '\0';
        }
        
    strcpy(word,nword);
        
    strcpy(mean,nmean);
        
    next NULL;
    }

    Node::Node()
    {
        for(
    int i 0;100i++)
        {
            
    word[i] = '\0';
            
    mean[i] = '\0';
        }
       
    next NULL;
    };

    Node::Node(Node *k)
    {
        for(
    int i 0;100i++)
        {
            
    word[i] = '\0';
            
    mean[i] = '\0';
        }
         
    strcpy(word,k->word);
            
    strcpy(mean,k->mean);
            
    next NULL;
    }

    class 
    Dictionary   /////////////////////////////////////////////////// lop tu dien
    {
       private:
          
    Node *Bucket[M]; // Mang cac bucket
       
    public:
          
    Dictionary();

          
    bool Isempty();                         // Kiem tra xem bang bam co rong khong

          
    int  HashFunc(char c);                         // Ham bam

          
    void Insert(char nWord[],char nMean[]); // Ham nay de chen ca word va mean vao bang bam
          
    void Insert (Node *k);                         // Ham nay de chen khoa k vao bang bam
          
    void Place (int bNode *k);                // Ham nay de chen Node k vao bucket thu b

         
    void FindNode(int key,Node *k);           // Tim theo key
          
    void Find(char word[]);                  // Tim theo tu

          
    void DeleteNode(int keyNode *k);       // Xoa theo key
          
    void Delete(char word[]);                // Xoa theo tu

          
    void Display();                                 // Duyet toan bo bucket
    };

    bool Dictionary::Isempty()
    {
        
    int dem 0;
        for(
    int i 0;M;i++)
       {
            if(
    Bucket[i] != NULL)
              
    dem ++;
       }
       if(
    dem == 0)
           return 
    true;
       else
           return 
    false;
    }

    Dictionary::Dictionary()
    {
        for(
    int i 0;M;++)
        {
            
    Bucket[i] = 0;
        }
    }

    void Dictionary::DeleteNode(int key,Node *k)    // Xoa theo key
    {
       
    Node *temp Bucket[key];
       
    Node *node Bucket[key];
       if(
    node == NULL)
       {
           
    cout<<"Khong co tu nay ";
       }
       else
       {
          if(
    strcmpi(Bucket[key]->word,k->word)==0)
           {
               
    Bucket[key] = Bucket[key]->next;
           }
           while(
    temp != NULL)
           {
                if(
    strcmpi(temp->word,k->word) == 0)
                 break;
                      
    node temp;
                      
    temp temp->next;
          }
          if(
    temp != NULL)
          {
              
    node->next temp->next;
             
    node NULL;
               
    delete node;
              
    temp->next NULL;
              
    delete temp;
          }
          else
              
    cout<<"Khong co tu nay ";
       }
    }

    void Dictionary::Delete(char nWord[])              // Xoa theo tu
    {
        if(
    Isempty() == true)
           
    cout<<"\nTu Dien rong \n";
        
    int t HashFunc(nWord[0]);
            
    Node temp = new Node(nWord);
            
    DeleteNode(t,temp);
    }

    void Dictionary::FindNode(int key,Node newnode)       // Tim theo Node
    {
           if(
    Bucket[key]==NULL)
          {
                 
    cout<<"Khong co tu nay!"<<endl;
          }
          else
          {
              
    Node temp Bucket[key];
              
    int d 0;
              while(
    temp!=NULL)
              {
                  if(
    strcmpi(temp->word,newnode->word) == 0)
                  {
                      
    temp->displayWord();
                      
    temp->displayMeaning();
                            
    d++;
                  }
                  
    temp=temp->next;
              }
              if (
    == 0)
              {
                  
    cout<<endl<<"Khong co tu nay!"<<endl;
              }
          }
    };

    void Dictionary::Find(char nWord[])            // Tim theo tu
    {
        if(
    Isempty())
        
    cout<<"\nTu Dien rong: \n";
        
    int t HashFunc(nWord[0]);
            
    Node temp = new Node(nWord);
            
    FindNode(t,temp);
    };

    int Dictionary::HashFunc(char c)    // Ham bam (neu ky tu la a thi tra ve 0 ..... z thi tra ve 25)
    {
        
    int a=c;
        if (
    >= 97)       // su dung bang ma ASCII
            
    32;
        return (
    65);
    };


    void Dictionary::Place(int bNode *k)  // Ham nay de chen Node k vao bucket thu b
    {
       if (
    Bucket[b] == 0)
       {
           
    Bucket[b] = k;
       }
       else
       {
           
    Node temp Bucket[b];
           while (
    temp->next != NULL)
           {
               
    temp temp->next;
           }
           
    temp->next k;
       }
    };

    void Dictionary::Insert(char nWord[],char nMean[])   // Ham insert nghia va tu vao bucket
    {
        
    Node newNode = new Node(nWord,nMean);
        
    int t HashFunc(nWord[0]);
        
    Place(t,newNode);
    };

    void Dictionary::Insert(Node *k)         // Ham insert mot Node vao bucket
    {
          
    int b ;
            
    HashFunc(k->word[0]);
            
    Place(b,k);
    };

    void Dictionary::Display()                           // Duyet toan bo bucket
    {
        if(
    Isempty() == true)
           
    cout<<"\nTu Dien rong \n";
        
    Node temp;
        for (
    int i=0;i<M;i++)
           {
            
    temp Bucket[i];
            while(
    temp!=NULL)
            {
                
    temp->displayWord();
                
    temp->displayMeaning();
                            
    cout<<endl;
                
    temp temp->next;
            }
       }
    };

    void Menu(Dictionary &td)
    {
        
    int choice;
        
    cout<<"\t\t\t    Tu dien ung dung Bang Bam"<<endl<<endl;
       
    cout<<"\t\t\t    1/. Them tu khoa vao cay "<<endl<<endl;
       
    cout<<"\t\t\t    2/. Xoa Bot tu khoa "<<endl<<endl;
       
    cout<<"\t\t\t    3/. Tra cuu tu "<<endl<<endl;
       
    cout<<"\t\t\t    4/. Hien thi cay hien tai "<<endl<<endl;
       
    cout<<"\t\t\t    5/. De thoat khoi chuong trinh "<<endl<<endl<<endl;
       
    cout<<"\t\t\t      Moi ban chon mot chuc nang  ";
       
    cin>>choice;
       switch(
    choice)
       {
           case 
    1:
           {
              
    int n;
              
    system("cls");
             
    cout<<"\nBan muon chen bao nhieu tu khoa: ";
             
    cin>>n;
             for(
    int i 0;n;i++)
             {
                   
    Node *data=new Node;
                 
    data->Input();
                 
    td.Insert(data);
             }
             
    cout<<"\n\n Tu Dien sau khi da chen\n";
             
    td.Display();
             
    getch();
             
    system("cls");
             
    Menu(td);
          }
          case 
    2:
          {
              
    system("cls");
             
    char word[100];
             
    cout<<endl;
             
    cout<<"Nhap tu muon xoa: ";
             
    gets(word);
             
    td.Delete(word);
             
    cout<<endl<<"\nDanh sach sau khi xoa:";
             
    td.Display();
             
    getch();
             
    system("cls");
             
    Menu(td);
          }
          case 
    3:
          {
              
    system("cls");
             
    char word[100];
             
    cout<<endl;
             
    cout<<"Nhap tu muon tim: ";
             
    gets(word);
             
    td.Find(word);
             
    getch();
             
    system("cls");
             
    Menu(td);
          }
          case 
    4:
          {
              
    system("cls");
              
    td.Display();
             
    getch();
             
    system("cls");
             
    Menu(td);
          }
          case 
    5:
          {
               exit(
    0);
          }
          default:
           {
              
    system("cls");
               
    cout<<"\n\tKhong co chuc nang nay: ";
             
    getch();
             
    system("cls");
             
    Menu(td);
          }
       }

    };

    void main()
    {
       
    textmode(C4350);// noi rong man hinh console
        
    Dictionary td;
        
    Menu(td);
    }; 
    Dán code lên diễn đàn làm lệch hết cả dòng code (chán).
    có ai có thể viết lại bằng ngôn ngữ c được không, cho mình code với. Đang cần để làm báo cáo, cám ơn các pro trước nhé!

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

    Wink Mong các anh giúp đỡ

    Mai em thi cuối kì.

    Nội dung câu hỏi là về Băm và hàm băm
    Các bạn hãy cho 1 dãy số nào đó tự chọn hàm băm, vẽ ra bảng băm


    Câu hỏi đơn giản như vậy, anh em nào biết giúp đỡ em với. Em cảm ơn nhiều

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

    cảm ơn bạn nhiều nhé...!
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. Borland C++ Lỗi lỗi khi ứng dụng bảng băm vào thiết kế từ điển tiếng anh
    Gửi bởi dungc13 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 09-09-2013, 09:15 AM
  2. Bài tập giải thuật lỗi khi ứng dụng bảng băm vào thiết kế từ điển tiếng anh
    Gửi bởi dungc13 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 0
    Bài viết cuối: 09-09-2013, 12:36 AM
  3. Băm kí tự tiếng Việt như thế nào?
    Gửi bởi gunrose 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: 20-03-2011, 08:37 AM
  4. bảng băm đóng, bảng băm mở trong lập trình C#?
    Gửi bởi mysad trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 11-12-2010, 01:20 PM
  5. Lập trình C++ Từ điển sử dụng bảng băm và cây AVL!
    Gửi bởi kidqn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 05-08-2010, 07:00 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