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 list1=Arrays.asList(s1.str);

28 List 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

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

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

108 System.out.println(s2.str[i+1]);

109 ++i;

110 }

111 }

112 else if(k2

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

138 System.out.println(s1.str[i+1]);

139 ++i;

140 }

141 }

142 else if(k2

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

标签:while,Java,s1,购票,System,k1,地铁,println,out

来源: https://www.cnblogs.com/wyppaa/p/11614824.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值