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

Đề tài: code bài quản lý sách | Lỗi hàm thêm sách, các bạn giúp đỡ mình?

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    61

    Red face code bài quản lý sách | Lỗi hàm thêm sách, các bạn giúp đỡ mình?

    Cái code này bị sai cái hàm "thêm " sách ,các bạn sửa giúp mình nha ,mình đang rất cần
    PHP Code:
     #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #include <ctype.h>
    #include <io.h>
    #include <stdlib.h>


    typedef  struct {
        
    char ms[10];
        
    char tens[30];
        
    int sl;
        
    int slm;
        
    int slc;
        } 
    sach;
    void ghi(char *name)
    {
      
    sach s;
      
    FILE *f;
      
    char tl'C';
      
      
    f=fopen(name,"w");
      if(
    f==NULL){
         
    printf("\n khong tao duoc tep");
         return;
         }
      do{
        
    printf("\n Nhap ma sach :");
        
    fflush(stdin);    gets(s.ms);
        
    printf("\n Ten sach :");
        
    fflush(stdin);    gets(s.tens);
        
    printf("\n So luong co  :");   scanf("%d",&s.sl);
        
    printf("\n So luong muon :");   scanf("%d",&s.slm);
        
    s.slc=s.sl-s.slm;

        
    fwrite(&s,sizeof(sach),1,f);
        
    printf("\n co nhap tiep nua khong(c/k)?");
        
    tl=getche();
      }while (
    toupper(tl)!='K');
      
    fclose(f);
    }
    void them(char *name)
    {
     
    int n;
     
    sach s;
    FILE *f;
    f=fopen("sach.dat","w");
    printf("\n Nhap ma sach :");
        
    fflush(stdin);    gets(s.ms);
        
    printf("\n Ten sach :");
        
    fflush(stdin);    gets(s.tens);
        
    printf("\n So luong co  :");   scanf("%d",&s.sl);
        
    printf("\n So luong muon :");   scanf("%d",&s.slm);
        
    s.slc=s.sl-s.slm;

        
    fwrite(&s,sizeof(sach),1,f);   
                        
    fclose(f); 
    }
    void doc(char *name,sach *s,int &n)
    {
       
    FILE *f;
       
    int i=0;
       
    f=fopen(name,"r");
       if(
    f==NULL){
         
    printf("\n chua co tep nay");
         return;
       }
        
    n=filelength(fileno(f))/sizeof(sach);
        while(
    i<n){
       
    fread(&s[i],sizeof(sach),1,f);
       
    i++;
       }
       
    getch();
       
    fclose(f);
    }
    void hthi(sach *s,int n)
    {
      
    int i;
      
    printf("\n Danh muc sach ");
      
    printf("\n==============================================================================");
      
    printf("\n|STT| Ma sach|  Ten           |Sl co   |Sl muon  |Sl con ");
      
    printf("\n==============================================================================");
      for(
    i=0;i<n;i++)
      {
      
    printf("\n|%3d|%8s|%15s |%2d    |%2d     |%2d    ",(i+1),s[i].ms,s[i].tens,s[i].sl,s[i].slm,s[i].slc);
      }
      
    printf("\n==============================================================================");
    }
    void sxep(sach *s,int n)
    {
      
    int i,j;
      
    sach t;
      for(
    i=0;i<n;i++)
        for(
    j=i+1;j<n;j++)
          if(
    strcmp(s[i].ms,s[j].ms)>0)
        {
    t=s[i];
         
    s[i]=s[j];
         
    s[j]=t;
        }
    }
    int tknhiphan(sach *s,int n,char *ma)
    {
      
    int low=0,high=n-1,mid;
      while(
    low<=high)
      {
        
    mid=(low+high)/2;
        if(
    strcmp(s[mid].ms,ma)>0)
          
    high=mid-1;
        else if(
    strcmp(s[mid].ms,ma)<0)
          
    low=mid+1;
        else return(
    mid);
      }
      return(-
    1);
    }
    void xoa(char *ma,int &n,sach *s,char *ten){
       
    int k;FILE *f;
      
    int i;
       
    k=tknhiphan(s,n,ma);
       if(
    k==-1){
         
    printf("\n Khong co sach ma :",ma);
         return;
        }

        for(
    i=k;i<n-1;i++)
          
    s[i]=s[i+1];
          
    n=n-1;

        if((
    f=fopen(ten,"w"))==NULL){
          
    printf("\n khong mo duoc");
          return;
          }
        for(
    i=0;i<n;i++)
          
    fwrite(&s[i],sizeof(sach),1,f);
          
    fclose(f);

    }
    void menu(void)
    {
      
    char name[]="sach.dat";
      
    sach *s;
      
    int n,i;
      
    char ma[15];
      
    int chon;
      do
      {  
         
    printf("\n 1. Nhap Sach ");
         
    printf("\n 2. Liet ke sach trong thu vien");
         
    printf("\n 3. Sap xep hteo ma sach ");
         
    printf("\n 4. Tim sach khi nhap ma");
         
    printf("\n 5. Xoa sach khi nhap ma");
         
    printf("\n 6. Them sach ");
         
    printf("\n 0. Thoat");
         
    printf("\n chon:");
         
    chon=getche();
         switch(
    chon)
         {
           case 
    '1':ghi(name);
            break;

           case 
    '3'doc(name,s,n);
              
    printf("\n Chua sap xep");
              
    hthi(s,n);
              
    sxep(s,n);
              
    printf("\n Da sap xep");
              
    hthi(s,n);
              
    getch();
            break;
           case 
    '4':  doc(name,s,n);
              
    printf("\n Nhap ma sach can tim:");
              
    fflush(stdin);
              
    gets(ma);
              
    i=tknhiphan(s,n,ma);
              if(
    i==-1)
                
    printf("\n Khong co sach co ma :%s",ma);
              else
                {
                  
    printf("\n sach thu  %d trong danh sach",i);
                  
    printf("\n ten sach:%s",s[i].tens);
                  
    printf("\n So luong sach :%d",s[i].sl);
                  
    printf("\n So luong muon :%d",s[i].slm);
                  
    printf("\n So luong con :%d",s[i].slc);
                }
            
    getch();
            break;
         case 
    '5':     doc(name,s,n);
              
    printf("\n nhap ma sach can xoa:");
              
    fflush(stdin);
              
    gets(ma);
              
    printf("\n Danh muc truoc khi xoa");
              
    hthi(s,n);
              
    xoa(ma,n,s,name);
              
    printf("\n Danh muc sau khi xoa");
              
    hthi(s,n);
              
    getch();
              break;
         case 
    '2'doc(name,s,n);
              
    hthi(s,n);
              
    getch();
            break;
                          case 
    '6'printf("\nThem sach ");
                                           
    them(name);
                                          
    doc(name,s,n);
                                           
    getch();
                                            break;
                                            
         }
      }while(
    chon != '0');

    }

    void main()
    {
       
    menu();


  2. #2
    Ngày gia nhập
    03 2009
    Nơi ở
    Hà Nội
    Bài viết
    74

    ở hàm thêm bạn phải chọn kiểu file là "a" đề ghj thêm vào cuối file

    http://ebook.here.vn
    trang web cung cấp đề thi,tài liệu ôn thi đại học.

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    61

    Oh Year ,đúng quá ,mình sửa "r" thành "a" và đã okie rồi ,cảm ơn bạn nhiều .
    Sướng quá ,đêm nay chắc k ngủ đc hehe

  4. #4
    Ngày gia nhập
    11 2008
    Nơi ở
    Hà Nội
    Bài viết
    70

    Mình chạy thử nhưng nó hiển thị ra lỗi mà cậu.
    Dân thường sống đẹp đè bẹp dân chơi.
    Hi [you]

  5. #5
    Ngày gia nhập
    03 2009
    Bài viết
    61

    Mình chạy đúng mà .Hôm nay KT làm ngon lành

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

  1. Code quản lý sách và học sinh, hướng đối tượng, xin nhận thêm ý kiến!
    Gửi bởi violent_feeling trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 5
    Bài viết cuối: 12-12-2012, 03:42 PM
  2. Lập trình C Giúp mình kết quả của các đoạn code sau
    Gửi bởi yoyo06 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 12-12-2012, 01:21 PM
  3. Bài tập C đoạn code về mảng, thêm giá trị vào mảng. Giải thích giúp mình
    Gửi bởi huantuoc 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: 03-04-2010, 09:47 PM
  4. Code của chương trình quản lý xe máy có kèm thêm yêu cầu! Giúp đỡ mình với?
    Gửi bởi E0k3y trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 29-06-2009, 10:47 PM
  5. Code quản lý sinh viên bằng danh sách lối vòng. Giúp mình thay đổi code kế thừa?
    Gửi bởi caocanha trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 04-05-2009, 03:39 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