Android实战——第三方服务之Bmob后端云的答题系统小项目(四)

本项目利用Bmob后端云实现了一个灵活的在线答题系统,支持实时更新题目和考试内容。系统分为选择试题、填写信息和开始考试三个阶段,通过集成Bmob SDK,实现了高效的数据交互和管理。

第三方服务之Bmob后端云的答题系统小项目(四)

 

事先说明:这里的一切操作都是在集成了BmobSDK之后实现的,如果对Bmob还不了解的话,请关注我第一篇Bmob文章

 

 

项目意义:

该项目实现简单,比较难处理的就是选择题的按钮复用效果

该项目可以实时更新考试题目和考试内容,灵活性高

聪明的你可能发现了,驾照宝典的科目一答题系统和这个非常类似,而且一题配上一个广告,这收益...,说不定下一个黑马就是你哦

具体思路:

1、项目可以分3个页面来分析:选择试题页面、填写信息页面、开始考试页面。

2、选择试题页面:从Bmob后台获取Exam表中考试试题信息,通过一个GridView展示出来,将选择的试题名称传到下一个页面。

3、填写信息页面:获取用户填写的信息和上个页面传下来的试题名称,查询后台Grade表中是否存在这条数据,如果存在,则通知已经考试完成,若不存在,则将数据用户信息传到下一个页面,进入开始考试页面

4、开始考试页面:获取Exam表中的examTable数据,对应查询后台Question_x表,获取考试试题,考试开始,记录进来考试的时间到SharePreference中,与上次最后一次考试时间做比较,是否超过了考试限制时间,若超过则记分为0分,将数据添加到后台Grade表中。考试完成后,计算单选题分数为1分,多选题分数为2分,总分添加到后台分数数据,结束考试。

 

项目介绍:

项目效果图:

项目工程结构图:

后台数据库表的结构:(右键用新标签打开看得清晰一点)

 

步骤一:javaBean的介绍

考试实体类:

 

 
 
 
 
isExaming:该考试是否已经关闭
 
 
examTable:用来取出后台考试题目数据表(后台可以有多个题目库,只要这个字段对应数据表即可)
 
 
 
 

分数统计类:

 
 
 
 

试题实体类:

 
 
 
 
 
 
 
 

步骤二:答题逻辑的实现

第一步:定义变量和找到布局控件和绑定控件的点击事件:
一个是顶部的试题,一个题目内容和四个答案按钮,下一题和上一题按钮,一个试题下面的计数器(9个)
 
 
 
 
 
 
 
 

第二步:初始化数据:

用考试唯一标识和考生信息计算出md5,用来当做考试计时的唯一识别,因为项目中可以存在很多种考试,如不能区分,就会导致计时错误,保证了计时的准确性和唯一性。

如果计时未发现超过限时时间,则初始化题目

 

 
 
 
 
 
 
 
 
 
 
 
 

第三步:处理点击事件:

 
 
 
 
 
 

第四步:计算分数结束考试,答案是按照A-1、B-2、C-3、D-4这样的对应关系判断的,所以在选项的索引上+1

 

 
 

第五步:在关闭这个考试时记录下考试最后一次时间,停止计时

 

 

 
 

第六步:其他工具类

 

 

 
 
 
 
 
 
 
 

 

 

这里提供该类的文件下载链接,如果喜欢可以参考,ExamActivity类

http://download.youkuaiyun.com/detail/qq_30379689/9603112

转载于:https://www.cnblogs.com/zhanglixina/p/9603793.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值