公交路线查询系统

2023-11-27 07:44
文章标签 系统 查询 公交路线

本文主要是介绍公交路线查询系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

公交路线查询系统

  • 一:目标一:类的定义+构造方法 +set和get方法:
  • 目标二:静态属性 +静态方法 +toString方法:
  • 目标三:抽象类的定义 +抽象方法 + 实际应用:abstract class AbstractRoute{
  • 目标四:接口的定义+实现接口类的定义+实际应用
  • 终极目标:集合泛型定义+集合添加元素 +集合显示内容:

一:目标一:类的定义+构造方法 +set和get方法:

class Route{//成员变量体现封装性private String name;private String[] stations;private String startStation;private String endStation;private double fare;private double distance;//不带参数的构造方法public Route() {}//带参数的构造方法public Route(String name, String[] stations, String startStation, String endStation) {this.name = name;this.stations = stations;this.startStation = startStation;this.endStation = endStation;}//set和get方法public String getName() {return name;}public void setName(String name) {this.name = name;}public String[] getStations() {return stations;}public void setStations(String[] stations) {this.stations = stations;}public String getStartStation() {return startStation;}public void setStartStation(String startStation) {this.startStation = startStation;}public String getEndStation() {return endStation;}public void setEndStation(String endStation) {this.endStation = endStation;}public void setFare(double fare) {this.fare = fare;}public void setDistance(double distance) {this.distance = distance;}//查询路线的方法public void queryStations() {System.out.println(getName() + "的站点有:");for (String station : stations) {System.out.print(station+" ");}System.out.println();}public double getDistance() {// 计算距离的逻辑return stations.length * 10;}public double getFare() {// 计算费用的逻辑return stations.length * 1;}
}
public class Test {public static void main(String[] args) {//创建对象Route route1=new Route("101",new String[]{"S1","S2","S3","S4","S5"},"S1","S5");Route route2=new Route("102",new String[]{"S2","S3","S4","S5","S6"},"S2","S6");route1.queryStations();System.out.println("路程为:"+route1.getDistance()+"  "+"费用为"+route1.getFare());route2.queryStations();}

在这里插入图片描述

目标二:静态属性 +静态方法 +toString方法:

mport java.util.Arrays;
class Route{//静态成员变量public static double fare;public static double distance;private String name;private String[] stations;private String startStation;private String endStation;//不带参数的构造方法public Route() {}//带参数的构造方法public Route(String name, String[] stations, String startStation, String endStation) {this.name = name;this.stations = stations;this.startStation = startStation;this.endStation = endStation;}//set和get方法public String getName() {return name;}public void setName(String name) {this.name = name;}public String[] getStations() {return stations;}public void setStations(String[] stations) {this.stations = stations;}public String getStartStation() {return startStation;}public void setStartStation(String startStation) {this.startStation = startStation;}public String getEndStation() {return endStation;}public void setEndStation(String endStation) {this.endStation = endStation;}public void setFare(double fare) {this.fare = fare;}public void setDistance(double distance) {this.distance = distance;}//查询路线的方法public void queryStations() {System.out.println("查询的信息为:");System.out.println(toString());}@Overridepublic String toString() {return "Route{" +"name='" + name + '\'' +", stations=" + Arrays.toString(stations) +", startStation='" + startStation + '\'' +", endStation='" + endStation + '\'' +'}';}
}
public class Test {//静态成员方法public static void print(){System.out.println("欢迎下次查询");}public static void main(String[] args) {Route.fare=5.0;Route.distance=10.0;Route route1=new Route("101",new String[]{"S1","S2","S3","S4","S5"},"S1","S5");route1.queryStations();System.out.println("路程为:"+ Route.fare+"  "+"费用为"+Route.distance);print();}
}

在这里插入图片描述

目标三:抽象类的定义 +抽象方法 + 实际应用:abstract class AbstractRoute{

    //抽象类AbstractRoute,3个抽象方法getFare(),getDistance(),queryStations()public abstract double getFare();public abstract double getDistance();public abstract void queryStations();
}
class SpecificRoute extends AbstractRoute{//子类SpecificRoute继承父类AbstractRouteprivate String name;private String[] stations;private String startStation;private String endStation;public SpecificRoute() {}public SpecificRoute(String name, String[] stations, String startStation, String endStation) {this.name = name;this.stations = stations;this.startStation = startStation;this.endStation = endStation;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String[] getStations() {return stations;}public void setStations(String[] stations) {this.stations = stations;}public String getStartStation() {return startStation;}public void setStartStation(String startStation) {this.startStation = startStation;}public String getEndStation() {return endStation;}public void setEndStation(String endStation) {this.endStation = endStation;}//重写父类的抽象方法@Overridepublic double getFare() {return this.stations.length*1;}@Overridepublic double getDistance() {return this.stations.length*2;}@Overridepublic void queryStations() {System.out.println(getName()+"的站点有:");for (String station: stations) {System.out.print(station+" ");}System.out.println();}
}
public class Test{public static void main(String[] args) {AbstractRoute abstractRoute=new SpecificRoute("101",new String[]{"S1","S2","S3","S4","S5"},"S1","S5");abstractRoute.queryStations();System.out.println("路程为:"+ abstractRoute.getDistance()+"公里"+"  "+"费用为"+abstractRoute.getFare()+"元");}
}

在这里插入图片描述

目标四:接口的定义+实现接口类的定义+实际应用

import java.util.Arrays;
//定义了一个接口Route
interface Route {//接口中的抽象方法public abstract double getFare();double getDistance();void addStation(String station);void removeStation(String station);void updateStation(String oldStation,String newStation);void queryStations();
}
abstract class AbstractRoute implements Route{private String name;public  String[] stations;private String startStation;private String endStation;public AbstractRoute(String name, String[] stations, String startStation, String endStation) {this.name = name;this.stations = stations;this.startStation = startStation;this.endStation = endStation;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String[] getStations() {return stations;}public void setStations(String[] stations) {this.stations = stations;}public String getStartStation() {return startStation;}public void setStartStation(String startStation) {this.startStation = startStation;}public String getEndStation() {return endStation;}public void setEndStation(String endStation) {this.endStation = endStation;}
}
class SpecificRoute extends AbstractRoute{public SpecificRoute(String name, String[] stations, String startStation, String endStation) {super(name, stations, startStation, endStation);}@Overridepublic double getFare() {return stations.length*1;}@Overridepublic double getDistance() {return stations.length*2;}//增加数据信息@Overridepublic void addStation(String station){System.out.println("要增加的站点信息为:"+station);int index=0;while ((index<stations.length)){index++;}if(index<stations.length){stations[index]=station;}else{stations= Arrays.copyOf(stations,stations.length+1);stations[index]=station;}}//删除数据信息@Overridepublic void removeStation(String station) {System.out.println("要删除的站点为:"+station);boolean find=false;for(int i=0;i<stations.length;i++){if(stations[i].equals(station)){find = true;int j=i;for (; j < stations.length-1; j++) {stations[j]=stations[j+1];}}}if(find){stations=Arrays.copyOf(stations,stations.length-1);}}//更改数据信息@Overridepublic void updateStation(String oldStation, String newStation) {System.out.println("要更改的站点信息为:"+oldStation+"->"+newStation);for (int i = 0; i < stations.length; i++) {if(stations[i].equals(oldStation)){stations[i]=newStation;break;}}}//查找公交站点信息@Overridepublic void queryStations() {System.out.println(getName() + "的站点有:");for (int i = 0; i < stations.length; i++) {System.out.print(stations[i]+" ");}System.out.println();}}
public class Test {public static void main(String[] args) {AbstractRoute abstractRoute=new SpecificRoute("101",new String[]{"S1","S2","S3","S4","S5"},"S1","S5");abstractRoute.queryStations();abstractRoute.addStation("S6");abstractRoute.queryStations();abstractRoute.removeStation("S2");abstractRoute.queryStations();abstractRoute.updateStation("S3","S7");abstractRoute.queryStations();System.out.println("路程为:"+ abstractRoute.getDistance()+"公里"+"  "+"费用为"+abstractRoute.getFare()+"元");}
}

在这里插入图片描述

终极目标:集合泛型定义+集合添加元素 +集合显示内容:

import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
interface Route {
//接口double getDistance();double getFare();void addStation(String station);void removeStation(String station);void updateStation(String oldStation, String newStation);void queryStations();
}
abstract class AbstractRoute implements Route {//抽象类 AbstractRoute 实现接口 Routeprotected String name;//泛型protected List<String> stations;public AbstractRoute(String name, List<String> stations) {this.name = name;this.stations =stations;}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<String> getStations() {return stations;}public void setStations(List<String> stations) {this.stations = stations;}public double getDistance() {// 计算距离的逻辑return 0;}@Overridepublic double getFare() {// 计算费用的逻辑return 0;}//向集合中添加数据信息@Overridepublic void addStation(String station) {System.out.println("要增加的站点信息为:"+station);stations.add(station);}//删除集合中的数据信息@Overridepublic void removeStation(String station) {System.out.println("要删除的站点信息为:"+station);stations.remove(station);}//更改结合中的数据信息@Overridepublic void updateStation(String oldStation, String newStation) {System.out.println("要更改的站点信息为:"+oldStation+"->"+newStation);int index = stations.indexOf(oldStation);if (index != -1) {stations.set(index, newStation);}}//查看集合中的数据信息@Overridepublic void queryStations() {System.out.println(getName() + "的站点有:");for (String station : stations) {System.out.println(station);}}
}
class SpecificRoute extends AbstractRoute {//SpecificRoute 继承抽象类 AbstractRoutepublic String startStation;public String endStation;public SpecificRoute(String name, List<String> stations, String startStation, String endStation) {super(name, stations);this.startStation = startStation;this.endStation = endStation;}@Overridepublic double getDistance() {return stations.size() * 2;}@Overridepublic double getFare() {return stations.size() * 1;}@Overridepublic void queryStations() {System.out.println(getName() + "的站点有:");for (String station : stations) {System.out.print(station+" ");}System.out.println();}
}
public class TestRouteSystem {public static void main(String[] args) {Route route = new SpecificRoute("Route 1", new ArrayList<>(Arrays.asList("S1", "S2", "S3","S4", "S5")),"S1", "S5");route.addStation("S6");route.removeStation("S2");route.updateStation("S3", "S7");route.queryStations();System.out.println("距离:" + route.getDistance() + ",费用:" + route.getFare());}
}

这篇关于公交路线查询系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/427303

相关文章

ubuntu20.0.4系统中安装Anaconda的超详细图文教程

《ubuntu20.0.4系统中安装Anaconda的超详细图文教程》:本文主要介绍了在Ubuntu系统中如何下载和安装Anaconda,提供了两种方法,详细内容请阅读本文,希望能对你有所帮助... 本文介绍了在Ubuntu系统中如何下载和安装Anaconda。提供了两种方法,包括通过网页手动下载和使用wg

ubuntu系统使用官方操作命令升级Dify指南

《ubuntu系统使用官方操作命令升级Dify指南》Dify支持自动化执行、日志记录和结果管理,适用于数据处理、模型训练和部署等场景,今天我们就来看看ubuntu系统中使用官方操作命令升级Dify的方... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。

MySQL中like模糊查询的优化方案

《MySQL中like模糊查询的优化方案》在MySQL中,like模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化MySQL中like模糊查询的方法,需要的朋友可以参... 目录1. 避免以通配符开头的查询2. 使用全文索引(Full-text Index)3. 使用前缀索

使用Python和SQLAlchemy实现高效的邮件发送系统

《使用Python和SQLAlchemy实现高效的邮件发送系统》在现代Web应用中,邮件通知是不可或缺的功能之一,无论是订单确认、文件处理结果通知,还是系统告警,邮件都是最常用的通信方式之一,本文将详... 目录引言1. 需求分析2. 数据库设计2.1 User 表(存储用户信息)2.2 CustomerO

基于Redis实现附近商铺查询功能

《基于Redis实现附近商铺查询功能》:本文主要介绍基于Redis实现-附近商铺查询功能,这个功能将使用到Redis中的GEO这种数据结构来实现,需要的朋友可以参考下... 目录基于Redis实现-附近查询1.GEO相关命令2.使用GEO来实现以下功能3.使用Java实现简China编程单的附近商铺查询4.Red

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数

SQL常用操作精华之复制表、跨库查询、删除重复数据

《SQL常用操作精华之复制表、跨库查询、删除重复数据》:本文主要介绍SQL常用操作精华之复制表、跨库查询、删除重复数据,这些SQL操作涵盖了数据库开发中最常用的技术点,包括表操作、数据查询、数据管... 目录SQL常用操作精华总结表结构与数据操作高级查询技巧SQL常用操作精华总结表结构与数据操作复制表结

Linux系统调试之ltrace工具使用与调试过程

《Linux系统调试之ltrace工具使用与调试过程》:本文主要介绍Linux系统调试之ltrace工具使用与调试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、ltrace 定义与作用二、ltrace 工作原理1. 劫持进程的 PLT/GOT 表2. 重定

Springboot实现推荐系统的协同过滤算法

《Springboot实现推荐系统的协同过滤算法》协同过滤算法是一种在推荐系统中广泛使用的算法,用于预测用户对物品(如商品、电影、音乐等)的偏好,从而实现个性化推荐,下面给大家介绍Springboot... 目录前言基本原理 算法分类 计算方法应用场景 代码实现 前言协同过滤算法(Collaborativ

MySQL 复合查询案例详解

《MySQL复合查询案例详解》:本文主要介绍MySQL复合查询案例详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录基本查询回顾多表笛卡尔积子查询与where子查询多行子查询多列子查询子查询与from总结合并查询(不太重要)union基本查询回顾查询