專(zhuān)業(yè)調(diào)研實(shí)習(xí)設(shè)計(jì)報(bào)告_第1頁(yè)
專(zhuān)業(yè)調(diào)研實(shí)習(xí)設(shè)計(jì)報(bào)告_第2頁(yè)
專(zhuān)業(yè)調(diào)研實(shí)習(xí)設(shè)計(jì)報(bào)告_第3頁(yè)
專(zhuān)業(yè)調(diào)研實(shí)習(xí)設(shè)計(jì)報(bào)告_第4頁(yè)
專(zhuān)業(yè)調(diào)研實(shí)習(xí)設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

專(zhuān)業(yè)調(diào)研實(shí)習(xí)設(shè)計(jì)報(bào)告

課題名稱(chēng):公交車(chē)系統(tǒng)

小組成員:劉暢降丹丹賈霄會(huì)黃思敏

指導(dǎo)教師:

引言

公交車(chē)查詢(xún)管理系統(tǒng)是用計(jì)算機(jī)管理公交車(chē)路線(xiàn)信息的一種計(jì)算機(jī)應(yīng)用技

術(shù)的創(chuàng)新,在計(jì)算機(jī)還未普及之前公交車(chē)查詢(xún)管理都是由工作人員通過(guò)人工查詢(xún)

的方式來(lái)操作的.現(xiàn)在一般的公交車(chē)查詢(xún)都采用計(jì)算機(jī)智能化管理,采用計(jì)算機(jī)

作為工具的實(shí)用的計(jì)算機(jī)公交車(chē)查詢(xún)管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其

開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于

前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的數(shù)據(jù)庫(kù)。而對(duì)于后者則

要求應(yīng)用程序功能完備,易使用等特點(diǎn)。系統(tǒng)引用了Rails這一具有強(qiáng)大功能、

用于Web開(kāi)發(fā)的框架。Rails在系統(tǒng)重處于操作系統(tǒng)內(nèi)核與應(yīng)用程序之間,使得

應(yīng)用程序可以更好地利用操作系統(tǒng)提供的功能,并使得應(yīng)用程序的開(kāi)發(fā)更快、更

簡(jiǎn)單。本系統(tǒng)采用B/S模式,方便用戶(hù)查詢(xún)公交信息。本系統(tǒng)頁(yè)面簡(jiǎn)潔大方,實(shí)

用性強(qiáng)。

第一章系統(tǒng)介紹

1.1開(kāi)發(fā)背景

如今,隨著社會(huì)經(jīng)濟(jì)的不斷發(fā)展,提升,整個(gè)社會(huì)各個(gè)方面都得到了很大的

改變。尤其是人們的生活方面,較以前得到了很大的改善,現(xiàn)在人們的生活方式

已經(jīng)和以前很不一樣了。以前,大多數(shù)人除了上班之外,便是在家,幾乎是一種

兩點(diǎn)一線(xiàn)的生活方式,很少再經(jīng)常去一些其他地方,而且那時(shí)的交通業(yè)不很發(fā)達(dá)。

而現(xiàn)在,整個(gè)社會(huì)已經(jīng)進(jìn)入了信息化的時(shí)代,各個(gè)地域的信息交流也十分頻繁,

交通也較之前發(fā)達(dá)多了,人們無(wú)論是在工作還是生活中,都不能只是呆在屬于自

己的小圈子里了,人們會(huì)經(jīng)常地去一些除去工作所在地的其他地方,而這些地點(diǎn)

并不是唯一的,更不是固定的,充滿(mǎn)了多樣性和不確定性。

在這種情況下,人們的如何正確出行便成了一個(gè)急需解決的問(wèn)題。以現(xiàn)在的

社會(huì)發(fā)展?fàn)顩r來(lái)看,人們?cè)诓⒎情L(zhǎng)途出行之類(lèi)的活動(dòng)中,最重要的一項(xiàng)交通工具

就是公交車(chē)。而且目前需要乘坐公交車(chē)的人群也越來(lái)越多,并沒(méi)有絲毫下降的趨

勢(shì)。也正是基于這種需要,就拿石家莊來(lái)說(shuō),十年前時(shí),石家莊的公交車(chē)數(shù)量是

比較少的,路數(shù)也不多,但是近幾年,石家莊市發(fā)生了可以說(shuō)是很大的變化,樓

房增多了,也增高了,人口數(shù)量也加大了?,F(xiàn)在走在石家莊的大街上和十年前走

在石家莊大街上給人另一個(gè)更明顯的變化就是石家莊市的公交車(chē)數(shù)量大大超過(guò)

了以前,公交車(chē)的路數(shù)和數(shù)量,都是之前的兒倍之多,而且這種趨勢(shì)仍在上升。

公交車(chē)的路數(shù)增多了,公交車(chē)的路數(shù)增多了,坐車(chē)的人數(shù)也增多了,站臺(tái)自

然也增多了。這樣也就帶來(lái)了一系列的問(wèn)題,由于以前就那么幾路車(chē),人們一般

也就乘坐那幾路車(chē)或者干脆不坐公交車(chē),而現(xiàn)在,面對(duì)這么多的路數(shù),這么多的

站點(diǎn),人們不可能把這些所有的路數(shù)和站點(diǎn)都記下來(lái),經(jīng)常去的地方和經(jīng)常做的

路數(shù)會(huì)記住,但是現(xiàn)在的社會(huì)交流要比以前多,人們會(huì)比較多地去一些平時(shí)并不

常去的各種地方,而且都比較隨機(jī),所以不可能把這些地方都記住。所以基于這

種情況,我們小組準(zhǔn)備制作一套公交線(xiàn)路查詢(xún)系統(tǒng),以用來(lái)為廣大群眾提供

方便。在這里,人們就無(wú)需為了去一些平時(shí)不常去的地方,還有平時(shí)不常坐的線(xiàn)

路而背那些路線(xiàn)和站點(diǎn)了。這樣就為廣大群眾的出行提供了方便。

前面已經(jīng)說(shuō)過(guò),由于現(xiàn)在社會(huì)的發(fā)展,經(jīng)濟(jì)相對(duì)前些年有了很大的發(fā)展,人

們的生活水平也相對(duì)與前些年提高了很多,現(xiàn)在銀川市的家庭,有一臺(tái)電腦也已

經(jīng)不是什么稀罕事了,甚至很多家庭有不止一臺(tái)電腦。所以我們這套系統(tǒng)主要是

基于在電腦上使用的,我們這套系統(tǒng)是單機(jī)版,無(wú)需上網(wǎng)便可使用,當(dāng)人們不知

道或不清楚要去的地方該怎么走時(shí),或不知道都該做哪路車(chē)時(shí),該怎么坐車(chē)時(shí)。

也不必去找人問(wèn),完全可以用我們的這套系統(tǒng)查詢(xún)到他所想知道的信息。

在對(duì)多位同學(xué),朋友的調(diào)訪(fǎng)中,當(dāng)我們提出這一軟件的大致構(gòu)想時(shí),他們都

感到這是一個(gè)很不錯(cuò)的想法,是比較實(shí)用的,也很樂(lè)意擁有這么一套實(shí)用的軟件,

以便幫助他們?cè)诔鲂袝r(shí)更加方便省力?;谶@種情況的反饋,我們還是比較相信

這套軟件是有一定的市場(chǎng)價(jià)值的。

公交車(chē)查詢(xún)系統(tǒng)主要是方便用戶(hù)查詢(xún)公交信息,是面向所有的用戶(hù)。因?yàn)殡S

著經(jīng)濟(jì)的發(fā)展,公交信息也變的復(fù)雜,有了本系統(tǒng),用戶(hù)可以根據(jù)需要輸入相應(yīng)

的信息。如知道車(chē)次,就可以選擇車(chē)次就能查詢(xún)公交信息,同樣輸入站點(diǎn)就可以

查詢(xún)出所有經(jīng)過(guò)此站點(diǎn)的公交信息,此外用戶(hù)輸入兩站點(diǎn)名也可以查詢(xún)到滿(mǎn)足條

件的公交信息。這樣以來(lái)可以方便用戶(hù)查詢(xún)公交信息。是個(gè)不錯(cuò)的幫手。對(duì)于線(xiàn)

路,車(chē)次等情況的改變,管理員會(huì)及時(shí)修改,不會(huì)影響系統(tǒng)功能。

1.2功能介紹

在本套系統(tǒng)中,我們所實(shí)現(xiàn)的基本功能目標(biāo)有三大類(lèi):

(1)實(shí)現(xiàn)對(duì)公交線(xiàn)路的查詢(xún)

(2)實(shí)現(xiàn)對(duì)公交站點(diǎn)的查詢(xún)

(3)實(shí)現(xiàn)對(duì)公交兩站點(diǎn)之間換乘方案的查詢(xún)和建議

上述三大功能將在下文的功能需求中進(jìn)行詳細(xì)的闡述,在實(shí)現(xiàn)上述三大功能

的基礎(chǔ)上,我們還本著人性化的宗旨,把這套軟件的界面,使用等做得簡(jiǎn)單化,

能夠讓用戶(hù)比較快的掌握如何使用我們這套系統(tǒng)。其功能模塊圖如下:

圖1

其整體結(jié)構(gòu)圖如下:

圖2

1.3開(kāi)發(fā)環(huán)境

MacOSX10.0.7

Ruby1.9.3

Rails3.2.3

SumlimeText2

Coda2

1.4系統(tǒng)優(yōu)點(diǎn)

1、本系統(tǒng)頁(yè)面簡(jiǎn)潔,大方。

2、使用性強(qiáng),查詢(xún)方便。

3、配置簡(jiǎn)單,完全免費(fèi)。

第二章需求分析

2.1功能需求

隨著經(jīng)濟(jì)的迅速發(fā)展,城市公交線(xiàn)路也隨著增多,用戶(hù)上網(wǎng)查詢(xún)有時(shí)也很不

便。而本系統(tǒng)是建立在B/S模式上的。有了此系統(tǒng)就可以方便查詢(xún),查詢(xún)信息很

準(zhǔn)確,節(jié)約了時(shí)間。

通過(guò)對(duì)該系統(tǒng)的需求分析,該系統(tǒng)擁有兩種用戶(hù)角色,分別為管理員和用戶(hù)。

對(duì)于不同的角色有不同的權(quán)限。

其中用戶(hù)的功能需求分析如下:

1、線(xiàn)路查詢(xún):輸入某一路公交車(chē)結(jié)果顯示此車(chē)的詳細(xì)路線(xiàn)信息以及首末班

車(chē)時(shí)間。

2、站點(diǎn)查詢(xún):輸入某一站點(diǎn),結(jié)果顯示經(jīng)過(guò)此站的所有公交車(chē)。

3、站站查詢(xún):輸入起始站和終點(diǎn)站,結(jié)果顯示可行方案,其中包括用時(shí)最

少換乘方案以及換乘最少方案。

管理員的功能需求分析如下:

1、對(duì)公交車(chē)以及車(chē)站信息的添加、修改、刪除。

2、線(xiàn)路查詢(xún):輸入某一路公交車(chē)結(jié)果顯示此車(chē)的詳細(xì)路線(xiàn)信息以及首末班

車(chē)時(shí)間。

3、站點(diǎn)查詢(xún):輸入某一站點(diǎn),結(jié)果顯示經(jīng)過(guò)此站的所有公交車(chē)。

4、站站查詢(xún):輸入起始站和終點(diǎn)站,結(jié)果顯示可行方案,其中包括用時(shí)最

少換乘方案以及換乘最少方案。

2.2系統(tǒng)流程圖

圖3

2.3管理員登錄流程

管理員登錄是需要輸入用戶(hù)名和密碼。如果登錄成功后即可對(duì)其操作。具

體如下圖:

圖4

第三章概要設(shè)計(jì)

3.1設(shè)想供選擇的方案

方案1:就查詢(xún)系統(tǒng)而言,用戶(hù)可以選擇車(chē)次,輸入站點(diǎn)名和兩站名來(lái)查詢(xún),

這三種查詢(xún)方式是可以滿(mǎn)足所有用戶(hù)需要查詢(xún)公交信息的。在主頁(yè)面中已經(jīng)列舉

了所有的公交線(xiàn)路,車(chē)次等情況。用戶(hù)直接瀏覽查閱信息。當(dāng)然用戶(hù)可以通過(guò)下

拉列表框選擇車(chē)次查閱信息,同樣用戶(hù)在站點(diǎn)文本框中輸入要查詢(xún)的站點(diǎn)名,也

可以輸入兩站點(diǎn)名。這樣所要查詢(xún)的站點(diǎn)名和車(chē)次以及該這次經(jīng)過(guò)其他站點(diǎn)的信

息。這種方案覆蓋面廣,滿(mǎn)足廣大用戶(hù)查詢(xún)需求。就后臺(tái)管理系統(tǒng)而言,公交查

詢(xún)系統(tǒng)的數(shù)據(jù)是很多了,而且公交線(xiàn)路也會(huì)發(fā)生變化。所以需要后臺(tái)管理這些信

息。當(dāng)合法的管理員登錄成功后就可以修改公交線(xiàn)路等信息,也可以修改自己的

密碼。這樣能保持正常的公交查詢(xún)系統(tǒng)的更新。

方案2:在查詢(xún)系統(tǒng)中,我們也可以為了簡(jiǎn)便不列舉公交線(xiàn)路的所有信息,

讓用戶(hù)根據(jù)需要來(lái)查詢(xún)信息。也可以在主頁(yè)面中僅包含查詢(xún)信息,后臺(tái)管理是作

為掩藏的頁(yè)面。只有管理員知道了,這樣也為了防止不法用戶(hù)破壞公交信.息。

3.2選擇合理的方案

在我們?cè)O(shè)計(jì)本系統(tǒng)前我們也去上網(wǎng)查閱了其他公交線(xiàn)路信息。發(fā)現(xiàn)公交信息

查詢(xún)時(shí)主要是通過(guò)車(chē)次,站點(diǎn),兩站來(lái)查詢(xún)。這三種查詢(xún)模式已經(jīng)能讓用戶(hù)查閱

所以的信息。之后的后臺(tái)管理頁(yè)面也是需要驗(yàn)證用戶(hù)名和密碼的。對(duì)于我們這些

瀏覽信息的用戶(hù)來(lái)說(shuō)是不能進(jìn)入的。之后我們相互討論,覺(jué)得主要的模式就是這

樣,有查詢(xún),有后臺(tái)管理。頁(yè)面顏色也很簡(jiǎn)單,大方。避免花哨,畢竟只是一個(gè)

查詢(xún)系統(tǒng)網(wǎng)站。

3.3功能分解

1、查詢(xún):

A

點(diǎn)

詢(xún)

直接通過(guò)頁(yè)面直接

查看所有公交信息車(chē)次查詢(xún)

查詢(xún)

詢(xún)

圖5

2、后臺(tái)管理:

退出用戶(hù)帳號(hào)管理

后臺(tái)管理

添加新管理員

線(xiàn)線(xiàn)

路路

管添

理加

圖6

E-R圖

第四章詳細(xì)設(shè)計(jì)

4.1結(jié)構(gòu)程序設(shè)計(jì)

主要算法代碼如下:

#encoding:utf-8

classStation

includeMongoid::Document

field:name,type:String

field:longitude,type:String

field:latitude,type:String

has_and_belongs_to_many:the_near_stations,class_name:"Station”

has_and_belongs_to_many:buses

defself,distance(si,sr)

#a=si.longitude.to_i-sr.longitude.to_i

b=si.latitude.to_i-sr.latitude.to_i

returnMath,sqrt((a*a-b*b).abs)

End

defself.is_the_same(si,sr)

d=self.distance(sl,sr)

return{status:true}ifsi==sr

return{status:"near”,distance:si.distance(sr)}if

si.the_near_stations.member?(sr)

ifd<=80

si.the_near_stations?sr

sr.the_near_stations?si

#sl.the_near_stations,uniq!

#sr.the_near_stations,uniq!

si.save

sr.save

else

^Station.how_to(sl,sr)

end

End

#defself.how_to(origin,destination)

#iforigin,buses,stations,include?destination

#end

#origin.all_bus_passed_stations[,zstations/z]&

destination,alIbuspassedstations["stations”]

##list=origin.all_passed_stations&

destination.all_passed_stations

##iflist,empty?

##origin.all_passed_stations.eachdo|o|

##is_the_sameorigin.destination

##end

##else

##return

##end

##returnorigin,destination,list

#end

defself.how_to_go(origin,destination)

can={}

can[:nonstop_buses]=origin,buses&destination,buses

#can[:transfer]=[]

#transfer_stations=origin.all_bus_passed_stations&

destination,allbus_passedstations

#transfer_stations.eachdo|s|

#can[:transfer]?{stations:s,

#from_buses:(s.buses&origin.near_buses),

#to_buses:(s.buses&destination.near_buses)

#}

#end

returncan

end

############################

defnear_stations

ns=[self]+the_near_stations

returnns

end

defnear_buses

nb=口

near_stations.eachdo|e|

nb+=e.buses

end

returnnb.uniq

End

defall_bus_passed_stations()

aps=[]

near_buses.eachdo|eI

aps+=e.stations

end

returnaps.uniq

End

defhowtogo(destination)

can={}

can[:transfer]=[]

can[:nonstopbuses]二[]

can[:mu11i_transfer]=[]

can[:nonstopbuses]=buses&destination,buses

transfer_stations=all_bus_passed_stations&

destination,allbuspassedstations

transfer_stations,eachdo|s|

can[:transfer]?{stations:s,

frombuses:(s.buses&nearbuses),

tobuses:(s.buses&destination,nearbuses)

)

endunlesstransfer_stations.empty?

ifcan[:transfer],empty?

all_bus_passed_stations.eachdo|os|

destination,allbuspassedstations,eachdo|ds|

〃〃

P-----------------------------------------------------

h二Station.how_to_go(os,ds)

unlessh[:nonstopbuses],empty?

can[:mu11i_transfer]?{from_buses:buses&os.buses,

from_station:os,

to_station:ds,

to_buses:destination,buses&

ds.buses,

how_to_go:h}

end

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論