Java_地铁购票系统
Posted wyppaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java_地铁购票系统相关的知识,希望对你有一定的参考价值。
定义了两个类,在Subway类中定义三个私有数据变量,线路号,经过站点,换乘站。以及4个方法分别实现从txt文件中导入线路信息;输出线路信息;查询两个站点经过站点数,并输出经过站点以及在某站换乘几号线;计算票价。在SubwayManger中打印界面并根据用户选择调用相关的函数。
Subway:
1 package subway; 2 import java.util.*; 3 import java.io.*; 4 import java.math.*; 5 class Subway 6 private String num;//存放线路号 7 private String[] str=new String[21];//存放站点名称 8 private String str1;//存放换乘站点信息 9 public Subway() 10 num="0"; 11 for(int j=0;j<21;j++) 12 str[j]=" "; 13 14 str1="新百广场"; 15 16 public void get() //输出线路信息 17 System.out.print(num+"号线:"); 18 for(int i=0;str[i]!=" ";i++) 19 System.out.print("站点"+(i+1)+":"+str[i]+";"); 20 21 System.out.println(); 22 23 public int chaxun(String t1,String t2,Subway s1,Subway s2) //查询两个站点间的经过站点 24 int k,k1=0,k2=0; 25 boolean bo1=false; 26 boolean bo2=false; 27 List<String> list1=Arrays.asList(s1.str); 28 List<String> list2=Arrays.asList(s2.str); 29 if(list1.contains(t1)&&list1.contains(t2)) 30 k1=list1.indexOf(t1); 31 k2=list1.indexOf(t2); 32 k=Math.abs(k1-k2); 33 System.out.println("经过"+k+"站"); 34 if(k1<k2) 35 while(k1<=k2) 36 System.out.println(s1.str[k1]); 37 ++k1; 38 39 40 if(k1>k2) 41 while(k1>=k2) 42 System.out.println(s1.str[k1]); 43 --k1; 44 45 46 return k; 47 //end if1 48 if(list2.contains(t1)&&list2.contains(t2)) 49 k1=list2.indexOf(t1); 50 k2=list2.indexOf(t2); 51 k=Math.abs(k1-k2); 52 System.out.println("经过"+k+"站"); 53 if(k1<k2) 54 while(k1<=k2) 55 System.out.println(s2.str[k1]); 56 ++k1; 57 58 59 if(k1>k2) 60 while(k1>=k2) 61 System.out.println(s2.str[k1]); 62 --k1; 63 64 65 return k; 66 //end if2 67 else 68 int k3=0,k4=0; 69 if(list1.contains(t1)) 70 k1=list1.indexOf(t1); 71 k3=Math.abs(k1-14); 72 bo1=true; 73 74 if(list1.contains(t2)) 75 k2=list1.indexOf(t2); 76 k4=Math.abs(k2-14); 77 78 79 if(list2.contains(t1)) 80 k1=list2.indexOf(t1); 81 k3=Math.abs(k1-1); 82 bo2=true; 83 84 if(list2.contains(t2)) 85 k2=list1.indexOf(t2); 86 k4=Math.abs(k1-1); 87 88 k=k3+k4; 89 System.out.println("经过"+k+"站"); 90 if(bo1==true) 91 if(k1>14) 92 while(k1>=14) 93 System.out.println(s1.str[k1]); 94 --k1; 95 96 System.out.println("转乘3号线"); 97 98 else if(k1<14) 99 while(k1<=14) 100 System.out.println(s1.str[k1]); 101 ++k1; 102 103 System.out.println("转乘3号线"); 104 105 int i=1; 106 if(k2>i) 107 while(i<k2) 108 System.out.println(s2.str[i+1]); 109 ++i; 110 111 112 else if(k2<i) 113 while(i>k2) 114 System.out.println(s2.str[i-1]); 115 --i; 116 117 118 119 //end if1 120 else if(bo2==true) 121 if(k1>1) 122 while(k1>=1) 123 System.out.println(s2.str[k1]); 124 --k1; 125 126 System.out.println("转乘1号线"); 127 128 else if(k1<1) 129 while(k1<=1) 130 System.out.println(s2.str[k1]); 131 ++k1; 132 133 System.out.println("转乘1号线"); 134 135 int i=14; 136 if(k2>i) 137 while(i<k2) 138 System.out.println(s1.str[i+1]); 139 ++i; 140 141 142 else if(k2<i) 143 while(i>k2) 144 System.out.println(s1.str[i-1]); 145 --i; 146 147 148 //end if2 149 150 151 152 return k; 153 //end else 154 155 public void goupiao(int k,int q) //计算票价 156 int x=1,k3=1,k4=1; 157 k3=k/3; 158 k4=k-k3*3; 159 if(k4==0) 160 x=k3; 161 162 else 163 x=(k3+1); 164 165 166 System.out.println("购票单价:"+x); 167 System.out.println("购票总价:"+x*q); 168 169 public void readFile(Subway s1,Subway s2) 170 171 try 172 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("shijiazhuang-subway.txt"),"UTF-8")); 173 s1.num=br.readLine(); 174 String line; 175 while ((line = br.readLine()) != null) 176 int i=0; 177 String [] arr = line.split("\\s+"); 178 for(String ss : arr) 179 s1.str[i]=ss; 180 i++; 181 182 break; 183 //end while 184 while ((line = br.readLine()) != null) 185 s1.str1=line; 186 break; 187 188 while ((line = br.readLine()) != null) 189 s2.num=line; 190 break; 191 192 193 194 while ((line = br.readLine()) != null) 195 int i=0; 196 String [] arr = line.split("\\s+"); 197 for(String ss : arr) 198 s2.str[i]=ss; 199 i++; 200 201 break; 202 //end while 203 while ((line = br.readLine()) != null) 204 s2.str1=br.readLine(); 205 break; 206 207 208 209 210 //end try 211 catch (IOException e) 212 e.printStackTrace(); 213 214 215 //end readFile 216 217 218 219 220 221
SubwayManger:
1 package subway; 2 import java.io.BufferedReader; 3 import java.io.FileInputStream; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.util.Scanner; 7 public class SubwayManger 8 9 public static void main(String[] args) 10 Subway s1=new Subway(); 11 Subway s2=new Subway(); 12 Scanner sca=new Scanner(System.in); 13 int n; 14 s1.readFile(s1, s2); 15 System.out.println("***************************************************************"); 16 System.out.println(" 欢迎乘坐石家庄地铁"); 17 System.out.println("***************************************************************"); 18 System.out.println(" 1、显示具体线路信息"); 19 System.out.println(" 2、购票"); 20 System.out.println("***************************************************************"); 21 n=sca.nextInt(); 22 if(n==1) 23 System.out.print("请输入需要查询的线路(1:一号线,3:三号线,0:全部线路)"); 24 int n1=sca.nextInt(); 25 if(n1==1) 26 System.out.println("***************************************************************"); 27 System.out.println(" 石家庄地铁线路图"); 28 System.out.println("***************************************************************"); 29 s1.get(); 30 System.out.println("***************************************************************"); 31 32 if(n1==3) 33 System.out.println("***************************************************************"); 34 System.out.println(" 石家庄地铁线路图"); 35 System.out.println("***************************************************************"); 36 s2.get(); 37 System.out.println("***************************************************************"); 38 39 if(n1==0) 40 System.out.println("***************************************************************"); 41 System.out.println(" 石家庄地铁线路图"); 42 System.out.println("***************************************************************"); 43 s1.get(); 44 s2.get(); 45 System.out.println("***************************************************************"); 46 47 //end n=1 48 if(n==2) 49 String t1,t2; 50 int q=1,q1=0,k=0; 51 System.out.println("***************************************************************"); 52 System.out.println(" 欢迎乘坐石家庄地铁"); 53 System.out.println("***************************************************************"); 54 System.out.println("请输入起始地:"); 55 t1=sca.next(); 56 System.out.println("请输入目的地:"); 57 t2=sca.next(); 58 System.out.println("请输入购票数:"); 59 q=sca.nextInt(); 60 k=s1.chaxun(t1, t2, s1, s2); 61 s1.goupiao(k, q); 62 //end n=2 63 //end main 64 65 //end SubwayManger
以上是关于Java_地铁购票系统的主要内容,如果未能解决你的问题,请参考以下文章
AI一分钟 | 上海大妈地铁站怒玩语音购票,支付宝喊话阿里云赶紧的;谷歌终于低头,TensorFlow Lite支持苹果AI框架