基于Android的C语言程序设计学习平台研究
2018-06-02辛凌洁贾玉宁杨颖
辛凌洁 贾玉宁 杨颖
摘要:根据现如今的大学生学习环境以及学习习惯来看,智能手机已经是不可替代的学习工具之一,网络课程,习题等都可以在移动客户端上解决,不仅方便,还有很高的效率。该文以“C语言程序设计”课程为例,开发基于Android的学习平台。学生可利用这些功能来加强课堂学习的效果,也可利用讨论区来和网友进行学习上的交流。这样保证了学习的即时性和求解问题的有效性。
关键词:Android;C语言;学习平台
中图分类号:TN929 文献标识码:A 文章编号:1009-3044(2018)10-0089-03
1 背景
互联网的发展使计算机技术在教育领域也得到了广泛的应用。随着智能手机的普及,一种新型的学习方式出现在我们面前,并且越来越大众化。这就是所谓的移动学习——一种在是一种在移动计算设备帮助下的能够在任何时间任何地点发生的学习,移动学习所使用的移动计算设备必须能够有效的呈现学习内容并且提供教师与学习者之间的双向交流[1][2]。移动学习可以随时随地进行学习,这种方式解决了传统课堂模式不够方便的问题,也使资源利用率更高。对于当代大学生来说,手机和pad等移动设备是生活中不可缺少的物品,而我们利用这些电子设备强大的功能来开发一款适合大学生学习“C语言程序设计”(下文都简称“C语言”)的学习平台有明显的实用价值。
2 移动学习平台的需求分析
2.1 用户调查
要想学习平台的学习内容更加符合学生的期望以及学习效果更强,在开发之前笔者进行了一个用户调查。调查内容主要为学生对于移动学习平台的需求性以及学生在C语言学习中所遇到的困难。可以根据这两点研发最适合学生使用的平台,这样不仅能节省很多开发资源也可以节省用户的时间、增强用户体验。
2.2 需求分析
移动学习平台首先必须要保证学生学习的随时随地性,所以要保证在本地存储学习资源。将数据资源都存储在本地数据库里,用户在进行使用的时候不用花费太多等待响应的时间,这样可以更加高效率的进行学习,也能够更加发挥了移动互联网的优势。其次,要尽可能的提升用户体验,平台提供的学习资料必须更加系统化并且能突出学习重点,而不是像一些传统的题库一样,只有题目以及答案,而是应该从基础到问题解析再到知识点的延伸,这样可以让学生对学习内容掌握得更加牢靠。学生在使用的时候根据自身需求和学习进度选择适合自己的功能。
3 移动学习平台的系统设计
3.1 系统体系设计
移动端目前主流系统有Android和IOS等,其中Android的更新快来越快,而且Android智能手机也因为性价比较高而拥有大多的用户,所以该平台基于Android系统开发并且检测[3]。该移动平台基于C/S架构,基本体系结构如图1所示:分为服务器端数据服务、服务器端功能模块、客户端数据服务、客户端功能模块。
3.2 数据库的设计
该平台主要是实现题库功能,所以数据库中表格比较简单,所以会创建一个Exercises表格,表格中字段有题目编号(Exercise_id),该字段设为主键自增长;题目内容(Exercise_content),类型为varchar;题目答案(Exercise_solve),类型为varchar。平台模块中不管是随机练习还是模拟考试都将从该Exercise表中抽取题目。由于在进入平台的时候有登录以及注册功能,所以需要创建一个用户表,用户的账号信息保存在用户表中,登录以及注册功能在用户表中查询以及增加数据。表中有三个字段:用户ID(userID),用户名(user)以及密码(password)。同样,用户ID设置主键自增长,并且用户名设置为unique,防止出现用户名相同的情况。
4 C语言学习移动平台的实现
4.1 欢迎界面
考虑到美观的因素,该移动平台欢迎界面分为滑动页面,界面上有功能模块的名称,让用户在登录之前就大概可以了解到该App的用途。该平台设计的是三张滑动页面,所以要写三个.xml文件分别表示三个界面。某一页的代码如图2所示,布局里放上你每页滑动所显示的图片,设置相关格式。如图2。
布局写好后,实现滑动功能对应的java文件核心代码如表一所示。先将之前写好的每个布局文件放在List里面,根据ArrayList的长度作为控制来循环滑动的页数,根据索引下表来检索出滑动到的页数。图3为滑动的其中一个页面。因为此处定义的滑动页数为3,在之前的布局文件中,第三页定义了一個按钮,用来进入主界面。所以当滑到第三页的时候,如果点击Enter按钮,将跳转到登录和注册页面,界面如图4所示。
4.2 注册登录的界面
为了更好的用户体验,该平台将注册和登录放在一个页面上,避免用户使用时太麻烦,或者等待响应的时间太长,从而影响用户体验,图5为注册和登录的界面。部分登录注册页面布局代码如下所示,采用嵌套布局,分层次为注册和登录。
[<?xml version="1.0" encoding="utf-8"?>
android:background="@drawable/shot1" android:layout_width="match_parent" android:layout_height="match_parent"> android:id="@+id/tabHost" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:layout_marginTop="146dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp">
android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#e501aaff">
android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="80dp"> android:id="@+id/layout_login" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> android:id="@+id/et_login_username" android:hint="username" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" /> …… ……
[public class ProgrammingExercisesFragmentController {
……
private void initView() {
if (questions.get(index).getType().equals(QuestionType.SHORT)) {
binding.ProgramFragmentEt.setText("");
binding.btnCodeProgram.setVisibility(View.GONE);
} else {
binding.btnCodeProgram.setVisibility(View.GONE);
}
binding.ProgramFragmentTitle.setText("[" + (index + 1) + "/" + questions.size() + "]" + questions.get(index).getTitle());
}
public void btnOnProgram(View v) {
int on = clickListener.on(index);
index = on;
initView();
Log.e("TAG", index + "");
}
public void btnAnalyzeProgram(View v) {
clickListener.showdialog(index, clickListener.description(index));
}
public void btnCodeProgram(View v) {
clickListener.showdialog(index, clickListener.code(index));
}
public void btnUnderProgram(View v) {
int under = clickListener.under(index);
index = under;
initView();
Log.e("TAG", index + "");
}
} ]
随机练习和模拟考试都是将数据库里面的题目随机抽取出来,代码逻辑同上述相同,这就不再多做介绍。
5 结束语
在这个互联网+时代,几乎所有的学习资源都是可以更加便利的从网络上获取,而使用移动端平台这种学习方式则十分高效,也更加利用了碎片的时间进行学习。随着互联网和软件的不断发展,网络学习必将会更加便捷,更加展现得天独厚的资源共享优势,高级程序的学习不仅仅限于书本,课堂以及学校机房。该文的研究旨在探索移动端学习的优势和传统可课堂学习的最佳结合点,使得学生在学习高级程序语言的时候掌握更加适合自己的方法。通过测试以及短暂的使用,发现进入主界面的时候没有记住密码的功能,在很大程度上不太方便,影响用户体验,后期将会继续优化。学习部分分目前只实现了题库方面的功能,不能上传视频实现共享,平台暂时无法 统计每个用户的使用习惯以及大多数人学习的疑难点。想实现这个功能需要用到当前的新技术大数据分析。虽然现在国内仍然以传统教学模式为主,少有将大数据用到教学和自主学习上,但是网络教学和移动端学习使学习这一件事成为全民化。相信随着移动技术的发展和软件行业的发展,互联网+学习会给更多的人带来优质高效的学习成果。
参考文献;
[1] Aleksander Dyeetal:Mobile Education-A Glance at The Future[EB/OL].http://www.nettskolen.com/forskn-ing/ mobile education.pdf.
[2] 秦艳菲,魏慧琴. 基于 Android 的高级程序设计语言移动学习平台设计与实现[J]. 现代计算机,2015(13).
[3] 郭霖.第一行代码Android[M].2版.北京:人民邮电出版社,2016.
[4] 王凌燕,张仕东,王丽燕. 基于Android的英语口语移动学习平台的設计与实现[J]. 陕西科技大学学报,2012,30(5):146-150.
[5] Satya Komatineni,Dave MacLean.精通Android[M].北京:人民邮电出版社,2013:76-78.