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

Đề tài: Chương trình quản lý hàng hóa viết bằng C | Hàm thêm hàng hóa viết làm sao?

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

    Red face Chương trình quản lý hàng hóa viết bằng C | Hàm thêm hàng hóa viết làm sao?

    Xây dựng một chương trình quản lý bán hàng trong đó dữ liệu cấu trúc được mô tả như sau:
    typedef struct {
    char mh[10]; // ma hang
    char tenh[30]; //ten hang
    double sl // so luong hang
    double dg; // don gia
    double tt; // thanh tien = sl x dg
    } hang;
    Menu chọn như sau:
    1. Nhập hàng
    2. Liệt kê hàng
    3. Sắp xếp hàng theo mã hàng
    4. Tìm hàng khi nhập mã hàng
    5. Xoá hàng khi nhập mã hàng
    6. Thêm một hàng
    0. Thoát

    Đây là code của mình ,nhưng mà thiếu hàm thêm hàng hóa ,bác nào giúp với ,cái hàm thêm hàng hóa mình k biết viết thế nào !!
    PHP Code:
     #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #include <ctype.h>
    #include <dos.h>
    #include <io.h>
    #include <stdlib.h>

    typedef  struct {
        
    char mh[10];
        
    char tenh[30];
        
    long int sl;
        
    long int dg;
        
    long int tt;
        } 
    hang;
    void ghi(char *name)
    {
      
    hang s;
      
    FILE *f;
      
    char tl='C';
      
      
    f=fopen(name,"w");
      if(
    f==NULL){
         
    printf("\n khong tao duoc tep");
         return;
         }
      do{
        
    printf("\n ma hang hoa:");
        
    fflush(stdin);    gets(s.mh);
        
    printf("\n Ten hang hoa:");
        
    fflush(stdin);    gets(s.tenh);

        
    printf("\n So luong hang :");    scanf("%ld",&s.sl);

        
    printf("\n Don gia  :");    scanf("%ld",&s.dg);

        
    s.tt=(s.sl*s.dg);

        
    fwrite(&s,sizeof(hang),1,f);
        
    printf("\n co nhap tiep nua khong(c/k)?");
        
    tl=getche();
      }while (
    toupper(tl)!='K');
      
    fclose(f);
    }
    void doc(char *name,hang *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(hang);
       while(
    i<n){
       
    fread(&s[i],sizeof(hang),1,f);
       
    i++;
       }
       
    getch();
       
    fclose(f);
    }
    void hthi(hang *s,int n)
    {
      
    int i;
      
    printf("\n Danh sach hang hoa");
      
    printf("\n==============================================================================");
      
    printf("\n|STT| Mso ha |   Ten hag   |sl hag |don gia |thanh tien|");
      
    printf("\n==============================================================================");
      for(
    i=0;i<n;i++)
      {
      
    printf("\n|%3d|%8s|%12s ",(i+1),s[i].mh,s[i].tenh);
         
    printf("|%ld      |%ld       |%ld  ",s[i].sl,s[i].dg,s[i].tt);
      }
      
    printf("\n==============================================================================");
    }
    void sxep(hang *s,int n)
    {
      
    int i,j;
      
    hang t;
      for(
    i=0;i<n;i++)
        for(
    j=i+1;j<n;j++)
          if(
    strcmp(s[i].mh,s[j].mh)>0)
        {
    t=s[i];
         
    s[i]=s[j];
         
    s[j]=t;
        }
    }
    int tknhiphan(hang *s,int n,char *ma)
    {
      
    int low=0,high=n-1,mid;
      while(
    low<=high)
      {
        
    mid=(low+high)/2;
        if(
    strcmp(s[mid].mh,ma)>0)
          
    high=mid-1;
        else if(
    strcmp(s[mid].mh,ma)<0)
          
    low=mid+1;
        else return(
    mid);
      }
      return(-
    1);
    }
    void xoa(char *ma,int &n,hang *s,char *ten){
       
    int k;FILE *f;
      
    int i;
       
    k=tknhiphan(s,n,ma);
       if(
    k==-1){
         
    printf("\n khong co sinh vien co 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(hang),1,f);
          
    fclose(f);
        
    }
    void menu(void)
    {
      
    char name[]="hang.dat";
      
    hang *s;
      
    int n,i;
      
    char ma[15];
      
    int chon;
      do
      { 
         
    printf("\n 1. Nhap hang hoa");
         
    printf("\n 2. Liet ke hang hoa");
         
    printf("\n 3. Sap xep theo ma hang ");
         
    printf("\n 4. Tim hang khi nhap ma");
         
    printf("\n 5. Xoa hang khi nhap ma");
         
    printf("\n 6. Them hang ");
         
    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 hang can tim:");
              
    fflush(stdin);
              
    gets(ma);
              
    i=tknhiphan(s,n,ma);
              if(
    i==-1)
                
    printf("\n Khong co hang co ma :%s",ma);
              else
                {
                  
    printf("\n hang thu  %d trong danh sach",i);
                  
    printf("\n ten hang:%s",s[i].tenh);
                                      
    printf("\n So luong hang :%2ld",s[i].sl);
                  
    printf("\n Don gia :%2ld",s[i].dg);
                                      
    printf("\n Thanh tien :%2ld",s[i].tt);
                }
            
    getch();
            break;
         case 
    '5':     doc(name,s,n);
              
    printf("\n nhap ma hang can xoa:");
              
    fflush(stdin);
              
    gets(ma);
              
    printf("\n Danh sach truoc khi xoa");
              
    hthi(s,n);
              
    xoa(ma,n,s,name);
                
    printf("\n Danh sach sau khi xoa");
              
    hthi(s,n);
              
    getch();
              break;
         case 
    '2'doc(name,s,n);
              
    hthi(s,n);
              
    getch();
            break;
                  case 
    '6'printf("\nChưa có gì ");
                              
    getch();
                              break;   
         }
      }while(
    chon != '0');

    }

    void main()
    {
       
    menu();


  2. #2
    Ngày gia nhập
    08 2008
    Nơi ở
    ha noi
    Bài viết
    79

    thêm hàng thì bạn cấp phát 1 bộ nhớ mới cho nó rồi sau đó chèn thằng thêm đó vào đầu hay cuối danh sách thì tùy bạn

    code
    Code:
           // cấp phát bộ nhớ và nhập danh sách cho sinh viên....
    
           //chèn phần tử đó vào đầu danh sách
    
           if(q.head==NULL)
    			{
    				q.head=p;
    				q.tail=q.head;
    			}
    		else
    			{
    				p->next=q.head;
    				q.head=p;
    			}
    u never know

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

    Thank bạn ,đúng là mình còn thiếu cái chèn thêm vào danh sách

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

  1. Dịch vụ gửi hàng hóa đi Australia, gửi hàng hóa đi France, gửi hàng hóa đi Germany, gửi hàng hóa đi Janpan giá rẻ.
    Gửi bởi sales5ttico trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 30-07-2014, 02:51 PM
  2. Mã hóa AES viết trên WinForms như thế nào?
    Gửi bởi luannguyenit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 15-12-2010, 10:19 PM
  3. Viết chương trình quản lý hàng hóa (chạy trên Visual 2k5)
    Gửi bởi mrdong trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 28-05-2010, 08:35 PM
  4. Công nghệ nhận dạng chữ viết, số hóa thông tin, giải pháp số hóa cho các doanh nghiệp
    Gửi bởi thepbac trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 23-04-2010, 09:51 AM
  5. Mã hóa văn bản viết trên C++! Mình đưa cả source lên, giúp mình sửa lỗi với
    Gửi bởi pham_thang 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: 15-05-2009, 09:23 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