“计算机网页后台+手机版”在线教育系统的设计与实现

时间:2022-09-14 06:45:49

“计算机网页后台+手机版”在线教育系统的设计与实现

【摘 要】设计一款手机App来实现在线教育和在线考试在本校学生中的应用,包括在线下载最新课程的信息和在线进行考试计分系统。为了与使用者有更好的联系,本系统集成现有流行的推送功能,在设计中使用远程数据库服务器和Android手机程序方法。

【关键词】在线教育系统 推送 远程数据库

【中图分类号】TP311 【文献标识码】A 【文章编号】1674-4810(2014)34-0187-02

2014年7月22日百度新闻,“中国互联网络信息中心的《中国互联网络发展状况统计报告》显示,网民上网设备中,手机网民规模83.4%,首次超越传统PC网民规模,手机网民规模达5.27亿,手机已经成为第一大上网终端。”根据本校情况,赣州技师学院学生拥有手机数量接近100%,而拥有个人电脑数量不足4%。故迫切需要开发一个基于手机应用程序的在线教育系统。本系统要实现:推送功能,在线查看教学内容,在线考试计分功能等。在技术上来说,主要实现上传下载数据到远程数据库和在手机上实现考试计分功能。

一 推送功能

本系统使用极光推送插件。极光推送集成方法是首先加载极光jpush java sdk开发包到本系统中的lib目录中。然后在极光官网上生成应用信息包括应用包名和应用标识(AppKey),然后把它们加载到系统的配置文件中。

package com.c***x.j***k;<!--加载应用包-->

二 在线查看教学内容

1.远程数据库技术

我们使用phone->Web->Database方式。上传时先访问一个网页,向网页传输命令与数据,再由网页的动态脚本来操作数据库。下载时由该网页把数据打包成Json格式发送到手机,再由手机来解释成所需的数据。

String URL = "http://***.asp";//决定使用的网页,包括上传和下载数据。手机端核心代码如下:

HttpPost hp = new HttpPost(URL);//使用HttpPost类。

List 上传内容= new ArrayList();

params.add(new BasicNameValuePair("上传参数名","上传参数值");

hp.setEntity(new UrlEncodedFormEntity(上传内容, HTTP.UTF_8));//上传内容按UTF8编码

HttpResponse 回值= new DefaultHttpClient().execute (httpPost类); //执行网络功能

返回文本= EntityUtils.toString(回值.getEntity()," GB2312");//下载内容按中文编码。

服务器网页端核心代码如下:

接收数据:接收文本= request("上传参数名")

返回数据:response.write("这里是要返回的数据,以Json文本方式编写")

2.下载新增课程

服务器数据库数据为下表:

课程编号

课程名

p0001

旅游经济学

p0002

旅游规划与开发

p0003

旅游法学

返回的Json格式为{"p0001":"旅游经济学","p0002":"旅游规划与开发","p0003":"旅游法学"}

如果要得到第一门课的内容,需要下列代码:

JSONObject r = new JSONObject(j); //声明JSONObject类

String n =r.getString("p0001");//取出相应的值

先声明一个JSONObject 类用来接收上面的Json格式文本。再从JSONObject 类中按变量名取出相应的值,上面 n 变量的值为“旅游经济学”五个字。

3.下载图片

显示网络上的图片,先根据url找到图片的网络地址,然后把该图片转化成java的InputStream,然后把该InputStream流转化成BitMap,BitMap可以直接显示在程序的ImageView控件里。

三 在线考试计分系统

首先下载课程信息,方法同下载新课程。同样把数据打包成Json格式。在这里我们需要用到试题内容、ABCD选项内容和ABCD四个单选框内容。所以在界面配置xml文件中我们使用如下配置:五个分别为试题和选项文本,一个,在其下包括四个分别用于ABCD选项答案的接收。

本模块先上传要下载的考试科目代码到服务器,然后再下载所有考试内容到手机上。按照考题顺序排列出现在手机界面上。

增加一个“下一题”按钮,用于计录答案和生成下一题,在下用一个 ArrayList链表来记录每一次的答案。链表项为文本,代码如下:

ArrayList your_answer= new ArrayList< String>();

记录方式为:if(选项.isChecked()){ your_answer.add("A");},

即把每一次的回答都加到链表的最后一个。

增加一个“上一题”按钮,来回退到上一题的值上。ArrayList 列表要删除最后一个值。

your_answer.remove(your_answer.get(your_answer.size()-1));

再增加一个“成绩”按钮来计算总分。就是比较“上一题”记录下的值与下载的值是不是相同,如果相同就增加一个答对数。代码如下:

String r = result.getString("当前JSON的正确答案");

if(i

if(your_answer.get(i-1).equals(r)) //如果服务器返回的正确答案与考生相同就加1分

your_cg=your_cg+1;

r="\n标准答案为("+r+"). "+"您的答案为("+your_ answer.get(i-1)+").\n";}

其中your_cg就是考试成绩。

上一篇:《分手大师》 下一篇:藏族“五彩神箭”文化发展研究