博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android实战——第三方服务之Bmob后端云的答题系统小项目(四)
阅读量:4972 次
发布时间:2019-06-12

本文共 1142 字,大约阅读时间需要 3 分钟。

第三方服务之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类

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

你可能感兴趣的文章
面向对象
查看>>
Oracle对没有主键的表分页
查看>>
Scilab 的画图函数(2)
查看>>
apache 和 Tomcat 安全性配置
查看>>
[Luogu] 引水入城
查看>>
86. Partition List
查看>>
154. Find Minimum in Rotated Sorted Array II
查看>>
3-bash内部命令变量
查看>>
设计模式 适配器模式(Adapter Pattern)
查看>>
zipfile
查看>>
asp.net
查看>>
javascript面对对象编程 之继承
查看>>
Tomcat中的服务器组件和 服务组件
查看>>
ibatis/mybatis显示sql语句 log4j.properties配置文件
查看>>
“cvc-complex-type.2.4.a: Invalid content was found starting with element 'taglib'”错误的解决办法...
查看>>
IE下判断IE版本的语句...[if lte IE 8]……[endif] ,判断ie浏览器引用样式
查看>>
161208、Java enum 枚举还可以这么用
查看>>
在地图上显示当前的位置
查看>>
关于分布式事务、两阶段提交协议、三阶提交协议
查看>>
《写给大家看的设计书》,推荐给想了解设计的程序员
查看>>