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

文章介绍了一个使用Java语言开发的教室管理系统,系统基于Swing框架,集成MySQL数据库。同时,还提供了一个公交查询系统的详细功能,包括按线路、站名和起止站查询。项目包含完整的源码,适合学习和使用。开发环境支持Eclipse和IDEA,运行方式简单,便于上手。

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

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以,数据为MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。

系统框架

利用JDK自带的SWING框架开发。纯窗体模式,直接运行Main文件即可以。

系统主要功能

本项目是一个课程设计,主要实现了要给公交查询系统。实现的主要功能包括:按线路查询、按经过站的站查询,按起始站、终止站查询。项目涉及到文件操作、事件处理、数据结构和算法等众多知识点,项目源码完整,下载后可以直接使用。欢迎大家下载。

开发背景

本公交查询系统目标是方便市民进行公交信息查询,并且要做到信息不滞后,其主要思想是做到系统管理的人性化,数据处理的可靠性,可维护性,以及程序的健壮性。

运行方法

下载源码后,导入到Eclipse或者IEDA后,运行MAIN.JAVA,即可以正确运行系统

主要功能

  1. 查询功能:系统需要提供几种不同方式的查询手段,以实现灵活方便地管理整个系统。公交查询系统有按线路查询、按经过站的站查询,按起始站-终止站查询3种查询方式

2、数据的更新修改:更新:系统允许管理员级别的用户对数据进行更新、修改并且存盘操作;

运行效果

关键代码

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

@SuppressWarnings("serial")
public class GUI extends JFrame {
    private JButton btnQuery; // 查询
    private JCheckBox ckBox; // 模糊查询选择
    private JTextField tfUrbanLine; // 线路名
    private JTextField tfBusStation; // 站台名
    private JTextField tfSourceStation; // 源站台
    private JTextField tfDestStation; // 目的站台
    private JTextArea taResult; // 查询结果
    private JRadioButton rbStation; // 站站查询
    private JRadioButton rbUrbanLine; // 线路查询
    private JRadioButton rbStationInfo; //

    public GUI() {
    initComponents();
    initLayout();
    loadWindow();
    }

    /**
     * 初始化组件
     */
    private void initComponents() {
    setTitle("南京公交线路查询系统");// 设置标题
    setSize(825, 560); // 窗口大小
    setLocation(200, 100); // 窗口初始位置(200,300)
    setResizable(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    btnQuery = new JButton("查询");
    ckBox = new JCheckBox("模糊查询");
    tfUrbanLine = new JTextField(10);
    tfBusStation = new JTextField(20);
    tfSourceStation = new JTextField(20);
    tfDestStation = new JTextField(20);
    taResult = new JTextArea(70, 50);
    rbStation = new JRadioButton("站站查询");
    rbUrbanLine = new JRadioButton("线路查询");
    rbStationInfo = new JRadioButton("站台信息查询");

    taResult.setLineWrap(true);// 设置换行
    }

    /**
     * 初始化窗口布局
     */
    private void initLayout() {
    JPanel rightPanel = new JPanel(); // 右部面板
    JPanel centPanel = new JPanel();// 中间面板

    rightPanel.setLayout(new GridLayout(15, 1, 5, 5));
    ButtonGroup g = new ButtonGroup();
    g.add(rbStation);
    g.add(rbStationInfo);
    g.add(rbUrbanLine);

    rightPanel.add(rbStation);
    rightPanel.add(rbStationInfo);// 加入单选按钮
    rightPanel.add(rbUrbanLine);

    rightPanel.add(new JLabel("请输入起始站点名:"));
    rightPanel.add(tfSourceStation);
    rightPanel.add(new JLabel("请输入终点站点名:"));
    rightPanel.add(tfDestStation);
    rightPanel.add(new JLabel("请输入站台名:"));
    rightPanel.add(tfBusStation);
    rightPanel.add(new JLabel("请输入公交线路名:"));
    rightPanel.add(tfUrbanLine);

    rightPanel.add(btnQuery);
    rightPanel.add(ckBox);

    centPanel.add(taResult);// 查询结果放入中间面板

    JScrollPane sp = new JScrollPane(centPanel,
        JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    rightPanel.setBorder(BorderFactory.createTitledBorder("信息区"));// 加入边框
    sp.setBorder(BorderFactory.createTitledBorder("查询结果"));

    getContentPane().add(rightPanel, BorderLayout.EAST);
    getContentPane().add(sp, BorderLayout.CENTER);

    btnQuery.addActionListener(new QueryCommand());// 加入监听
    rbStation.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        tfSourceStation.setEnabled(true);
        tfDestStation.setEnabled(true);
        tfUrbanLine.setEnabled(false);
        tfBusStation.setEnabled(false);
        tfSourceStation.setText("");
        tfDestStation.setText("");
        tfSourceStation.grabFocus();
        }
    });
    rbStationInfo.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        tfSourceStation.setEnabled(false);
        tfDestStation.setEnabled(false);
        tfUrbanLine.setEnabled(false);
        tfBusStation.setEnabled(true);
        tfBusStation.setText("");
        tfBusStation.grabFocus();
        }
    });
    rbUrbanLine.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        tfSourceStation.setEnabled(false);
        tfDestStation.setEnabled(false);
        tfUrbanLine.setEnabled(true);
        tfBusStation.setEnabled(false);
        tfUrbanLine.setText("");
        tfUrbanLine.grabFocus();// 获取焦点
        }
    });
    }

    /**
     * 载入窗口
     */
    private void loadWindow() {
    setVisible(true); // 显示窗口
    tfSourceStation.grabFocus();
    taResult.setEditable(false);
    rbStation.setSelected(true); // 选中站站查询
    tfBusStation.setEnabled(false);
    tfUrbanLine.setEnabled(false);
    Query.initQuery();// 完成一系列初始化工作
    }

    // 查询操作
    private class QueryCommand implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        String msg1 = null;
        String msg2 = null;
        String result = null;
        if (rbStation.isSelected()) { // 站站查询
        msg1 = tfSourceStation.getText().trim();
        if ("".equals(msg1)) {
            JOptionPane
                .showMessageDialog(GUI.this, "起始站台不能为空!");
            tfSourceStation.grabFocus();
            return;
        }
        msg2 = tfDestStation.getText().trim();
        if ("".equals(msg2)) {
            JOptionPane
                .showMessageDialog(GUI.this, "终点站台不能为空!");
            tfDestStation.grabFocus();
            return;
        }
        if (ckBox.isSelected()) { // 选中了模糊查询
            result = Query.getPathInfo(msg1, msg2, true);
            if (result == null)
            JOptionPane.showMessageDialog(GUI.this,
                "对不起,没有查询到相关乘车方案信息!");
            else
            taResult.setText(result);
        } else {
            result = Query.getPathInfo(msg1, msg2, false);
            if (result == null)
            JOptionPane.showMessageDialog(GUI.this,
                "对不起,没有查询到相关乘车方案信息!");
            else
            taResult.setText(result);
        }
        } else if (rbStationInfo.isSelected()) {// 查询站台信息
        msg1 = tfBusStation.getText().trim();
        if ("".equals(msg1)) {
            JOptionPane.showMessageDialog(GUI.this, "站台名不能为空!");
            tfBusStation.grabFocus();
            return;
        }
        if (ckBox.isSelected()) { // 选中了模糊查询
            result = Query.getStationInfo(msg1, true);
        } else {
            result = Query.getStationInfo(msg1, false);
        }
        if (result == null)
            JOptionPane.showMessageDialog(GUI.this,
                "对不起,没有查询到该站台的信息!");
        else
            taResult.setText(result);

        } else if (rbUrbanLine.isSelected()) {// 查询线路信息
        msg1 = tfUrbanLine.getText().trim();
        if ("".equals(msg1)) {
            JOptionPane.showMessageDialog(GUI.this,
                "公交线路名不能为空!");
            tfUrbanLine.grabFocus();
            return;
        }
        if (ckBox.isSelected()) { // 选中了模糊查询
            result = Query.getUrbanLineInfo(msg1, true);
        } else {
            result = Query.getUrbanLineInfo(msg1, false);
        }
        if (result == null)
            JOptionPane.showMessageDialog(GUI.this,
                "对不起,没有查询到该公交线路的信息!");
        else
            taResult.setText(result);
        }
    }
    }
}
城市公交查询系统(毕业设计) 本系统采用结构化设计的方法来实现系统总体功能,提高系统的各项指标,即将整个系统合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及和数据库的联系,定义各模块的内部结构,通过对模块的设计和模块之间关系的系统来实现整个系统的功能 前台主要有3个模块,线路查询、站点查询、公交换乘模块和后台管理模块 功能名称:线路查询 功能概述:可以获得要查询公交所通过的各个站点。 功能名称:站点查询 功能概述:通过输入的指定站点查询经过该站点的公交功能名称:公交换乘查询 功能概述:分为公交直达、公交一次换乘,主要体现那些不可直达需要转车的路线的所有换法。(如果用户输入的起始点和终点,有一条及一条以上的公交线可以直达的,则为公交直达;如果输入的起始点和终点,没有一条公交线可以直接到的,系统将会给出一次换乘的方案,则为公交一次换乘) 功能名称:后台管理 功能概述:用于管理员登陆,添加、修改、删除公交线路,修改信息资料、安全密码,回复留言板等功能。 本系统提供了的车次查询功能、路线查询功能。乘客可以方便的进行查询,以防乘错车次。当然有些功能的智能化不是很强,系统有待进一步来完善。 毕业论文文件夹下为《开题报告》、《毕业论文》及《英文翻译》等相关文档 DB_51aspx下为Sql数据库,附加后修改App_Code/DB.cs中的配置文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值