公交路线查询系统

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

相关文章

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MYSQL关联关系查询方式

《MYSQL关联关系查询方式》文章详细介绍了MySQL中如何使用内连接和左外连接进行表的关联查询,并展示了如何选择列和使用别名,文章还提供了一些关于查询优化的建议,并鼓励读者参考和支持脚本之家... 目录mysql关联关系查询关联关系查询这个查询做了以下几件事MySQL自关联查询总结MYSQL关联关系查询

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下

查询Oracle数据库表是否被锁的实现方式

《查询Oracle数据库表是否被锁的实现方式》本文介绍了查询Oracle数据库表是否被锁的方法,包括查询锁表的会话、人员信息,根据object_id查询表名,以及根据会话ID查询和停止本地进程,同时,... 目录查询oracle数据库表是否被锁1、查询锁表的会话、人员等信息2、根据 object_id查询被

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬