600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > c++设计地铁售票系统_用C++(用三个类)地铁自动售票系统 我不会弄 有人弄过么...

c++设计地铁售票系统_用C++(用三个类)地铁自动售票系统 我不会弄 有人弄过么...

时间:2019-04-03 22:35:10

相关推荐

c++设计地铁售票系统_用C++(用三个类)地铁自动售票系统  我不会弄 有人弄过么...

展开全部

//================================

//Router.h

#include

#include

usingnamespacestd;

//路线

classRouter

{

public:

Router();

~Router();

//

voidsetRouterId(intid);

//

intgetRouterId();

//添加站点信息

intaddSiteInfo(stringname);

//删除站点信息

intdelSiteInfo(stringname);

//插入32313133353236313431303231363533e58685e5aeb931333365653265站点信息

intinsertSiteInfo(intindex,stringname);

//获取站点序号

intgetSiteNo(stringname);

//显示站点信息

voidshowSite();

private:

intm_id;//路线编号

listm_siteList;//站点列表

};

//================================

//Router.cpp

#include"Router.h"

Router::Router()

{

m_siteList.clear();

}

Router::~Router()

{

m_siteList.clear();

}

voidRouter::setRouterId(intid)

{

this->m_id=id;

}

intRouter::getRouterId()

{

returnm_id;

}

//添加站点信息

intRouter::addSiteInfo(stringname)

{

if(name.size()==0)

{

cout<

return-1;

}

m_siteList.push_back(name);

return0;

}

//删除站点信息

intRouter::delSiteInfo(stringname)

{

list::iteratorit;

for(it=m_siteList.begin();it!=m_siteList.end();it++)

{

if(*it==name)

{

m_siteList.erase(it);

return0;

}

}

cout<

return-1;

}

intRouter::insertSiteInfo(intindex,stringname)

{

if(name.size()==0)

{

cout<

return-1;

}

list::iteratorit;

it=m_siteList.begin();

inti=0;

while(i

{

it++;

}

m_siteList.insert(it,name);

return0;

}

intRouter::getSiteNo(stringname)

{

intno=0;

list::iteratorit;

for(it=m_siteList.begin();it!=m_siteList.end();it++)

{

if(name==*it)

{

returnno;

}

no++;

}

return-1;

}

//显示站点信息

voidRouter::showSite()

{

cout<";

list::iteratorit;

for(it=m_siteList.begin();it!=m_siteList.end();it++)

{

cout<";

}

cout<

}

//================================

//Map.h

#include"Router.h"

#include

//地图

classMap

{

public:

Map();

~Map();

//添加路线信息

intaddRouterInfo(intid,Router*router);

//删除路线信息

intdelRouterInfo(intid);

//获取路线信息

Router*getRouter(intid);

//查找站点所在的路线

Router*findRouter(stringname);

//显示路线信息(id=-1显示全部)

voidshowRouterInfo(intid=-1);

private:

mapm_routerMap;//路线信息

};

//================================

//Map.cpp

#include"Map.h"

Map::Map()

{

m_routerMap.clear();

}

Map::~Map()

{

Router*pRouter=NULL;

map::iteratorit;

for(it=m_routerMap.begin();it!=m_routerMap.end();it++)

{

pRouter=it->second;

if(pRouter!=NULL)

{

deletepRouter;

pRouter=NULL;

}

}

m_routerMap.clear();

}

//添加路线信息

intMap::addRouterInfo(intid,Router*router)

{

if(m_routerMap.find(id)!=m_routerMap.end())

{

cout<

return-1;

}

router->setRouterId(id);

m_routerMap.insert(pair(id,router));

return0;

}

//删除路线信息

intMap::delRouterInfo(intid)

{

if(m_routerMap.find(id)==m_routerMap.end())

{

cout<

return-1;

}

m_routerMap.erase(id);

return0;

}

//获取路线信息

Router*Map::getRouter(intid)

{

Router*pRouter=NULL;

if(m_routerMap.find(id)==m_routerMap.end())

{

cout<

}

else

{

pRouter=m_routerMap[id];

}

returnpRouter;

}

//查找站点所在的路线

Router*Map::findRouter(stringname)

{

Router*pRouter=NULL;

if(name.size()==0)

{

cout<

}

else

{

Router*pTmp=NULL;

map::iteratorit;

for(it=m_routerMap.begin();it!=m_routerMap.end();it++)

{

pTmp=it->second;

if(pTmp->getSiteNo(name)!=-1)

{

pRouter=pTmp;

break;

}

}

}

returnpRouter;

}

//显示路线信息(id=-1显示全部)

voidMap::showRouterInfo(intid)

{

if(-1==id)

{

map::iteratorit;

for(it=m_routerMap.begin();it!=m_routerMap.end();it++)

{

cout<first<";

it->second->showSite();

}

}

else

{

if(m_routerMap.find(id)==m_routerMap.end())

{

cout<

}

Router*pRouter=m_routerMap[id];

cout<";

pRouter->showSite();

}

}

//================================

//ticket.h

#include"Map.h"

//售票

classticket

{

public:

ticket();

~ticket();

//初始化地图信息

voidinitMapInfo();

//显示地图信息

voidshowMapInfo();

//处理用户输入

voidhandleUserInput();

voidrun();

private:

Map*m_mapInfo;//地图信息

};

//================================

//ticket.cpp

#include"ticket.h"

#include

#include

ticket::ticket()

{

m_mapInfo=NULL;

}

ticket::~ticket()

{

if(m_mapInfo!=NULL)

{

deletem_mapInfo;

}

}

//初始化地图信息

voidticket::initMapInfo()

{

stringname;

m_mapInfo=newMap;

vectorsiteList;

siteList.push_back("aa");

siteList.push_back("bb");

siteList.push_back("cc");

siteList.push_back("dd");

siteList.push_back("ee");

siteList.push_back("ff");

vectoridList;

idList.push_back("1");

idList.push_back("2");

idList.push_back("3");

idList.push_back("4");

idList.push_back("5");

//添加路线

Router*pRouter=NULL;

for(inti=0;i

{

pRouter=newRouter;

for(intj=0;j

{

name=siteList[j]+idList[i];

pRouter->addSiteInfo(name);

}

m_mapInfo->addRouterInfo(i,pRouter);

}

}

//显示地图信息

voidticket::showMapInfo()

{

if(m_mapInfo!=NULL)

{

m_mapInfo->showRouterInfo(-1);

}

}

//处理用户输入

voidticket::handleUserInput()

{

Router*pRouter1=NULL,*pRouter2=NULL;

stringstartName,endName;

intnum=0;

intstartNo=-1,endNo=-1;

intprice=0;

//简单处理,只能选择同一条路线

//循环接受用户输入,直到得到价格

while(1)

{

cout<

cout<

cout<MapInfo<=================>"<

cout<

this->showMapInfo();

cout<

cout<

cout<

cout<

cin>>startName;

pRouter1=m_mapInfo->findRouter(startName);

if(pRouter1==NULL)

{//输入有误,全部重新输入

cout<

continue;

}

startNo=pRouter1->getSiteNo(startName);

cout<

cin>>endName;

pRouter2=m_mapInfo->findRouter(endName);

if(pRouter2==NULL)

{

cout<

continue;

}

if(pRouter1!=pRouter2)

{

cout<

continue;

}

endNo=pRouter2->getSiteNo(endName);

cout<

cin>>num;

if(num

{

continue;

}

//简单处理价格:人数×单价

//每个站点价格加减1

price=num*abs(endNo-startNo);

cout<\t"<

cout<getRouterId()<\t"<

break;

}

}

voidticket::run()

{

this->initMapInfo();

this->handleUserInput();

}

//================================

//main.cpp

#include"ticket.h"

intmain(void)

{

ticketapp;

app.run();

return0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。