展开全部

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

// Router.h

#include

#include

using namespace std;

// 路线

class Router

{

public:

Router();

~Router();

//

void setRouterId(int id);

//

int getRouterId();

// 添加站点信息

int addSiteInfo(string name);

// 删除站点信息

int delSiteInfo(string name);

// 插入32313133353236313431303231363533e58685e5aeb931333365653265站点信息

int insertSiteInfo(int index, string name);

// 获取站点序号

int getSiteNo(string name);

// 显示站点信息

void showSite();

private:

int m_id;                   // 路线编号

list m_siteList;    // 站点列表

};

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

// Router.cpp

#include "Router.h"

Router::Router()

{

m_siteList.clear();

}

Router::~Router()

{

m_siteList.clear();

}

void Router::setRouterId(int id)

{

this->m_id = id;

}

int Router::getRouterId()

{

return m_id;

}

// 添加站点信息

int Router::addSiteInfo(string name)

{

if(name.size() == 0)

{

cout <

return -1;

}

m_siteList.push_back(name);

return 0;

}

// 删除站点信息

int Router::delSiteInfo(string name)

{

list::iterator it;

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

{

if(*it == name)

{

m_siteList.erase(it);

return 0;

}

}

cout <

return -1;

}

int Router::insertSiteInfo(int index, string name)

{

if(name.size() == 0)

{

cout <

return -1;

}

list::iterator it;

it = m_siteList.begin();

int i=0;

while(i

{

it++;

}

m_siteList.insert(it, name);

return 0;

}

int Router::getSiteNo(string name)

{

int no = 0;

list::iterator it;

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

{

if(name == *it)

{

return no;

}

no++;

}

return -1;

}

// 显示站点信息

void Router::showSite()

{

cout < ";

list::iterator it;

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

{

cout < ";

}

cout <

}

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

// Map.h

#include "Router.h"

#include

// 地图

class Map

{

public:

Map();

~Map();

// 添加路线信息

int addRouterInfo(int id, Router *router);

// 删除路线信息

int delRouterInfo(int id);

// 获取路线信息

Router *getRouter(int id);

// 查找站点所在的路线

Router *findRouter(string name);

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

void showRouterInfo(int id=-1);

private:

map m_routerMap; // 路线信息

};

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

// Map.cpp

#include "Map.h"

Map::Map()

{

m_routerMap.clear();

}

Map::~Map()

{

Router *pRouter = NULL;

map::iterator it;

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

{

pRouter = it->second;

if(pRouter != NULL)

{

delete pRouter;

pRouter = NULL;

}

}

m_routerMap.clear();

}

// 添加路线信息

int Map::addRouterInfo(int id, Router *router)

{

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

{

cout <

return -1;

}

router->setRouterId(id);

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

return 0;

}

// 删除路线信息

int Map::delRouterInfo(int id)

{

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

{

cout <

return -1;

}

m_routerMap.erase(id);

return 0;

}

// 获取路线信息

Router* Map::getRouter(int id)

{

Router *pRouter = NULL;

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

{

cout <

}

else

{

pRouter = m_routerMap[id];

}

return pRouter;

}

// 查找站点所在的路线

Router* Map::findRouter(string name)

{

Router *pRouter = NULL;

if(name.size() == 0)

{

cout <

}

else

{

Router *pTmp = NULL;

map::iterator it;

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

{

pTmp = it->second;

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

{

pRouter = pTmp;

break;

}

}

}

return pRouter;

}

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

void Map::showRouterInfo(int id)

{

if(-1 == id)

{

map::iterator it;

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"

// 售票

class ticket

{

public:

ticket();

~ticket();

// 初始化地图信息

void initMapInfo();

// 显示地图信息

void showMapInfo();

// 处理用户输入

void handleUserInput();

void run();

private:

Map *m_mapInfo;     // 地图信息

};

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

// ticket.cpp

#include "ticket.h"

#include

#include

ticket::ticket()

{

m_mapInfo = NULL;

}

ticket::~ticket()

{

if(m_mapInfo != NULL)

{

delete m_mapInfo;

}

}

// 初始化地图信息

void ticket::initMapInfo()

{

string name;

m_mapInfo = new Map;

vector siteList;

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(int i=0; i

{

pRouter = new Router;

for(int j=0; j

{

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

pRouter->addSiteInfo(name);

}

m_mapInfo->addRouterInfo(i, pRouter);

}

}

// 显示地图信息

void ticket::showMapInfo()

{

if(m_mapInfo != NULL)

{

m_mapInfo->showRouterInfo(-1);

}

}

// 处理用户输入

void ticket::handleUserInput()

{

Router *pRouter1 = NULL, *pRouter2 = NULL;

string startName, endName;

int num = 0;

int startNo = -1, endNo = -1;

int price = 0;

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

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

while(1)

{

cout <

cout <

cout < Map Info <=================>" <

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;

}

}

void ticket::run()

{

this->initMapInfo();

this->handleUserInput();

}

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

// main.cpp

#include "ticket.h"

int main(void)

{

ticket app;

app.run();

return 0;

}

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

  1. CV:传统视觉知识—机器视觉系统的基础知识(机器视觉三要素+典型的工业机器视觉系统五大组件)

    CV:传统视觉知识-机器视觉系统的基础知识(机器视觉三要素+典型的工业机器视觉系统五大组件) 目录 机器视觉三要素 1.what-测量.判断 2.why-灵活性.自动化

  2. 监管大屏系统_“警视”警务情指一体大屏可视化决策系统

    1.产品概述 洲明科技"警视"警务情指一体大屏可视化决策系统,面向公安指挥中心大屏环境,具备优秀的大数据显示性能以及多机协同管理机制,支持大屏.多屏.超大分辨率等显示情景. 系统支 ...

  3. 监管大屏系统_“警视” 警务情指一体大屏可视化决策系统

    数字冰雹"警视"警务情指一体大屏可视化决策系统,面向公安指挥中心大屏环境,具备优秀的大数据显示性能以及多机协同管理机制,支持大屏.多屏.超大分辨率等显示情景. 系统支持整合公安现有 ...

  4. 电脑pin码忘了登录不进系统_关windows10PIN码是什么?如何取消windows10系统的pin码?...

    windows10PIN码是什么? 其实windows10PIN码就是相关windows系统中的管理员密码:Windows 10的开机PIN码或密码可以为我们的账户和电脑安全增加一道屏障.那么,下面就 ...

  5. dell系统重装后无法进入系统_教你戴尔无法开机怎么重装win10系统

    戴尔作为全球知名的品牌之一,身边很多朋友都在使用着戴尔品牌的电脑,但是在使用的过程中也都会出现一些大大小小的问题.所以为了能让大家更好的使用电脑,下面小编就以戴尔为例,给大家介绍一下重装win10系统 ...

  6. 华为哪款手机是鸿蒙系统_华为官宣旗下手机可以直接更新鸿蒙系统,其它手机只能通过刷机...

    阅读本文前,请您先点击上面的蓝色字体"晓艳姐姐",再点击"关注",这样您就可以免费收到最新内容了.每天都有分享,完全是免费订阅,请放心关注. 华为即将面世的鸿蒙 ...

  7. python地铁查询系统_基于Python的苏州实时公交/地铁接口调用代码实例

    1.[代码][Python]代码 #!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib from urllib import ur ...

  8. java 框架医院系统_医院管理系统,基于SSM框架下的JAVA系统

    每天记录学习,每天会有好心情.*^_^* 今天将为大家分析一个医院管理系统(信息化管理是医院提高服务质量.效率,降低运营成本的重要手段.HIS是实现医院信息化管理的途径之一,许多商业项目纷纷致力于HI ...

  9. 模拟物流快递系统程序设计java_路辉物流设备:大件快递自动分拣系统的模块化设计...

    物流企业运营所需的能源.劳动力.土地价格持续上涨,依赖"高投入.低产出"传统物流运作模式难以为继,面临着降低成本.提高效率.可持续发展的转型要求.快递行业对于新兴的大件快递消费需求 ...

  10. 全国铁路查询系统_火车票查询时刻表 全国列车时刻表 火车时刻表查询系统使用说明...

    春运来了,快过年了, 又到一年中最一票难求的时候了,在外辛辛苦苦打拼了一年,为了让大家尽早的和亲朋好友家人团聚,本人今年很英勇的出来帮大家代抢火车票啦! 特地为大家建立了一个捡漏票微信群, 加微信qq ...

最新文章

  1. 小程序全局状态管理,在页面中获取globalData和使用globalSetData
  2. java swing 链接_JAVA中Jtable标签设置超级链接:基于Java Swing的超链接标签和超链接按钮的实现...
  3. Win7系统下Vmware虚拟机无法使用USB设备问题的解决方法
  4. php繁体拼音字母,php获取中文字符串的首字符拼音字母
  5. 连分数求解Pell方程
  6. 前端学习(981):jquery入门
  7. 前端学习(593):使用devtools作为代码编辑器
  8. calibre for linux,calibre - 下载Linux版
  9. 错过后悔十年!计算机视觉入门到精通,学习书籍推荐
  10. MessageDigest 详解
  11. latex如何生成pdf标签/目录?
  12. html清除iframe的缓存,如何清除iFrame的缓存?
  13. DELL新版BIOS重装系统win10
  14. 【windows】在控制面板卸载软件的时候,出现2502,2503的问题
  15. 累加器实验总结计算机组成,计算机组成原理累加器实验报告
  16. Python 关于浮点数取整详解
  17. what Data Fabric
  18. 爱心代码大全---含十余款特效源码【情人节表白代码】
  19. 从“健康码”到数字货币,我国金融科技正迈向新阶段
  20. lasso算法及其实现

热门文章

  1. 1_机智云程序移植到HT32F52352上
  2. 你的Ubuntu还可以这么美(转自知乎 @知一)
  3. 加密软件的问答-加密软件与密码学有什么关系?
  4. revit2016族管理:如何设置轮廓族来自动分类呢?
  5. 人生的智慧(二)-叔本华
  6. 关于《Java数字图像处理-编程技巧与应用实践》一书 源代码
  7. 人大统计专硕432考研专业课经验分享
  8. java自定义注解的使用
  9. 在线思维导图软件怎么使用模板?
  10. ajax长轮询 spring mvc,springmvc ajax 长轮询