Java_地铁购票系统
定义了两个类,在Subway类中定义三个私有数据变量,线路号,经过站点,换乘站。以及4个方法分别实现从txt文件中导入线路信息;输出线路信息;查询两个站点经过站点数,并输出经过站点以及在某站换乘几号线;计算票价。在SubwayManger中打印界面并根据用户选择调用相关的函数。
Subway:
package subway;
import java.util.*;
import java.io.*;
import java.math.*;
class Subway {
private String num;//存放线路号
private String[] str=new String[21];//存放站点名称
private String str1;//存放换乘站点信息
public Subway() {
num="0";
for(int j=0;j<21;j++) {
str[j]=" ";
}
str1="新百广场";
}
public void get() {//输出线路信息
System.out.print(num+"号线:");
for(int i=0;str[i]!=" ";i++) {
System.out.print("站点"+(i+1)+":"+str[i]+";");
}
System.out.println();
}
public int chaxun(String t1,String t2,Subway s1,Subway s2) {//查询两个站点间的经过站点
int k,k1=0,k2=0;
boolean bo1=false;
boolean bo2=false;
List<String> list1=Arrays.asList(s1.str);
List<String> list2=Arrays.asList(s2.str);
if(list1.contains(t1)&&list1.contains(t2)) {
k1=list1.indexOf(t1);
k2=list1.indexOf(t2);
k=Math.abs(k1-k2);
System.out.println("经过"+k+"站");
if(k1<k2) {
while(k1<=k2) {
System.out.println(s1.str[k1]);
++k1;
}
}
if(k1>k2) {
while(k1>=k2) {
System.out.println(s1.str[k1]);
--k1;
}
}
return k;
}//end if1
if(list2.contains(t1)&&list2.contains(t2)) {
k1=list2.indexOf(t1);
k2=list2.indexOf(t2);
k=Math.abs(k1-k2);
System.out.println("经过"+k+"站");
if(k1<k2) {
while(k1<=k2) {
System.out.println(s2.str[k1]);
++k1;
}
}
if(k1>k2) {
while(k1>=k2) {
System.out.println(s2.str[k1]);
--k1;
}
}
return k;
}//end if2
else {
int k3=0,k4=0;
if(list1.contains(t1)) {
k1=list1.indexOf(t1);
k3=Math.abs(k1-14);
bo1=true;
}
if(list1.contains(t2)) {
k2=list1.indexOf(t2);
k4=Math.abs(k2-14); }
if(list2.contains(t1)) {
k1=list2.indexOf(t1);
k3=Math.abs(k1-1);
bo2=true;
}
if(list2.contains(t2)) {
k2=list1.indexOf(t2);
k4=Math.abs(k1-1);
}
k=k3+k4;
System.out.println("经过"+k+"站");
if(bo1==true) {
if(k1>14) {
while(k1>=14) {
System.out.println(s1.str[k1]);
--k1;
}
System.out.println("转乘3号线");
}
else if(k1<14) {
while(k1<=14) {
System.out.println(s1.str[k1]);
++k1;
}
System.out.println("转乘3号线");
}
int i=1;
if(k2>i) {
while(i<k2) {
System.out.println(s2.str[i+1]);
++i;
}
}
else if(k2<i) {
while(i>k2) {
System.out.println(s2.str[i-1]);
--i;
}
} }//end if1
else if(bo2==true) {
if(k1>1) {
while(k1>=1) {
System.out.println(s2.str[k1]);
--k1;
}
System.out.println("转乘1号线");
}
else if(k1<1) {
while(k1<=1) {
System.out.println(s2.str[k1]);
++k1;
}
System.out.println("转乘1号线");
}
int i=14;
if(k2>i) {
while(i<k2) {
System.out.println(s1.str[i+1]);
++i;
}
}
else if(k2<i) {
while(i>k2) {
System.out.println(s1.str[i-1]);
--i;
}
}
}//end if2 return k;
}//end else
}
public void goupiao(int k,int q) {//计算票价
int x=1,k3=1,k4=1;
k3=k/3;
k4=k-k3*3;
if(k4==0) {
x=k3;
}
else {
x=(k3+1);
} System.out.println("购票单价:"+x);
System.out.println("购票总价:"+x*q);
}
public void readFile(Subway s1,Subway s2) { try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("shijiazhuang-subway.txt"),"UTF-8"));
s1.num=br.readLine();
String line;
while ((line = br.readLine()) != null) {
int i=0;
String [] arr = line.split("\\s+");
for(String ss : arr){
s1.str[i]=ss;
i++;
}
break;
}//end while
while ((line = br.readLine()) != null) {
s1.str1=line;
break;
}
while ((line = br.readLine()) != null) {
s2.num=line;
break;
} while ((line = br.readLine()) != null) {
int i=0;
String [] arr = line.split("\\s+");
for(String ss : arr){
s2.str[i]=ss;
i++;
}
break;
}//end while
while ((line = br.readLine()) != null) {
s2.str1=br.readLine();
break;
} }//end try
catch (IOException e){
e.printStackTrace();
} }//end readFile }
SubwayManger:
package subway;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class SubwayManger { public static void main(String[] args) {
Subway s1=new Subway();
Subway s2=new Subway();
Scanner sca=new Scanner(System.in);
int n;
s1.readFile(s1, s2);
System.out.println("***************************************************************");
System.out.println(" 欢迎乘坐石家庄地铁");
System.out.println("***************************************************************");
System.out.println(" 1、显示具体线路信息");
System.out.println(" 2、购票");
System.out.println("***************************************************************");
n=sca.nextInt();
if(n==1) {
System.out.print("请输入需要查询的线路(1:一号线,3:三号线,0:全部线路)");
int n1=sca.nextInt();
if(n1==1) {
System.out.println("***************************************************************");
System.out.println(" 石家庄地铁线路图");
System.out.println("***************************************************************");
s1.get();
System.out.println("***************************************************************");
}
if(n1==3) {
System.out.println("***************************************************************");
System.out.println(" 石家庄地铁线路图");
System.out.println("***************************************************************");
s2.get();
System.out.println("***************************************************************");
}
if(n1==0) {
System.out.println("***************************************************************");
System.out.println(" 石家庄地铁线路图");
System.out.println("***************************************************************");
s1.get();
s2.get();
System.out.println("***************************************************************");
}
}//end n=1
if(n==2) {
String t1,t2;
int q=1,q1=0,k=0;
System.out.println("***************************************************************");
System.out.println(" 欢迎乘坐石家庄地铁");
System.out.println("***************************************************************");
System.out.println("请输入起始地:");
t1=sca.next();
System.out.println("请输入目的地:");
t2=sca.next();
System.out.println("请输入购票数:");
q=sca.nextInt();
k=s1.chaxun(t1, t2, s1, s2);
s1.goupiao(k, q);
}//end n=2
}//end main }//end SubwayManger
Java_地铁购票系统的更多相关文章
- OC-《购票系统》
来个命令行的购票系统 --1-- 需求分析 1.1 分析 1.2 功能分析 1.3 流程分析 --2-- 原型展示 2.1 界面原型 --3-- 系统设计 3.1 类设计 3.2 框架模块设计 --4 ...
- java开发JSP+Servlet+bootstrap开发电影院购票系统 源码
基于JSP+Servlet+bootstrap开发电影院购票系统:开发环境: Windows操作系统开发工具: MyEclipse+Jdk+Tomcat+Mysql数据库 程序要求:电影院订票系统 用 ...
- 两人团队项目-石家庄地铁查询系统(web版)
大二上学期做过只有两号线的地铁查询系统,但是只能在控制台操作.这一次将线路加到了六条,并且要求web实现,下面简述一下设计思路和具体代码实现: 1.数据库建表 于我自己习惯而言,我写javaweb项目 ...
- Objective-C 【完整OC项目-购票系统-系统分析-代码实现】
电影院买票系统/演唱会买票系统 需求分析: 首先我们进入系统,然后会选择买电影票还是买演唱会票,所以这牵扯两个系统的合成.但是我们知道都是买票系统,所以我们可以先创建一个类,属于购买电影票和演唱会的票 ...
- 拒绝LOW ---青鸟影院购票系统
1.首先我们需要了解这个软件的功能: 1).影院每天更新放映列表,系统支持实时查看,包括电影放映场次的时间: 2).影院提供三类影票:普通票,学生票和赠票: 3).允许用户查看某场次座位的售出情况: ...
- [JAVA] java_实例 获得系统字体
这个代码可以帮助理解java是如何获取系统字体并设置文字字体: import java.awt.*; import java.awt.event.*; import javax.swing.JComb ...
- 两人团队项目-石家庄地铁查询系统(web版)psp表
结对开发_石家庄地铁查询_博客地址:https://www.cnblogs.com/Aduorisk/p/10652917.html 队友:冯利伟 PSP: PSP0 Personal Softwar ...
- 结对开发_石家庄地铁查询web系统
结对开发:队友田昕可 大二上学期做过只有两号线的地铁查询系统,但是只能在控制台操作.这一次将线路加到了六条,并且要求web实现,下面简述一下设计思路和具体代码实现: 1.数据库建表 于我们自己习惯而言 ...
- 【刷题笔记】火车购票-----java方案
问题描述请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号 ...
随机推荐
- 《DL/T 1476-2015 电力安全工器具预防性试验规程》中的样品名称及试验项目
- 最优化WPF 3D性能(基于“Tier-2”硬件)
原文:最优化WPF 3D性能(基于"Tier-2"硬件) 原文地址:Maximizing WPF 3D Performance on Tier-2 Hardware 开发人员在应用 ...
- WPF Canvas实现进度条
原文:WPF Canvas实现进度条 先看效果图: 思路: 一个Canvas做背景,一个Canvas用来显示进度,图片放在显示进度的Canvas中,靠右设置为图片本身宽度一半的距离,视觉上实现以图片中 ...
- sql.date
package com.sxt.utils.date1; import java.sql.Date; /* * sql.date:没有时,分,秒 */ public class TestDate2 { ...
- List<object> 转 List<T>
List<TAXIWAY_CENTER_LINE> kk = allObjs.Where(c => c.ToString() == "AMXM.TAXIWAY_CENTER ...
- iOS编译错误#ld: warning: ignoring file# 之 Undefined symbols for architecture x86_64 - ld: symbol(s) not found for architecture x86_64
ld: warning: ignoring file xxxPath/libbaidumapapi.a, missing required architecture x86_64 in file xx ...
- AIDL基本用法
1. AIDL有什么用?用TA到目的是什么? 2. 怎么用AIDL? 1. AIDL有什么用? 1.1. 为了提高代码执行速度,将部分逻辑封入C/C++代码中 1.2. 为了调用这部分代码,使用JN ...
- hdu 5745 La Vie en rose(2016多校第二场)
La Vie en rose Time Limit: 14000/7000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- SuperSocket 服务管理器 (ServerManager)
什么 SuperSocket 服务管理器? SuperSocket 服务管理器是一个让你能够在客户中用图形化界面来管理和监控你的SuperSocket服务器程序的组件. 在服务器端配置服务器管理器 事 ...
- 如何安装java环境和如何配置java环境
https://jingyan.baidu.com/article/0202781175839b1bcc9ce529.html java如今是一门十分热门的可跨平台面向对象的高级编程语言,那么作为学习 ...