C++面向对象程序设计:地铁自动售票系统

题目描述:

地铁是当今城市较为流行的一种铁路运输的形式,地铁能避免城市地面拥挤,充分利用空间,具有运量大、准时、正点率较其他公交高、速度快等优点。请设计一个简易的、带菜单的地铁自动售票机系统。


功能需求:

(1)设计一个地铁路线类Router,包含路线编号,途中的各个站点。

(2)设计一个地图类Map,可以显示所有可以乘坐的地铁站名,以及线路信息。

(3)根据用户输入的起点和终点和人次信息,可以自动计算应付金额;根据用户输入的金额,计算找零信息。

 

程序设计:

#include 
#include 
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=0)?
							       (i-j):(j-i);
						}
					}
				}
			}
			return 0;
		}
};


class Map {

	private:
		vector 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; i0) {
					cout<<"您需要乘坐"<>m;
		if(m==1) {
			map.show();
		} else if(m==2) {
			
			cout<<"请输入起点:"<>s;
			cout<<"请输入终点:"<>e;
			cout<<"请输入人数:"<>c;
			int d=map.buy(s,e);
			if(d>0) {
				double rs=(double)c*(double)d*map.charge;
				cout<<"您需要支付的费用为:";
				cout<>in;
				if(in>=rs) {
					cout<<"购票成功!"<

程序运行演示:

C++面向对象程序设计:地铁自动售票系统_第1张图片

C++面向对象程序设计:地铁自动售票系统_第2张图片

你可能感兴趣的:(程序设计与算法,c++,面向对象编程,地铁售票系统)