数据结构课程设计--网上拍卖系统.doc
文本预览下载声明
数据结构课程设计
总结报告
专 业
班 级
学 号
姓 名
日 期
东北大学软件学院需求分析Advertisement) 、广告集合(Listing)、目录(Category)、目录集合(Categories)、标价(bid)、客户(Client)、 客户组(Group),系统应围绕这些部分的关系,编写各自的函数,从而完成拍卖系统的功能。
实验目的:
通过实验进一步了解线性表、堆栈、队列、串、数组、广义表、树、图以及一些排序算法等数据结构内容。培养根据用户的要求及系统提供的数据,设计或选择合适的数据结构并能编写正确的算法解决实际问题的能力
第二章 系统设计
1、总体设计
a.总体思路:
先写好系统的基本骨架:Date、Client 、Advertisement这三个类,完成系统的基本功能,然后根据系统的功能需求编写相应的类完成功能拓展。
具体的类间关系为:Categories储存多个Category,Category通过Listing类储存这个目录下的Advertisement,Listing是Advertisement的集合,而Advertisement信息中包含多个Client对自己的竞标(bid),Client又可以对多个Advertisement进行竞标并发布Advertisement,Group是Client的集合,所以包含多个Client。其他的是过程类,由main调用processrequest类,再由processrequest调用相应的buildbidpage、buildpage、bidhistory类将结果显示在页面中。
体现在UML类图中如图所示:
b.基本的数据结构:
数据结构除了上述分析中所定义的类,还包括stl中的优先权队列和Vector集合。
各类主要操作定义如下:
Class Date:
operator==(const Date rhs) {}
operator (ostream os, const Date date){ }
operator(istream, Date){}
operator (const Date left){}
Class Advertisement :
operator==(const Date rhs) { }
operator(istream stream, Advertisement a){}
virtual vectorBid getTopDutchBids (void) const;
Class Client :
Client (const Client a){ }
operator(istream stream, Client c){}
Class Listing:
add(Advertisement*ptr){ }
operator[](const int number){}
virtual Listing sort(string field);
virtual Listing filter(string keyword);
Class Group:
Client *operator[](const string email){}
Class Category:
virtual void addSubCategory(Category*);
virtual void addItem(int);
virtual void findOfferings (Listing::iterator start,
Listing::iterator finish, Listing matches);
virtual void findOfferingsRecursive (Listing::iterator start,
Listing::iterator finish, Listing matches);
virtual bool operator==(const Category rhs);
Class Bid:
virtual bool operator (const Bid rhs) const;
virtual bool operator== (const Bid rhs) const;
Class bidhistory:
Void displayBidHistory(ostringstream oss, Advertisement* ad)
显示全部