• 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

  • 相关阅读:
    软件工程--团队作业3
    软件工程--团队作业2
    软件工程第二次作业---结对编程
    软件工程第一次作业补充
    软件工程第一次作业
    用Use Case获取需求的方法是否有什么缺陷,还有什么地方需要改进?
    买卖股票的最佳时机
    爬楼梯
    删除排序数组中的重复数字
    1500802035王叔文
  • 原文地址:https://www.cnblogs.com/zhanglixina/p/9603793.html
Copyright © 2020-2023  润新知