package com.test2; import java.util.Scanner; import java.io.*; import java.util.*; /* * 信1805-3 * 20183516 * 徐利峰 */ class Subway { private int number; private String[] name1; private String[] name2; private String message; public Subway() { } public Subway(String m,String []n1,String[] n2,int n) { this.message=m; this.name1=n1; this.name2=n2; this.number=n; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public String[] getName1() { return name1; } public void setName1(String[] name1) { this.name1 = name1; } public String[] getName2() { return name2; } public void setName2(String[] name2) { this.name2 = name2; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } class FirstLineSubway extends Subway { private String [] firstname; private int num=1; public int getNum() { return num; } public FirstLineSubway(String[] n){ this.firstname=n; } public String[] getFirstname() { return firstname; } public void setFirstname(String[] firstname) { this.firstname = firstname; } } class ThirdLineSubway extends Subway { private String[] thirdname=null; private int num=3; public ThirdLineSubway(String[] n) { this.thirdname=n; } public String[] getThirdname() { return thirdname; } public void setThirdname(String[] thirdname) { this.thirdname = thirdname; } public int getNum() { return num; } } public class SubwayManager { Scanner in=new Scanner(System.in); void display() { System.out.println("***************************************************************"); System.out.println(" 欢迎乘坐石家庄地铁"); System.out.println("****************************************************************"); System.out.println(" 1、 显示具体线路信息;"); System.out.println(" 2、 购票;"); System.out.println("****************************************************************"); } void disLine(int n) { if(n==1) { System.out.println("***************************************************************"); System.out.println(" 石家庄地铁线路图"); System.out.println("****************************************************************"); System.out.println("1号线:洨河大道、南村、石家庄东站、火炬广场、留村、白佛、朝晖桥、谈固、北宋、体育场、博物院、北国商城、平安大街、解放广场、新百广场(换乘站)、烈士陵园、和平医院、长城桥、时光街、西王"); System.out.println("****************************************************************"); } if(n==3) { System.out.println("***************************************************************"); System.out.println(" 石家庄地铁线路图"); System.out.println("****************************************************************"); System.out.println("3号线:市二中、新百广场(换乘站)、东里、槐安桥、西三教、石家庄站"); System.out.println("****************************************************************"); } if(n==0) { System.out.println("***************************************************************"); System.out.println(" 石家庄地铁线路图"); System.out.println("****************************************************************"); System.out.println("1号线:洨河大道、南村、石家庄东站、火炬广场、留村、白佛、朝晖桥,谈固、北宋、体育场、博物院、北国商城、平安大街、解放广场、新百广场(换乘站)、烈士陵园、和平医院、长城桥、时光街、西王"); System.out.println("3号线:市二中、新百广场(换乘站)、东里、槐安桥、西三教、石家庄站"); System.out.println("****************************************************************"); } } void buy(FirstLineSubway f1,ThirdLineSubway third) { String begin,end; int num; System.out.println("***************************************************************"); System.out.println(" 欢迎乘坐石家庄地铁"); System.out.println("****************************************************************"); System.out.println("起始站:"); begin=in.next(); System.out.println("终点站:"); end=in.next(); System.out.println("购票数量:"); num=in.nextInt(); System.out.println("****************************************************************"); System.out.println("返回结果界面"); result(begin,end,num,f1,third); } void cal(int k,int num) { System.out.println("购票单价:3元"); if(k%3!=0) { int m=(k/3+1)*num; System.out.println("购票金额:"+m); } else { int m=k/3*num; System.out.println("购票金额:"+m); } } void result(String begin,String end,int num,FirstLineSubway f1,ThirdLineSubway third) { int b1=0,b2 = 0,e1=0,e2=0,x1=0,x2=0; boolean t1=false; boolean t2=false; boolean t3=false; boolean t4=false; System.out.println("***************************************************************"); System.out.println(" 欢迎乘坐石家庄地铁"); System.out.println("****************************************************************"); for(int i=1;i<f1.getFirstname().length;i++) { if(f1.getFirstname()[i].equals(begin)) { t1=true; b1=i; } if(f1.getFirstname()[i].equals(end)) { t2=true; e1=i; } if(f1.getFirstname()[i].equals("新百广场")) x1=i; } for(int i=1;i<third.getThirdname().length;i++) { if(third.getThirdname()[i].equals(begin)) { t3=true; b2=i; } if(third.getThirdname()[i].equals(end)) { t4=true; e2=i; } if(third.getThirdname()[i].equals("新百广场")) x2=i; } //起点和终点都在一号线上 if(t1==true&&t2==true) { int k=Math.abs(b1-e1); System.out.println(k+"站"); if(b1<e1) { for(int i=b1;i<=e1;i++) System.out.println(f1.getFirstname()[i]); } else { for(int i=b1;i>=e1;i--) System.out.println(f1.getFirstname()[i]); } cal(k,num); } //起点在1号线,终点在3号线 else if(t1==true&&t4==true) { int k=Math.abs(b1-x1)+Math.abs(e2-x2); System.out.println(k+"站"); if(b1<x1) { for(int i=b1;i<=x1;i++) { if(i==x1) System.out.println(f1.getFirstname()[i]+" 转3号线"); else System.out.println(f1.getFirstname()[i]); } } else { for(int i=b1;i>=x1;i--) { if(i==x1) System.out.println(f1.getFirstname()[i]+" 转3号线"); else System.out.println(f1.getFirstname()[i]); } } if(e2>x2) { for(int i=x2+1;i<=e2;i++) System.out.println(third.getThirdname()[i]); } else { for(int i=x2-1;i>=e2;i--) System.out.println(third.getThirdname()[i]); } cal(k,num); } //起点和终点都在3号线 else if(t3==true&&t4==true) { int k=Math.abs(b2-e2); System.out.println(k+"站"); if(b2<e2) { for(int i=b2;i<=e2;i++) System.out.println(third.getThirdname()[i]); } else { for(int i=b2;i>=e2;i--) System.out.println(third.getThirdname()[i]); } cal(k,num); } //起点在3号线,终点在1号线 b2,e1 else if(t2==true&&t3==true) { int k=Math.abs(x1-e1)+Math.abs(x2-b2); System.out.println(k+"站"); if(b2<x2) { for(int i=b2;i<=x2;i++) { if(i==x2) System.out.println(third.getThirdname()[i]+" 转1号线"); else System.out.println(third.getThirdname()[i]); } } else { for(int i=b2;i>=x2;i--) { if(i==x2) System.out.println(third.getThirdname()[i]+" 转1号线"); else System.out.println(third.getThirdname()[i]); } } if(x1<e1) { for(int i=x1+1;i<=e1;i++) System.out.println(f1.getFirstname()[i]); } else { for(int i=x1-1;i>=e1;i--) System.out.println(f1.getFirstname()[i]); } cal(k,num); } } static String [][]line1=new String [100][100]; public static void main(String[] args) throws IOException { // TODO Auto-generated method stub File file=new File("F:\\shijiazhuang-subway.txt"); if(!file.exists()){ System.out.println("文件不存在"); return; } try { BufferedReader buf1=new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); String s=null; int i=0; while((s=buf1.readLine())!=null)//读入文档一行,直到没有单词为止 { line1[i]=s.split(" "); i++; } } catch (FileNotFoundException e1) { e1.printStackTrace(); } Subway s=new Subway(line1[2][1],line1[0],line1[1],1); FirstLineSubway f1=new FirstLineSubway(line1[0]); ThirdLineSubway third=new ThirdLineSubway(line1[1]); Scanner in=new Scanner(System.in); int k; boolean flag=true; SubwayManager man=new SubwayManager(); while(flag) { man.display(); k=in.nextInt(); if(k==1) { System.out.println("请输入想要乘坐的线路:"); int m; m=in.nextInt(); man.disLine(m); } else if(k==2) { man.buy(f1,third); } else flag=false; } } }
河北省石家庄地铁购票系统
内容版权声明:除非注明,否则皆为本站原创文章。