数据结构课程设计
总结报告
专 业 软件工程
班 级 软件
0810
学 号 20083538
姓 名 GeeMaple
日 期 2010.09.18
东北大学软件学院
第一章 需求分析
问题定义:
实现一个网上拍卖系统,根据需求描述和附加的框架代码,完成一
个网上拍卖系统。
分析:
整个系统运行于 Windows 平台,是基于 B/S 结构的商业应用程序,
程序为用户提供注册信息,登陆,商品上架,商品竞拍功能,程序提
供目录系统用来分类管理各类商品,同时为用户提供商品信息和竞标
信息查询与商品搜索功能。
研究意义:
1. 熟悉 C++语,法头文件的声明以及具体函数的实现。
2. 通过对实验的操作,加深对链表,堆(优先权队列),树等线
性结构或层次结构的理解和应用。
3. 掌握 C++中>>、<<、( )操作符重载的意义和应用。
4. 学会查询 STL 函数,并应用到具体的程序开发中
5. 学会应用 cout 函数或编译器 Debug 工具调试解决程序开发中的
异常或逻辑错误
6. 了解 C++应用于 BS 结构开发的机制,学会写出相应的网页响应
界面
7. 熟悉应用程序开发流程,积累个人程序开发经验。
第二章 系统设计
1、总体设计
程序类图:
2、程序设计
1. Category 中的查询当前分类以及其所有子类下的广告
findOfferingsRecursive 函数:
void Category::findOfferingsRecursive (Listing::iterator start,Listing::iterator finish, Listing
&matches){
this->findOfferings(start,finish,matches);
for(vector<Category*>::iterator sub_categorie=this->subCategoriesBegin();
sub_categorie!=this->subCategoriesEnd();sub_categorie++){
(*sub_categorie)->findOfferings(start,finish,matches);
}
};
2. Advertisement 类中的 virtual vector<Bid> getTopDutchBids (void) const 函
数返回胜出投标
vector<Bid> Advertisement::getTopDutchBids() const{
vector<Bid> winning_bidders;
priority_queue<Bid> temp_priority_queue=bids;
int ad_left=this->getQuantity();
int bid_counter=temp_priority_queue.size();
while (ad_left>0 && bid_counter-- )
{
Bid current = temp_priority_queue.top();
winning_bidders.push_back(current);
ad_left=ad_left-current.getQuantity();
temp_priority_queue.pop();
}
return winning_bidders;
};
3. List 中的 filter()函数实现:
class NotMatch{
private:
Listing &filter_list;
string keyword;
public:
NotMatch(string keyword,Listing &filter_list):keyword(keyword),filter_list(filter_list)
{};
bool operator ()(Advertisement* ad){
if (ad->getTitle().find(keyword) !=string::npos || ad->getBody().find(keyword)!
=string::npos)
{
//当查找空字符时,返回 int 0 不越界 by GeeMaple
return false;
}
else
{
return true;
}
}
};
Listing Listing::filter(string keyword){
Listing filter_list;
NotMatch not_match(keyword,filter_list);
std::remove_copy_if(this->objects.begin(),this-
>objects.end(),std::back_inserter(filter_list.objects),not_match);
1
- 1
- 2
- 3
- 4
前往页