新聞中心
求數(shù)據(jù)結(jié)構(gòu)公交線路咨詢的代碼用java,其中求最短路徑用Floyd算法
不知道你想怎么搞 反正感覺(jué)A*算法也可以,網(wǎng)上一大堆,還有就是Dijkstra算法
十年的吉水網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整吉水建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“吉水網(wǎng)站設(shè)計(jì)”,“吉水網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
java公交線路管理系統(tǒng)
//寫(xiě)了兩個(gè)小時(shí)啊,兄弟,要采納我啊
//Site(站點(diǎn)類(lèi))
package?transit;
import?java.util.ArrayList;
import?java.util.List;
public?class?Site
{
private?Integer?id;?//?給每個(gè)站點(diǎn)分配一個(gè)ID
private?String?name;?//?站點(diǎn)的名字
private?ListRoute?list;?//?經(jīng)過(guò)該站點(diǎn)的線路
public?Site()
{
super();
}
public?Site(Integer?id,?String?name)
{
super();
this.id?=?id;
this.name?=?name;
this.list?=?new?ArrayListRoute();
}
public?Integer?getId()
{
return?id;
}
public?void?setId(Integer?id)
{
this.id?=?id;
}
public?String?getName()
{
return?name;
}
public?void?setName(String?name)
{
this.name?=?name;
}
public?ListRoute?getList()
{
return?list;
}
public?void?setList(ListRoute?list)
{
this.list?=?list;
}
//?添加線路
public?boolean?addRoute(Route?route)
{
return?this.getList().add(route);
}
//?刪除線路
public?boolean?removeRoute(Route?route)
{
return?this.getList().remove(route);
}
@Override
public?String?toString()
{
return?name;
}
@Override
public?boolean?equals(Object?obj)
{
if?(obj?instanceof?Site)
{
Site?s?=?(Site)?obj;
return?this.id?==?s.getId()??this.name.equals(s.getName());
}
return?false;
}
}
//線路類(lèi)
package?transit;
import?java.util.ArrayList;
import?java.util.Date;
import?java.util.List;
public?class?Route
{
private?Integer?id;?//?給每個(gè)線路分配一個(gè)ID
private?String?name;?//?線路名稱(chēng)
private?ListSite?list;?//?線路所包含的站點(diǎn)
private?Date?startDate;?//?發(fā)班時(shí)間,從首站點(diǎn)算起
private?Date?endDate;?//?收班時(shí)間,從首站點(diǎn)算起
public?Route()
{
super();
}
public?Route(Integer?id,?String?name,?Date?startDate,?Date?endDate)
{
super();
this.id?=?id;
this.name?=?name;
this.startDate?=?startDate;
this.endDate?=?endDate;
this.list?=?new?ArrayListSite();
}
public?Integer?getId()
{
return?id;
}
public?void?setId(Integer?id)
{
this.id?=?id;
}
public?String?getName()
{
return?name;
}
public?void?setName(String?name)
{
this.name?=?name;
}
public?ListSite?getList()
{
return?list;
}
public?void?setList(ListSite?list)
{
this.list?=?list;
}
public?Date?getStartDate()
{
return?startDate;
}
public?void?setStartDate(Date?startDate)
{
this.startDate?=?startDate;
}
public?Date?getEndDate()
{
return?endDate;
}
public?void?setEndDate(Date?endDate)
{
this.endDate?=?endDate;
}
public?boolean?isHasThisSite(Site?site)
{
for?(Site?l_site?:?this.getList())
{
if?(l_site.equals(site))
{
return?true;
}
}
return?false;
}
//?添加站點(diǎn),成功返回true
public?boolean?addSite(Site?site)
{
return?this.getList().add(site);
}
//?移除站點(diǎn),成功返回true
public?boolean?removeSite(Site?site)
{
return?this.getList().remove(site);
}
@Override
public?String?toString()
{
return?name;
}
}
//公交系統(tǒng)類(lèi)
package?transit;
import?java.util.ArrayList;
import?java.util.List;
public?class?TransitSystem
{
/**
*?1)增加、修改、刪除一個(gè)條公交線路信息。
*?2)增加、修改、刪除公交站點(diǎn)信息。
*?3)按條件顯示公交線路信息(條件有按線路名稱(chēng)、途經(jīng)車(chē)站等)。
*/
private?ListRoute?routeList?;??//系統(tǒng)所管理的線路
private?ListSite?siteList;??//系統(tǒng)所管理的站點(diǎn)
public?TransitSystem(){
routeList?=?new?ArrayListRoute();
siteList?=?new?ArrayListSite();
}
//增加一條線路
public?void?addRoute(Route?route){
if(!routeList.add(route)){
throw?new?RuntimeException("系統(tǒng)中已存在該線路");
}
}
//修改一條線路
public?void?updateRoute(Route?route){
//根據(jù)route?的id?獲取已存在系統(tǒng)中的route
Route?l_route?=?getRoute(route.getId());
if(l_route!=null){
//注入值
l_route.setName(route.getName());
l_route.setList(route.getList());
l_route.setStartDate(route.getStartDate());
l_route.setEndDate(route.getEndDate());
}else{
throw?new?RuntimeException("線路id不匹配,無(wú)法修改");
}
}
//獲取該系統(tǒng)中的線路,根據(jù)id獲取
public?Route?getRoute(Integer?id){
Route?route2?=?null;
for?(Route?route?:?this.getRouteList())
{
if(route.getId().equals(id)){
route2?=?route;
}
}
return?route2;
}
//刪除一條線路,根據(jù)對(duì)象刪除
public?void?removeRoute(Route?route){
if(!this.getRouteList().remove(route)){
throw?new?RuntimeException(route.getId()+"線路不存在");
}
}
//增加一條公交站點(diǎn)
public?void?addSite(Site?site){
if(!this.siteList.add(site)){
throw?new?RuntimeException(site.getId()+"站點(diǎn)已存在");
}
}
//刪除一條公交站點(diǎn)
public?void?removeSite(Site?site){
if(!this.getSiteList().remove(site)){
throw?new?RuntimeException(site.getId()+"站點(diǎn)不存在");
}
}
//修改一條公交站點(diǎn)
public?void?updateSite(Site?site){
//根據(jù)route?的id?獲取已存在系統(tǒng)中的route
Site?l_site?=?getSite(site.getId());
if(l_site!=null){
//注入值
l_site.setName(site.getName());
l_site.setList(site.getList());
}else{
throw?new?RuntimeException("站點(diǎn)id不匹配,無(wú)法修改");
}
}
//獲取該系統(tǒng)中的公交站點(diǎn),根據(jù)id獲取
public?Site?getSite(Integer?id){
Site?site2?=?null;
for?(Site?site?:?this.getSiteList())
{
if(site.getId().equals(id)){
site2?=?site;
}
}
return?site2;
}
//按線路名稱(chēng)查詢公交線路信息
public?Route?getRouteByName(String?name){
for?(Route?route?:?this.getRouteList())
{
if(route.getName().equals(name)){
return?route;
}
}
return?null;
}
//根據(jù)途經(jīng)車(chē)站查詢公交線路
public?ListRoute?getRouteBySite(Site?site){
return?site.getList();
}
public?ListRoute?getRouteList()
{
return?routeList;
}
public?void?setRouteList(ListRoute?routeList)
{
this.routeList?=?routeList;
}
public?ListSite?getSiteList()
{
return?siteList;
}
public?void?setSiteList(ListSite?siteList)
{
this.siteList?=?siteList;
}
}
//測(cè)試類(lèi)
package?transit;
import?java.text.ParseException;
import?java.text.SimpleDateFormat;
import?java.util.Date;
import?java.util.List;
import?java.util.Random;
public?class?_Test
{
public?static?void?main(String[]?args)?throws?ParseException
{
TransitSystem?system?=?new?TransitSystem();
SimpleDateFormat?format?=?new?SimpleDateFormat("hh:MM");
Date?startDate?=?format.parse("07:30");
Date?endDate?=?format.parse("22:30");
//?向系統(tǒng)中添加10條線路,20個(gè)站點(diǎn)
for?(int?i?=?0;?i??20;?i++)
{
if?(i??10)
{
system.addRoute(new?Route(i,?"線路"?+?i,?startDate,?endDate));
}
system.addSite(new?Site(i,?"站點(diǎn)"?+?i));
}
ListSite?siteList?=?system.getSiteList();
//?為系統(tǒng)中的站點(diǎn)添加線路
for?(Route?route?:?system.getRouteList())
{
//?每條線路?隨機(jī)添加N個(gè)站點(diǎn)
int?n?=?new?Random().nextInt(siteList.size());
for?(int?i?=?0;?i??n;?i++)
{
//?每個(gè)站點(diǎn)也是隨機(jī),如重復(fù),則添加失敗
int?x?=?new?Random().nextInt(siteList.size());
if?(!route.isHasThisSite(siteList.get(x)))
{
route.addSite(siteList.get(x));
//?同時(shí)該站點(diǎn)也添加該線路
siteList.get(x).addRoute(route);
}
}
}
//?查詢所有的線路所包含的站點(diǎn)
for?(Route?route?:?system.getRouteList())
{
System.out
.println(route.getName()?+?"?:對(duì)應(yīng)的站點(diǎn)集合:"?+?route.getList());
}
//?查詢所有的站點(diǎn)對(duì)應(yīng)的線路
for?(Site?site?:?system.getSiteList())
{
System.out.println("站點(diǎn)"?+?site.getName()?+?"?:對(duì)應(yīng)的線路集合:?"
+?site.getList());
}
}
}
用java怎么寫(xiě)一個(gè)簡(jiǎn)單的公交 站站 查詢功能,只須用mvc就行 數(shù)據(jù)庫(kù)用mysql
先完成直達(dá)的吧.
兩張表(一對(duì)多的關(guān)系):
表一:公交線路表
id, 線路(就是第幾路車(chē)的意思)
表二:站點(diǎn)表或者路線表
id, 表一的id(就是外鍵),站點(diǎn)名,順序
站站查詢的時(shí)候, 查表二, group by 表一的id,就能確定線路, 再對(duì)照表一就能找到線路名了.
當(dāng)然如果是交作業(yè)的話, 兩張表夠了; 想更專(zhuān)業(yè)點(diǎn)就用3張表(多對(duì)多);
在就是換乘了.
這個(gè)比較復(fù)雜, 會(huì)涉及到一些算法, 要看你的切入點(diǎn)是什么了.
比如總時(shí)間, 換乘次數(shù), 總路程等等,都有不同的設(shè)計(jì)方法.
此為個(gè)人意見(jiàn),僅供參考!
網(wǎng)頁(yè)名稱(chēng):公交路線查詢java代碼 java公交車(chē)
網(wǎng)頁(yè)URL:http://www.dlmjj.cn/article/docgiod.html