C++实现地铁自动售票系统程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++实现地铁⾃动售票系统程序设计
本⽂实例为⼤家分享了C++实现地铁⾃动售票系统的具体代码,供⼤家参考,具体内容如下
题⽬描述:
地铁是当今城市较为流⾏的⼀种铁路运输的形式,地铁能避免城市地⾯拥挤,充分利⽤空间,具有运量⼤、准时、正点率较其他公交⾼、速度快等优点。
请设计⼀个简易的、带菜单的地铁⾃动售票机系统。
功能需求:
(1)设计⼀个地铁路线类Router,包含路线编号,途中的各个站点。
(2)设计⼀个地图类Map,可以显⽰所有可以乘坐的地铁站名,以及线路信息。
(3)根据⽤户输⼊的起点和终点和⼈次信息,可以⾃动计算应付⾦额;根据⽤户输⼊的⾦额,计算找零信息。
程序设计:
1
2
3
4
5
6
7
8
9
10
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40#include <iostream>
#include <vector>
using namespace std;
class Router {
private:
string port[100];//经过站点
int id;//路线编号
int count=0; //站点数⽬
public:
void setId(int i) {
id=i;
}
void addPort(string name) {
port[count]=name;
count++;
}
void getPort() {
int i=0;
for(i=0; i<count; i++) {
cout<<"第"<<i+1<<"站:"; cout<<port[i];
cout<<endl;
}
}
int check(string u,string v) {
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 for(int i=0; i<count; i++) {
if(port[i]==u) {
for(int j=0; j<count; j++) {
if(port[j]==v) {
// u v
return((i-j)>=0)?
(i-j):(j-i);
}
}
}
}
return0;
}
};
class Map {
private:
vector<Router> r;//路线图
public:
double charge=2;//每站价格
void setCharge(double ch) {
charge=ch;
}
void init() {
Router temp1;
temp1.setId(1);
temp1.addPort("west");
temp1.addPort("mid1");
temp1.addPort("south");
r.push_back(temp1);
Router temp2;
temp2.setId(2);
temp2.addPort("south");
temp2.addPort("mid2");
temp2.addPort("east");
r.push_back(temp2);
Router temp3;
temp3.setId(3);
temp3.addPort("east");
temp3.addPort("mid3");
temp3.addPort("north");
r.push_back(temp3);
Router temp4;
temp4.setId(4);
temp4.addPort("north");
temp4.addPort("mid4");
temp4.addPort("west");
r.push_back(temp4);
}
int buy(string start, string end) {
int count=r.size();
int d=0;
for(int i=0; i<count; i++) {
Router temp=r[i];
d=temp.check(start,end);
if(d>0) {
cout<<"您需要乘坐"<<i+1<<"号线"<<endl; return d;
}
}
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 }
void show() {
int count=r.size();
cout<<"本市地铁线路图如下:"<<endl;
for(int i=0; i<count; i++) {
cout<<i+1<<"号线:"<<endl<<endl;
Router temp=r[i];
temp.getPort();
cout<<endl<<endl;
}
}
};
void menu() {
int m;
Map map;
map.init();
while(1) {
cout<<endl<<endl<<endl;
cout<<"----------欢迎来到地铁售票系统-----------"<<endl; cout<<"----------1、路线查询-----------"<<endl;
cout<<"----------2、购票-----------"<<endl;
cin>>m;
if(m==1) {
map.show();
} else if(m==2) {
cout<<"请输⼊起点:"<<endl;
string s;
cin>>s;
cout<<"请输⼊终点:"<<endl;
string e;
cin>>e;
cout<<"请输⼊⼈数:"<<endl;
int c;
cin>>c;
int d=map.buy(s,e);
if(d>0) {
double rs=(double)c*(double)d*map.charge;
cout<<"您需要⽀付的费⽤为:";
cout<<rs<<endl;
cout<<"请输⼊您⽀付的⾦额:";
double in=0;
cin>>in;
if(in>=rs) {
cout<<"购票成功!"<<endl;
cout<<"找零:"<<in-rs<<"元"<<endl;
} else{
cout<<"⾦额不⾜,购票失败!";
}
} else{
cout<<"抱歉,请选择其他交通!";
}
}
}
}
int main() {
menu();
return0;
}
165
166
167
程序运⾏演⽰:
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。