基于安卓系统的手机投票系统

时间:2022-10-14 11:07:02

基于安卓系统的手机投票系统

摘 要 本文介绍了基于安卓系统手机投票软件的实现。该系统主要由客户端、数据库和服务器三部分组成。服务器端主要是处理客户端的请求,并及时响应完成数据交换工作,它由管理者使用,具有上传资料和查看统计结果等功能;客户端由用户使用,主要有注册登录、投票、查看统计结果等模块;数据库端在后台提供服务器所需要的数据,能够对数据进行增删改查。在开发过程中,主要使用的是内置JDK和ADT的Eclipse、内置Tomcat服务器的myeclipse、mysql数据库,并以Navicat作为数据库的可视化工具。

关键词 投票 安卓 Java数据库

中图分类号:TN929.53 文献标识码:A

随着现代科技的发展,3G网络和移动互联网逐渐普及,给生活带来诸多便利。移动终端越来越智能化,渐渐普及到生活中的各个方面,传统的投票系统几乎都是基于硬件的,成本高、使用不方便。新型的投票系统成为人们的一种需求,将投票与人们生活必不可少的安卓手机相结合不失为一种好的选择。将投票系统与课堂教学相结合在以往也是少见的,同学们在课堂上便可直接答题,系统会自动统计答题结果,省去了大量批改作业的时间,教师并可随时掌握学生学习的动态消息。本系统的使用范围广,可以用在课堂教学、公司企业小型会议及各类活动投票竞选中等。

1系统概述

1.1国内外电子投票系统研究状况

电子投票系统在英国高等教育中应用十分广泛,斯特莱思克莱德(Strathclyde)大学最先在课堂中引入,格拉斯哥大学、爱丁堡大学等大学也纷纷在课堂教学中使用该系统。除英国外,在其他国家和地区的高等院校也得到了广泛的应用。现阶段,国内的研究处于对交互式电子白板的应用系统的研究,很少有在安卓手机上实现该功能的软件。如电子白板厂商普罗米休斯推出的教学信息化的产品――手持投票器,实现了这种功能。

1.2需求分析

目前现存的投票方式主要有三种:(1)纸质投票方式,不仅浪费大量的人力和物力,而且统计结果不能实时更新,操作比较繁琐,不能实现统一的管理。(2)网络投票,需要投票者注册登录账户,虽然此方法操作简单,但是用户的一些信息可能会泄露,而且给用户选择的机会较少,不能充分展示自己的个性。(3)投票器,在许多娱乐节目中,每个观众手中都有一枚对选手进行投票的投票,投票器的造价成本太高,而且局限性较大,只有一些固定的按键可以使用。这些投票方式已经不能满足人们的需求,新型的投票方式便应运而生。

2投票系统简介

2.1投票系统的设计思想

投票系统的总体设计思想是:系统中部署调查服务器,可以与客户端系统相连,通过相应的协议接口进行信息和数据的耦合处理,把传统投票的相关模块从PC机应用扩展到智能移动终端上,实现便捷手机投票软件。

手机投票系统主要由移动客户端、服务器端和数据库服务器三部分构成。移动客户端主要为业务表现等的处理功能,可以帮助实现人机交互。服务器端主要是处理客户端的请求,并及时响应完成数据交换工作。数据库端在后台提供服务器所需要的数据,能够对数据进行增删改查等功能。

2.2手机投票系统开发环境

在客户端的开发过程中,主要使用的是内置JDK和ADT的Eclipse、内置Tomcat服务器的myeclipse、mysql数据库,并以Navicat作为数据库的可视化工具。

3系统构架设计及开发过程

3.1手机客户端

投票选择主要功能是用户投票,用户在此模块可以看到需要投票的题目,投票完成后系统自动将结果提交给服务器处理。用户在统计结果模块可以随时查看目前为止已投票的结果,由于可以随时更新,故具有很好的实时性。

实现注册功能的源代码:

public class LoginDao implements LoginService {

private JdbcUtils jdbcUtils = null;

public LoginDao() {

// TODO Auto-generated constructor stub

jdbcUtils = new JdbcUtils();

}

public boolean login(List params) {

// TODO Auto-generated method stub

boolean flag = false;

String sql = "select * from userinfo where u_num=? and u_pswd=?";

//String sql = "select * from userinfo where u_num=?";

try {

jdbcUtils.getConnection();

Map map = jdbcUtils.findSimpleResult(sql, params);

flag = !map.isEmpty() ? true : false;

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

} finally {

jdbcUtils.releaseConn();

}

return flag;

}

}

3.2数据库

数据库中保存着用户的信息及用户提交的答案,服务器可以从数据库中读取相关的信息等,以Navicat作为可视化工具,可以直接对数据库进行操作。

设计数据库的基本原则:

(1)层次分明,各表之间的逻辑关系明确;

(2)数据库必须包含所需要的全部信息,保证数据库的完整性;

(3)对于修改频率低,查询频率高的部分数据允许适当冗余,以提高信息检索速度。

创建数据表的代码如下:

DROP TABLE IF EXISTS `adminuser`;

CREATE TABLE `adminuser` (

`adminusername` varchar(255) default NULL,

`adminuserId` int(11) unsigned NOT NULL auto_increment,

`adminuserpassword` varchar(255) default NULL,

`adminuserrole` varchar(255) default NULL,

PRIMARY KEY(`adminuserId`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------

-- Records of adminuser

-- ----------------------------

INSERT INTO `adminuser` VALUES ('xcz', '1', '111', '1');

INSERT INTO `adminuser` VALUES ('张三', '2', '222', '2');

DROP TABLE IF EXISTS `score`;

CREATE TABLE `score` (

`scoreId` int(11) unsigned NOT NULL auto_increment,

`testId` int(11) default NULL,

`score` int(11) default NULL,

`studentId` int(11) unsigned default NULL,

`studentName` varchar(255) default NULL,

`pre_answer` varchar(255) default NULL,

PRIMARY KEY(`scoreId`),

KEY `testId` (`testId`),

KEY `studentId` (`studentId`),

CONSTRAINT `score_ibfk_1` FOREIGN KEY (`testId`) REFERENCES `test` (`testId`),

CONSTRAINT `score_ibfk_2` FOREIGN KEY (`studentId`) REFERENCES `student` (`studentId`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.3服务器端

在服务器端可以接受客户端的数据请求,并对其作出反应,将结果反馈给客户端完成整个操作过程。服务器端会对客户端提供的数据进行分析,经过相关的分析将结果存在数据库中,并将其通过Myeclipse中的JSP页面以柱状图的形式显示出来,并且客户端也可以查看此柱状图。

3.4客户端与服务器端的数据交换

(1)表示层

表示层位于客户端,是用户与系统交互的界面,负责系统与用户之间的旨话处理。表示层在客户端浏览器运行WML及JSP程序来实现用户与业务处理结果之间的通信。

(2) 业务逻辑层

位于服务器端,用于封装系统的业务服务,是系统的核心,负责接受表示层的应用请求,对其进行业务处理的逻辑判断:若不通过,返回给表示层相应提示信息;若通过逻辑判断则调用数据库内容,进行数据处里,并将处理结果返回给表示层包括学生模块、管理员模块。

(3)数据服务层

数据服务层和业务逻辑层一样位于服务器端,它用来提供数据来源。提供各包括用户信息、投票等库资源的提供。

4结束语

基于安卓系统的手机投票软件可以解决以往投票中遇到的问题,达到节约人力物力、科学可靠、操作简便的目的。系统的可扩展性较好,应用范围广泛,可以应用于课堂教学、竞选活动、公司会议等小型团体的投票活动中,每人一台智能手机便可直接进行投票,操作简单,系统自动统计结果,节约了大量人力和时间。此功能的实现过程较简单,也推动了JavaWeb在Android平台上的发展,mysql数据库为开源数据库,对后期维护修改有很大的好处。

基金项目:2014年北京林业大学部级大学生创新项目计划(项目编号:G201410022045)。

参考文献

[1] 互联网消费调研中心.中国智能手机市场研究年度报告[R].2011.

[2] 谢文焘,董黎刚.基于Android的校园网移动客户端设计与实现[J].杭州电子科技大学学报,2012(5).

[3] 韩颖.电子投票系统在我国高校大班型授课中的应用探索[J]. 软件导刊(教育技术),2010(12).

上一篇:从医用直线加速器角度出发看待器材的维护保养 下一篇:浅析治安案件中轻微伤害鉴定的必要性及标准