⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 advertisement.cpp

📁 SSD6卡耐基梅陇大学考试3满分答案 SSD6 数据结构 基于C++ 作为大学期间最重要的一门课程额
💻 CPP
字号:
#include "Advertisement.h"

using namespace std;

Advertisement::Advertisement(void) : 
	title(""), seller_email(""),
	body(""), number(-1) {}

Advertisement::Advertisement (string title, string seller_email, 
                              string body, Date start, Date close,
							  int quantity) :
	title(title), seller_email(seller_email),
	body(body), start(start), close(close),
	quantity(quantity), number(-1) {}

Advertisement::Advertisement (const Advertisement &a) : 
	title(a.title), seller_email(a.seller_email),
	body(a.body), start(a.start), 
	close(a.close), bids(a.bids),
	quantity(a.quantity),
	number(a.number) {}

string Advertisement::getEmail() const {
  return seller_email;
}

string Advertisement::getTitle() const {
  return title;
}
 
string Advertisement::getBody() const {
  return body;
}

void Advertisement::setStart (const Date &start) {
  this->start = start;
}

void Advertisement::setClose (const Date &close) {
  this->close = close;
}

void Advertisement::setTitle (string title) {
  this->title = title;
}

void Advertisement::setEmail (string email) {
  this->seller_email = email;
}

void Advertisement::setQuantity (int quantity) {
  this->quantity = quantity;
}

void Advertisement::setBody (string body) {
  this->body = body;
}

void Advertisement::setNumber (int number) {
  this->number = number;
}

Date Advertisement::getStart () const {
  return start;
}


Date Advertisement::getClose () const {
  return close;
}

int Advertisement::getNumber() const {
  return number;
}

int Advertisement::getQuantity() const {
  return quantity;
}

priority_queue<Bid>& Advertisement::getBids() {
	return bids;
}

vector<Bid> Advertisement::getTopDutchBids () const {

  priority_queue<Bid> scratchHeap = bids;
  vector<Bid> topBids;

  for (int itemsLeft=quantity; 
       (0 != itemsLeft) && (0 != scratchHeap.size());
       /* decrement by quantity of bid */ ) {
    Bid top = scratchHeap.top();
    scratchHeap.pop();
    topBids.push_back(top);

    if (itemsLeft <= top.getQuantity()) 
      break;
    else 
      itemsLeft -= top.getQuantity();
    
  }

  return topBids;

}

bool Advertisement::operator==(const Advertisement& rhs) const {
	if (this->getNumber() == rhs.getNumber()) {
		return true;
	}
	else {
		return false;
	}
}

istream &operator>>(istream &stream, Advertisement &a) {

  char line[80];
  string name;

  stream.getline(line, 80);
  a.setTitle(line);

  stream.getline(line, 80);
  a.setEmail(line);

  stream.getline(line, 80);
  a.setQuantity(atoi(line));

  Date in;
  stream >> in;
  a.setStart(in);

  stream >> in;
  a.setClose(in);

  stream.getline(line, 80);
  a.setBody(line);

  return stream;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -