c++设计地铁售票系统_用C++(用三个类)地铁自动售票系统,,我不会弄,有人弄过么...
展开全部
//================================
// 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++(用三个类)地铁自动售票系统,,我不会弄,有人弄过么...相关推荐
- CV:传统视觉知识—机器视觉系统的基础知识(机器视觉三要素+典型的工业机器视觉系统五大组件)
CV:传统视觉知识-机器视觉系统的基础知识(机器视觉三要素+典型的工业机器视觉系统五大组件) 目录 机器视觉三要素 1.what-测量.判断 2.why-灵活性.自动化
- 监管大屏系统_“警视”警务情指一体大屏可视化决策系统
1.产品概述 洲明科技"警视"警务情指一体大屏可视化决策系统,面向公安指挥中心大屏环境,具备优秀的大数据显示性能以及多机协同管理机制,支持大屏.多屏.超大分辨率等显示情景. 系统支 ...
- 监管大屏系统_“警视” 警务情指一体大屏可视化决策系统
数字冰雹"警视"警务情指一体大屏可视化决策系统,面向公安指挥中心大屏环境,具备优秀的大数据显示性能以及多机协同管理机制,支持大屏.多屏.超大分辨率等显示情景. 系统支持整合公安现有 ...
- 电脑pin码忘了登录不进系统_关windows10PIN码是什么?如何取消windows10系统的pin码?...
windows10PIN码是什么? 其实windows10PIN码就是相关windows系统中的管理员密码:Windows 10的开机PIN码或密码可以为我们的账户和电脑安全增加一道屏障.那么,下面就 ...
- dell系统重装后无法进入系统_教你戴尔无法开机怎么重装win10系统
戴尔作为全球知名的品牌之一,身边很多朋友都在使用着戴尔品牌的电脑,但是在使用的过程中也都会出现一些大大小小的问题.所以为了能让大家更好的使用电脑,下面小编就以戴尔为例,给大家介绍一下重装win10系统 ...
- 华为哪款手机是鸿蒙系统_华为官宣旗下手机可以直接更新鸿蒙系统,其它手机只能通过刷机...
阅读本文前,请您先点击上面的蓝色字体"晓艳姐姐",再点击"关注",这样您就可以免费收到最新内容了.每天都有分享,完全是免费订阅,请放心关注. 华为即将面世的鸿蒙 ...
- python地铁查询系统_基于Python的苏州实时公交/地铁接口调用代码实例
1.[代码][Python]代码 #!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib from urllib import ur ...
- java 框架医院系统_医院管理系统,基于SSM框架下的JAVA系统
每天记录学习,每天会有好心情.*^_^* 今天将为大家分析一个医院管理系统(信息化管理是医院提高服务质量.效率,降低运营成本的重要手段.HIS是实现医院信息化管理的途径之一,许多商业项目纷纷致力于HI ...
- 模拟物流快递系统程序设计java_路辉物流设备:大件快递自动分拣系统的模块化设计...
物流企业运营所需的能源.劳动力.土地价格持续上涨,依赖"高投入.低产出"传统物流运作模式难以为继,面临着降低成本.提高效率.可持续发展的转型要求.快递行业对于新兴的大件快递消费需求 ...
- 全国铁路查询系统_火车票查询时刻表 全国列车时刻表 火车时刻表查询系统使用说明...
春运来了,快过年了, 又到一年中最一票难求的时候了,在外辛辛苦苦打拼了一年,为了让大家尽早的和亲朋好友家人团聚,本人今年很英勇的出来帮大家代抢火车票啦! 特地为大家建立了一个捡漏票微信群, 加微信qq ...
最新文章
- 小程序全局状态管理,在页面中获取globalData和使用globalSetData
- java swing 链接_JAVA中Jtable标签设置超级链接:基于Java Swing的超链接标签和超链接按钮的实现...
- Win7系统下Vmware虚拟机无法使用USB设备问题的解决方法
- php繁体拼音字母,php获取中文字符串的首字符拼音字母
- 连分数求解Pell方程
- 前端学习(981):jquery入门
- 前端学习(593):使用devtools作为代码编辑器
- calibre for linux,calibre - 
下载Linux版
- 错过后悔十年!计算机视觉入门到精通,学习书籍推荐
- MessageDigest 详解
- latex如何生成pdf标签/目录?
- html清除iframe的缓存,如何清除iFrame的缓存?
- DELL新版BIOS重装系统win10
- 【windows】在控制面板卸载软件的时候,出现2502,2503的问题
- 累加器实验总结计算机组成,计算机组成原理累加器实验报告
- Python 关于浮点数取整详解
- what Data Fabric
- 爱心代码大全---含十余款特效源码【情人节表白代码】
- 从“健康码”到数字货币,我国金融科技正迈向新阶段
- lasso算法及其实现