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_地铁购票系统的主要内容,如果未能解决你的问题,请参考以下文章

地铁售票软件NABCD

AI一分钟 | 上海大妈地铁站怒玩语音购票,支付宝喊话阿里云赶紧的;谷歌终于低头,TensorFlow Lite支持苹果AI框架

Java精品项目前后端分离项目第30期电影购票系统

Java精品项目前后端分离项目第30期电影购票系统

Eclipse+Java+Swing+Mysql实现电影购票系统建议收藏

《结对-航空购票系统-开发环境搭建过程》