日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

公交车信息查询管理系统(Java实现)

發(fā)布時間:2023/12/15 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 公交车信息查询管理系统(Java实现) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、需求分析

????????本次Java課程設(shè)計本著公交車信息查詢管理系統(tǒng)查詢管理數(shù)據(jù)的設(shè)計原則,讓其滿足日常生活中人們對公交查詢的基本功能,實(shí)現(xiàn)信息查詢的基礎(chǔ)效果,提供以下功能:

  • 數(shù)據(jù)庫連接,數(shù)據(jù)庫操作功能;
  • 管理員登錄,管理員退出;
  • 用戶登錄,用戶注冊(兩次密碼不一致時報錯),用戶退出,用戶查看個人信息
  • 用戶可根據(jù)公交車ID進(jìn)行簡單的公交線路查詢,刷新表格內(nèi)部數(shù)據(jù);
  • 管理員可添加車站信息、修改車站信息、刪除車站信息、查詢車站信息;刷新公交表格數(shù)據(jù);
  • 管理員可添加司機(jī)信息、修改司機(jī)信息、刪除司機(jī)信息、刷新司機(jī)表格信息。
  • 二、總體設(shè)計

    ????????該公交信息查詢管理系統(tǒng)基于Java圖形化設(shè)計界面以及MySQL數(shù)據(jù)庫實(shí)現(xiàn),采用經(jīng)典的“Dao設(shè)計模式”,其中MySQL數(shù)據(jù)庫的各類操作實(shí)現(xiàn)了實(shí)體間表格的增查改刪,并配備了圖形設(shè)計界面中的JTable表格控件,做到了實(shí)時更新數(shù)據(jù)的效果。下面為實(shí)現(xiàn)該系統(tǒng)的功能結(jié)構(gòu)層次圖:

    ????????具體功能列表細(xì)節(jié)如下:

    功能模塊

    功能細(xì)分

    備注

    公交線路

    信息管理

    查詢公交信息功能

    公交編號查詢指定公交的全部信息

    新增公交信息功能

    向數(shù)據(jù)庫中添加新的公交信息記錄

    修改公交信息功能

    按公交編號修改需要更正的公交信息

    刪除公交信息功能

    按公交編號刪除指定的數(shù)據(jù)庫記錄

    用戶使用功能

    用戶登錄

    用戶根據(jù)查詢后用戶名密碼進(jìn)行登錄

    線路查詢

    用戶根據(jù)公交車ID對公交信息查詢

    個人信息確認(rèn)

    根據(jù)public方法傳入?yún)?shù)顯示

    用戶注冊

    注冊用戶個人信息

    管理員使用功能

    管理員登錄

    根據(jù)管理員輸入管理員名稱對數(shù)據(jù)庫密碼檢索

    公交車信息查詢

    根據(jù)UID實(shí)行簡單的“增刪改查”操作

    司機(jī)信息查詢操作

    根據(jù)BID實(shí)行簡單的“增刪改查”操作

    三、Mysql數(shù)據(jù)庫設(shè)計

    ????????經(jīng)過用戶反饋篩選,我們根據(jù)公交車信息管理的設(shè)計理念,將上述需求分析階段得到的用戶需求進(jìn)行分析、總結(jié)、歸納,得到該公交車信息查詢管理系統(tǒng)的實(shí)體以及實(shí)體屬性,并在這里采用E-R圖的方式抽象成信息結(jié)構(gòu)即概念模型,其中根據(jù)實(shí)體間聯(lián)系,畫出局部E-R圖,如下所示:

    關(guān)系模式(關(guān)系模型)

    管理員(管理員姓名,管理員密碼);

    用戶(用戶姓名,用戶密碼,用戶性別);

    公交車(公交編號,司機(jī)編號,公交名,公交車站,公交類型);

    司機(jī)(司機(jī)編號,司機(jī)姓名,司機(jī)性別,公交類型,司機(jī)生日,司機(jī)地址,電話號碼,有效期截止時間);

    四、詳細(xì)設(shè)計與實(shí)現(xiàn)

    4.1、登錄界面設(shè)計

    ? ? ? ? 登錄界面設(shè)有用戶名、密碼和用戶身份三個字段,在數(shù)據(jù)庫中進(jìn)行分別匹配,在用戶輸入信息后,首先判斷該用戶名是否存在,接著匹配該用戶的身份是否正確,最后匹配該身份下的密碼是否正確,通過三重判斷進(jìn)行頁面跳轉(zhuǎn),該頁面也可以將所填信息進(jìn)行清楚,效果圖如下:

    ????????部分代碼實(shí)現(xiàn)如下:

    button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (comboBox.getSelectedItem().equals("普通用戶")) {// 獲得文本框里的值 String username = textField.getText();String upassword = passwordField.getText(); boolean f = dirverdao.userlogin(username, upassword);if (f) {JOptionPane.showMessageDialog(frame, "登陸成功!歡迎!");// 頁面跳轉(zhuǎn)UsersEnroll ue=new UsersEnroll();// 關(guān)閉原頁面frame.setVisible(false); } else {JOptionPane.showMessageDialog(frame, "登陸失敗!賬號或密碼錯誤!");// 賬號密碼清空textField.setText("");passwordField.setText("");}

    4.2、用戶注冊界面設(shè)計

    ? ? ? ? 注冊界面設(shè)有用戶名、性別、密碼和確認(rèn)密碼四個字段,其中,若二次輸入的密碼與第一次不統(tǒng)一,也會做出相應(yīng)的提醒,點(diǎn)擊提交則上交給數(shù)據(jù)庫。效果圖如下:

    4.3、線路查詢界面設(shè)計

    ? ? ? ? 用戶可以根據(jù)自己的需求,輸入編號對表格查出相應(yīng)的所需的數(shù)據(jù)線路進(jìn)行數(shù)據(jù)庫查詢操作,JTable表格做到實(shí)時更新數(shù)據(jù)的效果,輸入信息查找這里也采用了鍵盤監(jiān)聽事件,即可以根據(jù)用戶輸入的信息實(shí)時調(diào)用數(shù)據(jù)庫數(shù)據(jù),具體展示圖如下:

    ?????????部分代碼如下:

    protected TableModel getDataModel(String bySth, String keyWord) {// 獲得所有字段名,做表頭String[] columnNames = bsd.getColumnNames("businfortable");// 獲得查詢結(jié)果的list列表,轉(zhuǎn)換為二維數(shù)組,做表中數(shù)據(jù)List<BusType> buslist = bsd.getBusbySth(bySth, keyWord);int row = buslist.size(); // 獲得行數(shù),即數(shù)據(jù)個數(shù)int column = columnNames.length; // 獲得列數(shù),即字段個數(shù)Object[][] data = new Object[row][column];for (int i = 0; i < buslist.size(); i++) {data[i][0] = buslist.get(i).getBid();data[i][1] = buslist.get(i).getDid();data[i][2] = buslist.get(i).getBnum();data[i][3] = buslist.get(i).getBtype();data[i][4] = buslist.get(i).getBusstop();} TableModel dataModel=new DefaultTableModel(data,columnNames); // 建立表格數(shù)據(jù)模型return dataModel;}

    4.4、管理員界面設(shè)計

    ? ? ? ? 管理員界面即是對公交車與司機(jī)二者信息顯示的增刪改查,這里的修改操作我采用兩種方式,一種是利用getSelectedRow()方法,獲取索引行,將需要修改的信息自動獲取到修改頁面,一種則是直接打開修改頁面,根據(jù)你輸入的信息進(jìn)行主鍵查找,最終達(dá)到修改效果,刪除操作也采用同樣的方法,同時實(shí)時更新系統(tǒng)表格。效果圖如下:

    ????????部分核心代碼如下所示:

    JMenuBar menuBar = new JMenuBar();frame.setJMenuBar(menuBar); JMenu menu = new JMenu("\u5F00\u59CB");menuBar.add(menu);JMenuItem menuItem = new JMenuItem("\u4FE1\u606F\u4FEE\u6539");menu.add(menuItem);menuItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {DriverTableFrame dtf=new DriverTableFrame(); }});JMenu menu_1 = new JMenu("\u5E2E\u52A9");menuBar.add(menu_1);}

    ?????????部分核心代碼如下所示:?

    public int addBus(BusType bus) {Connection conn=DBTools.getConn();int i=0;String sql="insert into businfortable(bid,did,bnum,btype,busstop) values(?,?,?,?,?)";PreparedStatement pstmt = null;try {pstmt = conn.prepareStatement(sql);pstmt.setInt(1, bus.getBid());pstmt.setInt(2, bus.getDid());pstmt.setString(3, bus.getBnum());pstmt.setString(4, bus.getBtype());pstmt.setString(5, bus.getBusstop());i=pstmt.executeUpdate();}

    ?

    ????????部分核心代碼如下所示:??

    public void actionPerformed(ActionEvent e) {int frow = table.getSelectedRow(); //獲得第一個選中行的索引if(frow == -1) { JOptionPane.showMessageDialog(frame, "請先單擊選擇一條記錄");}else {//String[]中存入表格選中行的數(shù)據(jù)String[] sendData = new String[table.getColumnCount()]; for(int i=0; i<sendData.length; i++) {sendData[i] = table.getValueAt(frow, i)+"";}//打開修改頁面,并傳入信息BusInforChanged bic=new BusInforChanged(sendData);}}}); class MYPanel3 extends JPanel {private Image img;public MYPanel3() {// TODO Auto-generated constructor stubImageIcon icon = new ImageIcon(UsersLoginFrame.class.getResource("/images/背景圖3.jpg"));img = icon.getImage();} @Overrideprotected void paintComponent(Graphics g) {// TODO Auto-generated method stubg.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), null);}}

    ?

    ?

    ?

    部分核心代碼展示如下:

    @Overridepublic void itemStateChanged(ItemEvent e) {// TODO Auto-generated method stubif(radioButton.isSelected()){dsex=radioButton.getText();}else if(radioButton_1.isSelected()){ ...... if(chckbxA.isSelected()){dtype+=chckbxA.getText();}} @Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString dname=textField.getText(); ....if(e.getSource()==button){DriverDaoImpl dridao=new DriverDaoImpl();Driver driver=new Driver();...... else if(e.getSource()==button_2_1){......JOptionPane.showMessageDialog(frame, "刪除成功!");frame.setVisible(false);

    ?

    ????????至此,該公交車信息查詢管理系統(tǒng)的基本功能與界面展示完畢。如對您有所幫助,望留下寶貴一贊!謝謝!

    ????????需源碼以及1w3字課程20頁報告 私信扣扣 1092644308!!!!!

    ?

    總結(jié)

    以上是生活随笔為你收集整理的公交车信息查询管理系统(Java实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。