Tạo lớp Card quản lí sách thư viện

Bài tập

Hãy tạo ra 1 lớp Card trong file Card.cpp với thông tin như sau:

Giải thích: 

Lớp Card

  • nameBook, nameAuthor, numberBook lần lượt là các thuộc tính chỉ tựa đề sách, tên tác giả, số lượng sách và phạm vi truy cập là private.
  • Card() là phương thức khởi tạo mạc định.
  • Card(nameBook : string, nameAuthor : string, numberBook : int) là phương thức khởi tạo có tham số dùng để khởi tạo giá trị cho các thuộc tính.
  • display() là phương thức dùng để hiển thị thông tin của đối tượng ra màn hình. Ví dụ nếu nameBook = "A", nameAuthor = "B", numberBook = 10 thì khi gọi phương thức này màn hình sẽ hiển thị ra:
    • Name Book: A
      Name Author: B
      Number Book: 10
  • getNumBook() là phương thức trả về số lượng sách.
  • sortCards(vector<Card> &cards);phương thức tĩnh được dùng để sắp xếp danh sách các Card theo thứ tự tăng dần của numberBook.

Hướng dẫn

Code mẫu

File Card.cpp

#pragma once
#include <iostream>
#include <vector>
using namespace std;

class Card {
private:
	string nameBook;
	string nameAuthor;
	int numberBook;
public:
	Card(){}
	Card(string nameBook, string nameAuthor, int numberBook)
	{
		this->nameBook = nameBook;
		this->nameAuthor = nameAuthor;
		this->numberBook = numberBook;
	}

	void display()
	{
		cout << "Name Book: " << this->nameBook << endl;
		cout << "Name Author: " << this->nameAuthor << endl;
		cout << "Number Book: " << this->numberBook << endl;
	}
	int getNumBook()
	{
		return this->numberBook;
	}
	
	 static void sortCards(vector<Card> &cards){
        for(int i = 0; i < cards.size() - 1; i++){
            for(int j = i + 1; j < cards.size(); j++){
                if(cards[i].getNumBook() > cards[j].getNumBook()){
                    swap(cards[i], cards[j]);
                }
            }    
        }    
    }
};