zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    强人教你吃自助火锅(转载)
    求职贴士:面试之十大不可说
    通过LoadRunner监控Linux的资源状况
    最美好的中秋祝福献给您
    一台电脑中招,整网均被感染9166.biz / 5y5.us Arp木马病毒专杀360独家发布
    白领把握交际的最佳时间〔转载〕
    40道题预测你能活多久
    老色狼给小色狼的32句忠告[转载]
    WINRAR 命令行语法[转载]
    <<软件性能测试与LoadRunner实战>>可以在网上和书店买到了
  • 原文地址:https://www.cnblogs.com/wyppaa/p/11614824.html
Copyright © 2011-2022 走看看