Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 25 kết quả

Đề tài: Lập trình C++ với file | Bài Tập Về File, mở đọc File

  1. #1
    Ngày gia nhập
    04 2009
    Nơi ở
    C:\Window\System32
    Bài viết
    24

    Red face Lập trình C++ với file | Bài Tập Về File, mở đọc File

    Chào anh em trong 4rum,mình có vấn đề cần các bạn trong diễn đàn giúp đỡ
    mình có bài như sau:
    File c.txt gồm các :
    Mã hóa đơn,Tên khách hàng,Tên mặt hàng,số lượng,giá,thành tiền
    em chỉ muốn hiện 4 thuộc tính về hàng..(Thống kê hàng đã bán),hoặc nhập một mã hóa đơn vào rồi sửa thông tin hóa
    đơn đó.....
    Nhưng khi đọc từ buffer để hiện,nó hiện ra giá trị khác
    Mong các bạn giúp đỡ mình về File...
    [PHP]
    PHP Code:
    Dữ liệu về lớp như sau:
    //===========================================//
    #include <conio.h>
    #include <iostream.h>
    #include <iomanip.h>
    #include <math.h>
    #include <string.h>
    #include <fstream.h>
    #include <stdlib.h>
    #include <ctype.h>
    #include <graphics.h>
    //class Mathang;
    //class Hoadon;
    //===========================================================================//
        
    class Khachhang
          
    {  private :
           
    char Tenkh[30];
           
    char Diachi[30];
           
    char sdt[11];
         public :
           
    Khachhang()
            { 
    strcpy(Tenkh,"");
              
    strcpy(Diachi,"");
              
    strcpy(sdt,"");
              }
           
    Khachhang(char *Tenkh1,char *Diachi1,char *sdt1)
           { 
    strcpy(Tenkh,Tenkh1);
             
    strcpy(Diachi,Diachi1);
             
    strcpy(sdt,sdt1);
             }
           
    void nhap();
           
    char *getTenkh()
            { return 
    Tenkh;
             }
           
    char *getDiachi()
            { return 
    Diachi;
             }
           
    char *getsdt()
            { return 
    sdt;
             }
           };
    //===========================================================================//
        
    class Mathang
          
    {  private :
           
    char Tenmh[30];
           
    int sl;
           
    float Gia;
           
    float Thanhtien;
         public :
    //     friend class Hoadon;
           
    Mathang()
            {  
    strcpy(Tenmh,"");
               
    sl=0;
               
    Gia=0;
               
    Thanhtien=0;
             }
         
    Mathang(char *Tenmh1,int sl1,float Gia1,float Thanhtien1)
           {  
    strcpy(Tenmh,Tenmh1);
              
    sl=sl1;
              
    Gia=Gia1;
              
    Thanhtien=Thanhtien1;
            }
           
    char *getTenmh()
            { return 
    Tenmh;
              }
           
    int getsl()
            {  return 
    sl;
              }
           
    float getGia()
            {  return 
    Gia;
              }
           
    float getThanhtien()
            { return 
    Thanhtien;
              }
           
    void ganTenmh(char *Tenmh1)
            {  
    strcpy(Tenmh,Tenmh1);
              }
           
    void gansl(int sl1)
              {
    sl=sl1;}
           
    void ganGia(float gia1)
              {
    Gia=gia1;}
            
    void ganThanhtien(float Thanhtien1)
              {
    Thanhtien=Thanhtien1;}
           
    void nhap();
           
    void hien();
           
    void ghitepmh(char *ttep);
           
    void doctepmh(char *ttep);
        };
    //===========================================================================//
        
    class Hoadon
          
    {  private :
             
    char Mahd[5];
             
    int smh;
             
    float Tong;
             
    Khachhang kh;
             
    Mathang mh[100];
             
    int stt;
             
    float Tienban;  //Tien thong ke ban duoc cua ca hoa don
         
    public :
    //        friend class Mathang;
             
    void nhap();
             
    void hien();
             
    void ghitepthongtinbanhang(char *ttep);
             
    void doctepthongtinbanhang(char *ttep);
             
    void ghitephd(char *ttep);
             
    void ghitepkh(char *ttep);
             
    void doctephd(char *ttep);
             
    void thongkehangban();
             
    void suahd();
             
    void xoahd();
             
    void timkiemmh();

        };
    //============XAY DUNG CAC PHUONG THUC CUA LOP CO SO KHACH HANG==============//
        
    void Khachhang::nhap()
          {  
    cout<<"\nNhap ten khach hang :"<<setw(5); cin.ignore(1); cin.get(Tenkh,30);
         
    cout<<"\nNhap dia chi khach hang :"<<setw(5); cin.ignore(1); cin.get(Diachi,30);
         
    cout<<"\nNhap so dien thoai khach hang :"<<setw(5); cin.ignore(1); cin.get(sdt,11);
        }
    //============XAY DUNG CAC PHUONG THUC CUA LOP CO SO MAT HANG================//
        
    void Mathang::nhap()
          {        
    cout<<"\n  +>Nhap ten mat hang : "<<setw(5);cin.ignore(1); cin.get(Tenmh,30);
            
    cout<<"\n  +>Nhap so luong : "<<setw(5); cin>>sl;
            
    cout<<"\n  +>Gia ban : "<<setw(5); cin>>Gia;
            
    Thanhtien=sl*Gia;
        }
        
    //---------------------------------------------------------------------//
        
    void Mathang::hien()
          {  
    cout<<endl<<endl<<endl<<setw(7)<<Tenmh<<setw(22)<<sl<<setw(20)<<Gia<<setw(23)<<Thanhtien;
        }
    //===========XAY DUNG CAC PHUONG THUC CUA LOP DAN XUAT HOA DON==============//
        
    void Hoadon::nhap()
          {  
    Tong 0;
         
    cout<<"\nNhap ma hoa don :"<<setw(5); cin.ignore(1); cin.get(Mahd,5);
         
    kh.nhap();
         
    cout<<"\nNhap so loai mat hang mua: "<<setw(5);
         
    cin>>smh;
         for(
    int i=0;i<smh;i++)
          { 
    cout<<"\nMat hang thu :"<<setw(5)<<i+1;
            
    mh[i].nhap();
            
    Tong Tong mh[i].getThanhtien();
           }
        }
        
    //----------------------------------------------------------------------//
         
    void Hoadon::hien()
         { 
    cout<<"\n\nTEN KHACH HANG  :"<<setw(5)<<kh.getTenkh();
           
    cout<<"\n\n"<<setw(12)<<"TENMATHANG"<<setw(18)<<"SL"<<setw(26)<<"DONGIA/CHIEC"<<setw(17)<<"THANHTIEN";
           for(
    int i=0;i<smh;i++)
             { 
    mh[i].hien();
               }
           
    cout<<"\n\n\n\n\n"<<setw(50)<<"TONG     :"<<setw(22)<<Tong;
         }
        
    //----------------------------------------------------------------------//
        
    void Hoadon::ghitepthongtinbanhang(char *ttep)
          { 
    ofstream f;
        
    f.open(ttep,ios::out|ios::app);
        if(
    f.bad())
         { 
    cout<<"\nTep"<<setw(5)<<ttep<<" da ton tai!";
           
    getch();
           return;
          }
          
    f<<Mahd<<endl;
          
    f<<kh.getTenkh()<<endl;
        for(
    int i0;i<smh;i++)
         {  
    f<<mh[i].getTenmh()<<endl;
            
    f<<mh[i].getsl()<<endl;
            
    f<<mh[i].getGia()<<endl;
            
    f<<mh[i].getThanhtien()<<endl;
          }
         
    f.close();
        }
        
    //----------------------------------------------------------------------//
        
    void Hoadon::doctepthongtinbanhang(char *ttep)
         {  
    fstream f;
         
    Hoadon d;
          
    f.open(ttep,ios::in);
          if(
    f.bad())
            { 
    cout<<"\nTep "<<ttep<<" khong ton tai!";
              
    getch();
              exit(
    1);
             }
          
    char Tenmh1[30];
          
    char  Mahd1[5];
          
    char Tenkh1[30];
          
    int a1;
          
    float a2,a3;
          
    int i=0;
          while(
    1)
           {
               
    f.getline(Mahd1,5);
               
    f.getline(Tenkh1,30);
               
    f.getline(Tenmh1,30);
               
    f>>a1>>a2>>a3;
               ++
    i;
               if(
    f.gcount()==0) break;
            else
             
    cout<<Mahd1;
             
    cout<<Tenkh1;
             
    cout<<Tenmh1;
             
    cout<<a1<<a2<<a3;
           }
        
    f.close();
          }
        
    //----------------------------------------------------------------------//
        
    void Hoadon::ghitephd(char *ttep)
          { 
    //CACH GHI FILE SU DUNG HAM TAO1 KHONG DOI
        
    ofstream f;   //DUNG HAM TAO XAY DONG XUAT
        
    f.open(ttep,ios::out|ios::app); //DUNG PHUONG THUC OPEN DE MO MOT TEP GAN CHO DONG XUAT
        
    if(f.bad())
         { 
    cout<<"\nTep"<<setw(5)<<ttep<<" da ton tai!";
           
    getch();
           return;
          }
        for(
    int i0;i<smh;i++)
         {  
    f<<mh[i].getTenmh()<<endl;
            
    f<<mh[i].getsl()<<endl;
            
    f<<mh[i].getGia()<<endl;
            
    f<<mh[i].getThanhtien()<<endl;
          }
         
    f.close();
        }
         
    //----------------------------------------------------------------------//
          
    void Hoadon::ghitepkh(char *ttep)
        {  
    ofstream f;
           
    f.open(ttep,ios::out|ios::app);
           if(
    f.bad())
             { 
    cout<<"\nTep"<<setw(5)<<ttep<<" da ton tai!";
               
    getch();
               return;
              }
           
    f<<Mahd<<endl;
           
    f<<kh.getTenkh()<<endl;
           
    f<<kh.getDiachi()<<endl;
           
    f<<kh.getsdt()<<endl;
           
    f.close();
           }
          
    //-----------------------------------------------------------------------//
          
    void Hoadon::doctephd(char *ttep)
           {  
    fstream f;
          
    f.open(ttep,ios::in);
          if(
    f.bad())
            { 
    cout<<"\nTep "<<ttep<<" khong ton tai!";
              
    getch();
              exit(
    1);
             }
          
    int a1;
          
    float a2,a3;
          
    int i=0;
           while(
    f.getline(mh[i].getTenmh(),30)!=0)
           {
               
    f>>a1>>a2>>a3;  //DOC CAC GIA TRI TREN FILE
               
    mh[i].gansl(a1);  //DOC DC CAC GIA TRI DO,GAN GIA TRI DO
               
    mh[i].ganGia(a2); //CHO THUOC TINH CUA TUNG DOI TUONG i
               
    mh[i].ganThanhtien(a3);
               
    f.ignore(1);
               ++
    i;
           }
        
    stt=i;
        
    f.close();
          }
          
    //--------------------------------------------------------------------//
          
    void Hoadon::thongkehangban()
        {  
    Tienban =0;
           
    cout<<endl<<endl<<setw(20)<<"DANH SACH MAT HANG DA BAN";
           
    cout<<endl<<endl<<setw(5)<<"STT"<<setw(25)<<"TENMATHANG"<<setw(10)<<"SOLUONG"
           
    <<setw(15)<<"GIA/CHIEC"<<setw(15)<<"THANHTIEN"<<endl;
           for(
    int i=0;i<stt;i++)
            { 
    cout<<endl<<setw(5)<<i+1<<setw(25)<<mh[i].getTenmh()<<setw(10)<<mh[i].getsl()
              <<
    setw(15)<<mh[i].getGia()<<setw(15)<<mh[i].getThanhtien();
              
    Tienban Tienban mh[i].getThanhtien();
            }
           
    cout<<"\n"<<setw(152)<<"____________\n";
           
    cout<<"\n"<<setw(64)<<"TONG:";
           
    cout<<Tienban;
          }
         
    //---------------------------------------------------------------------//
         
    void Hoadon::timkiemmh()
        { 
    char Tenhang[30];
          
    cout<<"\nNhap ten mat hang can tim :   "<<endl<<endl;
          
    cin.ignore();
          
    cin.getline(Tenhang,30);
          
    cout<<"\n\n"<<"STT"<<setw(15)<<"TENMATHANG"<<setw(18)<<"SL"<<setw(26)<<"DONGIA/CHIEC"<<setw(17)<<"THANHTIEN";
          for(
    int i=0;i<stt;i++)
          if(
    strcmp(Tenhang,mh[i].getTenmh())==0)
            {  
    cout<<endl<<endl<<setw(3)<<i+1<<setw(10)<<mh[i].getTenmh()<<setw(22)<<mh[i].getsl()<<setw(26)<<setw(20)<<mh[i].getGia()<<setw(18)<<mh[i].getThanhtien();
              }
         }
         
    //---------------------------------------------------------------------//
    //===========XAY DUNG HAM MAIN CUA CHUONG TRINH QUAN LY BAN HANG============//
    void main()
          {  
    clrscr();
         
    Hoadon a;
         
    Mathang b;
         
    int chucnang;
         do
           {
    cout<<"\n________________CHUONG___TRINH___QUAN___LY___BAN___HANG____________";
            
    cout<<endl<<endl<<endl;
            
    cout<<"\n   1.Lap_______________hoa________________don"<<endl;
            
    cout<<"\n   2.Hien_______hoa_____don____vua________lap"<<endl;
            
    cout<<"\n   4.Thong____ke___mat____hang____da______ban"<<endl;
                     
    cout<<"\n   6.Sua_____thong______tin______hoa______don"<<endl;
     
            
    cout<<"\n    .Lua_____chon_____thao____tac :    ";
            
    textcolor(5);
            
    cin>>chucnang;
            switch(
    chucnang)
             {
               case 
    1:
                  
    a.nhap();
                  
    getch();
                  
    a.ghitepthongtinbanhang("c.txt");
                  
    a.ghitephd("a.txt");
                  
    a.ghitepkh("b.txt");
                  
    clrscr();
                  break;
               case 
    2:
                  
    a.hien();
                  
    getch();
                  
    clrscr();
                  break;
               case 
    4:
                  
    a.doctephd("a.txt");
                  
    a.thongkehangban();
                  
    getch();
                  
    clrscr();
                  break;
               case 
    5:
                  
    a.doctephd("a.txt"); //tim kiem ten mh cua mot hoa don
                  
    a.timkiemmh();
                  
    getch();
                  
    clrscr();
              case 
    6:
                  
    a.doctepthongtinbanhang("c.txt");
                  
    getch();
                  
    clrscr();
                  break;
               }
             }while(
    chucnang!=0);
         
    getch();
        } 
    Đã được chỉnh sửa lần cuối bởi linh040800 : 19-04-2009 lúc 10:49 AM. Lý do: Mình rút gọn code để các bạn dễ theo dõi

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Mình nghĩ rằng bài của bạn sẽ bị del. Hình như sở thích của bạn là dùng dấu ___________________________________nên_______sau_ này_____chắc_____bạn cũng thích_____ngồi_______chiếu______dưới.
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  3. #3
    Ngày gia nhập
    04 2009
    Nơi ở
    C:\Window\System32
    Bài viết
    24

    Bạn không muốn giúp thì thôi ..tại sao còn spam..

    thật sự mình mong đươc các ban giúp đỡ..Cảm ơn các bạn nhiều.
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 19-04-2009 lúc 11:14 AM.

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    178

    @love...;không giúp được thì thôi
    cái chữ kí của bác hay wa.nhưng nó không đúng đâu nhiều khi doc code người khác viết cũng chẳng được j.đọc chỉ để học vẹt thui .nhưng giải thuật thì có thể giúp người ta hiểu đó bác rùi từ từ cũng xẽ code được
    Đã được chỉnh sửa lần cuối bởi rua_con : 18-04-2009 lúc 08:37 PM.

  5. #5
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    @linh:Bạn copy cẩn thận đoạn code của bạn ra nhé.Chứ đoạn code trên mà cop về sửa thì không thể đỡ nổi
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  6. #6
    Ngày gia nhập
    04 2009
    Nơi ở
    C:\Window\System32
    Bài viết
    24

    Mặc định Lập trình C++ với file | Bài Tập Về File, mở đọc File

    Ban "thienthan34" ơi mình ko biết tên bạn là gì nên mình gọi bạn the nha.
    Minh không tim thấy chỗ nào để đính kèm tệp nên mới post cái code như thế.
    Bạn đọc qua đi nha..thanks bạn nhiều

    Nếu ghi đọc file chỉ có : Tên mặt hàng,số lượng,giá,thành tiền thì mình làm được rồi.
    nhưng bài tập của minh phải ghi cả thêm thông tin Mã hóa đơn,tên khách hàng...Mình đọc được có một Mã hóa đơn trong file này..Mà chẳng hạn như có một dãy hóa đơn tìm một hóa đơn để
    sửa thông tin măt hàng của hóa đơn đó...,hoặc thống kê bán hàng thì mình pó tay...
    Vì mình không đọc được cái hóa đơn đó nên mình chưa viết Phương thức tìm kiếm một hóa đơn để sửa,hoặc thống kê....
    mình cần các bạn giúp đọc được file này thì những việc còn lại có lẽ mình làm được
    Nhờ các bạn chỉ giùm.
    thanks các bạn nhìu..
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 19-04-2009 lúc 11:15 AM.

  7. #7
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Bạn trình bày khá đẹp rồi(khác với lần trước nha )
    Gửi file đính kèm thì ở thì ở button "cao cấp" nhưng tải file về thì mọi người hay lười nên copy ra luôn nhìn cho dễ.
    Theo mình thì thế này.Bạn xây dựng thêm 1 cái class List cho danh sách hóa đơn(or dùng mảng trực cũng dc).
    Mỗi khi muốn sửa thông tin trong file thì bạn nạp lại file đó lên cái list trên rồi sửa ji thì sửa trên list đó.Sửa xong thì ghi đè lại.
    Have a good job !
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  8. #8
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi thienthan34 Xem bài viết
    Bạn trình bày khá đẹp rồi(khác với lần trước nha )
    Gửi file đính kèm thì ở thì ở button "cao cấp" nhưng tải file về thì mọi người hay lười nên copy ra luôn nhìn cho dễ.
    Theo mình thì thế này.Bạn xây dựng thêm 1 cái class List cho danh sách hóa đơn(or dùng mảng trực cũng dc).
    Mỗi khi muốn sửa thông tin trong file thì bạn nạp lại file đó lên cái list trên rồi sửa ji thì sửa trên list đó.Sửa xong thì ghi đè lại.
    Have a good job !
    sử dụng vector<HoaDon> cho nó gọn
    None!

  9. #9
    Ngày gia nhập
    04 2009
    Nơi ở
    C:\Window\System32
    Bài viết
    24

    Bạn ơi bạn ơi bạn biểu,thêm một lớp nữa nhưng lớp Hoadon list đó có thừa kế
    kế của lớp hóa đơn không?
    Nếu mình đang sử dụng lớp bao(Lớp Hoadon) lớp thành phần là (Khachhang,mathang).. thì là làm sao mà đọc được các thuộc tính của lớp thành
    phần ah..

  10. #10
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mã hóa đơn,Tên khách hàng,Tên mặt hàng,số lượng,giá,thành tiền
    em chỉ muốn hiện 4 thuộc tính về hàng..(Thống kê hàng đã bán),hoặc nhập một mã hóa đơn vào rồi sửa thông tin hóa
    đơn đó.....
    Nhưng khi đọc từ buffer để hiện,nó hiện ra giá trị khác
    Mong các bạn giúp đỡ mình về File...
    Cậu đưa cái file ví dụ .txt của hóa đơn lên xem thì mới biết được cần đọc vào file thế nào.

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

  1. Cách add file thư viện dll vào file exe để tạo một file chạy duy nhất C#
    Gửi bởi nthung2112 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 20
    Bài viết cuối: 01-09-2012, 10:01 AM
  2. File backup .bak có dung lương lớn hơn file .mdb và file log
    Gửi bởi MYNAM trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 4
    Bài viết cuối: 27-07-2012, 12:59 PM
  3. Giới thiệu cách chuyển File Ảnh thành file Video trong download proshow gold
    Gửi bởi thuhu0900x trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 3
    Bài viết cuối: 03-07-2012, 03:54 AM
  4. Đọc dữ liệu file midi dạng số HEX và lấy lời nhạc trong file ra file text
    Gửi bởi kimngockhtn_2007 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 29-06-2011, 04:40 PM
  5. Trả lời: 17
    Bài viết cuối: 23-05-2011, 11:47 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