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

Đề tài: Xin nhờ mọi người sửa giúp bài quản lí vật tư c++

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

    Mặc định Xin nhờ mọi người sửa giúp bài quản lí vật tư c++

    Bài tập này minh sắp nộp rồi nhưng còn mấy chổ chua chay , bi loi ở mục tìm kiếm va muc thống hê vật tư.... chương trình của mình có cần phải thêm mục gì nữa không vậy.....xin moi người cho ý kiến nhanh nhan nha ít bửa nữa mình nộp bài rùi



    PHP Code:
    #include <iostream.h>
    #include <conio.h>
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <fstream.h>

    class vattu
    {
           private:
           
    char ma[8];    //maso vattu
        
    char ten[23];  //ten vt
        
    int slnslxdg// so luong nhap, xuat va don gia.
           
    public:

        
    void nhap ();
        
    void xuat ();
        
    void xoa ();
        
    void timvt();
           
    //    void hienthivt();
         
    void ghi();         //ghi tt
        
    void doc(int );    //doc tt
        
    int  dem();      //den so tt


    /*
        friend istream &operator >> (istream &i, vattu &vt); // tai dinh nghia toan tu nhap.(ko can lam)
        friend ostream &operator << (ostream &o, vattu &vt); // tai dinh nghia toan tu xuat.(ko can lam)
        friend vattu operator + (vattu vt1 , vattu vt2);
        friend vattu operator - (vattu vt1 , vattu vt2);

    */
        
    int tt()
    {
        
    clrscr();
        
    int ttien;
        
    cout<<"nhap vao so luong xuat:"<<endl;
        
    cin>>slx;
        
    cout<<"nhap vao don gia :"<<endl;
        
    cin>>dg;
        
    ttien=slx*dg;
        return  
    ttien;
    }
      
    /*  int tk ()
        {
            ifstream file;
            file.open("vattu.dat",ios::binary);

             return ;
        } //thong ke*/
        
    char *getma () {return ma;}
        
    char *getten () {return ten;}
        
    int getsln () {return sln;}
        
    int getslx () {return slx;}
        
    int getdg () {return dg;}


    };

    void vattu::nhap ()
    {
        
    cout << "Ma vat  tu:";
        
    gets(ma);
        
    fflush(stdin);
        
    cout << "Ten vat tu: ";
        
    gets(ten);
        
    fflush(stdin);
        
    cout << "So lg nhap: ";
        
    cin >> sln;

        
    cout << "Don gia: ";
        
    cin >> dg;

         
    nhaplaicout << "So lg xuat: "cin >> slx;
        if (
    slx sln)
        {
            
    cout << "So luong xuat khong phu hop " << sln << endl;
            goto 
    nhaplai;
        }
        return;
    }

    void vattu::xuat ()
    {
    cout << ma<<"     "<<ten<<"     "<<sln<<"     "<<slx<<"     "<<dg<<"     ";
    getch();
    }


    void vattu::ghi()
    {
        
    ofstream file;
        
    file.open("vattu.dat",ios::app|ios::binary);     //mo file tieu thuyet duoi dang nhi phan de ghi cong don
        
    file.write((char *)this,sizeof(*this));            //tien hanh ghi
    }

    void vattu::doc(int pn)
    {
        
    ifstream file;
        
    file.open("vattu.dat",ios::binary);       //mo file de doc o dang nhi phan
        
    file.seekg(pn*sizeof(vattu));            //chi doc 1 tap tin tai con tro
        
    file.read((char*)this,sizeof(*this));
    }
    int vattu::dem()
    {
        
    ifstream file;
        
    file.open("vattu.dat",ios::binary);
        
    file.seekg(0,ios::end);                //chuyen tu dau tap tin den cuoi tap tin
        
    return(int)file.tellg()/sizeof(vattu); //tra ve gia tri la tong so sach
    }
    void vattu::xoa()
    {
    timvt();

    }
     
    void vattu::timvt()
    {
    clrscr();
    char mavt[8];
    cout<<"nhap vao ma vat tu can tim:";
    gets(mavt);
    fflush(stdin);
    int j=0;
    int d=dem();
    for(
    int i=0;i<d;++d)
        {
            
    doc(i);
        if(
    strcmpi(mavt,ma)==0)
        {
            
    j=1;
            
    //doc(i);
            
    xuat();
            
    getch();
            break;
        }
        else
            if(
    j!=1)
         
    cout<<"ko co loai vat tu nay";
         
    getch();
            break;
    }

    }
    /*// Tai dinh nghia toan tu nhap.(ko co cung duoc)
    istream &operator >> (istream &i, vattu &vt)
    {
        cout << "Ma vat  tu: "; i.getline (vt.ma, 8);
        cout << "Ten vat tu: "; i.getline (vt.ten, 23);
        cout << "So lg nhap: "; i >> vt.sln;
        cout << "Don    gia: "; i >> vt.dg; cin.get ();
        return i;
    }

    // Tai dinh nghia toan tu xuat.(khong vo cung duoc)
    ostream &operator << (ostream &o, vattu &vt)
    {
        o << "Ma vat  tu: " << vt.ma << endl;
        o << "Ten vat tu: " << vt.ten << endl;
        o << "So lg nhap: " << vt.sln << endl;
        o << "So lg xuat: " << vt.slx << endl;
        o << "Don    gia: " << vt.dg << endl;
        o << "Ton    kho: " << vt.tk () << endl;
        o << "Thanh tien: " << vt.tt () << endl;
        return o;
    }

    vattu operator + (vattu vt1 , vattu vt2)
    {
        vattu d;
        if (strcmp (vt1.ma, vt2.ma) == 0) // 2 chuoi giong nhau.
        {
            strcpy(d.ma, vt1.ma); // luu ma lai.
            strcpy(d.ten, vt1.ten); // luu ten lai.
            d.sln = vt1.sln + vt2.sln; // tinh tong so luong nhap.
            d.slx = vt1.slx + vt2.slx; // tinh tong so luong xuat.
            if(vt1.dg > vt2.dg) d.dg = vt1.dg; else d.dg = vt2.dg;
            return d;
        }
        else // 2 chuoi khac nhau.
        {
            // Xu li tai day.
        }
    }

    vattu operator - (vattu vt1 , vattu vt2)
    {
        vattu d;
        if (strcmp (vt1.ma, vt2.ma) == 0) // 2 chuoi giong nhau.
        {
            strcpy(d.ma, vt1.ma); // luu ma lai.
            strcpy(d.ten, vt1.ten); // luu ten lai.
            d.sln = vt1.sln - vt2.sln; // tinh hieu so luong nhap.
            if (d.sln < 0) d.sln = - d.sln;

            d.slx = vt1.slx - vt2.slx; // tinh hieu so luong xuat.
            if (d.slx < 0) d.slx = - d.slx;
            if(vt1.dg > vt2.dg) d.dg = vt1.dg; else d.dg = vt2.dg;
            return d;
        }
        else // 2 chuoi khac nhau.
        {
            // Xu li tai day.
        }
    }

    */



    class dohoa:public vattu
    {
        public:
        
    void gd();

        
    void menu();
        
    void menu_c();



    };

    void dohoa::gd()
    {
        
    clrscr();
        
    textmode(C80);
        
    textbackground(LIGHTBLUE);
        
    window(1,1,25,80);
        
    textcolor(YELLOW);
    }
    void dohoa::menu()
    {
        
    textmode(C80);
        
    textbackground(MAGENTA);
        
    gd();
        
    window(1,1,85,25);
        
    cout<<"\n  -|- Mon hoc: Lap trinh C huong doi tuong."<<endl;
        
    cout<<"\n  -|- De tai:  kiem tra VAT TU bang C++\n\n";
        
    cout<<"\n\t\t*------------------------------*\n";
          
    cout<<"\t\t|       KIEM TRA VAT TU        |\n";
          
    cout<<"\t\t|------------------------------|\n";
          
    cout<<"\t\t| 1> Nhap VT                   |\n";
          
    cout<<"\t\t| 2> Tim VT theo ma            |\n";
          
    cout<<"\t\t| 3> Thanh tien VT             |\n";
          
    cout<<"\t\t| 4> Thong ke loai VT         |\n";
          
    cout<<"\t\t| 5> Xuat vt                   |\n";
          
    cout<<"\t\t| 6> Xoa vt                    |\n";
          
    cout<<"\t\t| 7> QUIT                      |\n";
          
    cout<<"\t\t|                              |\n";
          
    cout<<"\t\t*------------------------------*\n";
          
    cout<<"\t\tBAN hay chon so roi nhan Enter\n"<<endl;
        
    cout<<"\n  *GV Huong dan:";
        
    cout<<"\n\t\tHoang Trong Thach";
        
    cout<<"\n  *Nhom : ";
        
    cout<<"\n\tLU BAO CHAU";
        
    cout<<"\n\tCUONG KHUNG\n\n";

    }

    void dohoa::menu_c()
    {
      
    dohoa dh;
      
    vattu vt;
     
    tt:    char n;
        
    n=getch();
        
    int i;
        switch(
    n)
        {
            case 
    '1':
                
    char c1;
                
    clrscr();
                
    dh.gd();
                do
                {
                   
    vt.nhap();
                   
    vt.ghi();

                   
    cout<<"ban co muon nhap nua khong?c/k"<<endl;
                   
    cin>>c1;

                }
                while(
    c1=='c');
                
    int v;
                
    v=vt.dem();
                
    cout<<"\nco "<<v<<" loai vat tu" <<endl;
                
    cout<<"ban co muon tro lai menu ko?c/k"<<endl;

                
    char k1;
                
    cout<<k1;
                
    cin>>k1;
                   if(
    k1='c')
                {
                    
    dh.menu();
                    
    dh.menu_c();
                }
                else
                    break;
                break;

            case 
    '2':
                
    dh.gd();
                
    vt.timvt();
                
    dh.menu();
                break;
            case 
    '3':

                
    cout<<"so tien la:"<<tt();
                
    dh.menu();
                break;
            case 
    '4':
                
    int c;
                     
    //  c=tk();
                       
    cout<<"soluong con:"<<c;
                       
    dh.menu();
                       break;
            case 
    '5':
            
    clrscr();
                     
    int j;
                     
    int d;
                     
    dh.gd();
                     
    d=vt.dem();
                 
    cout<<"mavt"<<"  "<<"tenvt"<<"  "<<"sln"<<"  "<<"slx"<<"  "<<"dongia"<<endl;
        for(
    j=0;j<d;++j)
                    {
                    
    vt.doc(j);
                    
    vt.xuat ();

                
    cout<<"\n";
                    }
                    
    dh.menu();
                       break;
            case 
    '6':
                
    dh.gd();
                
    vt.xoa();
                   break;
            case 
    '7':
                exit(
    1);
                break;
            default:
            {
                
    cout<<"\t\tBan da nhap sai vui long nhap lai:"<<endl;
                goto 
    tt;
            }
        }
    }

     
    /*
        */
    /*--------------------------------------------------------------------------------*/
    void main ()
    {

    clrscr ();

    dohoa m;
    m.menu();
    m.menu_c();

        
    getch();

    Đã được chỉnh sửa lần cuối bởi AlexF : 06-01-2009 lúc 10:31 AM.

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

    Bạn trình bày rối quá->mình đọc chả hiểu được bài bạn làm->không giúp được

  3. #3
    No Avatar
    ngocbig Khách

    Trích dẫn Nguyên bản được gửi bởi ducthiem90 Xem bài viết
    Bạn trình bày rối quá->mình đọc chả hiểu được bài bạn làm->không giúp được
    Phải nói là "nếu bạn chưa đọc nội quy thì mình sẽ không giúp" chứ?

    Đùa vậy thôi! Chủ topic đọc nội quy đi nhé:P)

  4. #4
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    PHP Code:
    #include<iostream.h>
    #include<conio.h>
    #include<stdio.h>
    #include<fstream.h>
    #include<string.h>
    #include<iomanip.h>
    #include<dos.h>
    /*_______________Cac lop chinh va moi quan he giua cac lop________________________*/
    class HangHoa
    {
        protected:
            
    char tenHang[20];
            
    char maHang[20];
            
    char NSX[20];
            
    float giaBan;
            
    int slHang;
        public:
            
    int Nhap();
            
    void in();
            
    int xoa(char *str);
            
    HangHoa *Tim(char *str);
            
    void ghifile(char *str,int i);
            
    friend class HangMua;
            
    friend class HangKM;
            
    friend class HoaDon;
    };
    /*___________________________________________________________________________*/
    class HangKM:public HangHoa
    {
        protected:
    //        char maH[20];
    //        int soLuong;
            
    int ngayBD,thangBD,namBD;
            
    int ngayKT,thangKT,namKT;
    //        int thangBD;
      //        int thangKT;
            
    float km;
        public:
            
    int Nhap();
            
    void in();
            
    HangKM *Tim(char *str);
            
    void ghifile(char *str,int soluong);
            
    int xoa(char *str);
            
    friend class HangMua;
    };
    /*___________________________________________________________________________*/
    class HangMua:public HangHoa
    {
        protected:
            
    int soHD;
            
    int ngay;
            
    int thang;
            
    int nam;
            
    char maNV[20];
            
    char maHang[20];
            
    int soLuong;
            
    float thanhTien;
        public:
            
    int Nhap(char *str,int i);
            
    void in(int x);
            
    void thongKe();
    };
    /*___________________________________________________________________________*/
    class NhanVien
    {
        protected:
            
    char maNV[20];
            
    char tenNV[20];
            
    char diaChi[20];
        public:
            
    int NhapNV();
            
    void inNV();
            
    NhanVien *Tim(char *str);
    };
    /*___________________________________________________________________________*/
    class HoaDon:public HangMua
    {
        private:
            static 
    int soHD;
    //        char maH[20];
            
    char maNV[20];
    //        float tongTien;
            
    float thueGTGT;
    //        int ngay,thang,nam;
            
    time t;
        public:
            
    int TaoHD();
    //        void inHD();
    };
    /*___________________________________________________________*/
    int NhanVien::NhapNV()
    {
        
    int i=0;
        
    char str[20];
        
    cout<<"\n Nhap ma nhan vien"fflush(stdin);gets(str);
        if(
    strcmp(str,NULL)==0)
            {
                
    cout<<"\n\n Ma khong hop le:";
                return 
    0;
            }
        
    ifstream g("NhanVien.dat",ios::in|ios::binary);
        if(!
    g.bad())
        {
            while(
    g.read((char*)(this),sizeof(NhanVien)),!g.eof())
                {
                    if(
    strcmp(str,maNV)==0)
                        {
                            
    i++;
                            break;
                        }
                }
            if(
    i==0)
            {
                
    strcpy(maNV,str);
                
    cout<<"\n Nhap ten nhan vien:";fflush(stdin); gets(tenNV);
                
    cout<<"\n Nhap dia chi nhan vien:";fflush(stdin);gets(diaChi);
                
    ofstream f("NhanVien.dat",ios::app|ios::binary);
                
    f.write((char*)(this),sizeof(NhanVien));
                
    f.close();
            }
            else    
    cout<<"\n Nhan vien nay da ton tai";
        }
        else
        {
            
    strcpy(maNV,str);
            
    cout<<"\n Nhap ten nhan vien:";fflush(stdin); gets(tenNV);
            
    cout<<"\n Nhap dia chi nhan vien:";fflush(stdin);gets(diaChi);
            
    ofstream f("NhanVien.dat",ios::app|ios::binary);
            
    f.write((char*)(this),sizeof(NhanVien));
            
    f.close();

        }
        return 
    1;
    }
    /*___________________________________________________________*/
    void NhanVien::inNV()
    {
        
    ifstream f("NhanVien.dat",ios::in|ios::binary);
        
    cout<<" Day la danh sach nhan vien cua sieu thi:\n\n";
        
    cout<<setw(7)<<"Ten"<<setw(10)<<"ma"<<setw(10)<<"dia chi"<<endl;
        
    cout<<"========================================";
        while(
    f.read((char*)(this),sizeof(NhanVien)),!f.eof())
            {
                 
    cout<<"\n\n"<<setw(7)<<tenNV<<setw(10)<<maNV
                
    <<setw(10)<<diaChi<<endl;
            }
        
    f.close();
    }
    /*___________________________________________________________*/
    NhanVien *NhanVien::Tim(char *str)
    {
        
    ifstream f("NhanVien.dat",ios::in|ios::binary);
        while(
    f.read((char*)this,sizeof(NhanVien)),!f.eof())
            {
                if(
    strcmp(str,this->maNV)==0) return this;
            }
        
    f.close();
        return 
    NULL;
    }
    /*___________________________________________________________*/
    int HangHoa::Nhap()
    {
        
    char ch;
        
    int i=0;
        
    char str[20];
        
    cout<<"\n Nhap ma hang:";
        
    fflush(stdin);gets(str);
        if(
    strcmp(str,NULL)==0)
            {
                
    cout<<"\n\n Ma hang khong hop le";
                return 
    0;
            }
        
    ifstream f("HangHoa.dat",ios::in|ios::binary);
        if(!
    f.bad())
        {
        while(
    f.read((char*)(this),sizeof(HangHoa)),!f.eof())
            {
                if(
    strcmp(str,this->maHang)==0)
                {
                    
    i++;
                    break;
                }
            }
        if(
    i==0)
            {
                    
    strcpy(maHang,str);
                    
    cout<<"\n Nhap ten hang:";
                    
    fflush(stdin);gets(tenHang);
                    
    cout<<"\n Nhap nha san xuat:";fflush(stdin);
                    
    gets(NSX);
                    
    cout<<"\n Nhap gia ban:";
                    
    cin>>giaBan;
                    
    cout<<"\n Nhap so luong hang:";
                    
    cin>>slHang;
                    
    ofstream f("HangHoa.dat",ios::app|ios::binary);
                    
    f.write((char*)(this),sizeof(HangHoa));
                    
    f.close();
                }
            else
            {
                
    cout<<"\n Ma hang da ton tai";
            }
        }
        else
        {
            
    strcpy(maHang,str);
            
    cout<<"\n Nhap ten hang:";
            
    fflush(stdin);gets(tenHang);
            
    cout<<"\n Nhap nha san xuat:";fflush(stdin);
            
    gets(NSX);
            
    cout<<"\n Nhap gia ban:";
            
    cin>>giaBan;
            
    cout<<"\n Nhap so luong hang:";cin>>slHang;
            
    ofstream f("HangHoa.dat",ios::app|ios::binary);
            
    f.write((char*)(this),sizeof(HangHoa));
            
    f.close();
        }
        return 
    1;
    }
    /*___________________________________________________________*/
    void HangHoa::in()
    {
        
    ifstream f("HangHoa.dat",ios::in|ios::binary);
        
    cout<<" Day la danh sach bang gia hang cua sieu thi:\n\n";
        
    cout<<setw(7)<<"Ten"<<setw(10)<<"ma"<<setw(10)<<"nsx"<<setw(10)<<"giaban"
        
    <<setw(10)<<"so luong"<<endl;
        
    cout<<"========================================";
        while(
    f.read((char*)(this),sizeof(HangHoa)),!f.eof())
            {
                 
    cout<<"\n\n"<<setw(7)<<tenHang<<setw(10)<<maHang
                
    <<setw(10)<<NSX<<setw(10)<<giaBan<<setw(10)<<slHang<<endl;
        }
        
    f.close();
    }
    /*___________________________________________________________*/
    int HangHoa::xoa(char str[20])
    {
        
    int i=0;
        
    ifstream f("HangHoa.dat",ios::in|ios::binary);
        
    ofstream g("TrungGian.dat",ios::out|ios::binary);
        while(
    f.read((char*)this,sizeof(HangHoa)),!f.eof())
            {
                  if(
    strcmp(str,this->maHang)!=0)
                    {
                        
    g.write((char*)this,sizeof(HangHoa));
                    }
                  else 
    i++;
            }
        
    f.close();
        
    g.close();
        
    remove("HangHoa.dat");
        
    rename("TrungGian.dat","HangHoa.dat");
        if(
    i>0) return 1;
        return 
    0;
    }
    /*___________________________________________________________*/
    HangHoa *HangHoa::Tim(char *str)
    {
        
    ifstream f("HangHoa.dat",ios::in|ios::binary);
        while(
    f.read((char*)this,sizeof(HangHoa)),!f.eof())
            {
                if(
    strcmp(str,this->maHang)==0) return this;
            }
        
    f.close();
        return 
    NULL;
    }
    /*_____________________________________________________________*/
    int HangKM::Nhap()
    {
        
    char ch;
        
    int i=0;
        
    char str[20];
        
    cout<<"\n Nhap ma hang:";
        
    fflush(stdin);gets(str);
        if(
    strcmp(str,NULL)==0)
            {
                
    cout<<"\n\n Ma hang khong hop le";
                return 
    0;
            }
        
    ifstream f("HangKM.dat",ios::in|ios::binary);
        if(!
    f.bad())
        {
        while(
    f.read((char*)(this),sizeof(HangKM)),!f.eof())
            {
                if(
    strcmp(str,maHang)==0)
                {
                    
    i++;
                    break;
                }
            }
        if(
    i==0)
            {
                    
    strcpy(maHang,str);
                    
    cout<<"\n Nhap ten hang:";
                    
    fflush(stdin);gets(tenHang);
                    
    cout<<"\n Nhap nha san xuat:";fflush(stdin);
                    
    gets(NSX);
                    
    cout<<"\n Nhap gia ban:";
                    
    cin>>giaBan;
                    
    cout<<"\n Nhap so luong hang:";
                    
    cin>>slHang;
                    
    cout<<"\n Ngay thang nam bat dau:";cin>>ngayBD>>thangBD>>namBD;
                    
    cout<<"\n Ngay thang nam ket thuc:";cin>>ngayKT>>thangKT>>namKT;
                    
    cout<<"\n Nhap phan tram khuyen mai:";cin>>km;
                    
    ofstream f("HangKM.dat",ios::app|ios::binary);
                    
    f.write((char*)(this),sizeof(HangKM));
                    
    f.close();
                }
            else
            {
                
    cout<<"\n Ma hang da ton tai";
            }
        }
        else
        {
            
    strcpy(maHang,str);
            
    cout<<"\n Nhap ten hang:";
            
    fflush(stdin);gets(tenHang);
            
    cout<<"\n Nhap nha san xuat:";fflush(stdin);
            
    gets(NSX);
            
    cout<<"\n Nhap gia ban:";
            
    cin>>giaBan;
            
    cout<<"\n Nhap so luong hang:";cin>>slHang;
            
    cout<<"\n Ngay thang nam bat dau:";cin>>ngayBD>>thangBD>>namBD;
            
    cout<<"\n Ngay thang nam ket thuc:";cin>>ngayKT>>thangKT>>namKT;
            
    cout<<"\n Nhap phan tram khuyen mai:";cin>>km;
            
    ofstream f("HangKM.dat",ios::app|ios::binary);
            
    f.write((char*)(this),sizeof(HangKM));
            
    f.close();
        }
        return 
    1;
    }
    /*_____________________________________________________________*/
    void HangKM::in()
    {
        
    ifstream f("HangKM.dat",ios::in|ios::binary);
        
    cout<<" Day la danh sach hang khuyen mai cua sieu thi:\n\n";
        
    cout<<"Ten"<<setw(7)<<"ma"<<setw(10)<<"nsx"<<setw(10)
        <<
    "giaban"<<setw(10)<<"so luong"<<setw(11)<<"timeBD"
        
    <<setw(11)<<"timeKT"<<setw(9)<<"%km"<<endl;
        
    cout<<"====================================================================";
        while(
    f.read((char*)(this),sizeof(HangKM)),!f.eof())
            {
                 
    cout<<"\n\n"<<tenHang<<setw(7)<<maHang<<setw(10)<<NSX<<setw(10)
                 <<
    giaBan<<setw(10)<<slHang<<setw(8)<<ngayBD<<"/"
                 
    <<thangBD<<"/"<<namBD<<setw(8)<<ngayKT<<"/"<<thangKT<<"/"<<namKT<<setw(8)<<km<<endl;
        }
        
    f.close();
    }
    /*_____________________________________________________________*/
    HangKM *HangKM::Tim(char *str)
    {
        
    ifstream f("HangKM.dat",ios::in|ios::binary);
        while(
    f.read((char*)this,sizeof(HangKM)),!f.eof())
            {
                if(
    strcmp(str,this->maHang)==0) return this;
            }
        
    f.close();
        return 
    NULL;
    }
    /*_____________________________________________________________*/
    int HangKM::xoa(char str[20])
    {
    //    char str[20];
        
    int i=0;
        
    ifstream f("HangKM.dat",ios::in|ios::binary);
        
    ofstream g("TrungGian.dat",ios::app|ios::binary);
        while(
    f.read((char*)this,sizeof(HangKM)),!f.eof())
            {
                  if(
    strcmp(str,this->maHang)!=0)
                    {
                        
    g.write((char*)this,sizeof(HangKM));
                    }
                  else 
    i++;
            }
        
    f.close();
        
    g.close();
        
    remove("HangKM.dat");
        
    rename("TrungGian.dat","HangKM.dat");
        if(
    i>0) return 1;
        return 
    0;
    }
     
    /*_____________________________________________________________*/
     
    void HangKM::ghifile(char *str,int soluong)
    {
        
    ifstream f("HangKM.dat",ios::in|ios::binary);
        
    ofstream g("TrungGian.dat",ios::app|ios::binary);
        while(
    f.read((char*)this,sizeof(HangKM)),!f.eof())
            {
                if(
    strcmp(str,this->maHang)==0)
                    {
                        
    slHang=slHang-soluong;
                    }
                
    g.write((char*)this,sizeof(HangKM));
            }
        
    f.close();
        
    g.close();
        
    remove("HangKM.dat");
        
    rename("TrungGian.dat","HangKM.dat");
    }
    /*________________________________________________________*/
    void HangHoa::ghifile(char *str,int soluong)
    {
        
    ifstream f("HangHoa.dat",ios::in|ios::binary);
        
    ofstream g("TrungGian.dat",ios::app|ios::binary);
        while(
    f.read((char*)this,sizeof(HangHoa)),!f.eof())
            {
                if(
    strcmp(str,this->maHang)==0)
                    {
                        
    slHang=slHang-soluong;
                    }
                
    g.write((char*)this,sizeof(HangHoa));
            }
        
    f.close();
        
    g.close();
        
    remove("HangHoa.dat");
        
    rename("TrungGian.dat","HangHoa.dat");
    //    return NULL;
    }
    /*________________________________________________________*/
    void khoiTao1(int *a)
         {
            
    a[1]=a[3]=a[5]=a[7]=a[8]=a[10]=a[12]=31;
            
    a[2]=28;
            
    a[4]=a[6]=a[9]=a[11]=30;
         }
    /*________________________________________________________*/
    void khoiTao2(int *a)
         {
            
    a[1]=a[3]=a[5]=a[7]=a[8]=a[10]=a[12]=31;
            
    a[2]=29;
            
    a[4]=a[6]=a[9]=a[11]=30;
         }

    /*________________________________________________________*/
    int tru(int x,int y,int z,int x1,int y1,int z1)
    {
        
    int a[12],a1[12];
        
    int tg=0,i,ngayt1=0,ngayt2=0,nam12,ngay12=0,j;
        
    nam12=z-z1;
        if(
    nam12<0) {return -1;}
        
    tg=x-x1;
        for(
    i=1;i<=nam12;i++)
            {
                if((
    i+z1)%4==0ngay12=ngay12+366;
                else 
    ngay12=ngay12+365;
            }
        if(
    z%4==0)  khoiTao2(a);
        else 
    khoiTao1(a);
        if(
    z1%4==0)  khoiTao2(a1);
        else 
    khoiTao1(a1);

        for(
    j=1;j<=12;j++)
            {
                if(
    j<=yngayt1=ngayt1+a[j];
                if(
    j<=y1ngayt2=ngayt2+a1[j];
            }
        
    tg=tg+ngay12+ngayt1-ngayt2;
        return 
    tg;
    }
    /*________________________________________________________*/
    int HangMua::Nhap(char s[20],int i)
    {
        
    soHD=i;
        
    int x,y;
        
    HangHoa *hh;
        
    HangKM *km;
        
    char str[20];
        
    struct dosdate_t d;
        
    _dos_getdate(&d);
        
    ngay=d.day;
        
    thang=d.month;
        
    nam=d.year;
        
    cout<<"\n Nhap ma hang :";fflush(stdin);gets(str);
        
    hh=hh->Tim(str);
        if(
    hh!=NULL)
            {
                
    strcpy(maHang,str);
                
    strcpy(maNV,s);
                
    cout<<"\n Nhap so luong mua:";cin>>x;
                
    soLuong=x;
                if(
    soLuong>hh->slHang) {cout<<"\n Khong du hang trong kho";return 0;}
                
    thanhTien=soLuong*hh->giaBan;
                
    hh->ghifile(str,soLuong);
                
    ofstream f("HangMua.dat",ios::app|ios::binary);
                
    f.write((char*)this,sizeof(HangMua));
                
    f.close();
                return 
    1;
            }
        
    km=km->Tim(str);
        if(
    km==NULL) {cout<<"\n Khong ton tai hang;";return 0;}
        
    strcpy(maHang,str);
        
    strcpy(maNV,s);
        
    cout<<"\n Nhap so luong mua:";cin>>y;
        
    soLuong=y;
        if(
    soLuong>km->slHang) {cout<<"\n Khong du hang trong kho";return 0;}
        
    int tg1=tru(d.day,d.month,d.year,km->ngayBD,km->thangBD,km->namBD);
        
    int tg2=tru(km->ngayKT,km->thangKT,km->namKT,d.day,d.month,d.year);
        if((
    tg1>=0) && (tg2>=0))
            {
                
    thanhTien=soLuong*km->giaBan*(1-km->km);
            }
        else
            {
                
    thanhTien=soLuong*km->giaBan;
            }
        
    km->ghifile(str,soLuong);
        
    ofstream f("HangMua.dat",ios::app|ios::binary);
        
    f.write((char*)this,sizeof(HangMua));
        
    f.close();
        return 
    1;
    }
    /*________________________________________________________*/
    void HangMua::in(int i)
    {
        
    fstream f;
        
    f.open("HangMua.dat",ios::in|ios::binary);
        
    f.seekg(0,ios::end);
        
    long dodai=f.tellg();
        
    f.seekg(dodai-i*sizeof(HangMua),ios::beg);
        
    //cout<<"\t\n\n Cac mat hang ma cua hang da ban:\n\n";
        
    cout<<"\n\n"<<setw(10)<<"Ma Hang"<<setw(10)<<"So luong"<<setw(16)<<"Thanh tien"<<endl;
        
    cout<<"=================================================================";
        while(
    f.read((char*)(this),sizeof(HangMua)),!f.eof())
            {
                 
    cout<<"\n\n"<<setw(10)<<maHang<<setw(10)
                 <<
    soLuong<<setw(16)<<thanhTien<<endl;
            }
        
    f.close();
    }
    int HoaDon::soHD=0;
    int HoaDon::TaoHD()
    {
        
    char str[20],ma[20],ch;
        
    int i=1;
        
    float tongTien=0.0;
        
    thueGTGT=0.1;
        
    struct dosdate_t d;
        
    _dos_getdate(&d);
        
    NhanVien *nv;
        
    HangHoa *hh;
        
    HangKM *hkm;
        
    soHD++;
        
    cout<<"\n Nhap ma nhan vien :";fflush(stdin);gets(str);
        
    nv=nv->Tim(str);
        if(
    nv==NULL) {cout<<"\n Khong ton tai nhan vien nay:";return 0;}
        
    strcpy(maNV,str);
        while(
    1)
        {
            if(
    Nhap(str,soHD))
                {
                    
    i++;
                    
    tongTien =tongTien+thanhTien;
                }
            
    cout<<"\n Ban muon nhap nua khong: Y/N?";
            
    ch=getch();
            if(
    ch=='n'||ch=='N') break;
        }
        if(
    i==0) return 1;
        
    ngay=d.day;thang=d.month;nam=d.year;
        
    cout<< "\n\n\t SAIGON MART";
        
    cout<<"\n\n \tTANG 2-TTTM Machico 1";
        
    cout<<"\n\nTel. 04.2850262";
        
    cout<<"\tMa so thue :0500473597";
        
    cout<<"\n\n Ma nhan vien:"<<str;
        
    cout<<"\tQuay 5.";
        
    cout<<"\n\n Ngay : "<<ngay<<"\t thang:"<<thang<<"\t nam:"<<nam ;
        
    cout<<"\t so:"<<soHD;
        
    cout<<"\n\n";
        
    in(i-1);
        
    cout<<"\n ===============================================";
        
    cout<<"\n thue gia tri gia tang:"<<thueGTGT;
    //    float tg=tongTien*thueGTGT;
        
    tongTien=tongTien*(thueGTGT+1);
        
    cout<<"\n\n tong tien: "<<tongTien;
        
    ofstream f("HoaDon.dat",ios::app|ios::binary);
        
    f.write((char*)(this),sizeof(HoaDon));
        
    f.close();
        return 
    1;
    }
    /*void HoaDon::inHD()
    {
        ifstream f("HoaDon.dat",sizeof(HoaDon));
        cout<<"\n\n"<<setw(7)<<"so HD"<<setw(7)<<"Ma NV"
        <<setw(7)<<"Ngay"<<setw(7)<<"thang"<<setw(7)<<"nam"<<endl;
        cout<<"=================================================================";
        while(f.read((char*)(this),sizeof(HoaDon)),!f.eof())
            {
                 cout<<"\n\n"<<setw(7)<<soHD<<setw(7)<<ngay
                <<setw(7)<<thang<<setw(7)<<nam<<endl;
            }
        f.close();
    }
    */
    /*___________________________________________________________*/
    void HangMua::thongKe()
    {
        
    char str[20];
        
    int ng,th,n;
        
    float tien=0.0;
        
    cout<<"\n Nhap vao ma nhan vien can thong ke:";
        
    gets(str);
        
    cout<<"\n Nhap vao thang nam can thong ke:";
        
    cin>>th>>n;
        
    ifstream f("HangMua.dat",ios::in|ios::binary);
        while(
    f.read((char*)this,sizeof(HangMua)),!f.eof())
            {
                if((
    strcmp(str,maNV)==0) && (thang==th)&&(nam==n))
                    
    tien=thanhTien+tien;
            }
        
    f.close();
        
    cout<<"\n Doanh thu thang  "<<th<<" nam  "<<n<<"  cua nhan vien "<<str<<" la:"<<tien;
    }
    /*__________________________________________________________*/
    void menuHH()
    {
        
    HangHoa bg;
        
    char ch,str[20];
        do
            {
                
    clrscr();
                
    cout<<"\t\n 1.Nhap danh sach hang hoa:"
                
    <<"\n\n 2.In danh sach hang hoa:"
                
    <<"\n\n 3.Xoa mot phan tu trong danh sach hanghoa:"
                
    <<"\n\n 4.Thoat!";
                
    ch=getch();
                switch(
    ch)
                    {
                        case
    '1':
                            {
                                
    clrscr();
                                
    cout<<"\n khong mua nhap nua an phim k";
                                while(
    1)
                                    {
                                        
    bg.Nhap();
                                        
    ch=getch();
                                        if(
    ch=='k'||ch=='K') break;
                                    }
                                break;
                            }
                        case 
    '2':
                            {
                                
    clrscr();
                                
    bg.in(); getch();break;
                            }
                        case 
    '3':
                            {
                                
    clrscr();
                                
    cout<<"\n Khong muon xoa nua an phim k";
                                while(
    1)
                                    {
                                        
    cout<<"\n Nhap vao ma hang can xoa:";
                                        
    fflush(stdin);    gets(str);
                                        if(
    bg.xoa(str))
                                        
    cout<<"\n Xoa thanh cong";
                                        else 
    cout<<"\n\n Khong ton tai hang";
                                        
    ch=getch();
                                        if(
    ch=='k'||ch=='K') break;
                                    }
                                break;
                            }
                        case 
    '4':break;
                    }
                }while(
    ch!='4');
    }
    /*__________________________________________________________*/
    void menuHKM()
    {
        
    HangKM hkm;
        
    char ch,str[20];
        do
            {
                
    clrscr();
                
    cout<<"\n 1. Nhap hang khuyen mai"
                
    <<"\n 2.In hang khuyen mai"
                
    <<"\n 3.Xoa hang"
                
    <<"\n 4. Thoat";
                
    ch=getch();
                switch(
    ch)
                    {
                        case 
    '1':
                            {
                                
    clrscr();
                                
    cout<<"\n khong mua nhap nua an phim k";
                                while(
    1)
                                    {
                                        
    hkm.Nhap();
                                        
    ch=getch();
                                        if(
    ch=='k'||ch=='K') break;
                                    }
                                break;
                            }
                        case 
    '2':
                            {
                                
    clrscr();
                                
    hkm.in(); getch();break;
                            }
                        case 
    '3':
                            {
                                
    clrscr();
                                while(
    1)
                                    {
                                        
    cout<<"\n Nhap ma hang can xoa:";
                                        
    fflush(stdin);gets(str);
                                        
    hkm.xoa(str);
                                        
    ch=getch();
                                        
    cout<<"n Ban co muon xoa nua khong Y/N ?";
                                        if(
    ch=='n'||ch=='N') break;
                                    }
                                
    getch();
                                break;
                            }
                        case 
    '4':break;
                    }
                }
            while(
    ch!='4');
    }
    /*__________________________________________________________*/
    void menuNV()
    {
        
    NhanVien nv;
        
    char ch;
        do
            {
                
    clrscr();
                
    cout<<"\n\n 1.Nhap nhan vien"
                
    <<"\n\n 2.In nhan vien"
                   
    //    <<"\n\n 6.Tim nhan vien"
                
    <<"\n\n 3.Thoat";
                
    ch=getch();
                switch(
    ch)
                    {
                        case 
    '1':
                            {
                                
    clrscr();
                                
    cout<<"\n\n Khong muon nhap nua an phim k";
                                while(
    1)
                                    {
                                        
    nv.NhapNV();
                                        
    ch=getch();
                                        if(
    ch=='k'||ch=='K')break;
                                    }
                                break;
                            }
                        case 
    '2': {clrscr();nv.inNV();getch();break;}
                        case 
    '3':break;
                    }
            }while(
    ch!='3');
    }
    /*__________________________________________________________*/
    void main()
    {
        
    clrscr();
        
    HoaDon hd;
        
    char ch;
        do
            {
                
    clrscr();
                
    cout<<"\n\n 1.Quan ly hang hoa trong kho"
                
    <<"\n\n 2.Quan ly hang khuyen mai"
                
    <<"\n\n 3.Quan ly nhan vien"
                
    <<"\n\n 4.Tao hoa don"
                
    <<"\n\n 5.Thong ke doanh thu cua nhan vien trong 1 thang"
                
    <<"\n\n ESC.thoat";
                
    ch=getch();
                switch(
    ch)
                    {
                        case 
    '1':clrscr();menuHH();getch();break;
                        case 
    '2'clrscr();menuHKM();getch();break;
                        case 
    '3'clrscr();menuNV();getch();break;
                        case 
    '4':
                        {
                            
    clrscr();
                            
    HoaDon hd;
                            while(
    1)
                                {
                                    
    hd.TaoHD();
                                    
    cout<<"\n Ban co muon tao hoa don nua khong:Y/N?";
                                    
    ch=getch();
                                    if(
    ch=='n'||ch=='N') break;
                                }
    //                        hd.inHD();
                            
    getch();break;
                        }
                        case 
    '5':
                            {
                                
    clrscr();
                                
    HangMua hm;
                                
    hm.thongKe();
                                
    getch();break;
                            }
                        case 
    '27': break;
                }
            }while(
    ch!=27);
        
    getch();

    thử tham khảo với bài này xem

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

    thank mọi người nhìu....lần đầu mình tham gia với lại chương trình mình viết gấp wa...mong mọi người chỉ giáo...tiểu đệ xin đa tạ

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

    Mặc định Xin nhờ mọi người sửa giúp bài quản lí vật tư c++

    HangHoa *Tim(char *str);
    cai này nghĩa là gì ??...minh cũng chua hiểu cách thức xóa một hàng hóa ra khỏi danh sách

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

  1. Giúp xây dựng Chương trình quản lý bãi giữ xe
    Gửi bởi tdakvn trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 11
    Bài viết cuối: 25-04-2017, 05:20 PM
  2. MS SQL với C# Chương trình quản lí kết quả học tập của SV. giúp mình thiết kế CSDL với
    Gửi bởi huyrua350 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 0
    Bài viết cuối: 19-05-2012, 04:05 PM
  3. Quản lý tiền điện bằng C#. Giúp mình?
    Gửi bởi thanhsonla trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 04-01-2011, 11:27 AM
  4. Đề tài quản lí nhà sách bằng C#, giúp mình
    Gửi bởi chemgio01 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 9
    Bài viết cuối: 02-11-2010, 05:22 PM
  5. cách học PHP hiệu quả...! Xin chỉ giúp
    Gửi bởi nobita8x trong diễn đàn Thắc mắc chung
    Trả lời: 5
    Bài viết cuối: 12-09-2010, 07:17 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