zoukankan      html  css  js  c++  java
  • Android实战——第三方服务之Bmob后端云的答题系统小项目(四)

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

  • 相关阅读:
    iaas,paas,saas理解
    July 06th. 2018, Week 27th. Friday
    July 05th. 2018, Week 27th. Thursday
    July 04th. 2018, Week 27th. Wednesday
    July 03rd. 2018, Week 27th. Tuesday
    July 02nd. 2018, Week 27th. Monday
    July 01st. 2018, Week 27th. Sunday
    June 30th. 2018, Week 26th. Saturday
    June 29th. 2018, Week 26th. Friday
    June 28th. 2018, Week 26th. Thursday
  • 原文地址:https://www.cnblogs.com/zhanglixina/p/9603793.html
Copyright © 2011-2022 走看看