7-18 地铁票价计算系统

青岛地铁3号线是青岛市首条地铁线路,也是中国山东省第一条建成运营的地铁线路,共有22站,票价最高5元,现需要您编写一套票价计算系统,用户通过控制台输入票价表和乘车区间站名后,程序自动计算票价(暂不考虑中途下车或换乘的情况)。

                

输入样例:

Qingdao Wusiguangchang Qingdaobei ###
2 3 5
3 2 5
5 5 2
Qingdao Wusiguangchang

输出样例:

3

输入样例解释:

第1行:地铁网络图精简版,即读到若干个地铁站名字。站名拼音表示,中间不含空格或其他字符。当读到名字为“###”时,表示站名输入结束,###并不是一个站的名字。假设共输入n个站名。

第2至n+1行,输入n×n的整数矩阵表示不同站之间的票价。例如2 3 5分别表示上述站名中第一个站依次到另一个站之间的票价。同站进出票价为2元。

第n+2行,读入需要计算票价的两个站点的名称。(注意:若输入不存在的站点,请提示“StationNotFound”)

输出样例解释:

票价

完整代码:

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        ArrayList<String> list=new ArrayList<>();
        int number=0;
        while(true){
            String s = scanner.next();
            if(s.equals("###"))
                break;
            list.add(s);
            number++;
        }
        int[][] money=new int[number][number];
        for (int i = 0; i < number; i++) {
            for (int j = 0; j < number; j++) {
                money[i][j]= scanner.nextInt();
            }
        }
        //m1为出发点,m2为目的地,number1为出发点对应的下标,number2为目的地对应的下标
        String m1= scanner.next();
        String m2= scanner.next();
        int number1=-1;
        int number2=-1;
        boolean found1=false;
        boolean found2=false;
        for (int i = 0; i < number; i++) {
            if(m1.equals(list.get(i))){
                number1=i;
                found1=true;
            }
            if(m2.equals(list.get(i)))
            {
                number2=i;
                found2=true;
            }
        }
        if (found1&&found2) {
            System.out.println(money[number1][number2]);
        }else
            System.out.println("StationNotFound");
    }
}

以上代码仅供参考,如果有本校同学看到这篇博客,切记不要cv,记得要理解自己动手操作!!!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值