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

Đề tài: chương trình từ điển V-A viết bằng Tree

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

    Angry chương trình từ điển V-A viết bằng Tree

    Viết chương trình từ điển Việt – Anh (Tiếng Việt không dấu) với các chức năng như sau:
    - Thêm từ mới : cho phép nhập thêm 1 từ mới bằng tiếng Việt không dấu, nghĩa của từ này bằng tiếng Anh.
    o Ví dụ : Tieng Viet : Sinh vien
    Tieng Anh : Student
    - Chỉnh sửa từ : cho phép chỉnh sửa nội dung của một từ nào đó
    o Ví dụ : Nhập từ cần sửa : Sinh vien
    Sửa tiếng Việt : Giao vien
    Sửa tiếng Anh : Teacher
    - Liệt kê danh sách từ điển theo thứ tự A Z
    - Liệt kê danh sách từ điển theo thứ tự Z A
    - Tra từ điển : cho phép tra từ điển Việt – Anh.
    o Ví dụ : Từ tiếng Việt cần tra : Giao vien
    Từ tiếng Anh tương ứng : Teacher
    - Xóa từ điển theo từ tiếng Việt :
    o Ví dụ : Từ tiếng Việt cần xóa : Giao vien
    Nếu tìm thấy thì thông báo xóa như sau:
    - “Ban co muon xoa khong c/k?” nhấn c để xóa, k không xóa
    Nếu tìm không thấy thì thông báo “Khong co tu nay”

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

    Mặc định chương trình từ điển V-A viết bằng B-Tree

    Lại thêm 1 ông bạn cùng trường hu hu hu !
    Mình có code 1 bài nè but chí hướng khác và nó đang lỗi bạn thích thì đọc qua.

    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. #include <stdlib.h>
    4. #include <string.h>
    5. #include <ctype.h>
    6.  
    7.  
    8. typedef struct tagdata
    9. {
    10.         char chiSo;
    11.         char anh[500];
    12.         char viet[500];
    13. }data;
    14.  
    15. typedef struct tagTNode
    16. {
    17.         data tu;
    18.         struct tagTNode *pCon, *pEm;
    19. }TNode;
    20.  
    21. typedef struct tagTree
    22. {
    23.         TNode *pRoot;
    24.         int count;
    25. }Tree;
    26.  
    27.  
    28. void chendau(Tree &t, int i);
    29. TNode * timKey(Tree &t,char b);
    30. int isEmpty(const Tree &t);
    31. TNode* createNode(data x);
    32. void taoKey(data &x, int i);
    33. void getKey(char b,char a[]);
    34. void createTree(Tree &t);
    35. void chenlienket(Tree &t,data x);
    36. void printNode(TNode *p);
    37. void  duyetTruoc(TNode *pRoot);
    38.  
    39.  
    40. int isEmpty(const Tree &t)
    41. {
    42.     return (t.pRoot==NULL);
    43. }
    44.  
    45. TNode* createNode(data x)
    46. {
    47.        TNode *p = new TNode;
    48.        if (p!=NULL)
    49.        {
    50.                    strcpy(p->tu.anh,x.anh);
    51.                    strcpy(p->tu.viet,x.viet);
    52.                    p->tu.chiSo=x.chiSo;
    53.                    p->pCon=NULL;
    54.                    p->pEm=NULL;
    55.        }
    56.        return p;
    57. }
    58.  
    59. void taoData(data &x)
    60. {
    61.      printf("\n vui long nhap vao tu tieng anh ");
    62.      fflush(stdin);
    63.      gets(x.anh);
    64.      printf("\n Vui long nhap vao nghia tieng viet ");
    65.      fflush(stdin);
    66.      gets(x.viet);
    67.      getKey(x.chiSo,x.anh);
    68. }
    69.  
    70. void taoKey(data &x, int i)
    71. {
    72.      x.chiSo=tolower(i);
    73.      x.anh[0]=tolower(i);
    74.      x.viet[0]=tolower(i);
    75. }
    76.  
    77. void getKey(char b,char a[])
    78. {
    79.      b=tolower(a[0]);
    80. }
    81.  
    82. void createTree(Tree &t)
    83. {
    84.      //t.pRoot=;
    85.     // t.count=0;
    86.     //data x;
    87.     for (int i=127; i>=97; i--)
    88.     {
    89.         chendau(t,i);
    90.          // chen lien ket !
    91.     }
    92. }
    93.  
    94. void chendau(Tree &t, int i)
    95. {
    96.      data x;
    97.      taoKey(x,i);
    98.      TNode *p = createNode(x);
    99.      if(p!=NULL)
    100.      {
    101.                
    102.                 p->pCon=t.pRoot;
    103.                 t.pRoot =p;
    104.      }
    105. }
    106.  
    107.  
    108. void chenlienket(Tree &t,data x)
    109. {
    110.      TNode *p = createNode(x);
    111.      if(p!= NULL)
    112.      {
    113.             TNode *q = timKey(t,x.chiSo);
    114.             if (q!=NULL)
    115.                {
    116.                         p->pEm=q->pEm;
    117.                         q->pEm=p;
    118.                }
    119.      }
    120. }
    121.  
    122. // dem so luong nut
    123.  
    124. int demNutTrong(TNode *p)
    125. {
    126.     if(p==NULL) return 0;
    127.     return 1+demNutTrong(p->pCon)+demNutTrong(p->pEm);
    128. }
    129.  
    130.  
    131. int demNutTrong(Tree &t)
    132. {
    133.     return demNutTrong(t.pRoot);
    134. }
    135.                
    136.                
    137.      // phai khoi tao sau
    138.      
    139.  
    140.        
    141.    // chen vao cay dung kiem tra neu thuoc bang chu cai thi chay theo den vi tri cua chu cai !
    142. // tim kiem key
    143.  
    144. TNode * timKey(Tree &t,char b)
    145. {
    146.      TNode *p=t.pRoot;
    147.      int temp1,temp2;
    148.      temp1 = b;
    149.      while (p!=NULL)
    150.      {
    151.            temp2 = p->tu.chiSo;
    152.            //temp=strcmp(b,p->tu.chiSo);
    153.            /*
    154.            invalid conversion from 'char' to 'const char*'
    155.            initializing argument 1 to 'int strcmp(const char *, const char*)
    156.            */
    157.           // if(temp == 0)
    158.       if(temp1==temp2)   // nen chang dung chi so kieu int
    159.            {
    160.                                         return p;
    161.                                         break;
    162.            }
    163.            p=p->pCon;
    164.      }
    165.      return NULL;
    166. }
    167.      
    168. void printNode(TNode *p)
    169. {
    170.      if(p!= NULL)
    171.      {
    172.     printf("\nÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»");
    173.     printf("\nº    Tieng Anh             º   Tieng Viet                    º");
    174.     printf("\nº%-28sº%-32sº",p->tu.anh,p->tu.viet);
    175.     printf("\nºÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͺÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͺ");
    176.  
    177.      }
    178. }
    179. // duyet danh sach
    180. void  duyetTruoc(TNode *pRoot)
    181. {
    182.       if (pRoot!=NULL)
    183.       {
    184.              TNode * p = pRoot->pCon;
    185.               while(p!=NULL)
    186.               {
    187.                     duyetTruoc(p);
    188.                     printNode(p);
    189.                     p=p->pEm;
    190.               }
    191.       }
    192. }
    193.  
    194. int main()
    195. {
    196.     int select;
    197.     int n;
    198.     data x;
    199.     Tree t;
    200.     createTree(t);
    201.     do
    202.     {
    203.           printf("\n\t\t Chuong Trinh Tu Dien Anh Viet");
    204.           printf(" \n\n\t1 them tu ");
    205.           printf(" \n\n\t2 duyet tu");
    206.           printf(" \n\n\t0 thoat ");
    207.           printf("Vui long chon menu : ");
    208.           scanf("%d",&select);
    209.           switch(select)
    210.           {
    211.                 case 1:
    212.                                      {
    213.                                              
    214.                                              printf("\nBan muon nhap bao nhieu tu : ");
    215.                                              scanf("%d",&n);
    216.                                              for (int i=0; i<n; i++)
    217.                                              {
    218.                                                  taoData(x);
    219.                                                  chenlienket(t,x);
    220.                                                  printf("\nDa chen xong du lieu 1 tu\n press any key to continue !");
    221.                                                  getch();
    222.                                              }
    223.                         // printf("Hoan Tat Viec Them Tu \n Press any key to continue !");
    224.                                              getch();
    225.                                              break;
    226.                      }
    227.                 case 2:
    228.                      {
    229.                          duyetTruoc(t.pRoot);
    230.                          printf("\n\n Da duyet xong \n Press any key to continue ");
    231.                          getch();
    232.                          break;
    233.                      }
    234.                 case 6:
    235.                             {
    236.                                 printf("\n \t\t Thong ke thong tin");
    237.                                 printf("\nSo luong nut trong cay : %d",demNutTrong(t));
    238.                                 //printf("\nTong ma so sinh vien : %d",tongMotGiaTri(t));
    239.                                 printf(" Done ! \n Press any key to continue");
    240.                                 getch();
    241.                                 break;
    242.                             }
    243.           }
    244.     }while (select != 0);
    245.     printf("Press any key to exit ...");
    246.     getch();
    247. }

  3. #3
    Ngày gia nhập
    05 2008
    Nơi ở
    hồ chí minh
    Bài viết
    4

    ghê chẳng hiểu gì cả nếu viết : Vieetj = Việt ah được hok vậy
    I LOVE YOU OKE!

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

    Trích dẫn Nguyên bản được gửi bởi [ ^__^ ] Xem bài viết
    ghê chẳng hiểu gì cả nếu viết : Vieetj = Việt ah được hok vậy
    không được đâu bạn ơi tại mình đang học năm 1 với lại : viết trên DOS chứ không phải trên win . Còn nếu muốn nhập tiếng việt thì nên dùng java. Cũng tương tự thôi. But phải hiểu rõ cấu trúc UNICODE.





    Đây là mô hình ý tưởng của tui về bài từ điển. Tại vì là nếu xây dựng dựa trên cây nhị phân thì quá dễ (xong roài) nhưng mà nó dùng nhiều dệ quy và các sắp xếp phải có thêm khóa key. Không thích làm theo hướng này but hình như sai nhưng chưa có thời gian sửa. Ah mình ko học cùng lớp các bạn nên đây là đề tài làm ké thui . Lớp mình đề # thì phải .

    Thân
    Đã được chỉnh sửa lần cuối bởi abraham : 03-06-2008 lúc 10:28 PM.

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

  1. Cấu trúc dữ liệu so sánh giữa Red-Black tree và AVL tree. Ưu khuyết điểm như thế nào?
    Gửi bởi j3amboo trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 0
    Bài viết cuối: 20-10-2011, 05:12 PM
  2. Ứng dụng của cây nhị phân cân bằng (AVL Tree)
    Gửi bởi quanghuy9111991 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: 27-05-2011, 06:26 PM
  3. Viết từ điển bằng b-tree trong lập trình C
    Gửi bởi alahun 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: 12-01-2011, 08:43 PM
  4. Chương Trình Mô Phỏng đồ Họa Avl Tree Bằng Mfc
    Gửi bởi redzeus02468 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 11
    Bài viết cuối: 16-10-2008, 02:46 PM
  5. Viết chương trình từ điển V-A bằng Tree
    Gửi bởi mynameisrat 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: 02-06-2008, 04:20 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