孫延維,張 紅
(湖北第二師范學(xué)院 計(jì)算機(jī)學(xué)院, 武漢 430205)
?
基于Android的校園拼車(chē)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
孫延維,張 紅
(湖北第二師范學(xué)院 計(jì)算機(jī)學(xué)院, 武漢 430205)
對(duì)于中國(guó)的大多數(shù)家庭來(lái)說(shuō),接送孩子上下學(xué)是一個(gè)麻煩的過(guò)程,且上下學(xué)時(shí)間正是上下班高峰,過(guò)多的私家車(chē)出行給交通增加不少壓力,更不用說(shuō),很多上班族家長(zhǎng)根本就沒(méi)有時(shí)間去接送孩子?;贏ndroid的校園拼車(chē)系統(tǒng)的產(chǎn)生正是為解決這些問(wèn)題,學(xué)生能夠通過(guò)它放心地坐上司機(jī)的車(chē),系統(tǒng)平臺(tái)上的司機(jī)均由學(xué)校學(xué)生家長(zhǎng)或老師擔(dān)當(dāng),并通了嚴(yán)格的實(shí)名制認(rèn)證,保險(xiǎn)齊全。系統(tǒng)中的司機(jī)團(tuán)體是由學(xué)生家長(zhǎng)或老師組成的,這一群體本身就很可靠,且系統(tǒng)的智能手機(jī)客戶端能夠?qū)崟r(shí)定位孩子。系統(tǒng)能夠?yàn)楹⒆犹峁┮环N智能,安全的上下學(xué)環(huán)境,保證學(xué)生的安全出行,解放家長(zhǎng),減緩交通壓力。
Android;校園;拼車(chē);實(shí)名認(rèn)證;安全
拼車(chē)是一種新的東西。在美國(guó),許多人會(huì)使用這樣的出租車(chē),拼車(chē)是鼓勵(lì)和支持。既有利于保護(hù)環(huán)境,有利于緩解城市交通擁堵,也有利于旅客。在北京、杭州、廣州等中國(guó)五十個(gè)城市開(kāi)辟了拼車(chē)服務(wù)和產(chǎn)品注冊(cè)服務(wù)。
國(guó)內(nèi)眾多家庭里都僅有一個(gè)孩子,而且現(xiàn)在大部分家庭都有私家車(chē),家長(zhǎng)對(duì)這些獨(dú)生子女又是百般呵護(hù),所以他們基本上都會(huì)在孩子上學(xué)和放學(xué)的時(shí)候去接送孩子,于是造成了學(xué)生上學(xué)和放學(xué)的時(shí)候?qū)W校附近的交通總是十分的擁堵,不但給周?chē)用竦某鲂袔?lái)了諸多不便,而且還耗費(fèi)了接送孩子的家長(zhǎng)大量的寶貴時(shí)間。在同一所學(xué)校上學(xué)的學(xué)生有許多都是住在相近的小區(qū)甚至是同一個(gè)小區(qū)內(nèi),這與拼車(chē)的概念不謀而合。
基于Android端的校園拼車(chē)系統(tǒng)可以解決在中小學(xué)上下學(xué)高峰期校門(mén)口交通異常擁堵的問(wèn)題,父母也要冒著違章風(fēng)險(xiǎn)接送小孩的難題,同時(shí)也可以解決孩子上下學(xué)和父母上下班的時(shí)間沖突問(wèn)題。系統(tǒng)如果能夠得到廣泛使用和推廣也可以減少汽車(chē)尾氣排放,為建設(shè)綠色城市作出一定的貢獻(xiàn)。
2.1 用戶角色及功能設(shè)計(jì)
用戶群:平臺(tái)主要有兩種用戶群,一種是“司機(jī)”,一種是“乘客”?!八緳C(jī)”由家長(zhǎng)或老師組成,“乘客”由學(xué)生組成。
系統(tǒng)后臺(tái)的功能:系統(tǒng)后臺(tái)有不同權(quán)限的管理機(jī)制,可分為系統(tǒng)管理員、校級(jí)管理員、年級(jí)管理員、班主任管理員和班級(jí)管理員。其中這幾種分類(lèi)所管理的人員均不同,也擁有不同的權(quán)限,以便更好地進(jìn)行管理。
系統(tǒng)主要的實(shí)現(xiàn)過(guò)程:
老師注冊(cè)過(guò)程:其中老師的注冊(cè)過(guò)程是通過(guò)對(duì)應(yīng)學(xué)校校級(jí)管理員在后臺(tái)進(jìn)行注冊(cè),這樣可以防止有人假冒老師信息進(jìn)行注冊(cè)。
家長(zhǎng)的注冊(cè)過(guò)程:家長(zhǎng)的注冊(cè)過(guò)程中需要填寫(xiě)家長(zhǎng)姓名,家長(zhǎng)的聯(lián)系的方式,家長(zhǎng)身份證的信息,家長(zhǎng)的照片等,用這些信息來(lái)進(jìn)行實(shí)名注冊(cè)盡量地去確保唯一性。
孩子的注冊(cè)過(guò)程:因?yàn)楹⒆邮呛蛯W(xué)校掛鉤的人,所以在這個(gè)過(guò)程,學(xué)校信息成為不可以缺少的一部分,其中注冊(cè)過(guò)程中還需要的信息包括,所在的班級(jí)、學(xué)號(hào)、性別等。
孩子和家長(zhǎng)的關(guān)聯(lián)過(guò)程:以孩子作為主體,家長(zhǎng)必須關(guān)聯(lián)孩子,老師通過(guò)班級(jí)和孩子進(jìn)行關(guān)聯(lián)。而在孩子關(guān)聯(lián)家長(zhǎng)的過(guò)程中,必須輸入不同的家長(zhǎng)的身份證號(hào)碼并選擇對(duì)應(yīng)的父母信息。然后由后臺(tái)的管理人員進(jìn)行核實(shí),如果信息全部正確就允許關(guān)聯(lián),確保關(guān)聯(lián)的正確性。
訂單生成過(guò)程: 司機(jī)可以在智能手機(jī)客戶端發(fā)送拼車(chē)請(qǐng)求,該請(qǐng)求會(huì)被發(fā)送至服務(wù)器并且所有客戶端均可以查看,任何有符合該拼車(chē)請(qǐng)求的“乘客”均可以通過(guò)搶單的方式預(yù)約。并且該訂單會(huì)提供司機(jī)的聯(lián)系方式,如果乘客搶單,則乘客的信息也會(huì)顯示在司機(jī)的客戶端,這樣方便司機(jī)與乘客的交流。
拼車(chē)的具體流程:首先司機(jī)下單,乘客搶到訂單。然后學(xué)生放學(xué)后按照訂單約定的時(shí)間地點(diǎn),到達(dá)指定位置。然后通過(guò)訂單提供的司機(jī)車(chē)牌型號(hào)等信息準(zhǔn)確找到指定車(chē)輛,然后乘車(chē)回家。
2.2 軟件結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)整體可以分為前端和后臺(tái)。系統(tǒng)后臺(tái)主要是學(xué)校負(fù)責(zé)管理和審核司機(jī)的資格,只有孩子在學(xué)校的家長(zhǎng)或是該校的老師才有資格申請(qǐng)成為司機(jī)。系統(tǒng)前端主要是移動(dòng)開(kāi)發(fā)端的客戶端軟件,主要提供注冊(cè)、訂單發(fā)布和實(shí)時(shí)定位查詢(xún)等功能,前端軟件結(jié)構(gòu)見(jiàn)圖1所示。
圖1 移動(dòng)端拼車(chē)系統(tǒng)的軟件結(jié)構(gòu)
2.3 軟件的界面設(shè)計(jì)
軟件界面是使用者對(duì)軟件的第一感覺(jué),界面的好壞直接影響整個(gè)軟件的體驗(yàn)感,校園拼車(chē)系統(tǒng)的軟件界面:
(1)選擇身份模塊
軟件用戶群體分為學(xué)生,家長(zhǎng),老師。在這個(gè)過(guò)程中需要先確定現(xiàn)在使用的用戶是怎么樣的一個(gè)身份,這樣才能為后來(lái)的登陸模塊做準(zhǔn)備。
(2)登陸模塊模塊
在登陸模塊中,無(wú)論是何種身份,都統(tǒng)一使用手機(jī)號(hào)碼和密碼來(lái)進(jìn)行登陸。在之前的注冊(cè)步驟中,選擇過(guò)身份,所以在這個(gè)模塊中會(huì)根據(jù)之前選擇的身份信息去查找這個(gè)模塊中是否有這樣匹配的手機(jī)號(hào)碼和密碼信息的存在,如果存在就登陸成功,不存在就登陸失敗。
(3)發(fā)布訂單模塊模塊
對(duì)于這個(gè)模塊首先需要知道訂單的起點(diǎn),訂單的終點(diǎn)以及訂單的時(shí)間。規(guī)定訂單的時(shí)間必須要大于手機(jī)當(dāng)前時(shí)間半個(gè)小時(shí),否則訂單的時(shí)間無(wú)效。無(wú)法發(fā)布訂單。
(4)接受訂單模塊
對(duì)于進(jìn)行了司機(jī)信息認(rèn)證的家長(zhǎng)或老師是可以接受訂單的。當(dāng)司機(jī)進(jìn)入現(xiàn)在存在的訂單界面并選擇訂單接受之后,客戶端就會(huì)發(fā)送信息到服務(wù)端將這個(gè)訂單和司機(jī)進(jìn)行關(guān)聯(lián),并提醒乘客她的訂單已經(jīng)被司機(jī)接受并附上司機(jī)電話等信息,同時(shí)乘客的信息也會(huì)推送給司機(jī),以便雙方取得聯(lián)系。
(5)家長(zhǎng)查看孩子所在地理位置信息模塊
為了保證拼車(chē)過(guò)程的安全有效,所以家長(zhǎng)可以查看正在拼車(chē)的孩子所在的地理位置信息,并可以查看整個(gè)的拼車(chē)狀態(tài),例如:拼車(chē)中,已下車(chē)。
(6)信息注冊(cè)模塊
根據(jù)需要的不同的信息填寫(xiě)之后就可以進(jìn)行注冊(cè)。
2.4 軟件的數(shù)據(jù)庫(kù)設(shè)計(jì)
為了保證軟件功能的正常運(yùn)行,應(yīng)該保存的數(shù)據(jù)信息有:
school表最為重要,是整個(gè)軟件數(shù)據(jù)庫(kù)的核心。其存放所有學(xué)??傮w人員概況包含學(xué)校管理員、權(quán)限信息、訂單等信息。
back_list表是后臺(tái)數(shù)據(jù)庫(kù)表,包含了所有后臺(tái)管理人員的個(gè)人信息、賬戶密碼及權(quán)限。
其余的表單分為下面幾大類(lèi),分別為:
(1)學(xué)校、班級(jí)信息表,用于存儲(chǔ)各個(gè)學(xué)校和班級(jí)信息。
(2)家長(zhǎng)及學(xué)校老師信息表,存儲(chǔ)學(xué)生家長(zhǎng)及學(xué)校管理員的信息。
(3)學(xué)生信息表,存儲(chǔ)使用本軟件的學(xué)生用戶信息。
(4)訂單信息表及家長(zhǎng)司機(jī)的表單,存儲(chǔ)正在使用本軟件的訂單及相關(guān)聯(lián)的信息。
(5)管理員登錄服務(wù)器首先查詢(xún)school表,對(duì)管理員身份進(jìn)行驗(yàn)證,通過(guò)school所提供的管理員信息在后臺(tái)數(shù)據(jù)back_list表中查詢(xún)管理員訪問(wèn)權(quán)限。
(6)老師及學(xué)生家長(zhǎng)以及家長(zhǎng)司機(jī)分別直接訪問(wèn)teacher_all、person、driver_info表進(jìn)行驗(yàn)證查詢(xún)、查詢(xún)、插入刪除等操作。
(7)學(xué)生登錄及注冊(cè)是直接訪問(wèn)學(xué)生表stu_all中的數(shù)據(jù)進(jìn)行進(jìn)一步操作。
(8)訂單生成及表單的查詢(xún)修改是根據(jù)學(xué)生個(gè)人操作在每個(gè)學(xué)校對(duì)應(yīng)的_order表單中進(jìn)行相關(guān)操作。
3.1 注冊(cè)登陸功能實(shí)現(xiàn)
對(duì)于不同角色的注冊(cè)和登陸功能,首先先選擇用戶的身份,見(jiàn)圖2,然后在對(duì)手機(jī)號(hào)和密碼進(jìn)行驗(yàn)證或登陸,效果見(jiàn)圖3和圖4。
圖2 選擇角色
圖3 注冊(cè)
圖4 登陸
如管理員登錄Servlet首先調(diào)用login方法,通過(guò)最底層的數(shù)據(jù)庫(kù)查詢(xún)請(qǐng)求進(jìn)行應(yīng)答返回。
代碼如下:
(1)登錄請(qǐng)求
public String login(HttpServletRequest req, HttpServletResponse resp)
{
try {
req.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("login");
Admin form = CommonUtils.toBean(req.getParameterMap(),Admin.class);
System.out.println("form"+form);
if(form.equals(null))
{
System.out.println("error");
return "index.jsp";
}
(2)底層調(diào)用查詢(xún)是否包含數(shù)據(jù):
public class AminDao {
private QueryRunner qr = new TxQueryRunner();
public Admin findPerson(Admin admin)throws SQLException
{
String sql = "select * from"+admin.getSchool().getBack_list()+" where name = ? and passwd = ?";
System.out.println(sql);
Admin nextAdmin =qr.query(sql, new BeanHandler
nextAdmin.setSchool_list(admin.getSchool_list());
nextAdmin.setSchool(admin.getSchool());
sql = "select * from "+admin.getSchool().getBanji();
System.out.println(sql);
List
List
nextAdmin.setBanji_list(banji_list);
sql = "select * from "+admin.getSchool().getForce_list();
System.out.println(sql);
maplist = qr.query(sql, new MapListHandler());
List
nextAdmin.setForce_list(forces);
nextAdmin.setSchool_name(admin.getSchool_name());
System.out.println(nextAdmin);
return nextAdmin;
}
3.2 訂單發(fā)布實(shí)現(xiàn)
訂單發(fā)布所需要的信息如下,如圖5所示:
圖5 發(fā)布訂單界面
3.3 訂單處理實(shí)現(xiàn)
同樣是通過(guò)Servlet服務(wù)調(diào)用底層操作讓服務(wù)器與數(shù)據(jù)庫(kù)進(jìn)行連接其效果代碼如下:
public class Rel_Temp_Service {
Rel_Temp_Dao order = new Rel_Temp_Dao();
public PageBean
{
System.out.println("PageBean");
try {
JdbcUtils.beginTransaction();
PageBean
JdbcUtils.commitTransaction();
return pb;
} catch (SQLException e) {
try {
JdbcUtils.rollbackTransaction();
}
catch (SQLException e1) {}
throw new RuntimeException(e);
}
}
本系統(tǒng)以學(xué)校為單位,每個(gè)學(xué)校有一個(gè)最高的負(fù)責(zé)人,該負(fù)責(zé)人(例如校長(zhǎng))管理后臺(tái)負(fù)責(zé)人賬號(hào)的創(chuàng)建與修改。每個(gè)班級(jí)也有一個(gè)負(fù)責(zé)人,負(fù)責(zé)管理學(xué)生與家長(zhǎng)的賬號(hào)信息。班級(jí)負(fù)責(zé)人也享有指定家長(zhǎng)會(huì)負(fù)責(zé)人的權(quán)利。
前臺(tái)用戶注冊(cè)的流程的分析:
用戶群:本系統(tǒng)的用戶主要分為三部分,分別是家長(zhǎng),孩子,司機(jī)(家長(zhǎng)的一種)。
數(shù)據(jù)庫(kù)表格:這三種用戶的注冊(cè)都需要跟數(shù)據(jù)庫(kù)聯(lián)系起來(lái),先簡(jiǎn)單介紹一下數(shù)據(jù)庫(kù);數(shù)據(jù)庫(kù)有三張表:家長(zhǎng)表,孩子表,家長(zhǎng)孩子之間的關(guān)聯(lián)表。
家長(zhǎng)注冊(cè):家長(zhǎng)注冊(cè)會(huì)要求輸入姓名,省份證號(hào),電話號(hào)碼等一系列信息,然后將該信息插入數(shù)據(jù)庫(kù)中的家長(zhǎng)表中。
司機(jī)注冊(cè):司機(jī)(有車(chē)家長(zhǎng))注冊(cè)的主要過(guò)程跟家長(zhǎng)一致,但是必須要添加一些司機(jī)的特有信息,例如:駕照,車(chē)牌號(hào),車(chē)子型號(hào)等一系列信息,然后將信息插入數(shù)據(jù)庫(kù)中家長(zhǎng)表中。
孩子注冊(cè):孩子注冊(cè)需要填寫(xiě)姓名,學(xué)校,班級(jí)等學(xué)生基本信息,然后數(shù)據(jù)被存入數(shù)據(jù)庫(kù)中的孩子表中;最重要的是家長(zhǎng)和孩子的關(guān)聯(lián)由孩子完成,孩子注冊(cè)之后手機(jī)客戶端有關(guān)聯(lián)家長(zhǎng)的選項(xiàng),點(diǎn)擊該選項(xiàng)就輸入要檢索的信息,例如家長(zhǎng)姓名。然后就可以在數(shù)據(jù)庫(kù)的家長(zhǎng)表中檢索出匹配的字段,孩子點(diǎn)擊“關(guān)聯(lián)”然后數(shù)據(jù)庫(kù)中的家長(zhǎng)孩子關(guān)聯(lián)表就會(huì)將這兩個(gè)字段的id綁定起來(lái)從而標(biāo)記出一家人。
用戶注冊(cè)信息認(rèn)證流程的分析
(1)真實(shí)信息的統(tǒng)計(jì):首先班級(jí)管理員將班級(jí)里的學(xué)生信息,以及各個(gè)學(xué)生的家長(zhǎng)信息統(tǒng)計(jì)起來(lái),形成一張表格。
(2)信息認(rèn)證過(guò)程:班級(jí)管理員通過(guò)后臺(tái)程序根據(jù)自己的班級(jí)名稱(chēng)檢索出數(shù)據(jù)庫(kù)中該班級(jí)的學(xué)生,然后通過(guò)數(shù)據(jù)庫(kù)中的關(guān)聯(lián)表找出學(xué)生的家長(zhǎng),然后將數(shù)據(jù)庫(kù)中的注冊(cè)信息,和統(tǒng)計(jì)收集起來(lái)的真實(shí)信息進(jìn)行人為比對(duì),如果信息匹配正確,則該用戶注冊(cè)通過(guò)認(rèn)證。
訂單匹配
司機(jī)發(fā)布拼車(chē)訂單,訂單中包含的大致信息有:司機(jī)接送孩子上下學(xué)的大致時(shí)間,車(chē)子運(yùn)行的線路和空余的座位數(shù)。乘客在發(fā)布需求訂單后,系統(tǒng)會(huì)根據(jù)乘客訂單中的信息進(jìn)行訂單撮合,訂單的撮合以線路一致,司機(jī)發(fā)單的時(shí)間以及孩子所在的年級(jí)相近為優(yōu)先順序進(jìn)行撮合。然后將符合要求的司機(jī)信息反饋給乘客,乘客再根據(jù)自己的意愿選擇符合要求的訂單。當(dāng)乘客選擇所乘車(chē)輛后,乘客的信息就會(huì)反饋給相應(yīng)的司機(jī)。此時(shí)表明訂單撮合成功,當(dāng)然司機(jī)是有取消訂單的權(quán)利,此時(shí)系統(tǒng)會(huì)通知乘客訂單已經(jīng)取消,讓乘客再選擇其他的司機(jī)訂單。訂單匹配見(jiàn)圖8:
圖8 訂單匹配流程圖
本系統(tǒng)軟件面向的人群是中小學(xué)生、老師以及學(xué)生家長(zhǎng),為了滿足這部分特殊人群的需求,克服現(xiàn)有的拼車(chē)軟件的不足,提供了一種通過(guò)學(xué)校認(rèn)證老師、學(xué)生及其家長(zhǎng)身份的拼車(chē)軟件系統(tǒng),成功地解決了司機(jī)實(shí)名制問(wèn)題,并且在孩子上車(chē)之
后家長(zhǎng)能夠全程搜索定位到孩子的位置,這使得家長(zhǎng)十分放心。軟件通過(guò)乘客和司機(jī)提前預(yù)約和搶單來(lái)讓盡可能多的學(xué)生能夠通過(guò)此拼車(chē)軟件安全到家,而不用自己的父母接送。本校園手機(jī)拼車(chē)系統(tǒng)有很大的發(fā)展前景,解決在中小學(xué)上下學(xué)高峰期校門(mén)口交通異常擁堵、父母要冒著違章的風(fēng)險(xiǎn)接送小孩的難題,與許多父母因上下班時(shí)間與孩子上下學(xué)時(shí)間沖突而帶來(lái)的困擾拼車(chē)希望也可以大大的減少道路上的私家車(chē)數(shù)量,減少汽車(chē)尾氣排放,為建設(shè)綠化城市作出了一定的貢獻(xiàn)。在互聯(lián)網(wǎng)發(fā)展的今天,在國(guó)內(nèi)拼車(chē)已經(jīng)成為一種習(xí)慣的局勢(shì)下,校園手機(jī)拼車(chē)以其可靠性,安全性,快捷性一定能夠得到更多人們的親睞。
[1]唐黎標(biāo).國(guó)外“拼車(chē)”掃描[J].交通與運(yùn)輸,2011,27(1):68-69.
[2]底潔.城市出行新格局[J].IT經(jīng)理世界,2015,(8):38-41.
[3]譚家美,朱麗葉,南香蘭,等.網(wǎng)絡(luò)拼車(chē)成功的因素分析[J].上海海事大學(xué)學(xué)報(bào),2013,34(2):89~94.
[4]周桂良,黃凱,許琳,等.基于定時(shí)、定線路的上下班拼車(chē)方案設(shè)計(jì)與實(shí)現(xiàn)[J].重慶工商大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,31(12):54~58.
[5]張慶賀,韓勇,張小壘,等.基于Web服務(wù)移動(dòng)拼車(chē)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].地理空間信息,2013,11(2):85~87.
[6]周桂良.私家車(chē)拼車(chē)存在的問(wèn)題及解決方法[J].交通標(biāo)準(zhǔn)化,2013,(23):4~7.
[7]晉江月.拼車(chē)的經(jīng)濟(jì)學(xué)分析[J].科技信息,2006,(S4):97.
[8]戴云琪.“拼車(chē)”行為的問(wèn)題研究[J].市場(chǎng)周刊(理論研究),2007,(11):94~96.
The Design and Implementation of Campus Carpool System Implemented on the Android System
SUN Yan-wei, ZHANG Hong
(School of Computer Science,Hubei University of Education,Wuhan 430205,China)
For most Chinese families, to shuttle children to learn is a cumbersome process, and school time is rush so that many private cars travel to traffic and increase a lot of pressure, and even worse many office worker parents simply don’t have time to pick up their children. The campus carpool system is to solve the previous problem: students can safely sit on the car with drivers from the system platform. They are all parents or teachers from the school and pass the rigorous real name system certification with perfect insurance. The driver groups are composed of students’ parents or teachers which are very reliable. What’s more, the system’s smart phone client can also locate the child in real time. Therefore, the system can provide a smart, safe up and down learning environment, through it, students can safely travel, parents can be liberated, and traffic pressure is alleviated.
Android;schoolyard;carpool;real name authentication;security
2016-06-10
2015年地方高校國(guó)家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(201514099010)
孫延維(1979-),男,湖北潛江人,講師,碩士,研究方向數(shù)據(jù)挖掘、移動(dòng)開(kāi)發(fā)。
TP31
A
1674-344X(2016)08-0045-05