码迷,mamicode.com
首页 > 其他好文 > 详细

河北省石家庄地铁购票系统

时间:2019-10-06 11:15:52      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:sts   http   返回结果   message   throw   manage   tst   tin   exti   

 

技术图片

package com.test2;
import java.util.Scanner;

import java.io.*;
import java.util.*;
/*
 * 信1805-3
 * 20183516
 * 徐利峰
 */
class Subway
{
    private int number;
    private String[] name1;
    private String[] name2;
    private String message;
    public Subway() {
        
    }
    public Subway(String m,String []n1,String[] n2,int n)
    {
        this.message=m;
        this.name1=n1;
        this.name2=n2;
        this.number=n;
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    
    public String[] getName1() {
        return name1;
    }
    public void setName1(String[] name1) {
        this.name1 = name1;
    }
    public String[] getName2() {
        return name2;
    }
    public void setName2(String[] name2) {
        this.name2 = name2;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
}
class FirstLineSubway extends Subway
{
    private String [] firstname;
    private int num=1;
    public int getNum() {
        return num;
    }
    public FirstLineSubway(String[] n){
        this.firstname=n;
    }
    public String[] getFirstname() {
        return firstname;
    }

    public void setFirstname(String[] firstname) {
        this.firstname = firstname;
    }
}
class ThirdLineSubway extends Subway
{
    private String[] thirdname=null;
    private int num=3;
    public ThirdLineSubway(String[] n) {
        this.thirdname=n;
    }
    public String[] getThirdname() {
        return thirdname;
    }
    public void setThirdname(String[] thirdname) {
        this.thirdname = thirdname;
    }
    public int getNum() {
        return num;
    }
}
public class SubwayManager {
    Scanner in=new Scanner(System.in);
void display()
{
    System.out.println("***************************************************************");
    System.out.println("                         欢迎乘坐石家庄地铁");
    System.out.println("****************************************************************");
    System.out.println("        1、    显示具体线路信息;");
    System.out.println("        2、    购票;");
    System.out.println("****************************************************************");
}
void disLine(int n)
{
    if(n==1)
    {
        System.out.println("***************************************************************");
        System.out.println("                        石家庄地铁线路图");
        System.out.println("****************************************************************");
        System.out.println("1号线:洨河大道、南村、石家庄东站、火炬广场、留村、白佛、朝晖桥、谈固、北宋、体育场、博物院、北国商城、平安大街、解放广场、新百广场(换乘站)、烈士陵园、和平医院、长城桥、时光街、西王");
        System.out.println("****************************************************************");
    }
    if(n==3)
    {
        System.out.println("***************************************************************");
        System.out.println("                        石家庄地铁线路图");
        System.out.println("****************************************************************");
        System.out.println("3号线:市二中、新百广场(换乘站)、东里、槐安桥、西三教、石家庄站");
        System.out.println("****************************************************************");
    }
    if(n==0)
    {
        System.out.println("***************************************************************");
        System.out.println("                        石家庄地铁线路图");
        System.out.println("****************************************************************");
        System.out.println("1号线:洨河大道、南村、石家庄东站、火炬广场、留村、白佛、朝晖桥,谈固、北宋、体育场、博物院、北国商城、平安大街、解放广场、新百广场(换乘站)、烈士陵园、和平医院、长城桥、时光街、西王");
        System.out.println("3号线:市二中、新百广场(换乘站)、东里、槐安桥、西三教、石家庄站");
        System.out.println("****************************************************************");
    }
}
void buy(FirstLineSubway f1,ThirdLineSubway third)
{
    String begin,end;
    int num;
    System.out.println("***************************************************************");
    System.out.println("                        欢迎乘坐石家庄地铁");
    System.out.println("****************************************************************");
    System.out.println("起始站:");
    begin=in.next();
    System.out.println("终点站:");
    end=in.next();
    System.out.println("购票数量:");
    num=in.nextInt();
    System.out.println("****************************************************************");
    System.out.println("返回结果界面");
    result(begin,end,num,f1,third);
}
void cal(int k,int num)
{
    System.out.println("购票单价:3元");
    if(k%3!=0)
    {
        int m=(k/3+1)*num;
        System.out.println("购票金额:"+m);
    }
    else
    {
        int m=k/3*num;
        System.out.println("购票金额:"+m);
    }
}
void result(String begin,String end,int num,FirstLineSubway f1,ThirdLineSubway third)
{
    int b1=0,b2 = 0,e1=0,e2=0,x1=0,x2=0;
    boolean t1=false;
    boolean t2=false;
    boolean t3=false;
    boolean t4=false;
    System.out.println("***************************************************************");
    System.out.println("                        欢迎乘坐石家庄地铁");
    System.out.println("****************************************************************");
    for(int i=1;i<f1.getFirstname().length;i++)
    {
        if(f1.getFirstname()[i].equals(begin))
        {
            t1=true;
            b1=i;
        }
        if(f1.getFirstname()[i].equals(end))
        {
            t2=true;
            e1=i;
        }
        if(f1.getFirstname()[i].equals("新百广场"))
            x1=i;
    }
    for(int i=1;i<third.getThirdname().length;i++)
    {
        if(third.getThirdname()[i].equals(begin))
        {
            t3=true;
            b2=i;
        }
        if(third.getThirdname()[i].equals(end))
        {
            t4=true;
            e2=i;
        }
        if(third.getThirdname()[i].equals("新百广场"))
            x2=i;
    }
    //起点和终点都在一号线上
    if(t1==true&&t2==true)
    {
        int k=Math.abs(b1-e1);
        System.out.println(k+"站");
        if(b1<e1)
        {
            for(int i=b1;i<=e1;i++)
                System.out.println(f1.getFirstname()[i]);
        }
        else
        {
            for(int i=b1;i>=e1;i--)
                System.out.println(f1.getFirstname()[i]);
        }
        cal(k,num);
    }
    //起点在1号线,终点在3号线
    else if(t1==true&&t4==true)
    {
        int k=Math.abs(b1-x1)+Math.abs(e2-x2);
        System.out.println(k+"站");
        if(b1<x1)
        {
            for(int i=b1;i<=x1;i++)
            {
                if(i==x1)
                    System.out.println(f1.getFirstname()[i]+"   转3号线");
                else
                    System.out.println(f1.getFirstname()[i]);
            }
        }
        else
        {
            for(int i=b1;i>=x1;i--)
            {
                if(i==x1)
                    System.out.println(f1.getFirstname()[i]+"   转3号线");
                else
                    System.out.println(f1.getFirstname()[i]);
            }
        }
        if(e2>x2)
        {
            for(int i=x2+1;i<=e2;i++)
                System.out.println(third.getThirdname()[i]);
        }
        else
        {
            for(int i=x2-1;i>=e2;i--)
                System.out.println(third.getThirdname()[i]);
        }
        cal(k,num);
    }
    //起点和终点都在3号线
    else if(t3==true&&t4==true)
    {
        int k=Math.abs(b2-e2);
        System.out.println(k+"站");
        if(b2<e2)
        {
            for(int i=b2;i<=e2;i++)
                System.out.println(third.getThirdname()[i]);
        }
        else
        {
            for(int i=b2;i>=e2;i--)
                System.out.println(third.getThirdname()[i]);
        }
        cal(k,num);
    }
    //起点在3号线,终点在1号线        b2,e1        
    else if(t2==true&&t3==true)
    {
        int k=Math.abs(x1-e1)+Math.abs(x2-b2);
        System.out.println(k+"站");
        if(b2<x2)
        {
            for(int i=b2;i<=x2;i++)
            {
                if(i==x2)
                    System.out.println(third.getThirdname()[i]+"   转1号线");
                else
                    System.out.println(third.getThirdname()[i]);
            }
        }
        else
        {
            for(int i=b2;i>=x2;i--)
            {
                if(i==x2)
                    System.out.println(third.getThirdname()[i]+"   转1号线");
                else
                    System.out.println(third.getThirdname()[i]);
            }
        }
        if(x1<e1)
        {
            for(int i=x1+1;i<=e1;i++)
                System.out.println(f1.getFirstname()[i]);
        }
        else
        {
            for(int i=x1-1;i>=e1;i--)
                System.out.println(f1.getFirstname()[i]);
        }
        cal(k,num);
    }
}
static String [][]line1=new String [100][100];

public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    File file=new File("F:\\shijiazhuang-subway.txt");
    if(!file.exists()){
        System.out.println("文件不存在");
        return;
    }
    try {
        BufferedReader buf1=new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
        String s=null;
        int i=0;
        while((s=buf1.readLine())!=null)//读入文档一行,直到没有单词为止
        {
            line1[i]=s.split(" ");
            i++;
        }
    } catch (FileNotFoundException e1) {
        e1.printStackTrace();
        }
    Subway s=new Subway(line1[2][1],line1[0],line1[1],1);
    FirstLineSubway f1=new FirstLineSubway(line1[0]);
    ThirdLineSubway third=new ThirdLineSubway(line1[1]);
    Scanner in=new Scanner(System.in);
    int k;
    boolean flag=true;
    SubwayManager man=new SubwayManager();
    while(flag)
    {
        man.display();
        k=in.nextInt();
        if(k==1)
        {
            System.out.println("请输入想要乘坐的线路:");
            int m;
            m=in.nextInt();
            man.disLine(m);
        }
        else if(k==2)
        {
            man.buy(f1,third);
        }
        else
            flag=false;
    }
}
}

输出样例:

***************************************************************
欢迎乘坐石家庄地铁
****************************************************************
1、 显示具体线路信息;
2、 购票;
****************************************************************
1
请输入想要乘坐的线路:
0
***************************************************************
石家庄地铁线路图
****************************************************************
1号线:洨河大道、南村、石家庄东站、火炬广场、留村、白佛、朝晖桥,谈固、北宋、体育场、博物院、北国商城、平安大街、解放广场、新百广场(换乘站)、烈士陵园、和平医院、长城桥、时光街、西王
3号线:市二中、新百广场(换乘站)、东里、槐安桥、西三教、石家庄站
****************************************************************
***************************************************************
欢迎乘坐石家庄地铁
****************************************************************
1、 显示具体线路信息;
2、 购票;
****************************************************************
2
***************************************************************
欢迎乘坐石家庄地铁
****************************************************************
起始站:
博物院
终点站:
石家庄站
购票数量:
2
****************************************************************
返回结果界面
***************************************************************
欢迎乘坐石家庄地铁
****************************************************************
8站
博物院
北国商城
平安大街
解放广场
新百广场 转3号线
东里
槐安桥
西三教
石家庄站
购票单价:3元
购票金额:6
***************************************************************

河北省石家庄地铁购票系统

标签:sts   http   返回结果   message   throw   manage   tst   tin   exti   

原文地址:https://www.cnblogs.com/xiaofengzai/p/11626633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!