基于安卓平台的学生在线点名系统的设计与实现Word格式文档下载.docx
《基于安卓平台的学生在线点名系统的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于安卓平台的学生在线点名系统的设计与实现Word格式文档下载.docx(15页珍藏版)》请在冰点文库上搜索。
在服务端,学生和教师的个人信息已经通过管理员导入,个人信息包括姓名、班级、学院、学号等等,学生与教师无需再进行注册,他们可以登录系统来修改自己的信息,然后将修改的信息提交到服务端进行保存即可。
系统在APP端开设了两个角色选择入口,用户可以选择教师登录或者学生登录.
学生登录进入主界面,在教师发起点名命令之后,学生可以进行实时签到。
如果学生有急事需要请假,还可以向教师提交请假申请.
教师成功登录系统后,进入主界面,在主界面可以查看学生名单,学生的信经导入了课程表和学生信息,所以到了课程开始的时间,签到功能就被激活了,学生可以在规定时间内进行请假和签到,如果超过了考勤时间,学生将无法进行请假和签到。
教师也可以在APP端或者是服务端进行手动签到。
服务端可以记录课堂签到信息,统计学生的出勤人数和缺勤人数.与此同时,如果有同学提交请假申请,教师还可以在第一时间做出反馈.
1.1课题研究背景
一般来说,传统的课堂点名方式会占用教师和学生的宝贵时间,致使教学效率低下,拖慢教学的节奏和进度,与此同时,这种点名方式也会发生同学帮忙签到、学生迟到早退等情况,而这些情况都会给老师或者是考勤人员带来很大的麻烦和困扰.根据实际情况,为了加快教学进度,提高课堂效率,教师根本无法做到每次上课都进行点名,那么这样就无法全面地跟踪学生上课的整个过程.加之这样的点名方式在记录、统计方面的效率也非常低,不易直观地查看出勤率、缺勤人数等统计信息.如今是科技飞速发展的时代,各种先进的系统平台已基本普及,特别是android系统几乎是达到家喻户晓的程度了,而以此平台为基础而开发的点名系统功能更加的强大。
1.2课题研究意义
Android点名系统集成了管理、服务等多种功能,使用智能化的系统进行人性化的管理,不仅提高了工作效率,而且大大提高了数据保存的安全性.尤其对于复杂的信息管理,智能系统能够充分发挥其优越性,它能方便地进行教学管理,具有传统方法无法匹敌的优存储量大、可靠性高、查找方便、检阅迅速、保密性好、成本低.
2学生在线点名系统需求分析
学生在线点名系统主要包括三个角色,分别是教师,学生和管理员。
教师可以上课点名,查看学生的考勤状况学生可以实现课程的签到,个人信息的修改;
管理员负责在数据库导入信息和维护服务端的运营.
教师系统用例图如图所示:
图2-1教师功能用例图
学生系统用例图如图所示:
图2-2学生功能用例图
管理员系统用例图如图所示:
图2-3管理员功能用例图
2. 1功能性需求
2. 1.1教师模块需求分析
教师模块的主要功能有查询学生的考勤信息,修改个人信息,上课期间发起课程点名。
教师使用账号,密码登录系统,进入系统后,有三个功能按钮:
上课点名、班级考勤和个人信息.
a) 教师查询功能:
教师进入系统后,点击班级考勤按钮,切换到查询页面,系统会显示所查询的课程信息,课程信息包括上课地点、上课时间、学生和指导老师.
时序图如图2-4所示
图2-4教师查询时序图
b) 教师点名功能教师登录进入系统后,点击上课点名按钮,切换到点名页面,系统会显示需要点名的课程信息,点击课程,系统显示学生名单,教师可以
时序图如图2-5
图2-5教师点名时序图
c)教师修改个人信息功能教师登录进入系统后,点去个人信息按钮,切换
到个人信息页面,系统会显示教师的个人信息,教师可以对信息进行修改。
时序图如图2-6
图2-6教师修改个人信息时序图
2.1.2学生模块需求分析
学生模块的主要功能有上课签到,查询和修改个人信息.首先,学生登录系统,进入系统后,主界面上方有两个功能按钮:
今日课程和个人信息.
a) 学生个人信息功能:
学生进入系统后,点击个人信息按钮,切换到个人信息页面,系统会显示个人信息,学生可以在此页面进行信息修改.
时序图如图2-7
图2-7学生个人信息时序图
b) 学生上课签到功能:
学生进入系统后,点击今日课程按钮,切换到今日课程页面,系统会显示当天上课的课程,学生点击课程,添加考勤状态.
时序图如图2-8
图2-8学生上课签到时序图
2.1.3管理员模块需求分析
管理员模块的主要功能是将学生信息、教师信息和课程相关信息添加到后台
数据库中,定期对系统做维护。
时序图如图2-9
2.2非功能性需求
a) 操作方便:
学生教师都有各自的登录入口,进入主界面,都有相关的功能按钮,操作都是一目了然,很方便,能够节省用户的时间.
b) 响应时间:
系统在数据传输和加载的时间不能过长,一般要控制在5秒钟左右.
c) 安全性:
用户登录需要权限,用户名和密码错误就会导致用户无法登录。
数据库的内容也需要定期维护和备份,保证系统数据的安全性.
d) 开放性:
开发设计出的系统要具有可扩展性,能够提供不同的接口支持,也能支持系统的二次开发.
e) 合理性:
系统的开发是否合理,要看是否满足用户的需求,而且系统能否顺利地运行,系统在开发过程中需要不断地完善。
2.3开发使用的技术
整个系统使用Java进行代码的编写,eclipse作为开发平台,以JDK、AndroidSDK和ADT作为开发工具,数据库采用MySQL,服务器使用PHP进行架构.这些都可以在电脑上安装相应的环境然后进行开发,而且开发平台的技术发展已经相对成熟,完全可以满足系统实现的要求.
开发过程中用到了json解析.json(JavascriptObjectNotation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编写大段的代码,所以客户端和服务器的数据交换格式往往通过json来进行交换。
尤其是对于web开发来说,json数据格式在客户端直接可以通过javascript来进行解析。
5
3. 1系统概要
3. 1.1系统开发目标
开发学生点名系统旨在改进学校的考勤管理,对于目前许多高校来说,系统化的考勤明显要比纸质化的点名方便的多。
通过操作android端和服务器端,根据导入数据库的资料,来进行学生的考勤.整个系统实现学生和教师的个人信息管理,通过数据库导入学生和教师的信息,导入学院和学校的课程安排,包括上课时间和上课地点.学生登录APP进行打卡签到,教师可以在android端登录查看学生的考勤状况,也可以登录服务器端查看在线考勤状况.
3.1.2系统流程图
图3-1系统流程图
3.2数据库设计
3.2.1数据库结构设计
根据学生点名的系统需求,通过对APP端和服务器端的分析,设计如下所示的数据项和数据结构:
a) 学生信息
包含的数据项有:
密码、姓名、班级、学号(用户名)、QQ、电话、课程等.
b) 教师信息
密码、姓名、联系方式、课程、职称、性别、所属学院等.
得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础,这些实体包括各种具体信息,通过相互之间的作用形成数据的流动.本系统根据上面的设计规划出的实体图有:
学生基本信息实体图、教师基本信息实体图、课程时间信息实体图、课程签到信息实体图.
学生学号所属班级电话性别所属学院密码姓名
图3-2学生基本信息实体图
学生信息包摇学号、所属班级、姓名、密码、电话、所属学院、,性别等等.
教师职称学院教师编号联系方式密码性别
图3-3教师基本信息实体图
教师信息包括:
联系方式、职称、密码、学院'
教师编号、性别等等。
课程课程开始课程结束上课地点学生教师
图3-4课程时间信息实体图
课程时间信息包括:
学生、教师、上课地点、课程开始、课程结束。
课程学生考勤状态打卡时间
图3-5课程签到信息实体图
课程签到信息包括:
课程、学生、打卡时间、考勤状态.
3.2.2数据库逻辑结构设计
数据库设计对于一个实用性的系统非常重要,如果数据之间的关系没有经过优化,数据库就无法很好地运行.
学生在线点名系统充分体现系统的需求,准确表达出数据间的关系,保证数据的准确性和一致性,通过外键、非空、限制、唯一索引等保证数据的安全和合理,数据库还需要良好的扩展性,在必要的时候能够根据要求进行扩展。
a) 班级表:
记录了班级的各种具体信息,其中包含的字段有id、班级名祢、所属班主任ID、所属学院ID。
b) 教师表:
记录了教师的各种具体信息,其中包含的字段有id、教师姓名、
7
c) 班级表:
记录了考勤的各种具体信息,其中包含的字段有id、学生ID、课程ID、打卡时间、考勤状态.
d) 课程表:
记录了课程的各种具体信息,其中包含的字段有id、课程名称.
e) 学生与课程对应表记录了学生与课程之间的关系信息,其中包含的字段
有id、课程ID、学生ID、教师ID,上课地址、上课时间、结束时间.
f) 学生表记录了学生的各种具体信息,其中包含的字段有学号、课程名称、
性别、联系方式、所属班级ID、所属学院ID、密码.
g) 学院表:
记录了学院的各种具体信息,其中包含的字段有id、学院名称。
4学生在线点名系统详细设计与功能解析
4.1数据交互的设计与实现
系统使用httppost方式与服务器端进行数据交互,由APP把数据post到服务器端,由服务器端操作mysql获取数据并返回相应的值。
本系统服务端采用PHP+mysq1技术,对于这个技术就不做介绍了。
a) 定义请求的链接;
b) 使用NameVa1uePair存储Post参数;
c) 设直最长响应时间并发起HTTPrequest请求;
d) 接收服务端返回的HTTP状态.(200为成功接收消息,404为旌接地址错误,5xx为服务端错误)
系统的数据传递还运用到了JS0N数据解析,JS0N的全称是JavaScriptObjectNotation,意思是JavaScript对象表示法,它是一种基于文本,独立于
语言的轻量级数据交换格式。
JSON有两种表示结构,对象和数组.对象结构以大括号开始,以大括号结束.中间部分由0或多个以”,"
分隔的"
key(关键字)/value(值)”对构成,关键字和值之间以'
'
:
”分隔•数组结构以”【”开始,”】”结束•中间由0或多个以”,"
分隔的值列表组成。
1, 从JSON中读数据,例如:
functionReadJSON()(
alert(obj.1);
〃会报语法错误,可以用alert(obj[“l"
]);
说明数字最好不要做关键字
alert(obj.2);
〃同上
alert(obj.person[0].name);
//alert(obj.person[0][“name”)
alert(obj.object,msg);
//alert(obj.object[“msg”])
}
2, 向JSON中写数据,例如:
functionAdd0{
〃往JSON对象中增加了一条记录
obj.sex="
男”〃或者obj[“sex"
]=“男"
4.2教师登录模块的设计与实现
4.2.1教师登录功能实现
在登录之前,需要选择相应的角色,如图所示:
图4-1角色选择信息图
选择角色登录之后,可以跳转到相应的界面,如点击教师登录,可跳转到如
下界面:
图4-2教师登录界面信息图
教师登录的具体步骤如下:
a) 教师在选择相应的角色入口之后进入教师登录界面;
b) 教师输入用户名和密码,然后点击登录;
C)服务器端会验证用户名是否正确,如果正确,就可以进入主界面;
d)如果用户名和密码不正确,则系统将给出错误提示.
图4-3错误提示信息图
4. 2.2登录功能中Intent的简介
Intent的中文意思是“意图,意向"
,在Android中提供TIntent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用.Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。
因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息.
Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcasts^
在这个登录功能的实现中,intent主要起到界面转换的作用,从最初的角色入口选择界面,通过按钮的点击事件的触发,切换到教师登录的activity.
4. 2.3教师登录用户名密码保存的实现
为了方便用户登录,还添加了用户名、密码保存功能,这里使用preference
11
存储到本地,再次登录就无需输入,直接登录就可以了.
Android提供preference这个键值对的方式来处理这种情况,自动保存这些数据,并立时生效,同时Android提供一种类似的layout的方式来进行Prefernce的布局。
preference的数值会被保留,而且可以在其他的activity中读取•如果需要清除数据,可以通过remove0除某个名字的prefernece,clear0清除所有的preferences。
我们可以通过edit0获取preferences的editor,进而进行编辑,修改后,通过commit0将修改值保存•
Preference的XML可以通过PreferenceCategory来组织PreferenceCategory可以将几个组建组合在一起,并加上标题.•
4.3教师上课点名模块的设计与实现
登录进入主界面后,上方有三个按钮,分别是上课点名、班级考勤、个人信息.
点击上课点名按钮,触发onclick点击事件,切换点名界面,关键代码如下:
这里设置了点击事件的监听器,当我们点击此按钮的时候,将会获取班级信息.
如果当天教师没有课,界面提示没有课程安排,代码如下:
privatevoidaddCourse0(
//TODOAuto-generatedmethodstub
adapter.addBook(n您今天没有课程安排!
"
y);
图4-4无课程安排信息图
如果今天课表上有课,而且获取上课信息成功,listview中将会插入所要
点名的班级,
图4-5有课程安排信息图
选择课程名称,就可以显示需要上课的班级,在页面中可以看到学生名单,
以及学生的基本信息,如图所示:
图4-6学生名单信息图
然后选择学生进行签到,签到一共有5种状态:
正常、迟到、早退、旷课和请假,如图所示:
图4-7考勤状态信息图
当选择完学生的签到状态之后,可以提交点名,然后经由本系统把学生id、课程id以及当前签到的状态提交到服务端,由服务端进行保存和更新.
手动签到功能,对于以下情况:
(1)没有使用android手机的学生;
(2)忘记携带手机的学生。
遇到以上情况,教师可以手动进行签到,在系统中直接点击选择考勤状态即可.
教师登录本系统之后,点击班级考勤,可以查看当前课程学生的考勤汇总,以及学生的详尽信息.
4.4教师考勤模块的设计与实现
在主界面中,点击班级考勤按钮,触发菜单点击事件,可以查看相关班级的点名汇总,主界面如图所示:
图4-8班级考勤信息图
图中展示了课程的主要教师,学生点击该行可以显示出具体的签到考勤列表,
图4-9考勤汇总信息图
列表中罗列了考勤的所有情况,汇总中包含以下信息十果程信息、代课老师、学生信息,和正常签到、旷课、早退、请假、迟到的学生人数,以及这5种情况的学生列表.
统计功能签到结束后,进行学生的出勤情况统计,包括学生的出勤率、缺勤率、缺勤人数以及学生的出勤情况等等,这些信息都将显示在界面上,方便教师查看.
然后,返回上一页,教师可以查看个人的姓名和联系方式,并且可以对信息做一些修改.
图4-10个人修改信息图
点击保存,修改的信息将发送到服务端的数据库中保存和更新.
4.5学生登录模块的设计与实现
图4-11角色选择入口信息图
学生登录的具体步骤如下:
a) 学生在选择相应的角色入口之后进入学生登录界面;
b) 学生以自己的学号作为用户名,初始密码都为123456,方便学校进行统一分配和管理,从而不会出现用户名出现重复的现象:
c) 点击登录服务端会验证用户名是否正确,如果正确,就可以进入主界面;
d) 如果用户名和密码不正确,则系统将给出错误提示
图4-12学生登录信息图
接下来,就展示一下系统如何使用不同的参数区分教师和学生登录:
与服务
端通信时,多增加了type参数,使之从不同的表内获取数据,
Listparams=newArrayList0;
params,add(newBasicNameValuePair("
username"
userName));
params,add(newBasicNameValuePair("
p