Android答题APP的设计与实现-创新互联

还没有整理完,待续……

创新互联专注于企业成都营销网站建设、网站重做改版、剑阁网站定制设计、自适应品牌网站建设、H5开发商城网站制作、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为剑阁等各大城市提供网站开发制作服务。

学校开了Android课,最后让交一个大作业。正好拿来练练手,记录下思路。也希望能给有需要的朋友们一些帮助。恩,纯小白教程,大神们可以绕路了。


作业的题目是这样的:


考试APP系统:


1)要求有用户登陆功能:从远程服务器进行登陆验证。
2)要有考试测试界面,主要是选择、判断、简答题目测试。
3)要有统计成绩界面和错题显示界面。


评分标准:


1、界面设计占评分的30%
2、系统运行正确; 功能完善;工作量充分; 系统实现有一定的技术的难度。50%
3、要求有适当的系统主要模块的文档说明和代码注释。
4、直接将数据库文件(数据库一定要备份成SQL语句格式,指明数据库)和项目文件提交。

乍一看挺简单的,真要研究起来,写的实用一些,还真有点不知如何下手,那跟着我的思路,一起来吧!恩,不想看思路的,可以直接戳Android源码下载源码来看了。


功能需求设计:

登录注册
答题:选择题,判断题,简答题
答题得分计算
错题查看


最后效果

总体思路

总体思路是这样的,App通过http连接服务器,进行登录或者注册服务,登录成功之后,服务器查询数据库并以json的形式返回试题数据。App接收数据之后,解析并存到本地数据库,然后展示给用户答题。点击交卷按钮后,进行评分并可进行错题查看。内容比较杂乱,大家可以根据目录来快速查看自己需要或者感兴趣的地方。

数据库设计

首先,就登录注册的功能来说,得先有一个用户表,包含用户名,密码,id号这些基本的内容。我在这里又加了一个权限字段,用来返回状态。(设置权限字段,方便日后进行扩展,可设置用不同数字代表不同等级或身份)

tbl_user_info

其次,就是题库了。为了使项目具有实用性,减小安装包体积,便于更新修正,题库同样也需要放在服务器上才合适。

tbl_question

jsp程序

jsp依赖了两个jar包,分别是连接mysql的驱动:mysql-connector-java-5.1.34-bin还有生成json用的:json 。为了减少代码的耦合性,这里采用MVC模式进行设计。(自以为是MVC)。目录结构如下:


Android答题APP的设计与实现

登录注册

1.连接数据库

数据库操作类,封装了连接,查询,关闭数据库的方法。大家如果使用这部分代码,别忘了把数据库连接常量改成自己的。

//****连接数据库**DBManager***
public class DBManager {

 // 数据库连接常量
 public static final String DRIVER = "com.mysql.jdbc.Driver";
 public static final String USER = "root";
 public static final String PASS = "root";
 public static final String URL = "jdbc:mysql://localhost:3306/shop";

 // 静态成员,支持单态模式
 private static DBManager per = null;
 private Connection conn = null;
 private Statement stmt = null;

 // 单态模式-懒汉模式
 private DBManager() {
 }

 public static DBManager createInstance() {
  if (per == null) {
   per = new DBManager();
   per.initDB();
  }
  return per;
 }

 // 加载驱动
 public void initDB() {
  try {
   Class.forName("com.mysql.jdbc.Driver");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 // 连接数据库,获取句柄+对象
 public void connectDB() {
  System.out.println("Connecting to database...");
  try {
   conn = DriverManager.getConnection(URL, USER, PASS);
   stmt = conn.createStatement();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  System.out.println("SqlManager:Connect to database successful.");
 }

 // 关闭数据库 关闭对象,释放句柄
 public void closeDB() {
  System.out.println("Close connection to database..");
  try {
   stmt.close();
   conn.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  System.out.println("Close connection successful");
 }

 // 查询
 public ResultSet executeQuery(String sql) {
  ResultSet rs = null;
  try {
   rs = stmt.executeQuery(sql);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return rs;
 }

 // 增添/删除/修改
 public int executeUpdate(String sql) {
  int ret = 0;
  try {
   ret = stmt.executeUpdate(sql);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return ret;
 }
}


本文标题:Android答题APP的设计与实现-创新互联
本文地址:http://myzitong.com/article/ccdjph.html