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

Đề tài: giúp mình Bài tập C về sổ địa chỉ cá nhân

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

    Angry giúp mình Bài tập C về sổ địa chỉ cá nhân

    Yêu cầu đề bài như sau :
    xây dựng chương trình Quản lý sổ địa chỉ cá nhân cho phép lưu trữ và tra cứu thông tin liên lạc.

    mô tả :
    Thông tin liên lạc cần quản lý những thông tin liên quan đến từng cá nhân hoặc tổ chức cần liên lạc đc tổ chức theo tên

    Các thông tin tối thiểu cần phải có là : tên , số điện thoại , địa chỉ email , ních chát gi chú

    Thông qua menu của chương trình người dùng có thể thực hiện đc những công viêc sau :

    - quản lý đc các liên lạc ( thêm-xóa-cập nhật )
    -tìm kiếm đc liên lạc theo tên
    - in danh sách liên lạc dưới dạng bảng rút gọn
    Chương trình phải lưu trữ các liên lạc ra life văn bản theo định dạng dễ nhìn để ngừoi dùng có thể xem trực tiếp từ file văn bản

    HIc giúp tớ với mí hôm nay ốm ko làm dc mà mai là phải nọp rồi hix thanks !

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Đề nghị không gửi bài nhờ giải hộ. (Đây là nội qui của diễn đàn).
    Theo đề bài của bạn, mình gợi ý cho bạn chút ý kiến thế này:
    - Đầu tiên là sử dụng danh sách liên kết để lưu trữ dữ liệu vào ra từ file văn bản.
    - Sử dụng menu tạm với cách nhận một ký tự tương ứng với một vài ký tự định trước.
    ...
    * Gợi ý cài đặt chương trình
    - Thể hiện menu chương trình.
    - Tùy theo chức năng người dùng chọn mà xử lý.
    Theo chức năng đó, ta đọc dữ liệu vào danh sách liên kết, và xử lý.
    Việc thêm - xóa - sửa đều làm được trên danh sách liên kết.
    - Khi kết thúc chương trình, ta lưu đè dữ liệu lên file văn bản.

    * Hãy thử code và gửi bài của bạn lên đây, chúng tôi sẽ hỗ trợ bạn và biết đâu học hỏi được từ bạn. Thân !!!
    Không biết ghi gì luôn ...

  3. #3
    Ngày gia nhập
    08 2008
    Bài viết
    0

    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    #include<CTYPE.H>
    #define max 100
    
     typedef struct canhan
    {
        char hoten[50];
        char diachi[50];
        char email[50];
        char yahoo[50];
        int  dienthoai;
        char ghichu[50];
     }CANHAN;
    
     CANHAN diachi[max];
     int a=0;
     char filename[]="DIACHI.DAT";
     int menu()
     {
       char c;
       clrscr();
       printf("\n++++++++++++++MENU++++++++++");
       printf("\n++++++++++++++++++++++++++++");
       printf("\n+++++++1.Nhap          +++++");
       printf("\n+++++++2.Xoa           +++++");
       printf("\n+++++++3.Sua doi       +++++");
       printf("\n+++++++4.Danh Sach     +++++");
       printf("\n+++++++5.Luu len dia   +++++");
       printf("\n+++++++6.Lay tu dia    +++++");
       printf("\n+++++++0.thoat         +++++");
       printf("\n++++++++++++++++++++++++++++");
       printf("\n chon muc:");
       printf("\n++++++++++++++++++++++++++++");
       printf("\n++++++++++++++++++++++++++++");
       do{
    	c=getch();
         }
       while(c<'0'||c>'6');
       return c-'0';
      }
      /**************************************************/
      void ThongTin()
      {
       int d=0;
       char hoten[50];
       char ghichu[50];
       float sdt;
    
       do{
    	printf("\nHo ten:");
          gets(hoten);
          if(strlen(hoten)==0)
    	d=1;
          else
          {
    	strcpy(diachi[a].hoten,hoten);
    	 printf("\nDiachi:");
    	 gets(diachi[a].diachi);
    	 printf("\nEmail :");
    	 gets(diachi[a].email);
    	 printf("\nyahoo :");
    	 gets(diachi[a].yahoo);
    	 printf("\n thong tin khac:");
    	 gets(diachi[a].ghichu);
    	 printf("\n So dien thoai(neu co):");
    	 scanf("%f",&sdt);
    	 diachi[a].dienthoai=sdt;
    	 a++;
           }
          }while(!d);
         return;
         }
    /************************************************/
       void Xoa()
       {
          int i,d=0,f,dump[max];
          char hoten[50],hotentmp[50];
    
          while(!d)
          {
    	if(a!=0)
    	 {
    	    printf("\nHo ten ca nhan can xoa:");
    	    gets(hoten);
    	    if(strlen(hoten)==0)
    	     d=1;
    	    else
    	    {
    	     i=f=0;
    	     do{
    	     strcpy(hotentmp,diachi[i].hoten);
    	     if(strcmp(strupr(hoten),strupr(hotentmp))==0)
    	     dump[f++]=i;
    	     i++;
    	       }
    	     while(i<a);
    	    if(!f)
    	     printf("\n Khong tim thay ca nhan co ten %s",hoten);
    	    else
    	    {
    		for(i=0;i<f;i++);
    	       {
    		printf("\n%d%s%s%s%s%s%d",i+1,diachi[dump[i]].hoten,diachi[dump[i]].diachi,
    		diachi[dump[i]].email,diachi[dump[i]].yahoo,diachi[dump[i]].ghichu,
    		diachi[dump[i]].dienthoai);
    	       }
    	       printf("\n tim thay %d ca nhan",f);
    	       printf("\n chon thu tu muon xoa(neu muon huy bo thi chon so khong nam trong pham vi):");
    	       scanf("%d",&i);
    	       if(i>=1 && i<=f)
    	       {
    		for(f=dump[i-1];f<a-1;f++)
    		diachi[f]=diachi[f+1];
    		a--;
    		printf("\nDa huy");
    	       }
    	       else
    		printf("\n Viec xoa bi huy bo");
    	    }
    		d=1;
    	  }getch();
          }
    	   else d=1;
       }
     }
    /************************************************/
         void Sua()
         {
          int i,d=0,f,dump[max];
          char hoten[20],hotentmp[20];
          int  sdt;
          char thongtin[50];
          while(!d)
          {
           if(a!=0)
    	{
    	 printf("\n Ho ten ca nhan can sua:");
    	 gets(hoten);
    	 if(strlen(hoten)==0)
    	  d=1;
    	 else
    	 { i=f=0;
    	   do{
    	      strcpy(hotentmp,diachi[i].hoten);
    	      if(strcmp(strupr(hoten),strupr(hotentmp))==0)
    	       dump[f++]=i;
    	       i++;
    	     }
    	    while(i<a);
    	   if(!f)
    	    printf("\nKhong tim thay ca nhan co ten %s",hoten);
    	   else
    	     {
    	      for(i=0;i<f;i++);
    	      {
    	       printf("\n%d%s%s%s%s%s%d",i+1,diachi[dump[i]].hoten,diachi[dump[i]].diachi,
    		diachi[dump[i]].email,diachi[dump[i]].yahoo,diachi[dump[i]].ghichu,
    		diachi[dump[i]].dienthoai);
    	      }
    	      printf("\n\n tim thay %d ca nhan",f);
    	      printf("\n chon thu tu muon sua doi(neu muon huy bo thi chon so khong nam trongpham vi):");
    	      scanf("%d%*c",&i);
    	      if(i>=1 &&i<=f)
    	      {
    	       printf("\n%s \n Ho ten:",diachi[dump[i-1]].hoten);
    	       gets(diachi[dump[-1]].hoten);
    	       printf("\n%sdia chi:",diachi[dump[i-1]].diachi);
    	       gets(diachi[dump[i-1]].diachi);
    	       printf("\n%s email:",diachi[dump[i-1]].email);
    	       gets(diachi[dump[i-1]].email);
    	       printf("\n%s Nich chat:",diachi[dump[i-1]].yahoo);
    	       gets(diachi[dump[i-1]].yahoo);
    	       printf("\n%s Ghi chu:",diachi[dump[i-1]].ghichu);
    	       gets(diachi[dump[i-1]].ghichu);
    	       printf("\n%d so dien thoai:",diachi[dump[i-1]].dienthoai);
    	       scanf("%d",&sdt);
    	       diachi[dump[i-1]].dienthoai=sdt;
    	       printf("\n Da thay doi");
    	      }
    	      else printf("\n Viec thay doi bi huy bo");
    	    }
    	    d=1;
    	   }
    
    	    getch();
    	 }
    	   else d=1;
    	}
          }
    /****************************************************************/
       void DanhSach()
       {
        int i;
        if(a!=0)
        {
    
         printf("\n|STT|   HO VA TEN      |DIA CHI|     EMAIL     |YAHOO|    |SO DT|     GHI CHU|");
    
         for(i=0;i<a;i++);
         {
          printf("\n|%3d|",i+1);
          printf("%-35s|  %-7s|  %4.1s|   %4.1s|    %4.1d|     %4.10s|",diachi[i].hoten,diachi[i].diachi,diachi[i].email,
         diachi[i].yahoo,diachi[i].dienthoai,diachi[i].ghichu);
         }
    
        }getch();
       }
    
       void getdata()
       {
        char c;
        int start,n;
        FILE *fp;
        long curpos,length;
        start=0;
        if(a!=0)
        { printf("\n dang co du lieu trong bo nho.co  muon noi them vao khong?(C/K)");
        c=toupper(getch());
        if (c=='C')
         start=a;
         else
          start=0;
         if((fp=fopen(filename,"r"))==NULL)
          printf("\nkhong the mo tap tin %s",filename);
         else
         {
          curpos=ftell(fp);
          fseek(fp,0L,SEEK_END);
          length=ftell(fp);
          fseek(fp,curpos,SEEK_SET);
          n=length/sizeof(CANHAN);
          fread(&diachi[start],sizeof(CANHAN),n,fp);
          fclose(fp);
          printf("\n Them vao %d records",n);
          a+=n;
          getch();
         }
       }
     }
       void putdata()
       {
        FILE *fp;
    
        if((fp=fopen(filename,"w+"))==NULL)
         printf("\nKhong ghi tap tin %s",filename);
    
        else
        {
         fwrite(&diachi[0],sizeof(CANHAN),a,fp);
         fclose(fp);
         printf("\nGhi %d records",a);
         getch();
        }
       }
    void main()
    {
     int chon,d=0;
     do{
        chon=menu();
        switch(chon)
        {
         case 1:ThongTin();
    	  break;
         case 2:Xoa();
    	  break;
         case 3:Sua();
    	  break;
         case 4:DanhSach();
    	  break;
         case 5:putdata();
    	  break;
         case 6:getdata();
    	  break;
         case 0:d=1;
        }
      }while(!d);
    }
    ko hiểu sao ko tìm kiếm kiếm và in ra đc >.<

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Bạn post lên một vài mẫu test để mọi người thử test giùm cho.
    chứ đọc cả đoạn code này thì rất khó mà biết được nguyên nhân lỗi.
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 19-08-2008 lúc 05:39 PM.

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình đã fix lại cho bạn rồi nè.
    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<string.h>
    4. #include<stdlib.h>
    5. #include<math.h>
    6. #include<CTYPE.H>
    7.  
    8. #define max 100
    9.  
    10. typedef struct canhan
    11. {
    12.     char hoten[50];
    13.     char diachi[50];
    14.     char email[50];
    15.     char yahoo[50];
    16.     int  dienthoai;
    17.     char ghichu[50];
    18. }CANHAN;
    19.  
    20. CANHAN diachi[max];
    21. int a=0;
    22. char filename[]="DIACHI.DAT";
    23.  
    24. int menu()
    25. {
    26.     char c;
    27.  
    28.     clrscr();
    29.     printf("\n++++++++++++++MENU++++++++++");
    30.     printf("\n++++++++++++++++++++++++++++");
    31.     printf("\n+++++++1.Nhap          +++++");
    32.     printf("\n+++++++2.Xoa           +++++");
    33.     printf("\n+++++++3.Sua doi       +++++");
    34.     printf("\n+++++++4.Danh Sach     +++++");
    35.     printf("\n+++++++5.Luu len dia   +++++");
    36.     printf("\n+++++++6.Lay tu dia    +++++");
    37.     printf("\n+++++++0.thoat         +++++");
    38.     printf("\n++++++++++++++++++++++++++++");
    39.     printf("\n chon muc:");
    40.     printf("\n++++++++++++++++++++++++++++");
    41.     printf("\n++++++++++++++++++++++++++++");
    42.  
    43.     do
    44.     {
    45.         c=getch();
    46.     }
    47.     while(c<'0'||c>'6');
    48.  
    49.     return c-'0';
    50. }
    51.  
    52. /**************************************************/
    53.  
    54. void ThongTin()
    55. {
    56.     int d=0;
    57.     char hoten[50];
    58.     char ghichu[50];
    59.     float sdt;
    60.  
    61.     do
    62.     {
    63.         printf("\nHo ten:");
    64.         gets(hoten);
    65.         if(strlen(hoten)==0)
    66.         {
    67.             d=1;
    68.         }
    69.         else
    70.         {
    71.             strcpy(diachi[a].hoten,hoten);
    72.             printf("\nDiachi:");
    73.             gets(diachi[a].diachi);
    74.             printf("\nEmail :");
    75.             gets(diachi[a].email);
    76.             printf("\nyahoo :");
    77.             gets(diachi[a].yahoo);
    78.             printf("\n thong tin khac:");
    79.             gets(diachi[a].ghichu);
    80.             printf("\n So dien thoai(neu co):");
    81.             scanf("%f",&sdt);
    82.             diachi[a].dienthoai=sdt;
    83.             a++;
    84.         }
    85.     }
    86.     while(!d);
    87.  
    88.     return;
    89. }
    90.  
    91. /************************************************/
    92.  
    93. void Xoa()
    94. {
    95.     int i,d=0,f,dump[max];
    96.     char hoten[50],hotentmp[50];
    97.  
    98.     while(!d)
    99.     {
    100.     if(a!=0)
    101.     {
    102.     printf("\nHo ten ca nhan can xoa:");
    103.     gets(hoten);
    104.     if(strlen(hoten)==0)
    105.     d=1;
    106.     else
    107.     {
    108.     i=f=0;
    109.     do{
    110.     strcpy(hotentmp,diachi[i].hoten);
    111.     if(strcmp(strupr(hoten),strupr(hotentmp))==0)
    112.     dump[f++]=i;
    113.     i++;
    114.     }
    115.     while(i<a);
    116.     if(!f)
    117.     printf("\n Khong tim thay ca nhan co ten %s",hoten);
    118.     else
    119.     {
    120.     for(i=0;i<f;i++);
    121.     {
    122.     printf("\n%d%s%s%s%s%s%d",i+1,diachi[dump[i]].hoten,diachi[dump[i]].diachi,
    123.     diachi[dump[i]].email,diachi[dump[i]].yahoo,diachi[dump[i]].ghichu,
    124.     diachi[dump[i]].dienthoai);
    125.     }
    126.     printf("\n tim thay %d ca nhan",f);
    127.     printf("\n chon thu tu muon xoa(neu muon huy bo thi chon so khong nam trong pham vi):");
    128.     scanf("%d",&i);
    129.     if(i>=1 && i<=f)
    130.     {
    131.     for(f=dump[i-1];f<a-1;f++)
    132.     diachi[f]=diachi[f+1];
    133.     a--;
    134.     printf("\nDa huy");
    135.     }
    136.     else
    137.     printf("\n Viec xoa bi huy bo");
    138.     }
    139.     d=1;
    140.     }getch();
    141.     }
    142.     else d=1;
    143.     }
    144. }
    145.  
    146. /************************************************/
    147.  
    148. void Sua()
    149. {
    150.     int i,d=0,f,dump[max];
    151.     char hoten[20],hotentmp[20];
    152.     int  sdt;
    153.     char thongtin[50];
    154.    
    155.     while(!d)
    156.     {
    157.         if(a!=0)
    158.         {
    159.             printf("\n Ho ten ca nhan can sua:");
    160.             gets(hoten);
    161.             if(strlen(hoten)==0)
    162.                 d=1;
    163.             else
    164.             {
    165.                 i=f=0;
    166.                 do
    167.                 {
    168.                     strcpy(hotentmp,diachi[i].hoten);
    169.                     if(strcmp(strupr(hoten),strupr(hotentmp))==0)
    170.                         dump[f++]=i;
    171.                     i++;
    172.                 }
    173.                 while(i<a);
    174.                
    175.                 if(!f)
    176.                     printf("\nKhong tim thay ca nhan co ten %s",hoten);
    177.                 else
    178.                 {
    179.                     for(i=0;i<f;i++);
    180.                     {
    181.                         printf("\n%d%s%s%s%s%s%d",i+1,diachi[dump[i]].hoten,diachi[dump[i]].diachi,
    182.                         diachi[dump[i]].email,diachi[dump[i]].yahoo,diachi[dump[i]].ghichu,
    183.                         diachi[dump[i]].dienthoai);
    184.                     }
    185.  
    186.                     printf("\n\n tim thay %d ca nhan",f);
    187.                     printf("\n chon thu tu muon sua doi(neu muon huy bo thi chon so khong nam trongpham vi):");
    188.                     scanf("%d%*c",&i);
    189.                     if(i>=1 &&i<=f)
    190.                     {
    191.                         printf("\n%s \n Ho ten:",diachi[dump[i-1]].hoten);
    192.                         gets(diachi[dump[-1]].hoten);
    193.                         printf("\n%sdia chi:",diachi[dump[i-1]].diachi);
    194.                         gets(diachi[dump[i-1]].diachi);
    195.                         printf("\n%s email:",diachi[dump[i-1]].email);
    196.                         gets(diachi[dump[i-1]].email);
    197.                         printf("\n%s Nich chat:",diachi[dump[i-1]].yahoo);
    198.                         gets(diachi[dump[i-1]].yahoo);
    199.                         printf("\n%s Ghi chu:",diachi[dump[i-1]].ghichu);
    200.                         gets(diachi[dump[i-1]].ghichu);
    201.                         printf("\n%d so dien thoai:",diachi[dump[i-1]].dienthoai);
    202.                         scanf("%d",&sdt);
    203.                         diachi[dump[i-1]].dienthoai=sdt;
    204.                         printf("\n Da thay doi");
    205.                     }
    206.                     else printf("\n Viec thay doi bi huy bo");
    207.                 }
    208.                
    209.                 d=1;
    210.             }
    211.  
    212.             getch();
    213.         }
    214.         else d=1;
    215.     }
    216. }
    217.  
    218. /****************************************************************/
    219.  
    220. void DanhSach()
    221. {
    222.     int i;
    223.     if(a!=0)
    224.     {
    225.         printf("\n|STT|   HO VA TEN      |DIA CHI|     EMAIL     |YAHOO|    |SO DT|     GHI CHU|");
    226.  
    227.         for(i=0;i<a;i++)
    228.         {
    229.             printf("\n|%3d|",i+1);
    230.             printf("%-35s|  %-7s|  %4.1s|   %4.1s|    %4.1d|     %4.10s|",diachi[i].hoten,diachi[i].diachi,diachi[i].email,
    231.             diachi[i].yahoo,diachi[i].dienthoai,diachi[i].ghichu);
    232.         }
    233.  
    234.     }
    235.     getch();
    236. }
    237.  
    238. void getdata()
    239. {
    240.     char c;
    241.     int start,n;
    242.     FILE *fp;
    243.     long curpos,length;
    244.  
    245.     start=0;
    246.     if(a!=0)
    247.     {
    248.         printf("\n dang co du lieu trong bo nho.co  muon noi them vao khong?(C/K)");
    249.         c=toupper(getch());
    250.        
    251.         if (c=='C')
    252.             start=a;
    253.         else
    254.             start=0;
    255.  
    256.         if((fp=fopen(filename,"r"))==NULL)
    257.             printf("\nkhong the mo tap tin %s",filename);
    258.         else
    259.         {
    260.             curpos=ftell(fp);
    261.             fseek(fp,0L,SEEK_END);
    262.             length=ftell(fp);
    263.             fseek(fp,curpos,SEEK_SET);
    264.             n=length/sizeof(CANHAN);
    265.             fread(&diachi[start],sizeof(CANHAN),n,fp);
    266.             fclose(fp);
    267.             printf("\n Them vao %d records",n);
    268.             a+=n;
    269.             getch();
    270.         }
    271.     }
    272. }
    273.  
    274. void putdata()
    275. {
    276.     FILE *fp;
    277.  
    278.     if((fp=fopen(filename,"w+"))==NULL)
    279.     {
    280.         printf("\nKhong ghi tap tin %s",filename);
    281.     }
    282.     else
    283.     {
    284.         fwrite(&diachi[0],sizeof(CANHAN),a,fp);
    285.         fclose(fp);
    286.         printf("\nGhi %d records",a);
    287.         getch();
    288.     }
    289. }
    290.  
    291. void main()
    292. {
    293.     int chon,d=0;
    294.     do
    295.     {
    296.         chon=menu();
    297.         switch(chon)
    298.         {
    299.             case 1:
    300.                 ThongTin();
    301.                 break;
    302.             case 2:
    303.                 Xoa();
    304.                 break;
    305.             case 3:
    306.                 Sua();
    307.                 break;
    308.             case 4:
    309.                 DanhSach();
    310.                 break;
    311.             case 5:
    312.                 putdata();
    313.                 break;
    314.             case 6:
    315.                 getdata();
    316.                 break;
    317.             case 0:
    318.                 d=1;
    319.         }
    320.     }while(!d);
    321. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  6. #6
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Mặc định giúp mình Bài tập C về sổ địa chỉ cá nhân

    Theo mình, bài này bạn nên viết theo kiểu cấu trúc động, chứ không nên viết theo kiểu cấu trúc tĩnh. Bạn hãy đọc thêm về cách tạo một danh sách liên kết mà các trường của mỗi phần tử là một cấu trúc kiểu học viên như bạn định nghĩa.
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

  7. #7
    Ngày gia nhập
    08 2008
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi Forlorn_hope Xem bài viết
    Đề nghị không gửi bài nhờ giải hộ. (Đây là nội qui của diễn đàn).
    Theo đề bài của bạn, mình gợi ý cho bạn chút ý kiến thế này:
    - Đầu tiên là sử dụng danh sách liên kết để lưu trữ dữ liệu vào ra từ file văn bản.
    - Sử dụng menu tạm với cách nhận một ký tự tương ứng với một vài ký tự định trước.
    ...
    * Gợi ý cài đặt chương trình
    - Thể hiện menu chương trình.
    - Tùy theo chức năng người dùng chọn mà xử lý.
    Theo chức năng đó, ta đọc dữ liệu vào danh sách liên kết, và xử lý.
    Việc thêm - xóa - sửa đều làm được trên danh sách liên kết.
    - Khi kết thúc chương trình, ta lưu đè dữ liệu lên file văn bản.

    * Hãy thử code và gửi bài của bạn lên đây, chúng tôi sẽ hỗ trợ bạn và biết đâu học hỏi được từ bạn. Thân !!!
    Thanks anh ^^!

  8. #8
    Ngày gia nhập
    08 2008
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Mình đã fix lại cho bạn rồi nè.
    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<string.h>
    4. #include<stdlib.h>
    5. #include<math.h>
    6. #include<CTYPE.H>
    7.  
    8. #define max 100
    9.  
    10. typedef struct canhan
    11. {
    12.     char hoten[50];
    13.     char diachi[50];
    14.     char email[50];
    15.     char yahoo[50];
    16.     int  dienthoai;
    17.     char ghichu[50];
    18. }CANHAN;
    19.  
    20. CANHAN diachi[max];
    21. int a=0;
    22. char filename[]="DIACHI.DAT";
    23.  
    24. int menu()
    25. {
    26.     char c;
    27.  
    28.     clrscr();
    29.     printf("\n++++++++++++++MENU++++++++++");
    30.     printf("\n++++++++++++++++++++++++++++");
    31.     printf("\n+++++++1.Nhap          +++++");
    32.     printf("\n+++++++2.Xoa           +++++");
    33.     printf("\n+++++++3.Sua doi       +++++");
    34.     printf("\n+++++++4.Danh Sach     +++++");
    35.     printf("\n+++++++5.Luu len dia   +++++");
    36.     printf("\n+++++++6.Lay tu dia    +++++");
    37.     printf("\n+++++++0.thoat         +++++");
    38.     printf("\n++++++++++++++++++++++++++++");
    39.     printf("\n chon muc:");
    40.     printf("\n++++++++++++++++++++++++++++");
    41.     printf("\n++++++++++++++++++++++++++++");
    42.  
    43.     do
    44.     {
    45.         c=getch();
    46.     }
    47.     while(c<'0'||c>'6');
    48.  
    49.     return c-'0';
    50. }
    51.  
    52. /**************************************************/
    53.  
    54. void ThongTin()
    55. {
    56.     int d=0;
    57.     char hoten[50];
    58.     char ghichu[50];
    59.     float sdt;
    60.  
    61.     do
    62.     {
    63.         printf("\nHo ten:");
    64.         gets(hoten);
    65.         if(strlen(hoten)==0)
    66.         {
    67.             d=1;
    68.         }
    69.         else
    70.         {
    71.             strcpy(diachi[a].hoten,hoten);
    72.             printf("\nDiachi:");
    73.             gets(diachi[a].diachi);
    74.             printf("\nEmail :");
    75.             gets(diachi[a].email);
    76.             printf("\nyahoo :");
    77.             gets(diachi[a].yahoo);
    78.             printf("\n thong tin khac:");
    79.             gets(diachi[a].ghichu);
    80.             printf("\n So dien thoai(neu co):");
    81.             scanf("%f",&sdt);
    82.             diachi[a].dienthoai=sdt;
    83.             a++;
    84.         }
    85.     }
    86.     while(!d);
    87.  
    88.     return;
    89. }
    90.  
    91. /************************************************/
    92.  
    93. void Xoa()
    94. {
    95.     int i,d=0,f,dump[max];
    96.     char hoten[50],hotentmp[50];
    97.  
    98.     while(!d)
    99.     {
    100.     if(a!=0)
    101.     {
    102.     printf("\nHo ten ca nhan can xoa:");
    103.     gets(hoten);
    104.     if(strlen(hoten)==0)
    105.     d=1;
    106.     else
    107.     {
    108.     i=f=0;
    109.     do{
    110.     strcpy(hotentmp,diachi[i].hoten);
    111.     if(strcmp(strupr(hoten),strupr(hotentmp))==0)
    112.     dump[f++]=i;
    113.     i++;
    114.     }
    115.     while(i<a);
    116.     if(!f)
    117.     printf("\n Khong tim thay ca nhan co ten %s",hoten);
    118.     else
    119.     {
    120.     for(i=0;i<f;i++);
    121.     {
    122.     printf("\n%d%s%s%s%s%s%d",i+1,diachi[dump[i]].hoten,diachi[dump[i]].diachi,
    123.     diachi[dump[i]].email,diachi[dump[i]].yahoo,diachi[dump[i]].ghichu,
    124.     diachi[dump[i]].dienthoai);
    125.     }
    126.     printf("\n tim thay %d ca nhan",f);
    127.     printf("\n chon thu tu muon xoa(neu muon huy bo thi chon so khong nam trong pham vi):");
    128.     scanf("%d",&i);
    129.     if(i>=1 && i<=f)
    130.     {
    131.     for(f=dump[i-1];f<a-1;f++)
    132.     diachi[f]=diachi[f+1];
    133.     a--;
    134.     printf("\nDa huy");
    135.     }
    136.     else
    137.     printf("\n Viec xoa bi huy bo");
    138.     }
    139.     d=1;
    140.     }getch();
    141.     }
    142.     else d=1;
    143.     }
    144. }
    145.  
    146. /************************************************/
    147.  
    148. void Sua()
    149. {
    150.     int i,d=0,f,dump[max];
    151.     char hoten[20],hotentmp[20];
    152.     int  sdt;
    153.     char thongtin[50];
    154.    
    155.     while(!d)
    156.     {
    157.         if(a!=0)
    158.         {
    159.             printf("\n Ho ten ca nhan can sua:");
    160.             gets(hoten);
    161.             if(strlen(hoten)==0)
    162.                 d=1;
    163.             else
    164.             {
    165.                 i=f=0;
    166.                 do
    167.                 {
    168.                     strcpy(hotentmp,diachi[i].hoten);
    169.                     if(strcmp(strupr(hoten),strupr(hotentmp))==0)
    170.                         dump[f++]=i;
    171.                     i++;
    172.                 }
    173.                 while(i<a);
    174.                
    175.                 if(!f)
    176.                     printf("\nKhong tim thay ca nhan co ten %s",hoten);
    177.                 else
    178.                 {
    179.                     for(i=0;i<f;i++);
    180.                     {
    181.                         printf("\n%d%s%s%s%s%s%d",i+1,diachi[dump[i]].hoten,diachi[dump[i]].diachi,
    182.                         diachi[dump[i]].email,diachi[dump[i]].yahoo,diachi[dump[i]].ghichu,
    183.                         diachi[dump[i]].dienthoai);
    184.                     }
    185.  
    186.                     printf("\n\n tim thay %d ca nhan",f);
    187.                     printf("\n chon thu tu muon sua doi(neu muon huy bo thi chon so khong nam trongpham vi):");
    188.                     scanf("%d%*c",&i);
    189.                     if(i>=1 &&i<=f)
    190.                     {
    191.                         printf("\n%s \n Ho ten:",diachi[dump[i-1]].hoten);
    192.                         gets(diachi[dump[-1]].hoten);
    193.                         printf("\n%sdia chi:",diachi[dump[i-1]].diachi);
    194.                         gets(diachi[dump[i-1]].diachi);
    195.                         printf("\n%s email:",diachi[dump[i-1]].email);
    196.                         gets(diachi[dump[i-1]].email);
    197.                         printf("\n%s Nich chat:",diachi[dump[i-1]].yahoo);
    198.                         gets(diachi[dump[i-1]].yahoo);
    199.                         printf("\n%s Ghi chu:",diachi[dump[i-1]].ghichu);
    200.                         gets(diachi[dump[i-1]].ghichu);
    201.                         printf("\n%d so dien thoai:",diachi[dump[i-1]].dienthoai);
    202.                         scanf("%d",&sdt);
    203.                         diachi[dump[i-1]].dienthoai=sdt;
    204.                         printf("\n Da thay doi");
    205.                     }
    206.                     else printf("\n Viec thay doi bi huy bo");
    207.                 }
    208.                
    209.                 d=1;
    210.             }
    211.  
    212.             getch();
    213.         }
    214.         else d=1;
    215.     }
    216. }
    217.  
    218. /****************************************************************/
    219.  
    220. void DanhSach()
    221. {
    222.     int i;
    223.     if(a!=0)
    224.     {
    225.         printf("\n|STT|   HO VA TEN      |DIA CHI|     EMAIL     |YAHOO|    |SO DT|     GHI CHU|");
    226.  
    227.         for(i=0;i<a;i++)
    228.         {
    229.             printf("\n|%3d|",i+1);
    230.             printf("%-35s|  %-7s|  %4.1s|   %4.1s|    %4.1d|     %4.10s|",diachi[i].hoten,diachi[i].diachi,diachi[i].email,
    231.             diachi[i].yahoo,diachi[i].dienthoai,diachi[i].ghichu);
    232.         }
    233.  
    234.     }
    235.     getch();
    236. }
    237.  
    238. void getdata()
    239. {
    240.     char c;
    241.     int start,n;
    242.     FILE *fp;
    243.     long curpos,length;
    244.  
    245.     start=0;
    246.     if(a!=0)
    247.     {
    248.         printf("\n dang co du lieu trong bo nho.co  muon noi them vao khong?(C/K)");
    249.         c=toupper(getch());
    250.        
    251.         if (c=='C')
    252.             start=a;
    253.         else
    254.             start=0;
    255.  
    256.         if((fp=fopen(filename,"r"))==NULL)
    257.             printf("\nkhong the mo tap tin %s",filename);
    258.         else
    259.         {
    260.             curpos=ftell(fp);
    261.             fseek(fp,0L,SEEK_END);
    262.             length=ftell(fp);
    263.             fseek(fp,curpos,SEEK_SET);
    264.             n=length/sizeof(CANHAN);
    265.             fread(&diachi[start],sizeof(CANHAN),n,fp);
    266.             fclose(fp);
    267.             printf("\n Them vao %d records",n);
    268.             a+=n;
    269.             getch();
    270.         }
    271.     }
    272. }
    273.  
    274. void putdata()
    275. {
    276.     FILE *fp;
    277.  
    278.     if((fp=fopen(filename,"w+"))==NULL)
    279.     {
    280.         printf("\nKhong ghi tap tin %s",filename);
    281.     }
    282.     else
    283.     {
    284.         fwrite(&diachi[0],sizeof(CANHAN),a,fp);
    285.         fclose(fp);
    286.         printf("\nGhi %d records",a);
    287.         getch();
    288.     }
    289. }
    290.  
    291. void main()
    292. {
    293.     int chon,d=0;
    294.     do
    295.     {
    296.         chon=menu();
    297.         switch(chon)
    298.         {
    299.             case 1:
    300.                 ThongTin();
    301.                 break;
    302.             case 2:
    303.                 Xoa();
    304.                 break;
    305.             case 3:
    306.                 Sua();
    307.                 break;
    308.             case 4:
    309.                 DanhSach();
    310.                 break;
    311.             case 5:
    312.                 putdata();
    313.                 break;
    314.             case 6:
    315.                 getdata();
    316.                 break;
    317.             case 0:
    318.                 d=1;
    319.         }
    320.     }while(!d);
    321. }
    Thanks ban nhiều !

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

  1. Sự cố Nhờ mod chuyển giúp bài "Sắp xếp số thứ tự ngay trong bảng của 1 database?" từ MySQL sang MSSQL giúp!
    Gửi bởi hu-xeko trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 1
    Bài viết cuối: 12-03-2012, 07:48 PM
  2. Mới nhập môn khó quá , cần trợ giúp [Vấn đề của bạn cần muốn giúp là gì ?]
    Gửi bởi cuingo212 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 5
    Bài viết cuối: 22-10-2011, 08:43 AM
  3. Chương trình giúp một học sinh cấp 1 học phép nhân, xử lý hàm rand, giúp mình với?
    Gửi bởi chankx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 12-05-2009, 08:52 PM
  4. Code giúp add một key vào registry, ai giúp em?
    Gửi bởi olavien trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 12-12-2007, 08:45 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