地鐵售票系統設計思想及部分代碼

? ? ?設計思想:地鐵售票系統的關鍵點在于換乘,所以首先要分為換乘和不換乘兩種情況。不換乘比較簡單,通過起始站名和終點站名查詢他們的num,然后list打包輸出到jsp就可以。換乘的話就先要找到兩條線路,找到兩條線路的交點也就是換乘站,然后分別輸出起始站到換乘站,換乘站到終點站兩段路線就完成了,這里面還涉及到一個最短路徑問題,我的想法是把全部的可能線路都找到,然后比較大小就完成了。目前進度到換乘部分。

? ? ?雙人項目合作人:鄭錦

? ? ?部分源代碼:

package Dao;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;import connection.DBUtil;public class dao {/*** 通過name得到number(線路號)* @param name* @return*/public static int getNum(String name) {String sql = "select xianluhao from aaa where name ='" + name + "'";Connection conn = DBUtil.getConn();Statement state = null;ResultSet rs = null;int number=0;try {state = conn.createStatement();rs = state.executeQuery(sql);while (rs.next()) {number = rs.getInt("xianluhao");}} catch (Exception e) {e.printStackTrace();} finally {DBUtil.close(rs, state, conn);}return number;}/*** 通過name得到zhanhao(站臺號)* @param name* @return*/public static int getZhanhao(String name) {String sql = "select num from aaa where name ='" + name + "'";Connection conn = DBUtil.getConn();Statement state = null;ResultSet rs = null;int zhanhao=0;try {state = conn.createStatement();rs = state.executeQuery(sql);while (rs.next()) {zhanhao = rs.getInt("num");}} catch (Exception e) {e.printStackTrace();} finally {DBUtil.close(rs, state, conn);}return zhanhao;}public static String getLine1(int zhanhao1,int zhanhao2) {String line="";String sql = "select name from aaa where num between '"+zhanhao1+"' and '"+zhanhao2+"'order by num ASC ";//升序Connection conn = DBUtil.getConn();Statement state = null;ResultSet rs = null;	try {state = conn.createStatement();rs = state.executeQuery(sql);if(rs.next())line=rs.getString("name");while (rs.next()) {String name=rs.getString("name");line=line+"->"+name;}} catch (Exception e) {e.printStackTrace();} finally {DBUtil.close(rs, state, conn);}return line;}public static String getLine2(int zhanhao1,int zhanhao2) {String line="";String sql = "select name from aaa where num between '"+zhanhao1+"' and '"+zhanhao2+"'  order by num DESC ";//降序Connection conn = DBUtil.getConn();Statement state = null;ResultSet rs = null;	try {state = conn.createStatement();rs = state.executeQuery(sql);if(rs.next())line=rs.getString("name");while (rs.next()) {String name=rs.getString("name");line=line+"->"+name;}} catch (Exception e) {e.printStackTrace();} finally {DBUtil.close(rs, state, conn);}return line;}}

  

package servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import Dao.dao;@WebServlet("/servlet")
public class servlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");String method = req.getParameter("method");if ("chaxun".equals(method)) {chaxun(req, resp);} }private void chaxun(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubreq.setCharacterEncoding("utf-8");String qi=req.getParameter("qi");String zhong=req.getParameter("zhong");int zhanhao1=dao.getZhanhao(qi);int zhanhao2=dao.getZhanhao(zhong);int number1=dao.getNum(qi);int number2=dao.getNum(zhong);if(number1==number2) {if(zhanhao1<zhanhao2){String line=dao.getLine1(zhanhao1, zhanhao2);req.setAttribute("line",line );req.setAttribute("num",number1);req.getRequestDispatcher("list.jsp").forward(req,resp);}if(zhanhao1>zhanhao2){String line=dao.getLine2(zhanhao2, zhanhao1);System.out.print(line);req.setAttribute("num",number1);req.setAttribute("line",line );req.getRequestDispatcher("list.jsp").forward(req,resp);}
}}}

  實驗截圖

項目總結分析

這個項目因為涉及到一個最短路徑的問題,最開始我是想用迪杰斯特拉算法來解決這個問題。但是我嘗試了很久沒有成功,可能是我的水平還是太有限。所以最后用了最簡單的方法來解決這個問題。我了解到有的同學是用迪杰斯特拉算法完成了這個項目,所以還是去請教一下。后期有時間的話還是想改善一下我程序的算法。

?

轉載于:https://www.cnblogs.com/xuange1/p/10652328.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536586.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數字帶通濾波器c語言程序,C語言編寫FIR數字低通濾波器

主要是獲取濾波器參數和卷積算法&#xff0c;參數根據自己的濾波器特性用matlab上面的一個fdatool工具配置生成&#xff0c;然后將這些參數寫入程序里面即可(參數可適當的乘以一個系數&#xff0c;對濾波沒任何影響)&#xff0c;我這里Fs 2k&#xff0c;Fpass 1k,Fstop 2k&am…

瀏覽器攔截跨域請求處理方法(已阻止跨源請求:同源策略禁止讀取遠程資源)

原文地址&#xff1a;http://my.oschina.net/lichaoqiang/blog/317823 在瀏覽器請求中&#xff0c;出現跨域訪問資源的問題&#xff0c;我們肯定會遇到。如果跨域請求被阻止&#xff0c;有可能導致css、js 、ajax請求、font字體等資源出現無法正常訪問的問題。接下來&#xff0…

C程序設計語言上機13,《高級語言程序設計》北大上機試題(十三)

C語言上機試題&#xff1a;131&#xff0e;題目&#xff1a;編一C程序&#xff0c;其功能是能把讀入一串英文單詞(以單詞end做為結束標記&#xff0c;單個單詞字母數≤20)&#xff0c;并按字典順序輸出。(注&#xff1a;可執行程序命名為e13_1.exe)程序設計&#xff1a;#includ…

Activiti6.0 java項目框架 spring5 SSM 工作流引擎 審批流程

即時通訊&#xff1a;支持好友&#xff0c;群組&#xff0c;發圖片、文件&#xff0c;消息聲音提醒&#xff0c;離線消息&#xff0c;保留聊天記錄 &#xff08;即時聊天功能支持手機端&#xff0c;詳情下面有截圖&#xff09;工作流模塊-------------------------------------…

c語言變量強制轉換,C語言——“=”中的強制類型轉換

前言&#xff1a;在寫程序時候遇到了一些關于數據類型轉換的問題&#xff0c;編譯器也沒有報錯&#xff0c;運行時才發現數據不對&#xff0c;找bug花費了很多時間&#xff0c;但最終也發現是一些細節上的問題&#xff0c;特地在這里整理出一篇文章記錄。實驗環境&#xff1a;芯…

Spring框架IOC和AOP的實現原理(概念)

IoC&#xff08;Inversion of Control&#xff09; (1). IoC&#xff08;Inversion of Control&#xff09;是指容器控制程序對象之間的關系&#xff0c;而不是傳統實現中&#xff0c;由程序代碼直接操控。控制權由應用代碼中轉到了外部容器&#xff0c;控制權的轉移是所謂反…

面向視頻的全新AI架構 —— 阿里云智能視覺技術全解

2019獨角獸企業重金招聘Python工程師標準>>> 我們都知道&#xff0c;AI技術正在以可見的速度被應用于各行各業&#xff0c;然而絕大部分業務場景想應用AI技術&#xff0c;都需要算法工程師根據自身業務的標注數據&#xff0c;來進行單獨訓練&#xff0c;才能打磨出合…

c語言鞏固,鞏固一下C語言中的指針

寫了幾段代碼&#xff0c;再鞏固一下C語言知識。我的記憶方法跟文章中的不一樣。*是取值符號&#xff0c;&取地址符號&#xff0c;()限定子表達式的符號,[]是按索引取數組乘員的符號。優先級方面()>[]>*,&。對于int *(*p(int))[3]; 。我是這么分析的&#xff1a;…

c語言程序設計課程設計學生信息管理系統,C語言程序設計課程設計報告----學生信息管理系統.doc...

河南理工大學計算機學院《C語言程序設計》課程設計報告題目&#xff1a; 學生信息管理系統專業&#xff1a; 計算機科學與技術班級&#xff1a; 計算機XX班學號&#xff1a; 311009033232姓名&#xff1a; *****日期&#xff1a;2012年3月21日1.2意義熟悉C語言程序的編程環境、…

【轉】利用python的KMeans和PCA包實現聚類算法

轉自&#xff1a;https://www.cnblogs.com/yjd_hycf_space/p/7094005.html 題目&#xff1a; 通過給出的駕駛員行為數據&#xff08;trip.csv&#xff09;&#xff0c;對駕駛員不同時段的駕駛類型進行聚類,聚成普通駕駛類型&#xff0c;激進類型和超冷靜型3類 。 利用Python的s…

c 語言str.size,C/C++ strlen(str)和str.length()和str.size()的區別

strlen(str)和str.length()和str.size()都可以求字符串長度,返回字符串中字符的長度&#xff0c;不包括‘/0’。其中str.length()和str.size()是同義詞&#xff0c;返回同樣的值。strlen(str)是用于求字符數組的長度&#xff0c;其參數是char*。#include #include using namesp…

想跑次高頻策略?快來看看Numpy處理真格量化tick數據的技巧

使用澎博真格量化時&#xff0c;很多用戶希望用numpy處理tick數據&#xff0c;包括tick數據的留存和運算。 這里有一些技巧。 因為tick數據量比較大&#xff0c;為了降低系統的運算負擔&#xff0c;我們不應該在內存里保存大量tick數據。 比如我們只想保存過去10個tick。 可以在…

if語句寫階躍函數C語言,C語言第四章分支語句.ppt

C語言第四章分支語句.ppt例&#xff1a; 輸入三個實數&#xff0c;按從小到大的順序輸出。 main( ) {float a,b,c,t; scanf(“%f,%f,%f ”,&a,&b,&c); if (a>b) { ta; ab; bt; } if (a>c) { ta; ac; ct; } if (b>c) { tb; bc; ct; } printf(“%5.2f,%5.2f…

日本顯示屏巨頭JDI不敵業務壓力,宣布接受中方注資...

本次10億美元的融資金額中&#xff0c;其中7.2億美元據傳來自中國絲綢之路基金。 最初&#xff0c;在液晶領域日本企業一直都占據著主要市場&#xff0c;如夏普、NEC、東芝等。后來隨著韓國三星、LG的強勢進入&#xff0c;日本企業的生存空間開始被搶占&#xff0c;現如今中國…

c語言中 d 1是啥意思,空開D/C是什么意思?終于有人把它說清楚了!

原標題&#xff1a;空開D/C是什么意思&#xff1f;終于有人把它說清楚了&#xff01;空氣開關是每個人家里必用的東西&#xff0c;但是你到五金店一看&#xff0c;大大小小的開關插座多了去&#xff0c;讓人眼花繚亂。怎么選呢&#xff1f;空開有各種字母型號&#xff0c;這些字…

微信小程序開發 | 官方問答精選

2019獨角獸企業重金招聘Python工程師標準>>> SF問答精選《七》 多組件顯示與隱藏如何實現、function中的...SF問答精選《六》canvas不顯示問題SF問答精選《五》菜單內容左右聯動、生命周期函數SF問答精選《四》eslint 配置使用 co function&#xff1b;apache 反向代…

36歲自學C語言,C語言的數據類型

在C語言中&#xff0c;數據類型可以分為&#xff1a;基本數據類型&#xff0c;構造數據類型&#xff0c;指針類型&#xff0c;空類型四大類。基本數據類型基本數據類型最主要的特點是&#xff0c;其值不可以再分解為其他類型。也就是說&#xff0c;基本數據類型是自我說明。構造…

清北學堂培訓2019.4.4

第一次培訓&#xff0c;心情有點激動&#xff08;盡管沒了清明節&#xff09;&#xff0c;還見到了各地的dalao們&#xff0c;十分開森 Day 1&#xff08;李昊dalao&#xff09; 上午篇 上午呢&#xff0c;主要講了關于高精&#xff0c;快速冪&#xff0c;膜模意義下的運算&…

國二c語言作弊用u盤,計算機等級考試可以插u盤嗎(全國計算機等級考試報名系統官網)...

&#xff1a;不可以 會有嘀嘀嘀的報警聲的&#xff1a;我以前考時不讓帶的&#xff0c;人家讓你不能用優盤的話電腦會控制沒法用的。&#xff1a;首先肯定回你&#xff0c;不可以帶優盤或者其他作弊設備。很多計算機二級考點會把主機箱鎖死&#xff0c;根本插不了優盤。在你進入…

「SCOI2011」棘手的操作

傳送門 Description 有\(N\)個節點&#xff0c;標號從\(1\)到\(N\)&#xff0c;這\(N\)個節點一開始相互不連通。第$ i\(個節點的初始權值為\)a_i$ &#xff0c;接下來有如下一些操作&#xff1a; U x y 加一條邊&#xff0c;連接第 \(x\) 個節點和第\(y\) 個節點。 A1 x v 將…