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

📄 advertisement.cpp

📁 本程序给出了SSD5实验课中Exercise6的参考程序 内附有详细的注释 下载后请仔细参照源代码进行分析 切莫完全搬照
💻 CPP
字号:
#include "Advertisement.h"

//using namespace std;

static int c = 1;

Advertisement::Advertisement() : number(c),quantity(0),title(""),seller_email(""),body("")
{	c++;	}

Advertisement::Advertisement(string title, string seller_email, string body, 
							 Date start, Date close, int quantity) :
	quantity(quantity),title(title),seller_email(seller_email),body(body),start(start),close(close)
{	number = c;		c++;	}

Advertisement::Advertisement(const Advertisement &a){
	number = a.getNumber();
	quantity = a.getQuantity();
	title = a.getTitle();
	seller_email = a.getEmail();
	body = a.getBody();
	start = a.getStart();
	close = a.getClose();
}

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::setBody (string body){
	this->body = body;
}

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

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

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

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

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

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

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

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

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

int Advertisement::getQuantity() const{
	return quantity;
}
    
bool Advertisement::operator==(const Advertisement& a) const{
	if(number==a.getNumber())
		return true;
	return false;
}

istream &operator>>(istream &stream, Advertisement &a){
	string s;
	int q;
	//char c;
	Date d;

	stream>>s;
	a.setTitle(s);
	stream>>s;
	a.setEmail(s);
	
	stream>>q;
	a.setQuantity(q);
	stream>>d;
	a.setStart(d);
	stream>>d;
	a.setClose(d);
	stream>>s;
	a.setBody(s);

	return stream;
}

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

vector<Bid> Advertisement::getTopDutchBids (void) const {
	vector<Bid> result;
	priority_queue<Bid> tempBids = bids;
	
	if(tempBids.empty()) {
		return result;
	} else {
		for(int i = 0; i < this->getQuantity();) {
			Bid b = tempBids.top();
			result.push_back(b);
			tempBids.pop();
			i += b.getQuantity();
		}
	}
	return result;
}

⌨️ 快捷键说明

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