Java基础-集合:综合 郑州一号线站编号和站名对应关系如下: 1=河南工业大学站 2=郑大科技园站 3=郑州大学站 ...

(今天也是前几天的 今天补上)

package com.dzqc.Day0107;

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: zhangxiaokun
 * @Date: 2022/01/07/10:49
 * @Description:Java基础-集合:综合
郑州一号线站编号和站名对应关系如下:
            1=河南工业大学站
            2=郑大科技园站
            3=郑州大学站
            4=梧桐街站
            5=兰寨站
            6=...
将以上对应关系的数据存储到map集合中,key:表示站编号,value:表示站名,并遍历打印(可以不按顺序打印):
       第10站: 秦岭路站
       第6站: 铁炉站
       第12站: 碧沙岗站
       第13站: 绿城广场站
2.计算地铁票价规则:
       总行程 :3站以内,共收 2 元
 3站 到 10站 , 每站加收0.5元
 10站以上,每两站加收0.5元,
 封顶10元。
3.打印格式(需要对键盘录入的上车站和到达站进行判断,如果没有该站,提示重新输入,直到站名存在为止):
       注意:每站需要2分钟
       请输入上车站:
       西二旗
       您输入的上车站:西二旗不存在,请重新输入上车站:
       体育西路
       您输入的上车站:体育西路不存在,请重新输入上车站:
       郑州火车站
       请输入到达站:
       西二旗
       您输入的到达站:西二旗不存在,请重新输入到达站:
       体育西路
       您输入的到达站:体育西路不存在,请重新输入到达站:
       郑州东站
       从郑州火车站到郑州东站共经过10站收费5.5元,大约需要 20分钟
 */
public class Zuoye {

    public static void main(String[] args) {

             HashMap<Integer, String> hm = new HashMap<>();
                hm.put(1, "河南工业大学");
                hm.put(2, "郑大科技园站");
                hm.put(3, "郑州大学站");
                hm.put(4, "梧桐街站");
                hm.put(5, "兰寨站");
                hm.put(6, "铁炉站");
                hm.put(7, "郑州火车站");
                hm.put(8, "第八站");
                hm.put(9, "第九站");
                hm.put(10, "秦岭路站");
                hm.put(11, "第十一站");
                hm.put(12, "碧沙岗站");
                hm.put(13, "绿城广场站");
                hm.put(14, "第十四站");
                hm.put(15, "第十五站");
                hm.put(16, "第十六站");
                hm.put(17, "郑州东站");


                //遍历车站
                Set<Integer> sOut = hm.keySet();
                 for (Integer i : sOut) {
                         System.out.println(i + "--" + hm.get(i));
                    }

                @SuppressWarnings("resource")
                Scanner sc = new Scanner(System.in);
                String sStart;
                String sEnd;

                 // 获取上车站
                while (true) {
                         System.out.println("请输入上车站:");
                         sStart = sc.nextLine();
                         if (hm.containsValue(sStart)) {
                                 break;
                            } else {
                                System.out.println("站点不存在,请重新输入");
                             }
                       }

                 // 获取下车站
                 while (true) {
                         System.out.println("请输入到达站");
                         sEnd = sc.nextLine();
                         if (hm.containsValue(sEnd)) {
                                 break;
                             } else {
                                 System.out.println("站点不存在,请重新输入");
                             }
                   }

                // 获取站点编号及间隔差
                int iStart = 0;
                int iEnd = 0;
                int iSub;
                Set<Integer> sKey = hm.keySet();
                 for (Integer i : sKey) {
                         if (sStart.equals(hm.get(i))) {
                               iStart = i;
                             }
                         if (sEnd.equals(hm.get(i))) {
                                 iEnd = i;
                             }
                   }
                 if (iStart > iEnd) {
                       iSub = iStart - iEnd;
                   } else {
                      iSub = iEnd - iStart;
                }

                // 计算金额
                 int price;
                 if (iSub <= 3) {
                         price = 2;
                     } else if (iSub <= 10) {
                         price = (int) (iSub * 0.5);
                     } else {
                         price = (int) (iSub - 5 * 0.5);
                     }
               // 10元封顶
                 price = price > 10 ? 10 : price;

               // 计算时间
                 int time = iSub * 2;

                System.out.println("从[" + sStart + "]到[" + sEnd + "]共经过" + iSub + "站,收费" + price + "元,大约需要" + time + "分钟");

          }

}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容