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

Đề tài: Quản lí công nhân

  1. #1
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mặc định Quản lí công nhân

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4. typedef struct date
    5. {
    6.     int ngay,thang,nam;
    7. };
    8.  typedef struct person
    9.   {
    10.       char ht[25];
    11.        struct date ns;
    12.       float bl;
    13.   };
    14.   person *ptim(char *ht,person h[],int n);
    15.   person tim(char *ht,person h[],int n);
    16.   void hv(person *p1,person *p2);
    17.   void sapxep(person *p,int n);
    18.   void vao(person *p);
    19.   void in(person p);
    20.   person tim(char *ht,person h[],int);
    21. int main()
    22. {
    23.    person *p,ds[100];
    24.    int n,i,j;
    25.    char ht[40];
    26.      //Vao` so lieu-------------------------------//
    27.     printf("So nguoi:");
    28.     scanf("%d%d*c",&n);
    29.      for(i=1;i<=n;i++)
    30.        vao(&ds[i]);
    31.        //Sap xep theo chieu tang dan cua nam sinh//
    32.         sapxep(ds,n);
    33.        //In danh sach sau khi xep//
    34.         for(i=1;i<=n;i++)
    35.          in(ds[i]);
    36.        //Tim kiem theo ho ten//
    37.     while(1)
    38.       {
    39.           printf("\nHo ten nguoi can tim`:");
    40.           gets(ht);
    41.            if(ht[0]==0)
    42.         break;
    43.          if((p=tim(ht,ds,n))==NULL)
    44.             printf("\nkhong tim thay");
    45.          else in(*p);
    46.       }
    47.       //Tim kiem theo ho ten//
    48.       while(1)
    49.         {
    50.         printf("\nHo ten nguoi can tim:");
    51.         gets(ht);
    52.         if(ht[0]==0)
    53.           break;
    54.           if(tim(ht,ds,n).ht[0]==0)
    55.             printf("KHong tim thay:");
    56.           else
    57.            in(tim(ht,ds,n));
    58.         }
    59. }
    60.  
    61. person tim(char *ht,person h[],int n)
    62.   {
    63.       int i;
    64.       person ps;
    65.       ps.ns.ngay=ps.ns.thang=ps.ns.nam=0;
    66.       ps.bl=0;
    67.       ps.ht[0]=0;
    68.       for(i=0;i<=n;i++)
    69.        if(strcmp(ht,h[i].ht)==0)
    70.      return(h[i]);
    71.       return(ps);
    72.   }
    73.   person *ptim(char *ht,person h[],int n)
    74.     {
    75.     int i;
    76.     for(i=0;i<=n;i++)
    77.        if(strcmp(ht,h[i].ht)==0)
    78.         return(&h[i]);
    79.       return(NULL);
    80.     }
    81.  void hv(person *p1,person *p2)
    82.     {
    83.     person h;
    84.     h=*p1;
    85.     *p1=*p2;
    86.     *p2=h;
    87.     }
    88.   void vao(person*p)
    89.     {
    90.     person h;
    91.     float bl;
    92.     printf("\nHo ten:");
    93.     gets(h.ht);
    94.     printf("\nNgay thang nam sinh:");
    95.     scanf("%d%d%d%d%*c",&h.ns.ngay,&h.ns.thang,&h.ns.nam);
    96.     printf("\nBac luong:");
    97.     scanf("%f%*c",&bl);
    98.     h.bl=bl;
    99.     *p=h;
    100.     }
    101.  void in(person p)
    102.     {
    103.     printf("\nHo ten %s Sinh ngay %d thang %d nam %d \ Bac luong %0.1f",p.ht,p.ns.ngay,p.ns.thang,p.ns.nam,p.bl);
    104.     }
    105.  void sapxep(person *p,int n)
    106.     {
    107.     int i,j;
    108.     for(i=1;i<=n;i++)
    109.       for(j=i+1;j<=n;j++)
    110.          if(p[i].ns.nam>p[j].ns.nam)
    111.            hv(&p[i],&p[j]);
    112.     }
    Đoạn code trên mình sai chỗ nào vậy ?

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    C:\Documents and Settings\Quang Hoang\Desktop\Test.c||In function `int main()':|
    C:\Documents and Settings\Quang Hoang\Desktop\Test.c|43|error: cannot convert `person' to `person*' in assignment|
    C:\Documents and Settings\Quang Hoang\Desktop\Test.c|103|warning: unknown escape sequence: '\040'|
    ||=== Build finished: 1 errors, 1 warnings ===|
    Chỗ đó đấy!

    Code:
             if((p=tim(ht,ds,n))==NULL)
                printf("\nkhong tim thay");
             else in(*p);
    Chỉ là lỗi đánh sai thôi. Nhưng code trình bày chán quá, đọc lòi cả mắt. Chạy thử cẩn thận có vài chỗ có thể chương trình bị trôi đấy.
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 22-01-2009 lúc 01:25 AM.

  3. #3
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mình biết sai chỗ đó rồi nhưng không biết sửa như thế nào

  4. #4
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Code chán quá , sửa cho nó chay đúng thôi, còn chẳng thích tí nào.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4. typedef struct date
    5. {
    6.     int ngay,thang,nam;
    7. };
    8.  typedef struct person
    9.   {
    10.       char ht[25];
    11.        struct date ns;
    12.       float bl;
    13.   };
    14.  
    15.   person *ptim(char *ht,person h[],int n);
    16.   person tim(char *ht,person h[],int n);
    17.   void hv(person *p1,person *p2);
    18.   void sapxep(person *p,int n);
    19.   void vao(person *p);
    20.   void in(person p);
    21.   person tim(char *ht,person h[],int);
    22.  
    23. int main()
    24. {
    25.    person *p,ds[100];
    26.    int n,i,j;
    27.    char ht[40];
    28.      //Vao` so lieu-------------------------------//
    29.     printf("So nguoi:");
    30.     scanf("%d",&n);
    31.      for(i=1;i<=n;i++)
    32.        vao(&ds[i]);
    33.        //Sap xep theo chieu tang dan cua nam sinh//
    34.         sapxep(ds,n);
    35.        //In danh sach sau khi xep//
    36.         for(i=1;i<=n;i++)
    37.          in(ds[i]);
    38.        //Tim kiem theo ho ten//
    39.     while(1)
    40.       {
    41.           printf("\nHo ten nguoi can tim`:");
    42.           fflush(stdin);
    43.           gets(ht);
    44.            if(ht[0]==0)
    45.         break;
    46.          p = ptim(ht,ds,n);
    47.          if (p==NULL)
    48.             printf("\nkhong tim thay");
    49.          else in(*p);
    50.       }
    51.       //Tim kiem theo ho ten//
    52.       while(1)
    53.         {
    54.         printf("\nHo ten nguoi can tim:");
    55.         fflush(stdin);
    56.         gets(ht);
    57.         if(ht[0]==0)
    58.           break;
    59.           if(tim(ht,ds,n).ht[0]==0)
    60.             printf("KHong tim thay:");
    61.           else
    62.            in(tim(ht,ds,n));
    63.         }
    64. }
    65.  
    66. person tim(char *ht,person h[],int n)
    67.   {
    68.       int i;
    69.       person ps;
    70.       ps.ht[0]=0;
    71.       for(i=0;i<=n;i++)
    72.        if(strcmp(ht,h[i].ht)==0)
    73.      return(h[i]);
    74.       return(ps);
    75.   }
    76.  
    77.   person *ptim(char *ht,person h[],int n)
    78.     {
    79.     int i;
    80.     for(i=0;i<=n;i++)
    81.        if(strcmp(ht,h[i].ht)==0)
    82.         return &h[i];
    83.       return NULL;
    84.     }
    85.  void hv(person *p1,person *p2)
    86.     {
    87.     person h;
    88.     h=*p1;
    89.     *p1=*p2;
    90.     *p2=h;
    91.     }
    92.   void vao(person*p)
    93.     {
    94.     person h;
    95.     float bl;
    96.     printf("\nHo ten:");
    97.     fflush(stdin);
    98.     gets(h.ht);
    99.     printf("\nNgay thang nam sinh:");
    100.     scanf("%d%d%d",&h.ns.ngay,&h.ns.thang,&h.ns.nam);
    101.     printf("\nBac luong:");
    102.     scanf("%f",&bl);
    103.     h.bl=bl;
    104.     *p=h;
    105.     }
    106.  
    107.  void in(person p)
    108.     {
    109.     printf("\nHo ten %s Sinh ngay %d thang %d nam %d \ Bac luong %0.1f",p.ht,p.ns.ngay,p.ns.thang,p.ns.nam,p.bl);
    110.     }
    111.  
    112.  void sapxep(person *p,int n)
    113.     {
    114.     int i,j;
    115.     for(i=1;i<=n;i++)
    116.       for(j=i+1;j<=n;j++)
    117.          if(p[i].ns.nam>p[j].ns.nam)
    118.            hv(&p[i],&p[j]);
    119.     }

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

  1. Trả lời: 0
    Bài viết cuối: 22-06-2012, 08:57 PM
  2. Trả lời: 0
    Bài viết cuối: 22-06-2012, 08:50 PM
  3. Trả lời: 0
    Bài viết cuối: 22-06-2012, 07:52 PM
  4. Trả lời: 0
    Bài viết cuối: 22-06-2012, 07:50 PM
  5. Trả lời: 0
    Bài viết cuối: 22-06-2012, 07:49 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