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

Đề tài: tạo hàm "thêm"

  1. #1
    Ngày gia nhập
    07 2007
    Bài viết
    43

    Mặc định tạo hàm "thêm"

    bi h e đag viết hàm "thêm" để nhập thêm vào tệp tin đã tồn tại, nhưng bí quá, chỉ biết đưa lên mảng, rồi nhập nhưng nhập bị lặp liên tục kô dừng, đành lên đây nhờ mọi ng 1 cái

    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #define max 100
    FILE *f;
    
    typedef struct khachang
    {
     char  ht[25],
           diachi[20],
           sdt[16];
    
     char  makh[6],
           sokhung[10],
           nhasx[10],
           tensp[6],
           somay[10];
    
     int   solg;
     float donja, thanhtien;
    };
    //--------------------------------------------------------------------------
    
    void nhapds(char *tentep)
    {
     khachang x;
     char ch;
     float dj;
    
     f= fopen(tentep,"wb");
    
     do {
         clrscr();
         gotoxy(24,1); printf("CUA HANG XE MAY TOAN THANG \n\n");
         printf("\n Danh sach khach mua hang: \n");
    
         do
    	{
    	  fflush(stdin);
    	  printf(" Ho va ten: ");
    	  gets(x.ht); fflush(stdin);
    	 } while (strcmpi(x.ht,"")==0);
    
    
         printf(" Dia chi: ");
         gets(x.diachi); fflush(stdin);
    
         printf(" SDT: ");
         scanf("%s",&x.sdt);
         fflush(stdin);
    
         do
           {
    	 printf(" Ma khach hang: ");
    	 gets(x.makh); fflush(stdin);
           } while (strcmpi(x.makh,"")==0);
    
         do
           {
    	 printf(" Ten san pham: ");
    	 gets(x.tensp); fflush(stdin);
           } while (strcmp(x.tensp,"")==0);
    
         do
           {
    	 printf(" Nha san xuat: ");
    	 gets(x.nhasx); fflush(stdin);
           } while (strcmpi(x.nhasx,"")==0);
    
         do
           {
    	 printf(" So khung: ");
    	 gets(x.sokhung); fflush(stdin);
           } while (strcmpi(x.sokhung,"")==0);
    
         do
           {
    	 printf(" So may: ");
    	 gets(x.somay); fflush(stdin);
           } while (strcmpi(x.somay,"")==0);
    
    	 printf(" So luong: ");
    	 scanf("%d",&x.solg);
    	 fflush(stdin);
    
    	 printf(" Don gia: ");
    	 scanf("%f",&dj);
    	 x.donja= dj;
    	 fflush(stdin);
    
         // ghi len tep tin
         fwrite(&x,sizeof(khachang),1,f);
         printf("\n Nhan phim K de ket thuc.");
         ch= getch();
    
        } while ((ch!='k')&& (ch!='K'));
     fclose(f);
    }
    //--------------------------------------------------------------------------
    
    void hienthi (char *tentep)
    {
     int i, tongslg=0;
     float tongtien=0;
    
     khachang x;
    
     f= fopen(tentep,"rb");
    
     clrscr();
     gotoxy(24,1); printf("CUA HANG XE MAY TOAN THANG \n");
     gotoxy(16,2); printf("Khuyen mai: Mua 2 xe jam ja 1 trieu dong/xe \n");
     gotoxy(63,3); printf("DVT: Trieu dong\n");
     printf("|--------------------|------|--------|---------|--------|------|------------|\n");
     printf("| Ho va ten          | MaKH | Ten sp | Hang sx | Don ja | Solg | Thanh tien |\n");
     printf("|--------------------|------|--------|---------|--------|------|------------|\n");
    
     int d=7;
     while (fread(&x,sizeof(x),1,f)>=1)
     {
       gotoxy(1,d); printf("|");
       gotoxy(3,d); printf("%s",x.ht);
    
       gotoxy(22,d); printf("|");
       gotoxy(24,d); printf("%s",x.makh);
    
       gotoxy(29,d); printf("|");
       gotoxy(31,d); printf("%s",x.tensp);
    
       gotoxy(38,d); printf("|");
       gotoxy(40,d); printf("%s",x.nhasx);
    
       gotoxy(48,d); printf("|");
       gotoxy(50,d); printf("%.2f",x.donja);
    
       gotoxy(57,d); printf("|");
       gotoxy(59,d); printf("%d",x.solg);
    
       if (x.solg >=2 ) x.thanhtien = (x.solg*x.donja)-(x.solg*1);
       else x.thanhtien = x.solg*x.donja;
    
       gotoxy(64,d); printf("|");
       gotoxy(66,d); printf("%.2f",x.thanhtien);
    
       gotoxy(77,d); printf("|");
       d++;
    
       tongslg+=  x.solg;
       tongtien+= x.thanhtien;
     }
     printf("\n");
     printf("|--------------------|------|--------|---------|--------|------|------------|\n");
     printf("\n Tong so luong xe ban duoc: %d xe\n",tongslg);
     printf(" Tong so tien da thu ve: %.2f trieu dong\n",tongtien);
     printf("\n Chu thich: \n");
     printf(" MaKH: Ma khach hang.\n");
     printf(" Tensp: Ten san pham .\n");
     printf(" Hangsx: Nha (Hang) san xuat.\n");
     fclose(f);
    }
    //--------------------------------------------------------------------------
    
    void timkiem(char *tentep)
    {
     khachang x;
     char ma[6];
     int kt=0;//ban dau chua tim thay
     printf("\n\tNhap ma can tim: "); gets(ma); fflush(stdin);
     f=fopen(tentep,"rb");
     while(!kt&&(!feof(f)) )
     {
      fread(&x,sizeof(khachang),1,f);
      if (strcmpi(x.makh,ma)==0) kt=1;
     }
     fclose(f);
     if (kt==1)
        { clrscr();
          f= fopen (tentep,"rb");
          gotoxy(24,1); printf("CUA HANG XE MAY TOAN THANG \n");
          gotoxy(16,2); printf("Khuyen mai: Mua 2 xe jam ja 1 trieu dong/xe \n");
          printf("\n Ho va ten: %s",x.ht);
          printf("\n Dia chi: %s",x.diachi);
          printf("\n Phone numbers: %s ",x.sdt);
          printf("\n Ma khach hang: %s \n",x.makh);
          gotoxy(65,8); printf("DVT: Trieu dong\n");
          printf("|--------|---------------|----------|--------|----------|---------|-----------|\n");
          printf("| Ten xe | Hang san xuat | So khung | So may | So luong | Don gia | Tong tien |\n");
          printf("|--------|---------------|----------|--------|----------|---------|-----------|\n");
          int d=12;
          while (fread(&x,sizeof(x),1,f)>=1)
    	    {
    	      gotoxy(1,d); printf("|");
    	      gotoxy(3,d); printf("%s",x.tensp);
    
    	      gotoxy(10,d); printf("|");
    	      gotoxy(12,d); printf("%s",x.nhasx);
    
    	      gotoxy(26,d); printf("|");
    	      gotoxy(28,d); printf("%s",x.sokhung);
    
    	      gotoxy(37,d); printf("|");
    	      gotoxy(39,d); printf("%s",x.somay);
    
    	      gotoxy(46,d); printf("|");
    	      gotoxy(48,d); printf("%d chiec",x.solg);
    
    	      gotoxy(57,d); printf("|");
    	      gotoxy(59,d); printf("%.2f",x.donja);
    
    
    	      if (x.solg >=2 ) x.thanhtien = (x.solg*x.donja)-(x.solg*1);
    	      else x.thanhtien = x.solg*x.donja;
    
    	      gotoxy(67,d); printf("|");
    	      gotoxy(69,d); printf("%.2f",x.thanhtien);
    
    	      gotoxy(79,d); printf("|");
    
    	    }
          printf("\n|--------|---------------|----------|--------|----------|---------|-----------|");
          fclose(f);
         }
     if (kt==0) printf("\n Khong tim thay khach hang co ma vua nhap");
    }
    //--------------------------------------------------------------------------
    
    void docteplenmang(khachang *a,int *n,char *tentep)
    {
     khachang x;
     (*n)=0;//mang ban dau chua co khach hang nao
     f=fopen(tentep,"rb");
     //doc tep len mang a
     while (fread(&x,sizeof(khachang),1,f)>0)
     {
       (*n)++;
       a[*n]=x;
     }
     fclose(f);
    }
    //--------------------------------------------------------------------------
    
    void sapxep(char *tentep)
    {
     khachang x,a[max];
     int n,i,j;
     docteplenmang(a,&n,tentep);
    
     //sap xep mang theo so luong ban
     for (i=1;i<=n-1;i++)
      for (j=i+1;j<=n;j++)
       if (a[i].solg<a[j].solg)
        //doi cho
        {
         x=a[i];
         a[i]=a[j];
         a[j]=x;
        }
    
     //ghi len tep
     f=fopen(tentep,"wb");
     for (i=1;i<=n;i++)
      fwrite(&a[i],sizeof(khachang),1,f);
      fclose(f);
      hienthi(tentep);
    }
    //--------------------------------------------------------------------------
    
    //--------------------------------------------------------------------------
    
    void main()
    {
     int n;
     char ch;
     khachang x;
     do{
       clrscr();
       gotoxy(24,1); printf("CUA HANG XE MAY TOAN THANG \n");
       printf("\n\t 1. Nhap danh sach khach mua xe.");
       printf("\n\t 2. Hien thi danh sach khach mua xe.");
       printf("\n\t 3. Tim kiem theo ma khach hang.");
       printf("\n\t 4. Sap xep danh sach tang theo slg mua.");
       printf("\n\t 5. Them khach hang.");
       printf("\n\t 6. Xoa khach hang ra khoi danh sach.");
       printf("\n\t ESC de thoat");
       ch=getch();
    
       switch (ch)
       {
         case '1':  nhapds("xemay.dat"); break;
         case '2':  hienthi("xemay.dat"); getch(); break;
         case '3':  timkiem("xemay.dat"); getch(); break;
         case '4':  sapxep("xemay.dat"); getch(); break;
         case '5':  them("xemay.dat"); getch(); break;
       }
     } while (ch!=27);
    
    }

    đây là toàn bộ bài của e, đã chạy rồi chỉ còn có mục "Thêm" và "Xoá" nữa thôi
    Đã được chỉnh sửa lần cuối bởi Rongcon.com.vn : 03-08-2007 lúc 10:31 PM.

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    sao bạn không đưa đoạn code bị lỗi lên mọi người sẽ giúp bạn.Trước mình có làm một bài tập về quản lý(Code bằng C++) có cả code " Thêm " và "Xóa" nếu bạn muốn thì gửi email cho mình rồi mình send cho.

    Yêu cầu đọc nội quy box (không được kêu gọi người khác gửi Email cho mình). Bài viết vi phạm
    Đã được chỉnh sửa lần cuối bởi iamvtn : 04-08-2007 lúc 11:53 AM.

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    SN06 - 70 Trương Định - HBT - HN
    Bài viết
    36

    Mặc định Thêm bớt vào tệp tin đã tồn tại.....????

    Bạn đang gặp khó khăn về vấn đề này>>>>>

    Theo mình thì việc chèn vào têp tin đã có sẵn thì bạn ghi dưới dạng nhị phân với hàm write và read (Mình dùng borland C++5.02 ).
    Còn nếu bạn muốn thay đổi cấu trúc file thì chỉ có cách duy nhất đó là sắp xếp rùi ghi vào file nha...
    Mình cũng có bài tương tự kiểu này : đó là bài "Từ điển mini" version4 trông khá đẹp mắt dùng để học tiếng nhật tuy nhiên bạn có thể biến nó thành bất cứ thứ từ điển nào miễn là biểu diễn được dưới dạng chữ romari (latinh). Hãy tìm trong mục chứa project hay chỗ nào đó trong diễn đàn nha, mình kô nhớ rõ...


    =====================================
    XWAYSTYLE ---------> Brings joy to milions.....
    Intel(R) Pentium 4(R) 2.8GHz Main IntelD845Pemy (Socket 478) RAM 1024Mb VGAFX5200 128Mb 128Bit HDD Maxtor 160Gb PATA Sound Blaster live 5.1 Gamer

    Windows Vista Ultimate Sp1 (activated)
    Rating : 2.5 Mark
    Theme: Windows Aero (very nice!)

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

  1. nghĩa của 3 từ "principals", "artifacts", "securables" là như thế nào?
    Gửi bởi ntbao trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 1
    Bài viết cuối: 29-09-2012, 11:29 AM
  2. Trả lời: 1
    Bài viết cuối: 01-12-2011, 07:32 PM
  3. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM
  4. Cần công cụ tự động thêm các dấu {} "" /* */ khi code trong Visual Studio giống Resharper
    Gửi bởi longtth trong diễn đàn Công cụ, ebooks C#, ASP.NET, và Windows Mobile
    Trả lời: 1
    Bài viết cuối: 09-02-2011, 11:36 PM
  5. Đề xuất Thêm flag "Đã giải quyết" (Resolved) hay "chưa giải quyết" cho topic
    Gửi bởi cuonchagio trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 3
    Bài viết cuối: 28-01-2010, 05:34 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