zoukankan      html  css  js  c++  java
  • 河北省石家庄地铁购票系统

    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
    ***************************************************************

  • 相关阅读:
    POJ-1182 食物链
    P1020 导弹拦截
    牛客寒假训练营2-C算概率
    牛客寒假训练营2-H施魔法
    牛客寒假算法训练营2-建通道
    D
    C
    A
    B
    【Luogu3366】【模板】最小生成树
  • 原文地址:https://www.cnblogs.com/xiaofengzai/p/11626633.html
Copyright © 2011-2022 走看看