基于Android的校园拼车系统设计与实现

2016-11-17 11:11孙延维
湖北第二师范学院学报 2016年8期
关键词:拼车管理员订单

孙延维,张 红

(湖北第二师范学院 计算机学院, 武汉 430205)



基于Android的校园拼车系统设计与实现

孙延维,张 红

(湖北第二师范学院 计算机学院, 武汉 430205)

对于中国的大多数家庭来说,接送孩子上下学是一个麻烦的过程,且上下学时间正是上下班高峰,过多的私家车出行给交通增加不少压力,更不用说,很多上班族家长根本就没有时间去接送孩子。基于Android的校园拼车系统的产生正是为解决这些问题,学生能够通过它放心地坐上司机的车,系统平台上的司机均由学校学生家长或老师担当,并通了严格的实名制认证,保险齐全。系统中的司机团体是由学生家长或老师组成的,这一群体本身就很可靠,且系统的智能手机客户端能够实时定位孩子。系统能够为孩子提供一种智能,安全的上下学环境,保证学生的安全出行,解放家长,减缓交通压力。

Android;校园;拼车;实名认证;安全

1 引言

拼车是一种新的东西。在美国,许多人会使用这样的出租车,拼车是鼓励和支持。既有利于保护环境,有利于缓解城市交通拥堵,也有利于旅客。在北京、杭州、广州等中国五十个城市开辟了拼车服务和产品注册服务。

国内众多家庭里都仅有一个孩子,而且现在大部分家庭都有私家车,家长对这些独生子女又是百般呵护,所以他们基本上都会在孩子上学和放学的时候去接送孩子,于是造成了学生上学和放学的时候学校附近的交通总是十分的拥堵,不但给周围居民的出行带来了诸多不便,而且还耗费了接送孩子的家长大量的宝贵时间。在同一所学校上学的学生有许多都是住在相近的小区甚至是同一个小区内,这与拼车的概念不谋而合。

基于Android端的校园拼车系统可以解决在中小学上下学高峰期校门口交通异常拥堵的问题,父母也要冒着违章风险接送小孩的难题,同时也可以解决孩子上下学和父母上下班的时间冲突问题。系统如果能够得到广泛使用和推广也可以减少汽车尾气排放,为建设绿色城市作出一定的贡献。

2 系统整体架构

2.1 用户角色及功能设计

用户群:平台主要有两种用户群,一种是“司机”,一种是“乘客”。“司机”由家长或老师组成,“乘客”由学生组成。

系统后台的功能:系统后台有不同权限的管理机制,可分为系统管理员、校级管理员、年级管理员、班主任管理员和班级管理员。其中这几种分类所管理的人员均不同,也拥有不同的权限,以便更好地进行管理。

系统主要的实现过程:

老师注册过程:其中老师的注册过程是通过对应学校校级管理员在后台进行注册,这样可以防止有人假冒老师信息进行注册。

家长的注册过程:家长的注册过程中需要填写家长姓名,家长的联系的方式,家长身份证的信息,家长的照片等,用这些信息来进行实名注册尽量地去确保唯一性。

孩子的注册过程:因为孩子是和学校挂钩的人,所以在这个过程,学校信息成为不可以缺少的一部分,其中注册过程中还需要的信息包括,所在的班级、学号、性别等。

孩子和家长的关联过程:以孩子作为主体,家长必须关联孩子,老师通过班级和孩子进行关联。而在孩子关联家长的过程中,必须输入不同的家长的身份证号码并选择对应的父母信息。然后由后台的管理人员进行核实,如果信息全部正确就允许关联,确保关联的正确性。

订单生成过程: 司机可以在智能手机客户端发送拼车请求,该请求会被发送至服务器并且所有客户端均可以查看,任何有符合该拼车请求的“乘客”均可以通过抢单的方式预约。并且该订单会提供司机的联系方式,如果乘客抢单,则乘客的信息也会显示在司机的客户端,这样方便司机与乘客的交流。

拼车的具体流程:首先司机下单,乘客抢到订单。然后学生放学后按照订单约定的时间地点,到达指定位置。然后通过订单提供的司机车牌型号等信息准确找到指定车辆,然后乘车回家。

2.2 软件结构设计

系统整体可以分为前端和后台。系统后台主要是学校负责管理和审核司机的资格,只有孩子在学校的家长或是该校的老师才有资格申请成为司机。系统前端主要是移动开发端的客户端软件,主要提供注册、订单发布和实时定位查询等功能,前端软件结构见图1所示。

图1 移动端拼车系统的软件结构

2.3 软件的界面设计

软件界面是使用者对软件的第一感觉,界面的好坏直接影响整个软件的体验感,校园拼车系统的软件界面:

(1)选择身份模块

软件用户群体分为学生,家长,老师。在这个过程中需要先确定现在使用的用户是怎么样的一个身份,这样才能为后来的登陆模块做准备。

(2)登陆模块模块

在登陆模块中,无论是何种身份,都统一使用手机号码和密码来进行登陆。在之前的注册步骤中,选择过身份,所以在这个模块中会根据之前选择的身份信息去查找这个模块中是否有这样匹配的手机号码和密码信息的存在,如果存在就登陆成功,不存在就登陆失败。

(3)发布订单模块模块

对于这个模块首先需要知道订单的起点,订单的终点以及订单的时间。规定订单的时间必须要大于手机当前时间半个小时,否则订单的时间无效。无法发布订单。

(4)接受订单模块

对于进行了司机信息认证的家长或老师是可以接受订单的。当司机进入现在存在的订单界面并选择订单接受之后,客户端就会发送信息到服务端将这个订单和司机进行关联,并提醒乘客她的订单已经被司机接受并附上司机电话等信息,同时乘客的信息也会推送给司机,以便双方取得联系。

(5)家长查看孩子所在地理位置信息模块

为了保证拼车过程的安全有效,所以家长可以查看正在拼车的孩子所在的地理位置信息,并可以查看整个的拼车状态,例如:拼车中,已下车。

(6)信息注册模块

根据需要的不同的信息填写之后就可以进行注册。

2.4 软件的数据库设计

为了保证软件功能的正常运行,应该保存的数据信息有:

school表最为重要,是整个软件数据库的核心。其存放所有学校总体人员概况包含学校管理员、权限信息、订单等信息。

back_list表是后台数据库表,包含了所有后台管理人员的个人信息、账户密码及权限。

其余的表单分为下面几大类,分别为:

(1)学校、班级信息表,用于存储各个学校和班级信息。

(2)家长及学校老师信息表,存储学生家长及学校管理员的信息。

(3)学生信息表,存储使用本软件的学生用户信息。

(4)订单信息表及家长司机的表单,存储正在使用本软件的订单及相关联的信息。

(5)管理员登录服务器首先查询school表,对管理员身份进行验证,通过school所提供的管理员信息在后台数据back_list表中查询管理员访问权限。

(6)老师及学生家长以及家长司机分别直接访问teacher_all、person、driver_info表进行验证查询、查询、插入删除等操作。

(7)学生登录及注册是直接访问学生表stu_all中的数据进行进一步操作。

(8)订单生成及表单的查询修改是根据学生个人操作在每个学校对应的_order表单中进行相关操作。

3 系统实现及测试

3.1 注册登陆功能实现

对于不同角色的注册和登陆功能,首先先选择用户的身份,见图2,然后在对手机号和密码进行验证或登陆,效果见图3和图4。

图2 选择角色

图3 注册

图4 登陆

如管理员登录Servlet首先调用login方法,通过最底层的数据库查询请求进行应答返回。

代码如下:

(1)登录请求

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)底层调用查询是否包含数据:

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(Admin.class),admin.getName(),admin.getPasswd());

nextAdmin.setSchool_list(admin.getSchool_list());

nextAdmin.setSchool(admin.getSchool());

sql = "select * from "+admin.getSchool().getBanji();

System.out.println(sql);

List> maplist = qr.query(sql, new MapListHandler());

List banji_list = toBanji_list(maplist);

nextAdmin.setBanji_list(banji_list);

sql = "select * from "+admin.getSchool().getForce_list();

System.out.println(sql);

maplist = qr.query(sql, new MapListHandler());

List forces = toForces_list(maplist);

nextAdmin.setForce_list(forces);

nextAdmin.setSchool_name(admin.getSchool_name());

System.out.println(nextAdmin);

return nextAdmin;

}

3.2 订单发布实现

订单发布所需要的信息如下,如图5所示:

图5 发布订单界面

3.3 订单处理实现

同样是通过Servlet服务调用底层操作让服务器与数据库进行连接其效果代码如下:

public class Rel_Temp_Service {

Rel_Temp_Dao order = new Rel_Temp_Dao();

public PageBean findAll(int pc)

{

System.out.println("PageBean");

try {

JdbcUtils.beginTransaction();

PageBean pb = order.findAll(pc);

JdbcUtils.commitTransaction();

return pb;

} catch (SQLException e) {

try {

JdbcUtils.rollbackTransaction();

}

catch (SQLException e1) {}

throw new RuntimeException(e);

}

}

本系统以学校为单位,每个学校有一个最高的负责人,该负责人(例如校长)管理后台负责人账号的创建与修改。每个班级也有一个负责人,负责管理学生与家长的账号信息。班级负责人也享有指定家长会负责人的权利。

前台用户注册的流程的分析:

用户群:本系统的用户主要分为三部分,分别是家长,孩子,司机(家长的一种)。

数据库表格:这三种用户的注册都需要跟数据库联系起来,先简单介绍一下数据库;数据库有三张表:家长表,孩子表,家长孩子之间的关联表。

家长注册:家长注册会要求输入姓名,省份证号,电话号码等一系列信息,然后将该信息插入数据库中的家长表中。

司机注册:司机(有车家长)注册的主要过程跟家长一致,但是必须要添加一些司机的特有信息,例如:驾照,车牌号,车子型号等一系列信息,然后将信息插入数据库中家长表中。

孩子注册:孩子注册需要填写姓名,学校,班级等学生基本信息,然后数据被存入数据库中的孩子表中;最重要的是家长和孩子的关联由孩子完成,孩子注册之后手机客户端有关联家长的选项,点击该选项就输入要检索的信息,例如家长姓名。然后就可以在数据库的家长表中检索出匹配的字段,孩子点击“关联”然后数据库中的家长孩子关联表就会将这两个字段的id绑定起来从而标记出一家人。

用户注册信息认证流程的分析

(1)真实信息的统计:首先班级管理员将班级里的学生信息,以及各个学生的家长信息统计起来,形成一张表格。

(2)信息认证过程:班级管理员通过后台程序根据自己的班级名称检索出数据库中该班级的学生,然后通过数据库中的关联表找出学生的家长,然后将数据库中的注册信息,和统计收集起来的真实信息进行人为比对,如果信息匹配正确,则该用户注册通过认证。

订单匹配

司机发布拼车订单,订单中包含的大致信息有:司机接送孩子上下学的大致时间,车子运行的线路和空余的座位数。乘客在发布需求订单后,系统会根据乘客订单中的信息进行订单撮合,订单的撮合以线路一致,司机发单的时间以及孩子所在的年级相近为优先顺序进行撮合。然后将符合要求的司机信息反馈给乘客,乘客再根据自己的意愿选择符合要求的订单。当乘客选择所乘车辆后,乘客的信息就会反馈给相应的司机。此时表明订单撮合成功,当然司机是有取消订单的权利,此时系统会通知乘客订单已经取消,让乘客再选择其他的司机订单。订单匹配见图8:

图8 订单匹配流程图

4 总结

本系统软件面向的人群是中小学生、老师以及学生家长,为了满足这部分特殊人群的需求,克服现有的拼车软件的不足,提供了一种通过学校认证老师、学生及其家长身份的拼车软件系统,成功地解决了司机实名制问题,并且在孩子上车之

后家长能够全程搜索定位到孩子的位置,这使得家长十分放心。软件通过乘客和司机提前预约和抢单来让尽可能多的学生能够通过此拼车软件安全到家,而不用自己的父母接送。本校园手机拼车系统有很大的发展前景,解决在中小学上下学高峰期校门口交通异常拥堵、父母要冒着违章的风险接送小孩的难题,与许多父母因上下班时间与孩子上下学时间冲突而带来的困扰拼车希望也可以大大的减少道路上的私家车数量,减少汽车尾气排放,为建设绿化城市作出了一定的贡献。在互联网发展的今天,在国内拼车已经成为一种习惯的局势下,校园手机拼车以其可靠性,安全性,快捷性一定能够得到更多人们的亲睐。

[1]唐黎标.国外“拼车”扫描[J].交通与运输,2011,27(1):68-69.

[2]底洁.城市出行新格局[J].IT经理世界,2015,(8):38-41.

[3]谭家美,朱丽叶,南香兰,等.网络拼车成功的因素分析[J].上海海事大学学报,2013,34(2):89~94.

[4]周桂良,黄凯,许琳,等.基于定时、定线路的上下班拼车方案设计与实现[J].重庆工商大学学报(自然科学版),2014,31(12):54~58.

[5]张庆贺,韩勇,张小垒,等.基于Web服务移动拼车系统的设计与实现[J].地理空间信息,2013,11(2):85~87.

[6]周桂良.私家车拼车存在的问题及解决方法[J].交通标准化,2013,(23):4~7.

[7]晋江月.拼车的经济学分析[J].科技信息,2006,(S4):97.

[8]戴云琪.“拼车”行为的问题研究[J].市场周刊(理论研究),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年地方高校国家级大学生创新创业训练计划项目(201514099010)

孙延维(1979-),男,湖北潜江人,讲师,硕士,研究方向数据挖掘、移动开发。

TP31

A

1674-344X(2016)08-0045-05

猜你喜欢
拼车管理员订单
春节期间“订单蔬菜”走俏
订单农业打开广阔市场
我是小小午餐管理员
我是图书管理员
我是图书管理员
可疑的管理员
“最确切”的幸福观感——我们的致富订单
基于Web的拼车系统的设计与实现
怎样做到日订单10万?
Uber不守规矩,拼车成了一件生死攸关的事情