城市公交查询系统是一个实用的应用程序,可以帮助用户在城市中查找公交车路线、站点和到达时间。在这个回答中,我将用Java编写一个城市公交查询系统,包括代码和说明。

一、系统架构和功能

该城市公交查询系统将采用MVC架构,包括以下几个部分:

  • 模型 (Model): 表示数据和业务逻辑层,封装了公交车路线、站点和到达时间等信息,提供了对外的数据操作接口。
  • 视图 (View): 视图层将数据呈现给用户,在这个系统中,视图将向用户展示公交线路、站点和到达时间的查询结果。
  • 控制器 (Controller): 控制器负责连接模型和视图,响应用户请求,调用模型中的相关方法完成具体的任务,最终将结果返回给视图。
  • 该系统具有以下功能:
  • 查询公交车路线:用户输入起点和终点站点,系统将返回符合条件的公交线路。
  • 查询公交车站点:用户输入公交线路,系统将返回该公交路线的所有站点。
  • 查询公交到站时间:用户输入公交线路和站点,系统将返回该站点的公交车到站时间。

二、系统代码实现

下面是使用Java编写的城市公交查询系统的代码实现。在编写时我使用了Spring和MyBatis框架。
Model层

我们将定义两个JavaBean类,Station和BusLine来保存数据。

public class Station {private String id;private String name;private String busLineIds;// getters and setters
}public class BusLine {private String id;private String name;private String stations;// getters and setters
}

同时,为了对数据库中的表进行操作,我们还需要定义数据访问对象(Data Access Object,DAO)。下面分别是对Station和BusLine的DAO实现。

@Repository
public class StationDAO {@Autowiredprivate SqlSessionFactory sqlSessionFactory;public List<Station> findByName(String name) {SqlSession sqlSession = sqlSessionFactory.openSession();List<Station> list = sqlSession.selectList("com.example.busquery.dao.StationDAO.findByName", name);sqlSession.close();return list;}}@Repository
public class BusLineDAO {@Autowiredprivate SqlSessionFactory sqlSessionFactory;public List<BusLine> findByName(String name) {SqlSession sqlSession = sqlSessionFactory.openSession();List<BusLine> list = sqlSession.selectList("com.example.busquery.dao.BusLineDAO.findByName", name);sqlSession.close();return list;}}

View层

在视图层,我们可以用JavaFX或Swing等框架实现GUI。在这里,为了简化示例,我们使用命令行的方式展示查询结果。

public class ConsoleQueryView implements QueryView {@Overridepublic void showLines(List<BusLine> lines) {System.out.println("线路查询结果:");for (BusLine line : lines) {System.out.println(line.getName());}}@Overridepublic void showStations(List<Station> stations) {System.out.println("站点查询结果:" );for (Station station : stations) {System.out.println(station.getName());}}@Overridepublic void showArrivalTime(ArrivalTime time) {System.out.println("到站时间查询结果:");System.out.println("车牌号:" + time.getBusNumber());System.out.println("预计到达时间:" + time.getArrivalTime());}}

Controller层
在控制器层,我们将根据用户请求,调用相应的操作和数据对象,然后将结果传递给视图。这里我们定义了一个公交查询服务BusQueryService来完成具体的查询任务。

@Service
public class BusQueryServiceImpl implements BusQueryService {@Autowiredprivate BusLineDAO busLineDAO;@Autowiredprivate StationDAO stationDAO;@Overridepublic List<BusLine> queryBusLine(String from, String to) {// TODO: query bus line...}@Overridepublic List<Station> queryBusStations(String busLineName) {// TODO: query bus stations...}@Overridepublic ArrivalTime queryBusArrivalTime(String busLineName, String stationName) {// TODO: query bus arrival time...}}

三、系统演示

现在,我们可以编写一个简单的main方法演示这个城市公交查询系统的功能。在这个系统中,我们将从命令行获取输入,完成查询任务,并将结果返回给控制台。

public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);ConsoleQueryView view = new ConsoleQueryView();BusQueryService service = new BusQueryServiceImpl();while (true) {System.out.println("请输入查询类型:\n1. 查询公交线路\n2. 查询公交站点\n3. 查询公交到站时间");String line = scanner.nextLine();switch (line) {case "1":System.out.println("请输入起点站和终点站:");String from = scanner.nextLine();String to = scanner.nextLine();List<BusLine> lines = service.queryBusLine(from, to);view.showLines(lines);break;case "2":System.out.println("请输入公交路线名称:");String busLineName = scanner.nextLine();List<Station> stations = service.queryBusStations(busLineName);view.showStations(stations);break;case "3":System.out.println("请输入公交路线名称和站点名称:");String busLineName2 = scanner.nextLine();String stationName = scanner.nextLine();ArrivalTime time = service.queryBusArrivalTime(busLineName2, stationName);view.showArrivalTime(time);break;default:System.out.println("无效的输入...");break;}}}}

总结

在本文中,我们使用Java编写了一个城市公交查询系统,该系统采用了MVC架构,并使用Spring和MyBatis框架。该系统可以查询公交车路线、站点和到达时间等信息,并且可以通过命令行展示查询结果。通过阅读这篇文章,相信读者已经掌握了Java编写实际应用程序的基本思路和操作方法,可以根据自己的需求和情况定制和扩展这个城市公交查询系统。相应教学放在最后:

http://【【Java项目】JavaWeb城市公交查询系统(附源码)_java实战项目(白嫖)】 https://www.bilibili.com/video/BV1nm4y1h7Wr/?share_source=copy_web&vd_source=4259e055dd4179982d1858b91cbe2728

用Java编写城市公交查询系统相关推荐

  1. 基于JAVA的城市公交查询系统毕业论文(含源文件)

    获取项目源文件,学习交流联系Q:1225467431 摘要:公交查询系统是城市道路交通的重要组成部分,是城市发展的必然产物,是联系国民生活.社会生产和流通领域的关键环节.安阳城市公交查询系统的发展处于 ...

  2. 基于JAVA的城市公交查询系统毕业论文

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye2 摘要:公交查询系统是城市道路交通的重要组成部分,是城市发展的必然产物,是联系国民生活.社会生产 ...

  3. 计算机毕业设计ssm基于Java的城市公交查询系统ac5p2系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于Java的城市公交查询系统ac5p2系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于Java的城市公交查询系统ac5p2系统+程序+源码+lw+远程部署 本源码技术栈 ...

  4. java毕业设计城市公交查询系统Mybatis+系统+数据库+调试部署

    java毕业设计城市公交查询系统Mybatis+系统+数据库+调试部署 java毕业设计城市公交查询系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...

  5. Java项目——城市公交查询系统

    今天继续为大家带来一个Java毕设项目--城市公交查询系统,可以用来做毕业设计,也可以用来做实战演练,下面就来学习叭~ 需要的私我 Java的技术应用 1.Android应用 许多的 Android应 ...

  6. JAVA JSP城市公交查询系统 jsp公交线路查询系统Java公交查询系统Java公交线路查询

    JSP城市公交查询系统 jsp公交线路查询系统Java公交查询系统Java公交线路查询

  7. Java编写的公交查询系统 功能非常齐全 完整源码

    今天为大家分享一个java语言编写的教室管理系统,目前系统功能已经很全面,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语 ...

  8. 基于java的城市公交查询系统

    本系统采用了JSP编程语言,数据库使用Mysql.计算机技术不断发展,逐渐适应用于各领域,给人们的学习工作生活带来了便利,在公交查询系统也是这样.纸质的公交指南或繁杂的网络版公交指南,都在不同程度上限 ...

  9. java 城市公交查询系统源码_基于Java的城市公交查询系统的毕业设计参考源码

    资料介绍 一.实现多种查询功能,包括根据商厦名称.公交车号.日常站点.和任意两个站点查询乘车路线.其次,采用最短路径算法查找任意两个站点之间的最短乘车路线.最后,提供了用户留言的功能.用户管理功能和后 ...

最新文章

  1. Cable master (POJ No.1064)
  2. 经验总结!我们是如何在编程面试中挂掉的
  3. 洛谷 P1176 路径计数2
  4. python执行外部命令或URL
  5. C#中Bitmap类实现对图像操作的一些方法(转)
  6. Bootstrap系列 -- 8. 代码显示
  7. Apache多站点配置
  8. PHP报错 Module ‘openssl‘ already loaded in Unknown on line 0
  9. C# 将彩色PDF转为灰度
  10. 接管理器是Android上最,10 款优秀的 Android 文件管理器
  11. 【转载】批量维护(创建/修改)客户主数据函数 SD_CUSTOMER_MAINTAIN_ALL BP自定义屏幕 数据维护
  12. css动画帧动画效果,css逐帧动画
  13. 洛阳地铁一号线无人驾驶_无人驾驶超级拖拉机现身洛阳
  14. html超链接本地链接,为何本地连接变成本地连接2连接
  15. 基于OLAP的时间维度设计
  16. Ubuntu16.04 GTX1050Ti安装CUDA10.0和cuDNN7.4.2
  17. IDEA修改中文字体为微软雅黑
  18. linux dd 填充全ff,用shell命令tr dd生成内容为FF指定大小的命令。
  19. 原生微信小程序实现号码隐藏,用****代替
  20. nlp-Embedding

热门文章

  1. html offsetwidth 字符串宽度,offsetWidth 获取宽度不准确的问题
  2. 构建 Snowpack + React + Typescript + Electron的Desktop App
  3. 网站 域名 空间的理解
  4. 回忆那年那月(1997~2003)前言
  5. 控制杂谈1 —— 控制系统上位机与下位机的分工
  6. label-smoothing
  7. [发布]箫心Web个人共享服务器2007.1.15.0 DotNetC#2.0开发
  8. 网贷羊毛党凶猛:17家平台投资转化率仅13%
  9. python暑期实践8.10
  10. 什么是普通股、什么是优先股