标签:逻辑 center 数据库表 右键 follow share 关系 工具 开始
第三方服务之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.csdn.net/detail/qq_30379689/9603112
Android实战——第三方服务之Bmob后端云的答题系统小项目(四)
标签:逻辑 center 数据库表 右键 follow share 关系 工具 开始
原文地址:https://www.cnblogs.com/zhanglixina/p/9603793.html