基于Android的高校移动成绩查询系统的设计与实现

摘 要

在我国现今状态,互联网呈现出的高速发展状态以及高等教育的教学不断改革下,各高校的教务管理系统都已经从传统的纸质方式转向了基于Internet的绿色管理方式。而对于目前各高校所使用的都是浏览器/服务器(B/S)模式,这种模式受到了时间、地点、以及上网条件等方面的限制。随着移动互联网技术和移动智能终端设备的不断发展,传统的基于B/S模式的教务管理系统向移动终端上转变已成为必然的趋势了,这样可以更加方便教务员、教师、学生随时随地的进行查询及管理等。
因此本系统将在Android环境下开发,运用Java语言以及SQLite数据库实现对数据的增删查改,其中核心的代码是对数据库的连接以及增删差改的实现,能够有效的帮助老师对学生以及教学信息的管理。并同时实现学生的快速查询功能。
关键词:Android环境;Java语言;SQLite数据库;成绩查询

Abstract
In our present state, continuous reform and rapid development of the Internet has shown a state of higher education as well as teaching, the educational management system of colleges and universities have been from the traditional paper to Internet green based management. As for the current use of colleges and universities is the browser / server (B/S) mode, this mode by the time, location and access conditions With the continuous exhibitions of mobile Internet technology and mobile intelligent terminal equipment, the traditional educational administration management system based on B/S mode to the mobile terminal transformation has become an inevitable trend, it can be more convenient for academic staff, teachers and students to query and manage whenever and wherever possible.
This system will be developed in the Android environment, using Java language and SQLite database to realize data crud, of which the core is the code of the database connection and modified additions and deletions poor implementation, can effectively help the teacher to the students and the teaching of information management. At the same time, it can realize the quick inquiry function.
Keywords: Android environment; Java language; SQLite database; inquiry function

目录

摘 要 I
Abstract II

  1. 绪论 1
    1.1 研究目的和意义 1
    1.2 研究现状 2
    1.2.1 国外现状 2
    1.2.2 国内现状 3
    1.3 主要研究内容 3
    1.4 小结 4
  2. 相关技术介绍 5
    2.1 Android平台介绍 5
    2.2 数据库操作 6
    2.3 小结 6
  3. 系统需求分析 7
    3.1 用户需求 7
    3.2 功能需求 7
    3.3 性能需求 10
    3.4 界面需求分析 10
    3.5 小结 11
  4. 系统总体设计 12
    4.1 设计原则与目标 12
    4.2 客户端设计 12
    4.3 数据库设计 13
    4.3.1 数据库概念结构设计 13
    4.3.2 数据库逻辑结构设计 14
    4.3.3 数据库的实现 14
    4.4 小结 15
  5. 系统详细设计与实现 16
    5.1 主要过程设计 16
    5.2 用户登录模块 18
    5.3 管理员模块 22
    5.4 教师模块 26
    5.5 学生模块 29
    5.6 其他功能 31
    5.7 小结 32
  6. 系统测试 33
    6.1 系统开发环境的搭建 33
    6.2 测试方法 33
    6.3 功能测试 33
  7. 总结 41
    参考文献 42

1.绪论

随着我国教育体制的改革规模不断扩大,教育信息化越来越受到各大高校的重视。同样的,无线网络技术不断的高速发展,智能手机成为了广大群众的首选设备。移动终端的教育信息管理,将为广大师生带来便捷。
1.1研究目的和意义
随着我国科技发展以及教育体制的深入改革,教育信息管理的方式也从传统的纸质管理转向网络管理。再来看从1990年开始提出“数字校园”理念,致力于以高度发达的计算机网络为核心技术,通过信息和知识资源的共享,并以此强调合作、分享、传承的精神,结合了网络化、数字化、智能化的新型教育、学习和研究的教育环境[1]。我国也曾在2013年,再次提到了要以“数字校园”为首发展教育信息化,由此可见教育信息化被我国政府摆在了首位[2]。而提到现今教育信息管理,在已建立的数字化平台中,我们可以观察得出基本都是以校园网作为基础,将相关的校园信息进行收集、处理,最后存储在校园的服务器中,通过计算机终端,让需要使用相关信息的用户使用账户和密码登录校园网来进行相关操作。这样的做法相比于以往的纸质管理,确实是为大家提供了极大的便利,所以数字化校园的建设是非常有需要的。
数字化平台的主流是以计算机作为终端而设计的,特别是信息管理系统,基本上都是基于Web,采用的结构分为B/S(浏览器/服务器)或者C/S(客户端/服务器)。虽然使用电脑终端的时候能为大家提供便利,但同样的,随时随地的携带一台计算机,这种做法对于用户来说是不方便的。哪怕是使用手机登录校园网,但是由于手机系统与计算机的不同,还有屏幕大小等问题,会造成操作不便或者载入速度慢等不同的问题。因此,为了解决这一问题,就需要建设一条新的信息化方式,那就是移动校园,在移动终端上构建信息管理。
在2016年1月22日,中国互联网络信息中心(CNNIC)发布《第37次中国互联网络发展状况统计报告》中,截至到2015年12月,手机上网的比例是90.1%,较上一年增长了4.3个百分点,其中仅用手机上网的占了18.5%,较上一年提升了3.2个百分点,而使用电脑终端的,均较上一年下降了4个百分点左右。从以上的对比可以看出,手机正在不断的取代电脑终端来作为上网的设备。再来看到接入网络的调查,截止于2015年12月,通过使用3G/4G上网的比例达到88.8%,与2015年6月份相比增长3.1个百分点。而使用Wifi无线网络接入互联网的,更是高达91.8%。由此更是奠定了手机作为广大人们使用的基本工具之一[3]。
要实现移动校园,作为被使用的终端中的重要组成部分,手机的地位在短期内是不可被取代的。而现在手机拥有着其独立的操作系统,友好简洁的界面,使得人们使用起来得心应手。手机系统中的Android系统,其市场占有率居高不下,深受广大用户使用[4]。
所以这一次的移动高校成绩查询系统,将在Android操作系统下完成。采用Java语言以及SQLite数据库,实现这一系统。该系统充分的利用了移动终端的便携性以及不受时间地点的限制,使用起来更加的方便。
1.2研究现状
1.2.1国外现状
世界发达国家高度重视信息技术对教育的影响和作用,他们一般具有较大规模的技术队伍来提供服务与技术支持,有自己高带宽的专用网络,来重新调整教育目标,制定教育改革方案,加快推进教育信息化建设。对于教学系统的现代信息化管理,国外的许多大学已经进行了多年的探索和研究,从六七十年代就已经开始,现在已比较成熟,形成了一套规范科学的管理模式。在国外,最早是由美国麻省理工学院在20世纪70年代提出了数字化校园的概念,并经过四十多年的努力建设,构建出一个较成熟的数字化校园平台。目前美国已经有85%的高校能够为学生提供在线课程目录服务,有72%的高校能够为学生提供在线课程注册服务。在欧洲,各个大学也相继建立了信息化教务管理平台。
  其管理信息系统模式一般都是以全局数据信息集中统一管理的中央数据库模型,而软件开发的系统架构多半也是以C/S,或者B/S模式进行设计的,它们将整个学校的教学资源以集中数据平台的方式从全局的角度统筹管理,以提高整个教学管理效率,加大不同系统和模块间的数据流通速度。由于多年的探索和改进,目前国外高校的这种管理模式规模已初具规模,其运行也处于一种比较完善和稳定的阶段。
1.2.2国内现状
近几年来,我国各高校学生成绩大都已经可以实现上网查询,但是由于网络以及电脑等所需物品不便于随时使用。于是,在智能手机快速普及的情况下,人们日常生活中越来越依靠手机,加上如今WIFI技术的发展,使得手机可以随时随地的接入互联网,成为人们日常访问互联网最常用的工具。在这种大背景的推动下,将一些日常所需要的业务放置于手机端,是非常有必要的。
同时,目前市面上较为常见的智能手机系统有:Android、IOS、Windows Phone。其中,Android系统的使用量更是稳居第一位。其基于Linux平台的开源操作系统,受到了众多手机软件开发者的热捧,这也就加快了Android的发展进程。
由此,这次课题的高校移动成绩查询系统将在Android系统上实现。其主要的功能实现为管理员维护学生、教师以及课程信息,并对学生成绩进行审核;学生能够查看自己各学期所学课程的成绩信息;教师可以录入、修改和查询学生的成绩[5]。
1.3主要研究内容
本次的移动高校成绩查询系统是基于Android平台的,主要使用的是Java语言编写以及SQLite数据库来进行存储的处理。
本文的主要研究内容有:
系统需求分析
了解现有高校管理系统的结构和功能,根据开发需要,分析出基于Andoird平台的本系统的用户需求以及性能需求
系统总体设计
研究基于Android平台的开发方法,设计出系统的整体架构,设计出数据库的结构与逻辑,并实施完成。
系统详细设计
了解系统的总体设计后,分析系统的功能模块流程,再以此来进行详细的功能设置。
实现与总结
在Eclipse环境下使用Java语言编写实现本系统,最后通过使用虚拟机来完成系统的运行测试。
概括:本系统的功能是实现三种用户类型的不同权限操作,分别为管理员、教师以及学生。管理员的权限是可以对教师及学生信息还有课程信息进行删除或修改、教师则可以对学生成绩进行增删查改。学生的功能则是查看自己各科成绩。本系统基本实现与成绩挂钩的功能,便于用户使用查询。
1.4小结
本章主要介绍了论文的研究的目的和意义、现状分析以及主要的研究内容,整理出基于Android平台的移动高校成绩查询系统所需要准备的一些工作。

2.相关技术介绍

本章将介绍与开发本系统有关的主要技术,分别包括Android平台介绍以及数据库操作介绍。
2.1Android平台介绍
Android是一种基于Linux的自由开源代码的操作系统,其主要使用于移动设备,例如智能手机和平板电脑,由Google公司和开放手机联盟领导开发。在2007年11月5日,Google公司对外宣布开发了基于Linux平台的开源手机操作系统,命名为Android,但在国内尚未有统一的中文名称,所以中国地区较多人使用“安卓”和“安致”。在随后的2008年9月,T-Mobile公司推出了第一步Android智能手机。此后,Android系统步入了迅速发展时期,逐渐取代IOS系统成为最多人使用手机操作系统[6]。
Android系统由于其开源性,使得移动设备开发商获得了毫无保留的操作系统源代码,这样可以有效的促进设备的不断更新,使得移动终端得到了更多的完善。
Android系统由于是由Linux+Java构成的,所以其作为手机操作系统,有着如下的特征:
Android系统的应用程序框架是由许多的组建组成的,开发者可以根据自己的需求综合的利用组建,也可以自己去开发具有自己特色的组建来使用,从而不会一味的限制开发的效果。
Android系统具有专门为移动设备优化的Dalvik虚拟机,此虚拟机相比于甲骨文的Java虚拟机运行速度更快,占用资源也越少。
Android系统基于开源引擎WebKit的内嵌浏览器,使得Android浏览器对于其他浏览器的速度更快。
Android系统自定义的2D图形库提供了最佳图形效果,此外还支持3D图形功能,使得游戏画面在Android系统上能够有更好的体现。
Android系统支持如今的大部分音频、视频和图片格式,所以用户在此基础上可以开发出具有自己特色的多媒体应用程序,而且不用受限于格式。
Android系统的SQLite数据库是一款嵌入式数据库,其轻巧方便、占用资源率低、性能好、速度快,所以非常的适用于移动嵌入式。
Android系统提供了强大的开发环境,使用Google提供的Android开发包SDK,其中包含了大量了类库和开发工具,并且在Eclipse的可视化开发了相应的插件ADT[7]。
2.2数据库操作
Android开发架构提供了5中数据存储方式(SharePreferences、FileShared、SQLite、Network、ContentProvider)[8]。其中SQLite是属于轻量级、嵌入式的关系型数据。SQLite中,它可以把任何类型的数据放入匹配或不匹配的列中,而不会影响到数据库的操作。同时它还是一个不需要服务器的接近零配置的数据库引擎。
SQLite的特征[9]:
SQLite运行时占用内存少,且大部分SQL查询都能够顺利执行
作为开源的数据库,SQLite允许所有开发者了解它,以此来帮助开发者更好的运用次数据库。
SQLite不需要安装及配置
SQLite能够存储大量数据,而且操作较快。
SQLite中单个的库文件运行时不需要其他库文件配合,因为它自己包含了数据引擎和借口。
2.3小结
本章介绍了Android平台以及数据库,主要是在开发前了解清楚相关知识。明确所需要运用到的知识,合理有序的进行程序的开发。

3.系统需求分析

需求分析是指对解决的问题进行详细的分析,其是信息管理系统的首要步骤。需求分析的建立是就是要确立计算机要做什么,要达到什么效果。而在软件生命周期里,需求分析包括用户需求、功能需求、性能需求以及界面需求等,明确整个系统的业务逻辑和相应功能。
3.1用户需求
随着信息化时代的到来,我们获取信息的手段越来越多。高校的广大师生获取信息的数量以及途径也非常的多,由此更加需要有一种能够不受时间和地点限制的随时查询系统。对于以往的查询方式,基本都是基于B/S方式查询,虽然与传统的纸质信息管理系统相比,能够更加方便的查看信息,但是仍然受到了地点及设备的限制。随着以手机为代表的的移动信息技术的高速发展,智能手机的普及率大大提高,结合手机的便携性和及时性的特点,能够有效的解决现有的系统的不便性。
本次的研究就是在Android手机上实现高校学生成绩查询系统,该系统主要是通过简单的输入功能以及点击按钮事件来实现对学生成绩信息的增删查改的操作,其主旨是为了便捷师生使用该系统时不需要受到地点及时间的限制。本系统的使用用户种类大致分为管理员、教师和学生,不同用户种类所拥有的操作权限也有所区别。
3.2功能需求
本次的研究主要是为了满足高校用户对信息查询的基本需求,所以本系统主要实现的功能包括了学生的成绩查询,教师对学生的成绩添加以及管理员对教师和学生信息的审查和删除功能。
在功能需求中,还需要用到系统用例图。其作用是为了描述系统的业务逻辑和参与者之间的联系。
学生用例图如图3.1所示。
在这里插入图片描述

图3.1 学生用例图
教师用例图如图3.2所示。
在这里插入图片描述

图3.2 教师用例图
管理员用例图如图3.3所示。
在这里插入图片描述

图3.3 管理员用例图
3.3性能需求
性能需求一般包括制定系统所需要满足的条件,通常包括了响应速度、信息量速率、主存容量、硬盘容量、安全性等方面的需求。性能需求是系统设计的重要目标,其目的是提高系统性能,有利于提高系统的执行效率和稳定性,为用户提供良好的体验。系统性能需求设计的内容如下:
可扩展性:
可扩展性体现了系统的灵活性,良好的可扩展性能够为系统的拓展和后期的功能维护奠定基础,而有新的需求时可以方便的增加或修改功能。同时采用MVC模式,能够大大的减少代码之间的耦合性,更加的易于实现。
可维护性:
系统的可维护性体现了系统代码质量的好坏。在系统设计的过程中,我们需要明确个各类的数据成员和方法,为后期修改提供相应的指导。在编码阶段,需要对相应的数据成员及方法进行注解,以便增强代码的可读性。而mvc模式的使用,也是提高了代码的重用性。
交互性:
界面风格,错误提示等方式都会影响到交互性。因此在设计该系统的时候,需要合理的对设计进行优化。
界面的整体操作主要依靠按钮完成,减少用户由于输入错误而导致出现问题。
在需要输入的地方给出相应的提示,以便提醒用户合理输入。
当用户要进行删除操作时,应弹出相应的询问,以此来避免用户操作失误。
安全性:
由于本系统总共分为三个角色,所以在用户登录时,应该进行相应的合法性检测,避免用户类型不符,而进行了错误的操作.其外还需要对空白输入进行判断,预防插入非法字符。
3.4界面需求分析
本系统是基于Android平台开发的一款在智能手机终端上使用的软件.其主要的使用者是老师和学生两个大群体,外加管理员负责对资料的管理.而作为手机端上的查询系统,其交互设计上需要满足简单易用.因此,在本软件的界面布局上应该尽量简洁明了,字体大小要适中,特别对于查询后的资料显示,由于有一批信息需要显示,所以需要留有足够的面积来显示查询结果.另外为了避免用户多次输入而造成数据有误,尽量使用按钮的形式,通过点击事件来完成功能,并且在必要的输入框旁添加输入提示,以此来提醒用户正确的输入。
3.5小结
本章主要从用户需求、界面需求、功能需求和性能需求四个方面讲述了基于Android平台的高校移动成绩查询系统的综合分析,并对相应的模块进行设计和给出角色的用例图。

4.系统总体设计

系统的总体设计是开发本系统的第二阶段,其主要的任务是设计系统的框架和大体外貌。本章将从设计原则与目标开始,讲述相应的架构和数据库等。
4.1设计原则与目标
基于Android平台的高校移动成绩查询系统,在设计时应该遵循如下的原则与目标:
友好性原则:本系统的主要服务对象是教师和学生,因此在设计的过程中要求客户端界面要设计的简单明了且便于操作,让使用者能够快速进行相应的操作。
可靠性原则:由于本系统保存着个人信息,所以对数据进行查询时,需要核查是否拥有查看信息的权限。
本系统设计的目的是在具有Android系统的手机上开发出一款便捷的软件,为此实现高校师生对相关信息的查询。
4.2客户端设计
本次软件的开发过程中,为了保障发开的软件拥有良好的界面以及合理的功能划分,所以就此选择采用了MVC(模型-视图-控制器)模式[10]。
对于开发架构的设计,结合功能需求分析可以得知用户共分类三类,分别为学生、教师和管理员,其中学生的主要功能就是查询自己各科成绩信息。教师则可以对学生分数等信息进行修改。而管理员则是可以管理学生和老师的资料,拥有删除的功能。系统的功能模块如图4.1所示。
在这里插入图片描述

图4.1 功能模块图
由于本系统的目的是方便用户使用,所以用户界面在设计的时候,主要是使用按钮排布,大部分功能通过点击按钮进入相关界面,最后通过输入对应的内容进行增删查改。
4.3数据库设计
4.3.1数据库概念结构设计
数据库的设计[11],需要经过系统用户的需求分析,然后对所需数据进行分类,再以此为数据模型。数据库设计最主要的第一个阶段,也是系统数据库的关键所在。通过使用实体-联系方法,即使用E-R图来整理。这种方法可以有效的表示出各个实体属性之间的关系,方便我们对数据库的建立。本系统的E-R图[12]如图4.2所示:
在这里插入图片描述

图4.2 系统E-R图
4.3.2数据库逻辑结构设计
1)学生(学号、密码、姓名、性别、年龄)
2)教师(教工号,密码,姓名,性别,年龄)
3)管理员(管理员号,密码)
4)课程(课程编号,课程名,教工号)
5)成绩(课程编号,学号,成绩)
4.3.3数据库的实现
学生表如表4.1所示。
表4.1 学生表
序号 字段 说明 数据类型 约束 备注
1 snumber 学号 varchar(10) 主键约束
2 spassword 密码 varchar(20) 非空
3 sname 姓名 varchar(20) 非空
4 ssex 性别 varchar(3) 非空
5 sage 年龄 varchar(10) 非空

教师表如表4.2所示。
表4.2 教师表
序号 字段 说明 数据类型 约束 备注
1 tnumber 教工号 varchar(10) 主键约束
2 tpassword 密码 varchar(20) 非空
3 tname 姓名 varchar(20) 非空
4 tsex 性别 varchar(3) 非空
5 tage 年龄 varchar(10) 非空

管理员表如表4.3所示。
表4.3 管理员表
序号 字段 说明 数据类型 约束 备注
1 asnumber 管理员号 varchar(10) 主键约束
2 apassword 密码 varchar(20) 非空

课程表如表4.4所示。
表4.4 课程表
序号 字段 说明 数据类型 约束 备注
1 cnumber 课程编号 varchar(10) 主键约束
2 cname 课程名 varchar(10) 非空
3 tnumber 教工号 varchar(10) 非空

成绩表如表4.5所示。
表4.5 成绩表
序号 字段 说明 数据类型 约束 备注
1 snumber 课程编号 varchar(10) 主键约束
2 cnumber 学号 varchar(10) 主键约束
3 score 成绩 varchar(10) 非空

4.4小结
本章介绍了系统的总体设计的原则和目标,给出了相应的系统功能模块划分的设计,同时也结合了E-R图来实现数据库的相应设计。

5.系统详细设计与实现

在系统总体设计的基础上,需要进行详细设计,确保完成程序主过程中每个模块的详细执行。
5.1主要过程设计
通过结合系统功能模块设计和用例图,本系统的主要过程如下几个模块。首先展示欢迎界面以及选择用户类型界面, 欢迎界面如图5.1所示。
在这里插入图片描述

图5.1 欢迎界面
选择用户类型界面如图5.2所示。
在这里插入图片描述

图5.2 选择用户类型界面
欢迎界面自动跳转到用户类型选择界面的代码实现如下:
public class WelcomeActivity extends Activity {

private final long SPLASH_LENGTH = 2000;    
Handler handler = new Handler();  
public void onCreate(Bundle savedInstanceState) {  

super.onCreate(savedInstanceState);
//WelcomeActivity类关联activity_welcome.xml文件
setContentView(R.layout.activity_welcome);

//创建数据库
DBAdapter db = new DBAdapter(this);

db.open();
//默认插入三条数据,方便测试
long id = db.insertContact_Admin(“admin”,“123456”);
long id1 = db.insertContact_STUDENT(“student”, “123”, “xx”, “男”, “18”);
long id2 = db.insertContact_TEACHER(“teacher”, “123”, “xx”, “男”, “18”);
db.close();

handler.postDelayed(new Runnable() {  //使用handler的postDelayed实现延时跳转  
      
    public void run() {    
        Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);    
        startActivity(intent);    
        finish();       
    }    
}, SPLASH_LENGTH);//2秒后跳转至应用主界面MainActivity  
  
}

}
5.2用户登录模块
本系统在正常开启状态下,跳出欢迎界面后自动跳转到用户类型选择界面,其目的是为了保存对应的用户类型,方便后面对不同模块的操作。而在选择用户类型后,就将进入到登录界面,登录界面主要可以实现用户登录或者用户注册,而规定管理员只允许存在一位,所以管理员类型的登录界面无法进行注册。
对于登录功能,用户输入账号和密码后点击登录,软件将在会对输入的内容与数据库中对应的表进行匹配,只有用户名和密码都正确的情况下,才能跳转进入功能页面,否则只能停留在登录页面。
用户登录流程图如图5.3所示。
在这里插入图片描述

图5.3 用户登录流程图
用户登录实现界面如图5.4所示。
在这里插入图片描述

图5.4 用户登录界面
根据不同用户,判断是否可以使用注册功能,部分实现代码如下:
先通过bundle携带数据,并传递到下一个页面中
btn_admin.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,LoginActivity.class);
//用Bundle携带数据
Bundle bundle=new Bundle();
//传递name参数
bundle.putString(“type”, “admin”);
intent.putExtras(bundle);
startActivity(intent);
}
});
再通过获取传递的值,进而判断注册按钮是否可以用
//新页面接收数据
Bundle bundle = this.getIntent().getExtras();
//接收name值
name = bundle.getString(“type”);
if(“admin”.equals(name)){
btn_register = (Button) findViewById(R.id.btn_register);
btn_register.setEnabled(false);
}
//根据用户类型跳转对应的页面
btn_log = (Button) findViewById(R.id.btn_log);
btn_log.setOnClickListener(new View.OnClickListener() {
private EditText et;
private Intent intent;

		public void onClick(View v) {
			et=(EditText)findViewById(R.id.userName);
        	name = et.getText().toString();
        	et=(EditText)findViewById(R.id.password);
        	pwd = et.getText().toString();
			switch(name){
			case "admin":
	        	if(user_name.equals(name)&&user_pwd.equals(pwd)){
	        		intent = new Intent(LoginActivity.this,UserAdminActivity.class);
    				startActivity(intent);
	        	}
				break;
			case "teacher":
	        		if(teacher_tnumber.equals(name)&&teacher_tpassword.equals(pwd)){
	        		intent = new Intent(LoginActivity.this,UserTeacherActivity.class);
    				startActivity(intent);
	        	}
				break;
			case "student":
	        	if(student_snumber.equals(name)&&student_spassword.equals(pwd)){
	        		intent = new Intent(LoginActivity.this,UserStudentActivity.class);
    				startActivity(intent);
	        	}
				break;
			default:
					break;
			}
		}
	});

注册界面实现如图5.5所示。
在这里插入图片描述

图5.5 注册界面实现
5.3管理员模块
选择管理员类型正常登陆后,可以拥有删除教师以及学生用户的权限,还能够对课程信息进行相应的修改。
管理员删除用户流程图如图5.6所示。
在这里插入图片描述

图5.6 管理员删除用户流程图

管理员删除课程流程图如图5.7所示。
在这里插入图片描述

图5.7 管理员删除课程流程图

管理员添加课程流程图如图5.8所示。
在这里插入图片描述

图5.8 管理员添加课程流程图
管理员模块实现界面如图5.9所示。
在这里插入图片描述

图5.9 管理员模块界面
5.4教师模块
选择教师类型正常登陆后,拥有查询所有学生信息、单个学生信息以及成绩管理操作。
教师查询单个学生信息流程图如图5.10所示。
在这里插入图片描述

图5.10 教师查询单个学生信息流程图

教师修改学生分数流程图如图5.11所示。
在这里插入图片描述

图5.11 教师修改学生分数流程图
教师模块实现界面如图5.12所示。
在这里插入图片描述

图5.12 教师模块实现界面
5.5学生模块
选择学生类型正常登陆后,拥有查询成绩的功能,可以打印出自己所有已存在的成绩数据和选课功能。
学生选课功能流程图如图5.13所示。

在这里插入图片描述

图5.13 学生选课功能流程图
教师模块实现界面如图5.14所示。
在这里插入图片描述

图5.14 学生模块实现界面
5.6其他功能
修改登录密码,用户可以在登陆后对个人密码进行修改,验证连续两次相同的新密码后,将新密码提交到数据库中,替换旧密码。
修改密码流程图如图5.15所示。
在这里插入图片描述

图5.15 修改密码流程图
5.7小结
本章主要介绍了系统功能模块的详细设计过程,并绘制了相关的主要处理流程图。

6.系统测试

6.1系统开发环境的搭建
Android平台开发环境的搭建包括了JDK安装,Eclipse安装,Android SDK以及ADT安装,其中这些软件的安装过程需要有如下注意事项[13]:
1)JDK的安装中需要对环境变量进行设置,统一变量名为JAVA_HOME,这样可以方便以后更换JAVA_HOME的路径,其变量值就是JDK文件的存储路径。
2)Eclipse安装完成后,初次使用最好设置workspace,方便我们日后对项目的管理。
3)下载所需的SDK与ADT,按要求正常安装。
4)在第一次创建Android模拟器前,需要将SDK路径添加到Eclipse系统中Windwos->Preferences->Android中的SDK location。
5)Android卡法环境搭建成功后,新创建一个模拟器并启动,我们就能够在虚拟机上运行所写的软件。
6.2测试方法
由于使用虚拟机进行测试存在一定的局限性以及耗费时间较长,所以本次测试将采用智能手机直接连接测试,从而增快测试进度。
本次测试的主要内容包括数据库连接的验证、页面跳转以及部分功能是否正常实现。所以我将主要采用黑盒测试[14]。黑盒测试是为软件质量提供重要的保障,其是一种功能性的测试,主要测试的是外部结构,在不考虑内部的情况下,检测软件界面与功能是否正常能够使用。所以黑盒测试是以输入数据与输出数据的对应关系来进行测试的。
6.3功能测试
1)测试对象:界面初始化
用例目的:测试界面初始化功能是否正确实现
实现说明:在打开软件的时候,WelcomeActivity绑定并显示欢迎界面。在欢迎界面中,为了方便后面对数据库连接以及对数据的操作,在此创建数据库,并分别对教师表、学生表、管理员表各插入一条数据。再通过使用handler的postDelayed实现延时跳转,让用户有一种界面直接跳转的效果显示。界面测试用例[15]表如表6.1所示。
表6.1 界面测试用例表
用例编号 用例及操作步骤 预期结果 测试结果
InitTest01 启动软件 显示欢迎页面后自动跳转到用户类型选择界面
在这里插入图片描述

2)测试对象:用户选择界面
用例目的:测试用户选择界面跳转是否正常
实现说明:在用户选择界面中,拥有四个按钮可供选择,分别是管理员、教师、学生以及退出。对四个按钮设置点击事件,通过获取当前点击的按钮,进而判断下一步动作。其中管理员、教师以及学生这三个按钮被点击时,设置相应的Bundle来传递对应的值到下一个跳转页面,由此下一个页面可以根据获取的传递值,进而进行一些功能权限的操作。而退出按钮,为了防止用户误点退出按钮,所以当点击退出按钮时,使用Dialog对象弹出确认框,再次确认退出才结束程序。用户选择界面测试用例表如表6.2所示。
在这里插入图片描述

表6.2 用户选择界面测试用例表
用例编号 用例及操作步骤 预期结果 测试结果
TypeTest01 选择管理员 自动跳转到登录页面,并且注册按钮为不可用状态
TypeTest02 选择教师 自动跳转到登录页面
TypeTest03 选择学生 自动跳转到登录页面
TypeTest04 选择退出 弹出退出确认提示框,可选择”确定”正式退出,”取消”则不退出

3)测试对象:登录界面
用例目的:测试用户选择界面跳转是否正常
实现说明:在登录界面中,通过接受用户选择界面传递过来的参数,确认当前需要登录的用户类型,进而在对应的表中使用数据库语句进行数据查询。当用户输入帐号和密码后,点击登录按钮,程序将用户输入的数据与数据库中获取到的数据进行匹配,若用户名和密码都匹配成功,则可以进入该用户类型的下一页面,否则将不能登录。登录界面测试用例表如表6.3所示。
表6.3 登录界面测试用例表
用例编号 用例及操作步骤 预期结果 测试结果
LoginTest01 不输入用户名和密码,点击登录按钮 提示”用户名与密码为空”
LoginTest02 不输入用户名,但输入密码”123456”,点击登录按钮 提示”用户名为空”
LoginTest03 不输入密码,但输入用户名”admin”,点击登录按钮 提示”密码为空”
LoginTest04 输入错误的用户名”a”和错误的密码”b”,点击登录按钮 提示”用户名或密码错误”
LoginTest05 输入错误的用户名”a”和正确的密码”123456”,点击登录按钮 提示”用户名或密码错误”
LoginTest06 输入正确的用户名”admin”和错误的密码”b”,点击登录按钮 提示”用户名或密码错误”
LoginTest06 输入正确的用户名”admin”和正确的密码”123456”,点击登录按钮 成功跳转到对应的管理员页面
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7.总结

本次的毕业设计中,在导师的帮助下,本人实现了高校移动成绩查询系统的部分功能与由于一开始对于Android系统中使用SQLite数据库的操作并不熟悉,导致了浪费了大量时间。针对本次内容,我的总结如下:
1)软件开发前期,需求分析与设计非常的重要,只有在开发前做好分析与设计,我们在开发的过程中才能通过用例图、流程图等图表来规划我们的开发过程。同时还能够对开发过程中数据库字段以及程序中变量名进行统一规范,进而方便我们的开发。
2)界面的设计虽然要求设计简洁、实用和操作简单。但是本次的界面设计还是过于简单。而且值得注意的是,在用户需要获取信息的时候,对应的显示页面需要留有足够多的空间以供用户查看。
3)软件测试的过程中,可以使用Eclipse集成开发环境下的Android虚拟机进行测试,但是相比于使用Android系统的手机,虚拟机测试耗费的时间以及资源较大,所以可以使用Android系统的手机进行测试。而已实现的功能中,基本测试功能都达到了预期的效果。
由于本人能力有限,所有有些功能还存在问题,并不能正常的实现,就如对于学生信息的查询功能中,由于显示的问题,只能做到字符串的输出,所以这一功能还是有待实现修改的。同时本次使用的数据库是本地数据库,并没有实现访问服务器获取数据库中的数据,这个也是需要我以后继续学习与服务器有关的知识来补充该功能的。

参考文献

[1] 黄荣怀,张进宝,胡永斌,杨峻锋. 智慧校园:数字校园发展的必然趋势[D].北京:北京师范大学,2012
[2] 陈琳. 2013中国教育信息化发展透视[D].江苏:江苏师范大学,2013
[3] 中央新闻微博.2016中国网民数量规模达7.1亿,手机网民规模达6.56亿[J/OL]. http://www.360doc.com/content/16/0806/19/22010781_581279265.shtml,2016.
[4] 雪花. Android 6.0彻底大爆发:市场占比暴涨近一倍![J/OL]. http://www.techweb.com.cn/it/2016-05-04/2326808.shtml,2016.
[5] 庞钰平.国内外高校教务管理系统的研究现状[D]. 苏州:苏州工艺美术职业技术学院,2013
[6] 李刚. 疯狂 Android 讲义[M]. 北京:电子工业出版社,2013: 25-42
[7] 牛亚斌. 基于Android平台的高校学生信息查询系统设计与实现[D].陕西:西北农林科技大学,2016.
[8] zmazing7. Android 数据存储五种方式使用与总结[J/OL]. http://blog.csdn.net/amazing7/article/details/51437435,2010.
[9] 刘金岭 冯万利. 数据库系统及应用教程—SQL Server 2008[M]. 北京:清华大学出版社,2013:108-154
[10] 张长春. 基于Android的学生成绩管理系统的设计与实现[D].新疆:新疆大学信息科学与工程学院,2016.
[11] 168一路发. 数据库的概念结构设计[J/OL]. http://www.360doc.com/content/11/0406/10/1107705_107517236.shtml,2011.
[12] 李丽丽. 学生成绩查询系统的设计与实现[D].山东:菏泽学院,2015.
[13] 边写边唱. 五步搞定Android开发环境部署[J/OL].http://www.cnblogs.com/zoupeiyang/p/4034517.html,2014.
[14] 胡静. 浅析黑盒测试与白盒测试[D].山东:枣庄学院,2008
[15] 孓然 一身. 功能测试测试方法及测试点[J/OL]. https://wenku.baidu.com/view/686d668802d276a200292e62.html,2013.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/449465.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Servlet的book图书表格实现(使用原生js实现)

作业内容: 1 建立一个book.html,实现图书入库提交 整体参考效果如下: 数据提交后,以窗口弹出数据结果,如: 2 使用正则表达式验证ISBN为x-x-x格式,图书名不低于2个字符,作者不能为空,单价在【10-100】之间…

【解读】区块链和分布式记账技术标准体系建设指南

大家好,这里是苏泽。一个从业Java后端的区块链技术爱好者。 今天带大家来解读这份三部门印发的行业建设指南《区块链和分布式记账技术标准体系建设指南》 原文件可查看P020240112840724196854.pdf (www.gov.cn) 以下是个人解读,如有纰漏请指正&#xff…

无人机手持地面站软件功能详解,无人机手持地面站软件开发人员组成及成本分析

无人机手持地面站软件是专为无人机操控和任务管理设计的移动应用,它通常集成在智能手机、平板电脑或其他便携式设备上,使得用户可以在远离无人机的地方对飞行器进行实时监控与远程控制。 主要功能详解: 1. 飞行控制与姿态显示: …

深度学习:生成模型的创新应用与未来展望,引领科技新潮流!

在人工智能的浪潮中,深度学习正以其强大的学习和表示能力,不断推动着各个领域的进步。其中,深度学习在生成模型中的应用尤为引人注目,它不仅为我们提供了生成全新、类似数据的能力,更为多个领域带来了革命性的变革。 …

经典的神经网络#1 Lenet

经典的神经网络#1 Lenet 关注B站查看更多手把手教学: 肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) 网络结构介绍 LeNet的论文地址为:http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf。这篇论文名为《Gradient-Based Learnin…

Gitlab CICD 下载artifacts文件并用allure打开,或bat文件打开

allure命令行打开aritfacts报告 首先下载allure.zip,并解压 配置环境变量 使用命令行打开allure文件夹 allure open 2024-03-11-14-54-40 2024-03-11-14-54-40 包含index.html Bat文件打开artifacts There are 2 html reports in the download artifacts.zip S…

SpringMVC | SpringMVC中的 “数据绑定”

目录: “数据绑定” 介绍1.简单数据绑定 :绑定 “默认数据” 类型绑定 “简单数据类型” 类型 (绑定Java“基本数据类型”)绑定 “POJO类型”绑定 “包装 POJO”“自定义数据” 绑定 :Converter (自定义转换器) 作者简介 :一只大皮卡丘&#…

数组名结合指针的面试题的讲解

笔试题 第一题: 已知条件: 已知p为结构体指针变量,值为0x100000,并且结构体的大小为20字节,并且打印格式均为%p,%p不会在乎正负数,它会以补码的形式直接打印,0x1为16进制的1。 第一问…

java使用anyMatch判断自定义值是否在HashMap数组中

java使用anyMatch判断自定义值是否在HashMap数组中 一、代码 一、代码 Testvoid test() {List<Map<String, Object>> list new ArrayList<>();Map<String, Object> map1 new HashMap<>();map1.put("key1", "value1");map1…

文献阅读笔记:全卷积神经网络

文献阅读笔记&#xff1a;全卷积神经网络 摘要Abstract1. 全卷积神经网络1.1 文献摘要1.2 全卷积神经网络1.2.1 网络结构1.2.0 从分类器到密集 FCN1.2.2 上采样 Upsampling1.2.3 跳级结构1.2.4 FCN训练 1.3 实验1.4 总结 2. 代码实现 摘要 本周学习了全卷积神经网络&#xff0…

嵌入式面经-ARM体系架构-计算机基础

嵌入式系统分层 操作系统的作用&#xff1a;向下管理硬件&#xff0c;向上提供接口&#xff08;API&#xff09; 应用开发&#xff1a;使用操作系统提供的接口&#xff08;API&#xff09;&#xff0c;做上层的应用程序开发&#xff0c;基本不用去关内核操作硬件是怎么实现的 …

数字电子技术笔记——组合逻辑功能

1.Adder&#xff08;加法器&#xff09; Half-Adder&#xff08;半加器&#xff09; Full-Adder&#xff08;全加器&#xff09; 74LS283(4-bit parallel adders) carry look-ahead adder &#xff08;超前进位加法器&#xff09; 2.Comparator&#xff08;比较器&#xff09;…

hadoop报错:HADOOP_HOME and hadoop.home.dir are unset. 解决方法

参考&#xff1a;https://blog.csdn.net/weixin_45735242/article/details/120579387 解决方法 1.下载apache-hadoop-3.1.0-winutils-master 官网下载地址&#xff1a; https://github.com/s911415/apache-hadoop-3.1.0-winutils win配置系统环境&#xff1a; 然后重启idea…

【golang】28、用 httptest 做 web server 的 controller 的单测

文章目录 一、构建 HTTP server1.1 model.go1.2 server.go1.3 curl 验证 server 功能1.3.1 新建1.3.2 查询1.3.3 更新1.3.4 删除 二、httptest 测试2.1 完整示例2.2 实现逻辑2.3 其他示例2.4 用 TestMain 避免重复的测试代码2.5 gin 框架的 httptest 一、构建 HTTP server 1.1…

[密码学]Base64编码

一、相关指令 1. 查看工具版本号 base64 --version2. 对字符串加密 echo 字符串 | base64 echo "Hello base64" | base643. 对字符串解密 echo 字符串 |base64 -d echo "SGVsbG8gTGV0aWFuLVJTQQo" | base64 -d4. 对文件加密 base64 文件名 base64 tex…

Linux Centos系统 磁盘分区和文件系统管理 (深入理解)

CSDN 成就一亿技术人&#xff01; 作者主页&#xff1a;点击&#xff01; Linux专栏&#xff1a;点击&#xff01; CSDN 成就一亿技术人&#xff01; 前言———— 磁盘 在Linux系统中&#xff0c;磁盘是一种用于存储数据的物理设备&#xff0c;可以是传统的硬盘驱动器&am…

个人商城系统开源(配置支付宝支付!)

原文地址&#xff1a;个人商城系统开源&#xff08;配置支付宝支付&#xff01;&#xff09; - Pleasure的博客 下面是正文内容&#xff1a; 前言 由于近期实在没有什么话题可写和一些有趣的项目教程可以分享。所以我只能决定将我自己亲手编写的一个迷你迷你商城系统进行开源…

HYBBS 表白墙网站PHP程序源码,支持封装成APP

PHP表白墙网站源码&#xff0c;适用于校园内或校区间使用&#xff0c;同时支持封装成APP。告别使用QQ空间的表白墙。 简单安装&#xff0c;只需PHP版本5.6以上即可。 通过上传程序进行安装&#xff0c;并设置账号密码&#xff0c;登录后台后切换模板&#xff0c;适配手机和PC…

软考 系统架构设计师之回归及知识点回顾(6)

接前一篇文章&#xff1a;软考 系统架构设计师之回归及知识点回顾&#xff08;5&#xff09; 10. 边缘计算 边云协同 边缘计算与云计算各有所长&#xff0c;云计算擅长全局性、非实时、长周期的大数据处理与分析&#xff0c;能够在长周期维护、业务决策支撑等领域发挥优势&…

【汇编】#4 8086与转移地址有关有关的寻址方式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、CS与IP功能tips&#xff1a;CS、IP复位值 二、修改CS与IP的指令1. jmp指令 三、与转移地址有关的寻址方式1、段内转移1.1 段内直接寻址1.2 段内间接寻址 2. 段间…
最新文章