1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

help giúp bài tập C++ quản lý thư viện

Thảo luận trong 'Lập trình' bắt đầu bởi akido_jo, 4 Tháng bảy 2009.

  1. akido_jo New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 0
    viết chương trình C++ bằng BorlandC
    Quản lý thư viện
    + Thông tin sách : Mã sách, tên sách , thể loại, số lượng. Các công việc phải quản lý
    gồm : - Nhập danh sách sách – Tìm sách – Thêm sách mới – Thống kê sách theo thể
    loại – In danh sách sách – Kiểm tra số lượng một mã sách để đáp ứng yêu cầu mượn
    của độc giả .

    + Thông tin phiếu mượn sách : số phiếu , tên độc giả , ngày tháng năm mượn , mã
    sách mượn , tình trạng sách , trả chưa . Các công việc phải quản lý gồm : - Nhập
    danh sách phiếu mượn – Tìm phiếu mượn – Thêm phiếu mượn mới – In danh sách
    phiếu mượn theo ngày – In danh sách phiếu mượn – In danh sách các phiếu mượn
    của độc giả mượn quá hạn ( quá 5 ngày ). Trong khi nhập mã sách trong phiếu mượn
    có kiểm tra mã sách này có trong danh sách sách không ? , nếu có tiếp tục kiểm tra số
    lượng có còn không ? để đáp ứng yêu cầu mượn của độc giả . Mỗi lần cho mượn một
    đầu sách thì số lượng đầu sách này trong danh sách sách sẽ giảm xuống 1 và mỗi lần
    trả sẽ tăng lên một . Trong môt phiếu mượn chophép mượn nhiều đầu sách .

    + Các thông tin sách và phiếu mượn phải được lưu trên tập tin để đáp ứng yêu cầu
    quản lý lâu dài.
    + Chương trình phải thiết kế dạng thực đơn để người sử dụng thực hiện nhiều lần.
    + Sinh viên tự xây dựng thêm một số chức năng mà mình hiểu để đáp ứng các yêu
    cầu xử lý thống kê thông tin trong thực tế.
    Code:
    HTML:
    #include <ctype.h>
    #include <stdlib.h>
    #include <iostream.h>
    #include <string.h>
    #include <fstream.h>
    #include <conio.h>
    #include <stdio.h>
    #include <iomanip.h>
    
    class sach
    {
        private:
           int masach;
           char tensach[30];
           char tentg[30];
           char nhaxuatban[30];
           int soluongton;
        protected:
           sach *A;
           int n;//so chung loai sach (sach lich su,dia ly,khoa hoc...)
        public:
           void nhap_sach();
           void in_sach();
           void tim_sach(char ten[30]);
    
    };
    void sach::nhap_sach()
    {
               fstream File;
               File.open("sach.txt",ios::out);
               if(!File)
               {
                  cout<<"Khong the mo File";
                  return;
               }
               cout<<"Nhap so sach: ";
               cin>>n;
               cin.ignore();
               A=new sach[n];
               for(int i=0;i<=n;i++)
               {
                   cout<<" Nhap vao sach thu "<<(i+1)<<endl;
                   cout<<"Nhap ma sach: ";
                   cin>>A[i].masach;
                   File<<A[i].masach<<endl;
                   cin.ignore();
                   cout<<"Nhap ten sach: ";
                   	cin.getline(A[i].tensach,30);
                   File<<A[i].tensach<<endl;
                   cout<<"Nhap ten tac gia: ";
                   	cin.getline(A[i].tentg,30);
                   File<<A[i].tentg<<endl;
                   cout<<"Nhap nha xuat ban: ";
                   	cin.getline(A[i].nhaxuatban,30);
                   File<<A[i].nhaxuatban<<endl;
                   cout<<"Nhap so luong ton kho: ";
                   	cin>>A[i].soluongton;
                   File<<A[i].soluongton<<endl;
                  	 cin.ignore();
               }
               cout<<"ghi file tot"<<endl;
    		File.close();
    }
    void sach::tim_sach(char ten[30])
    {
    	int i=1;
       while(i<=n && strcmp(A[i].tensach,ten)!=0)
       	if(i>n)
          	cout<<"khong co sach nay hoac sach da het"<<endl;
          else
          {
          	cout<<"da tim thay sach - in thong tin sach ra man hinh"<<endl;
             A[i].in_sach();
          }
    }
    void sach::in_sach()
    {
    	cout<<"in thong tin cua cuon sach"<<endl;
       cout<<"===================================================================="<<endl;
       for(int i=0;i<=n;i++)
       {
       	cout<<"-----Thong tin sach thu---: "<<i<<endl;
       	cout<<"Ma sach "<<A[i].masach<<endl;
          cout<<"Ten sach "<<A[i].tensach<<endl;
          cout<<"Ten tac gia "<<A[i].tentg<<endl;
          cout<<"Nha xuat ban "<<A[i].nhaxuatban<<endl;
    	}
    }
    
    class phieumuon :public sach
    {
        private:
           char maphieumuon[10];
           char tendocgia[30];
           int masach;
           int ngaymuon;
           int ngaytra;
           int sosachmuon;
        protected:
           phieumuon *B;
           int n; //so phieu muon
           int masachFile[100];
           char tensach[30];
           char tentg[30];
           char nhaxuatban[30];
           int soluongton[30];
           int soluongsach;   //so luong sach
        public:
           void capnhatFile();
    
           void nhaptuFile();
    
           void nhapphieu();
           void tim_phieu_muon(char muon[10]);
           void inphieu();
    
    };
    void phieumuon::tim_phieu_muon(char muon[10])
    {
    	int i=1;
       while(i<=n && strcmp(B[i].maphieumuon,muon)!=0)
       	if(i>n)
          	cout<<"khong tim thay phieu muon nay"<<endl;
          else
          {
          	cout<<"da tim thay - in thong tin phieu muon"<<endl;
          	B[i].inphieu();
          }
    }
    
    void phieumuon::capnhatFile()
    {
                fstream File;
                File.open("sach.txt",ios::out);
                if(!File)
                {
                    cout<<"Khong the mo file";
                    return;
                }
                for(int i=0;i<soluongsach;i++)
                {
                    File<<masachFile[i]<<"\n";
                    File<<tensach[i]<<"\n";
                    File<<tentg[i]<<"\n";
                    File<<nhaxuatban[i]<<"\n";
                    File<<soluongton[i]<<"\n";
                }
                cout<<"da cap nhat file tot"<<endl;
                getch();
                File.close();
    }
    void phieumuon::nhaptuFile()
    {
                fstream File;
                int i=0;
                File.open("sach.txt",ios::in);
                if(!File)
                {
                    cout<<"KHONG TIM THAY FILE";
                    return;
                }
                for(int i=0; ;i++)
                {
                    if(File.eof())
                    {
                        break;
                    }
                    File>>masachFile[i];
                    File>>tensach[i];
                    File>>tentg[i];
                    File>>nhaxuatban[i];
                    File>>soluongton[i];
                }
                soluongsach = i; //so dong / so truong
    }
    
    void phieumuon::nhapphieu()
    {
                cout<<"nhap so phieu: ";
                cin>>n;
                int j;
                cin.ignore();
                B= new phieumuon[n];
                for(int i=0;i<n;i++)
                {
                     cout<<"\n______Nhap phieu thu  "<<(i+1)<<" _______\n";
                     cout<<"Nhap ma phieu: "<<endl;
                     cin>>B[i].maphieumuon;
                     		cin.ignore();
                     cout<<"Nhap ten doc gia: "<<endl;
                     		cin.getline(B[i].tendocgia,30);
                     cout<<"Nhap ma sach: "<<endl;
                     		cin>>B[i].masach;
                     cout<<"Nhap so sach muon: "<<endl;
                     		cin>>B[i].sosachmuon;
                     cout<<"Nhap ngay muon: "<<endl;
                     		cin>>B[i].ngaymuon;
                     cout<<"Nhap ngay tra: "<<endl;
                     		cin>>B[i].ngaytra;
                     cin.ignore();
    
                     // kiem tra luon
                     for(j=0;j<soluongsach;j++)
                     {
                          if(B[i].masach==masachFile[j] )
                          {
                                if(B[i].sosachmuon>soluongton[j])
                                {
                                    cout<<"\n Khong co loai sach nay trong thu vien hoac khong co du sach"<<endl;
                                    break;
                                }
                                else
                                {
                                    cout<<"\n Con sach cho ban muon"<<endl ;
                                    soluongton[j] = soluongton[j] - sosachmuon;     //cap nhat tren bo nho
                                    capnhatFile();              //cap nhat tren File
                                    break;
                                }
                          }
                     }
                     if(soluongsach==j)
                     {
                          cout<<"\n  Khong co sach cho ban muon "<<endl;
                     }
                }
    }
    
    void phieumuon::inphieu()
     {
               cout<<"_____________________IN RA PHIEU MUON________________"<<endl;
    
               for(int i=0;i<n;i++)
               {
                   cout<<"\n____________________Nguoi muon thu "<<(i+1)<<"____________"<<endl;
                   cout<<"Ma phieu muon: "<<B[i].maphieumuon<<endl;
                   cout<<"Ten doc gia: "<<B[i].tendocgia<<endl;
                   cout<<"Ma sach: "<<B[i].masach<<endl;
                   cout<<"Ngay muon sach: "<<B[i].ngaymuon<<endl;
                   cout<<"Ngay tra sach: "<<B[i].ngaytra<<endl;
                   cout<<"So sach muon: "<<B[i].sosachmuon<<endl;
               }
     }
    
    void thucdon(int *chon)
    {
    	cout<<"1-nhap danh sach sach"<<endl;
       cout<<"2-tim sach trong thu vien"<<endl;
       cout<<"3-in thong tin sach ra man hinh"<<endl;
       cout<<"4-Them sach vao trong thu vien"<<endl;
       cout<<"5-Thong ke sach theo the loai"<<endl;
    //===============================================
    	cout<<"6-nhap danh sach phieu muon"<<endl;
       cout<<"7-tim phieu muon"<<endl;
       cout<<"8-them phieu muon moi"<<endl;
       cout<<"9-in danh sach phieu muon theo ngay"<<endl;
       cout<<"10-in danh sach phieu muon"<<endl;
       cout<<"11-in danh sach doc gia muon sach qua 5 ngay"<<endl;
       cout<<"12-nhap tu File"<<endl;
       cout<<"13-cap nhat File"<<endl;
       cout<<"0-thoat"<<endl;
       cin>>*chon;
    }
    void main()
    {
    	int chon;
       sach B;
       phieumuon C;
       char ten[30];
       char muon[10];
       do
       {
       	thucdon(&chon);
          switch(chon)
          {
          	case 1:
             {
             	clrscr();
    				 B.nhap_sach();
                 break;
             }
             case 2:
             {
             	clrscr();
                cin.ignore();
                cout<<"nhap ten sach can tim ";
                cin.getline(ten,30);
                B.tim_sach(ten);
                break;
             }
             case 3:
             {
             	clrscr();
                B.in_sach();
             	break;
             }
             case 12:
             {
             	clrscr();
    				C.nhaptuFile();
                break;
             }
             case 6:
             {
             	clrscr();
                C.nhapphieu();
                 break;
             }
             case 7:
             {
             	clrscr();
                cin.ignore();
                cout<<"nhap ma so phieu can tim ";
                cin.getline(muon,10);
                C.tim_phieu_muon(muon);
                break;
             }
             case 9:
             {
             	clrscr();
        			C.inphieu();
                break;
             }
          }
        getch();
        }while(chon!=0);
    }
    
    bài tập này của mình lấy vào cột điểm không làm được chắc ăn trứng ngỗng quá:011: hic hic hic............
    mình làm còn thiếu nhiều phần chạy chương trình bị lỗi hoài mong mọi người FIX lại bài với sắp phải thi rồi:011:
    nếu được giúp mình làm thêm hàm thêm sách,thêm phiếu với:017:
    mình cần gấp mong mọi người chữa bài hộ
    Thanks các bạn trước

Chia sẻ trang này