基于Android的智能校园平台的开发与设计_第1页
基于Android的智能校园平台的开发与设计_第2页
基于Android的智能校园平台的开发与设计_第3页
基于Android的智能校园平台的开发与设计_第4页
基于Android的智能校园平台的开发与设计_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要随着网络技术的飞速进步,移动设备的快速更迭,网络应用的广泛性不断扩大,尤其体现在青年群体中。特别的,在各个大学校园中,校园信息门户网站已经初见规模,然而移动端校园信息软件的建设尚未完善,许多大学生仍因为信息分布杂乱、访问设备局限而较少的使用校园信息门户,造成资源浪费。本软件是为大连科技学院开发的,在Android手机系统中使用的校园应用。软件分为两大用途,教务查询和校园生活。软件的教务功能是为学生提供更方便的教务信息查询,它可以查询学生成绩、查询课程表、查询空教室。现有教务网站虽然可以快速查询此类信息,但是也有自身不可避免的缺点。手机客户端则能够弥补网站查询的不足,可以随时随地查询信息,并可以离线保存,随时取阅。软件开发其目的是在移动平台上方便学生群体,增强校园生活的便利性。软件采用Java语言编程,使用Andorid内置的SQLite轻量关系型数据库,数据源自教务系统和信息门户的整合,采用Android Studio开发,基于Android 4.0测试。软件的校园生活模块内分为两个部分。一是对现有的校园信息进行资源整合,方便学生快速获取校园服务信息,二是加入了校园卡管理、生活费用缴纳平台,利用现有网络支付渠道,方便学生随时办理网上查询、缴费等服务。关键词:Andorid信息手机校园移动端软件ABSTRACTWith the rapid progress of network technology, the rapid change of mobile devices, the extensive use of network applications continue to expand, especially in the youth groups. In particular, in the various university campus, the campus information portal has already begun to see the scale, but the mobile side of the campus information software construction is not yet perfect, many college students still because of the messy information, hardly access to equipment result in less use of campus information portal Waste of resources. The software is developed for the Dalian Institute of Technology, in the Android mobile phone system used in the campus application. The software is divided into two uses, educational inquiry and campus life.The educational function of the software is to provide students with more convenient educational information inquiry, it can query student grades, query the curriculum, query empty classroom. Although the existing educational website can quickly query such information, but also has its own inevitable shortcomings. Mobile client can make up for the lack of Web site inquiries, you can query information anytime, anywhere, and can be saved offline, ready to access. The purpose of software development is to facilitate the student community on the mobile platform and enhance the convenience of campus life. The software uses Java programming language, using Andorid built-in SQLite lightweight relational database, data from the educational system and information portal integration, using Android Studio development, based on Android 4.0 test.Software campus life module is divided into two parts. First, the existing campus information resources integration, to facilitate students to quickly access the campus service information, the second is to join the campus card management, living expenses to pay the platform, the use of existing network payment channels to facilitate students at any time for online inquiries, payment services.Key words:AndroidInformationMobile SchoolApp目录1 前言11.1 功能设计22 系统开发环境32.1 Android系统介绍32.2 Android系统结构32.2.1 Android应用程序42.2.2 Android应用程序框架52.2.3 Android运行依赖52.2.4 Android Linux内核62.3 Android四大组件62.3.1 Activity62.3.2 Service72.3.3 Broadcast Receiver72.3.4 Content Provider72.4 Okhttp工具72.5 NFC近场传输72.6 开发环境83 软件需求分析93.1 现有环境介绍93.1.1 教务系统介绍93.1.2 校园生活介绍103.2 功能需求113.3 可行性分析123.3.1 经济可行性123.3.2 技术可行性123.3.3 运行可行性124 数据库系统设计134.1 数据库概念134.2 数据库表的设计134.3 表的介绍144.4 E-R图175 模块介绍185.1 教务模块介绍185.1.1 登陆模块185.1.2 成绩查询模块225.1.3 课程表查询模块235.2 校园功能设计255.2.1 信息整合255.2.2 生活账户管理265.2.3 NFC支付功能266 系统测试28结论31谢辞32参考文献33附录34大连科技学院2017届本科生毕业设计(论文)1 前言在当下21世纪,高等教育正处在发展的重要阶段,将校园信息数字化,成为了每所高校最基本的建设要求。特别是在互联网、智能设备普及的今天,很多业务的处理从电脑端开始转向移动端,在移动端办公成为了未来的必然趋势。目前,我国各高校的校园信息门户网络已经普遍建成,数字化的教学安排、信息公示已成大局,学生可以通过计算机访问校园网站获取信息。这相较于过去通过纸质分发传播信息,或是通过教师向学生群体传达有三个突出的优势:1. 可以节省材料,免去纸质资源的浪费将数据、信息有序处理、分发,避免杂乱。2. 通过有规律的筛选和分析,可以更加快速的得到关键结果,如成绩分布等。3. 减少人力资源的同时,减少甚至避免错误。但目前大部分高校的校园信息门户仍有以下几点弊端:在教务查询方面:1. 教务信息查询必须通过网站查询,除了需要输入用户名和密码,还需要在页面上进行复杂的步骤操作,进入若干的页面进行查询,影响信息获取的速度;2. 页面没有对移动端进行屏幕适配,移动设备访问网站可能导致网页显示不全和操作受限,以至于无法进行正常的操作;3. 查询到的数据只能自行记录,费时费力;网站不能够离线保存数据。在校园生活方面:1. 在常用信息部分,信息分布在校园网站下的各个链接中,分布散乱,查询不便。2. 在缴费充值部分,对于人力成本的浪费和学生充值的不便。部分学校的校园卡、宿舍电费等等必须通过人工充值,极大的浪费了人力成本同时学生也要长时间的排队等候;其次,除前一点提到的排队时间的浪费外,缴费的及时性难以达到,对于半夜停电或是缴费点休息的状况,会给学生带来极大的不便;综上所述,将其拓展到网络上运行也将成为未来的必然趋势。3. 在支付方式上,必须随身携带各式各样的校园卡以面对不同的支付方式,不够方便、快捷。丢失后他人如果拾取卡片亦可以盗刷,造成财产损失。随着技术的日新月异,移动设备在电子设备市场中占有的份额与日俱增;无线局域网技术、4G通讯技术的蓬勃发展,使得这些移动设备能够方便、快速、随地的访问网络,它们已经成为了大学生群体用来访问网络的主力工具。在大学校园里,人人都拥有自己的移动设备,如手机、平板电脑等;在现今社会中,越来越多的公司竞争于互联网信息行业,将自家的核心业务由桌面端迁移到移动端。在现今的智能设备操作系统市场中,主要有两家操作系统,分别是Android、iOS。其中,Android设备数量尤其庞大,一度超越iOS设备。2007年11月,Google公司主导开发出的Android系统基于Linux平台,免费、开源成为它的优点,一时间受到众多设备厂商、软件开发者的热爱,由此催生了Android系统快速发展的进程,在各个终端上被广泛使用。本软件基于Android开发,设备普及率相当之高,具有很高的实用价值。软件的编程语言是Java,编程过程在Android Studio中进行,数据库则是使用Android内置的轻量数据库SQLite,在Androdi 4.0下测试通过,能够完美的运行现有功能,为广大学生群体带来方便。本文详细介绍了Android系统和软件的开发过程。1.1 功能设计为建设信息校园、方便学生群体更快速的获取信息,更方便的实现校园卡的操作等,本软件设计如下几个功能:1 教务查询功能:优化教务系统在移动设备端的界面布局。2 校园生活功能:(1) 校园生活信息查询:对校园生活中的重要信息进行整合,在有需要是最快速的查询到所需的信息,给学生提供帮助。(2) 充值缴费:架构一个网络中间层,能够定时和学校的服务器进行数据交互,利用学校提供的管理API,实现学生自助管理费用。(3) NFC支付:完成校内部分支付功能。2 系统开发环境2.1 Android系统介绍随着技术的发展和网络的日益强大,一些智能设备逐渐步入人们的日常生活中,其中Android系统普及率尤其之高。Android系统是一个使用Linux为系统内核的、移动端的操作系统,由Google成立牵头开发,主要设计用于触屏移动设备。Android最初由安迪鲁宾团队开发制作,目的是为数码相机构建一个操作系统,但无奈于市场对于数码相机的需求不够旺盛,同时期移动设备的销量呈井喷式增长,于是Android转而被改造为一款面向移动设备的操作系统,Google公司在2005年7月将该系统收购。在2007年11月,Google公司召集其他相关公司对Android进行了深度的优化和开发,并在之后Google以Apache免费开放源代码许可证的授权方式,免费公开了Android系统的源代码,开放源代码这一举动加速了Android普及,让生产商推出搭载Android的智能设备。2008年,HTC生产了第一部搭载了Android操作系统的手机,从此拉开了Android在手机上发展的序幕。现今,各大厂商均发售了自家的旗舰机型,如小米Mix、三星S8、华为P10等。2016年,相关数据显示,Android用户在应用市场中下载应用高达1180亿次,市场营收总额高达780亿美元,由此可见Android已经在全球范围内普遍使用。2.2 Android系统结构Android操作系统的核心建立在Linux的基础之上,具有Linux的典型特点和部分功能。此外,Google对Android系统进行了深度开发和优化,使其系统运行和Linux内核更加贴合,密不可分。2008年,Patrick Brady于Google I/O演讲Anatomy Physiology of an Android,并提出Android HAL架构。这种架构将Android的硬件以封闭源码形式提供驱动。HAL的目的是为了把应用程序框架与Linux内核分离开来,让Android不至过度依赖Linux内核,以方便Android开发人员能够在不考虑底层如何对硬件驱动的同时,方便开发人员编写,并对现有的组件进行重复利用和改写。将中介层引入的方式使得Android能够在移动设备上的运行获得更高的运行效率。Android系统结构图如图2-1。图 2-1Android系统结构图Android系统架构将整个系统分为四层。从高到低分别是应用程序、应用程序框架、系统运行依赖文件、Linux内核。这种系统分层方式使得Android系统结构分明,当某一层次发生问题时不会影响其他层次,降低了系统各个模块之间相互的依赖性,也便于开发人员将功能分层,并交由不同的方向的开发部门处理,提高了系统的稳定性和可维护性,增强了系统的生命力,为后期对代码的维护和升级提供了便利性。下面分别介绍每一层所实现的功能。2.2.1 Android应用程序程序层即是Android系统的顶端层次,负责提供用户可见的应用程序和不可见的服务。这层提供移动设备的基础服务,如电话、信息、浏览器等,这些应用程序组成了用户使用到的基础功能。所有第三方厂家、个人均可以编写不同功能的应用程序,并安装在Android系统上,以实现相关用户需求。应用程序大多采用Java语言编写。2.2.2 Android应用程序框架Application Framework是开发的基础层,核心程序也依赖该层提供的相关接口。该层组件即可向上层直接交付使用,开发人员也可以通过继承而实现个性化的拓展。隐藏在每个应用后面的是一系列的服务和系统,其中包括:1.Views(视图):提供视图元素,如按钮界面、输入框、表格、图片等。开发者亦可以自行编写视图元素。2. Content Providers(容器):提供应用程序所需的资源文件,可以从其他应用中获取的信息。如日历、信息、通讯录等等。3. Resource Manager(资源):提供资源文件,如创建UI时的控件布局文件、存储的用户信息、键值等。4. Notification Manager(通知器):传达应用程序需要通知的提示信息、警告信息,经由顶部的状态栏显示。5. Activity Manager(控制器):管理应用的生命周期,提供如登陆、退出的界面逻辑。2.2.3 Android运行依赖系统运行依赖文件主要分为两个方面,一是系统依赖文件,二是Android运行时的运行环境。1.系统库系统库支撑着Application Framework,是Application Framework和内核层链接的中阶层。其主要分为如下几个核心集群文件:Surface Manager:在执行应用程序时,负责管理屏幕上的界面,负责绘制2D图形和3D图形。Media Framework:多媒体库,兼容多种文件格式的录制和播放,编码格式包括MPEG4、MP3、AAC等SQLite: 小型的关系型数据库引擎;OpenGL|ES:根据OpenGL ES 1.0API标准实现的3D绘图函数库;FreeType:提供字体的描绘与显示;WebKit:一套网页浏览器的软件引擎;SGL:底层的2D图形渲染引擎;SSL:在Andorid上通信过程中实现握手;Libc:从BSD继承来的标准C系统函数库。2.Android运行库:Android应用程序是采用Java语言编写,程序在Android运行时执行,可以细分为两个部分:核心部分和虚拟机部分。核心库:核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、、android.media等等。Dalvik虚拟机:Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为.dex格式的Java应用程序的运行。.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik由Dan Bornstein编写的。2.2.4 Android Linux内核这一层主要完成的是操作系统所具有的功能,比如这一层有许多的驱动程序,正是通过这些驱动程序来驱动我们设备上的硬件设备的。不同版本的Android系统采用了不同版本的Linux内核,在本软件中,适配的Android4.0版本基于Linux Kernel 3.0.1。2.3 Android四大组件Android系统中有四大组件,分别为Activity(活动)、Service(服务)、Broadcast Receiver(广播接收器)、Content Provider(容器)。下面分别介绍这四大组件的功能。2.3.1 Activity几乎所有的Android应用都会使用到Activity。Activity是Android程序与用户交互的窗口,从某种方面来说,Activity就好比楼房的门面,是用户能看见的界面。一个Activity占据当前的屏幕,响应所有用户操作,具备有控件,菜单等界面元素。从代码逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。每一个Activity都有自己的开始和结束,从开始到结束称为一个生命周期。图2-2描述了一个Activity的生命过程。图 2-2Activity生命周期2.3.2 ServiceAndroid官方文档将Service定义为不具有用户操作界面的,长期停驻在后台执行的应用组件。例如,音乐播放器通过Service在后台停驻,实现音乐能够后台播放。Android有相当一部分Service由系统提供,如Input Method Service(输入法后台)、Activity Manager Service(活动管理器)、Media Manager Service(媒体管理器)等等。过多的Android软件访问各自所需的Service必然会造成系统内部的冗乱,为了避免这种冗乱,Android又引入了一个中间层的结构,提供了一个Service Provider,用来管理软件对于其他Service的需求,是应用程序和其他Service的中间媒介。2.3.3 Broadcast Receiver广播是Android系统中一种特殊的事件。软件可以将特定类型的事件发送到具有接受特定事件标签的应用中。如,当Android手机接收到一条短信的时候,系统便会发送一条SMS Broadcast,那么手机中注册了该条广播监听的应用就可以收到这样一条消息,继而做出相应的反应:通知栏提示用户收到信息,LED呼吸灯闪烁以示提醒,短信应用可以显示该条信息的内容。类似的例子还有很多。2.3.4 Content Provider当用户在操作的某个软件需要获取其他应用中的数据时,就需要应用到内容提供器。它可以提供其他软件的内容。如手机输入法可以快速的插入联系人的数据,在插入前就需要读取联系人软件中存储的联系人数据。2.4 Okhttp工具OkHttp是Android SDK中的一个关键SDK,用来实现软件对互联网的访问。它可以通过HTTP协议传送数据、文本等信息,节省大量带宽,有如下几个特点:(1) 支持同一主机响应所有请求,并共享套接字;(2) 显著减少连接池的请求延时;(3) 透明传输减小GZIP下载大小;(4) 具有缓存机制,避免重复请求网络。OkHttpUtils是对OkHttp进行的工具封装,增加了CookiesJar自动管理、简化代码的功能,本文软件使用OkHttpUtils构建HTTP请求。2.5 NFC近场传输NFC通讯全程为Near Field Communication,即近距离无线通信,是一种适合短距离的高频率无线通信技术,由射频识别技术发展而来。它允许电子设备之间进行非接触式的点对点通信,距离在10厘米左右,由飞利浦半导体(现恩智浦半导体)、诺基亚和索尼共同研制开发。近场通信是一种短距高频的无线电技术,在13.56MHz频率运行于10厘米距离内1。其传输速度有106 Kbit/秒、212 Kbit/秒或者424 Kbit/秒三种。目前近场通信已通过成为ISO/IEC IS 18092国际标准、EMCA-340标准与ETSI TS 102 190标准。NFC采用主动和被动两种读取模式。NFC的一种工作模式便是卡模拟模式,这个模式其实就是相当于一张采用RFID技术的IC卡。它可以替代现在大量的IC卡(包括信用卡)场合商场刷卡、IPASS、门禁管制、车票、门票等等。此种方式下,有一个极大的优点,那就是卡片通过非接触读卡器的RF域来供电,即便是寄主设备(如手机)没电也可以工作。NFC设备若要进行卡片模拟(Card Emulation)相关应用,则必须内置安全组件(Security Element, SE)之NFC芯片。目前部分Android设备已经具有了NFC通信的相关条件,软件即可通过使用NFC技术,提供支付相关功能。2.6 开发环境软件开发环境配置如下:操作系统:Windows 10Java版本:JDK 1.8编程程序:Android Studio 2.3Android系统版本:Android 4.0或更高3 软件需求分析3.1 现有环境介绍3.1.1 教务系统介绍我校现有的教务采用的是正方教务平台,学生需要提供学校分配的学号和密码进行登陆后,才能查询课表、个人成绩、教室等信息。正方教务系统截图如3-1所示。图 3-1教务登陆页面登陆后的界面如图3-2所示,查询相关信息,分别需要进入不同的页面。图 3-2登陆成功界面学生通常不方便,或是在需要查询信息的时候身边没有电脑设备等,这使得现有的这套完善的系统使用率较低,用户粘度较低。查询到的信息无法自动保存到手机上,不便于随时取阅、每次查询又需要重复输入用户名、密码等复杂的信息,使得这套系统不是十分方便。此外,手机端的屏幕一般在3-5寸之间,对于这样大的画面的适配又显得十分粗糙,十分不利于信息的获取,如图3-3所示。图 3-3Android端界面3.1.2 校园生活介绍目前我校建立了若干个校园网站,分别是教务网、后勤保障部网站、学生信息网站等等。校园相关信息分布在各个网站,造成了信息杂乱的现象,信息分布混乱,难以查找。例如,校历、校车时刻表、科室部门电话分布在三个网站上,学生查找时没有针对性,不知去哪个网站寻找。我校也普及了校园卡一卡通支付方式,每个学生拥有一张校园卡。该校园卡目前可以实现食堂刷卡购买食品、澡堂洗澡支付、宿舍用水购买等更多用途。在信息化校园建设越来越完善的同时,校园一卡通的支付职能将越来越重要。但我校校园卡目前还有以下几个缺点:1. 校园卡卡面无明显标识,他人拾到此卡无从归还。2. 校园卡采取不记名的方式,如果有他人盗刷校园卡,将造成个人经济损失。3. 校园卡充值方式目前采取人工充值的方式,充值点需定时排队;网络充值则需要办理银行卡并前往ATM机充值,过程繁琐。4. 无快捷办理挂失渠道。卡片丢失后,不能及时挂失,造成学生的经济损失。除此之外,目前宿舍电费缴纳、学生个人网络账号充值仍然需要定时前往人工窗口排队办理,如遇到双休日停电、停网的情况,则会给学生造成不便。由此,开发出一个能够整合校园信息,快速管理校园支付账户、生活缴费的软件尤其重要。3.2 功能需求为建设信息校园、方便学生群体更快速的获取信息,更方便的实现校园卡的操作等,本软件应设计如下几个功能:1 教务查询功能:优化教务系统在移动设备端的界面布局,能够自动记住学生的账号和密码,在极快的情况下获取到学生所查询的个人课程信息、课程表信息、空余教室信息,并能本地化存储在手机中,做到离线查阅。(1) 查询成绩:可以根据用户要求的学期,查询到相应学期的成绩,清楚了解到自身的成绩状况;(2) 课程表信息:可以读取到用户当前课程表信息,并将其存储到本地,方便随时查看上课教室和任课教师,并且及时应对教师换课和更换教师的状况,同时可以查询到全校的课程信息,方便学生选择自身感兴趣的课程旁听课程。(3) 空教室信息:可以根据要求的日期、课程时间,查询到学校空余的教室,方便团体会议、自习的进行,可以缓解图书馆自习教室的压力,同时增加教室的利用率。2 校园生活功能:(1) 校园生活信息查询:对校园生活中的重要信息进行整合,在有需要是最快速的查询到所需的信息,给学生提供帮助。包括以下三个部分,首先是校园提供的各类公共服务设施的使用说明和工作时间的公示如校车时刻表,医务室、充值中心等工作部门的开放时间等;其次,各科室的电话查询功能,如后勤维修电话等;最后是每年节假日的变化调动公示,方便教师学生的假期生活安排。(2) 充值缴费:架构一个网络中间层,能够定时和学校的服务器进行数据交互,利用学校提供的管理API,实现学生自助管理费用。应能够实现校园卡的充值、缴费、挂失冻结;网费、电费的缴纳。(3) NFC支付:通过手机NFC功能模拟校园RFID卡片,实现一个手机能够完成相关校园卡的支付功能。3.3 可行性分析3.3.1 经济可行性经济可行性其实是对的经济现状和投资能力进行分析,对平台建设运行和维护费用进行估算,对平台成立可能取得的经济效益来进行估计。本软件作为个人毕业设计开发,不具有任何商业盈利能力,也不需要进行相关的经济投入。软件方面使用免费的Android Studio程序进行编写,故不存在经济上的难题。软件可为今后的管理提供方便,此App开发过程中所需的相关资料均开源、免费,软件功能不但具有高效率、高质量、低成本的特点,还可以节省人力物力,提高信息归纳的效率,具有用户使用更便利、界面更直观更合理等等优点。3.3.2 技术可行性技术可行性最主要的就是要考虑现有的技术条件是否能够顺利完成开发工作,软件硬件配置是不是满足开发的需求等。软件采用浏览器、服务器架构,客户端基于Android,后台服务器基于现有的校园教务服务器,数据库采用Android内置轻量关系型数据库,性能优秀,完全满足了软件所需的数据存储要求,因此可以确定现有条件完全满足软件开发的技术要求。3.3.3 运行可行性现在智能手机已经普及,只要手中有Android设备就能使用这个软件,现在这个时代,人们使用智能手机的频率已经大大超前,4G和无线局域网技术覆盖绝大多数地区。此外,软件的主要受众人群是大学生,大学生群体具有着易于接受、敢于尝试新鲜事物的特点,同时可以主动积极传播本软件,故软件容易受到学生群体的青睐,具有长久运行的前景。4 数据库系统设计4.1 数据库概念数据库即数据的集合。它是一个数据的仓库,所有涉及到数据的查询、修改、取阅等操作都需要在这样一个仓库中进行。当人们从不同的角度来描述这一概念时就有不同的定义。例如,称数据库是一个“记录保存系统”(该定义强调了数据库是若干记录的集合)。又如称数据库是“人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合”(该定义侧重于数据的组织)。更有甚者称数据库是“一个数据仓库”。当然,这种说法虽然形象,但并不严谨。严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。本软件使用SQLite实现关系型数据库。SQLite是用一个小型的C库开发的一种强有力的嵌入式关系数据库管理体制。它简单易学、速度较快,同时提供了丰富的数据库接口。提供了对SQL92的大多数支持:支持多表和索引、事务、视图、触发和一系列的用户接口及驱动。SQLite3特性: 1.零配置无需安装和管理配置。2.存储在单一磁盘文件中的一个完整的数据。3.数据库文件可以在不同字节顺序的机器间自由共享。4.支持数据库大小至2TB5、比目前流行的大多数据库运行速度快。5.提供了对事务功能和并发处理的支持。4.2 数据库表的设计数据库的设计主要包括数据库表设计和E-R模型设计(Entity-Relationship data model实体-关系模型)。跟传统的关系数据模型不同的是,E-R数据模型不是面向实现的,而是面向实物的。ER模型包括三类基本元素:属性、关系、实体。(Entity)数据描述的是现实世界中客观存在的物体,人们能识别、相互区别的事、物、概念等等都能抽象为实体,既有具体的事物、又有抽象的事物,不仅有物理上存在的事物、还有概念性的东西。他实质的属性(Attribute)是实体,并且每个属性的取值范围都是独立的,这个被称为值集(value set)。在同一个实体集中,任何一个实体的属性和它的值集是一样的,不同的实体取值是可以不同的。关系(Relationship):被描述的实体间的关系。跟实体一样,关系也有自己的属性。数据库表的设计无疑是数据库设计中十分重要的一部分,是数据库可以正常运行的基础,也是关系到数据处理及存储的重要对象。数据库可以包含无数的数据表。在对数据库的设计过程上,首先要搭建一个数据库,然后要在数据库中建立一些数据表,接着要建立这些数据表之间的关联。再完成数据库的设计之后才可以利用SQL语句来进行数据的查找、添加、删除、修改、编辑、储存等操作。下面我们将设计数据库表结构,主要包括以下的数据表。数据库设计具体的流程如下: 1、充分进行系统用户需求分析,并根据用户需求分析所得的结果,将现实的事物抽象化,从而得到数据实体; 2、分析系统数据的实体之间相互关联的属性和每个实体之间的关系,并形成概率模型,从而得到E-R模型图; 3、将E-R模型转化为数据库表,来进行逻辑设计,属性名和设计类型等,并规划表格结构。转化一般都遵循对于每一个实体型,将其映射成为一个个关系模式的原则。 4、根据数据库表结构,充分利用好数据库管理工具来进行表格的部署工作。E-R数据模型所提供的是面向用户的表示方法,也是数据库组建的非常重要的工具。本软件中设计的所有数据库表如表4-1所示,共4个数据表。表 4-1数据库表名及含义表名中文含义保存内容Card校园卡表保存校园卡信息Ele宿舍电费表保存宿舍电费信息Acc个人网络账号表保存个人网络账户信息Grade成绩表保存成绩信息由于在软件开发过程中,我们已经确定了每个功能模块涉及的数据库实体,所以每个数据库表都大致可以确定属于哪些功能模块。如上表所示,对整个平台系统中的数据库表介绍,包括四个数据库表,分别是Card,表中保存了用户的学生号、姓名、余额、挂失状态信息;Ele表中保存了每个寝室的寝室号、电费余额信息;Acc表中保存了网络账户的学生号、姓名、余额信息;Grade,表中保存了课程名、课程成绩、课程绩点和课程性质。4.3 表的介绍Card表用于校园卡功能。用户在查询余额、充值时都需要使用到该表的信息。用户信息表包括用户名、卡号、余额、状态等相关字段,表的具体定义如下表4-2所示。校园卡信息表的E-R图如图4-1所示。表 4-2校园卡信息数据表字段意义类型备注Card_name学生姓名CharCard_num学生学号Char主键Card_money学生余额IntCard_status学生卡状态Boolean图 4-1校园卡表E-R图Ele表用于宿舍电费功能。用户在查询余额、充值时都需要使用到该表的信息。宿舍电费信息表包括寝室号、余额等相关字段,表的具体定义如下表4-3所示。宿舍信息表的E-R图如图4-2所示。表 4-3宿舍信息数据表字段意义类型备注Ele_num宿舍号Int主键Ele_money电费余额IntCard_num学生学号CharEle_name学生姓名Char图 4-2宿舍信息表E-R图Acc表用于个人网络账户功能。用户在查询余额、充值时都需要使用到该表的信息。个人网络账户表包括账号、余额等相关字段,表的具体定义如下表4-4所示。账户信息表E-R图如图4-3所示。表 4-4账号信息表字段意义类型备注Acc_num学生网络账号CharAcc_money网络账号余额IntCard_num学生学号Char主键Card_name学生姓名Char图 4-3账号信息表E-R图Grade表用于保存学生的成绩信息。学生在查询成绩的时候需要访问到此表。表中存储了和课程有关的相关信息包括课程名、课程性质、课程成绩、课程绩点等。表的具体定义如表4-5所示。成绩信息表E-R图如图4-4所示。表 4-5成绩表字段字段含义数据类型备注G_name课程名称CharG_score课程成绩IntG_gpa课程绩点DoubleCard_num学生学号Char主键图 4-4成绩信息表E-R图4.4 E-R图概念模型是对信息世界建模,其表示方法有很多,其中最为常用的是实体联系模型,即ER模型,它是用ER图来描述现实世界的概念模型。ER图中用矩形表示实体;用椭圆表示属性;用菱形表示联系。本软件数据库实体及其联系的ER图如图4-5所示。图 4-5系统整体E-R图5 模块介绍本软件功能一是对现有的校园信息进行资源整合,方便学生快速获取校园服务信息,二是加入了校园卡管理、生活费用缴纳平台,利用现有网络支付渠道,方便学生随时办理网上查询、缴费等服务。如图5-1展示了软件的整体功能框架。以下详细介绍各项功能实现的过程。图 5-1软件功能模块5.1 教务模块介绍教务功能包含两个核心逻辑,一是完成教务系统的登陆;二是查询信息,并将网页信息通过JSON方式解析到软件中,组合重排列后保存到SQLite数据库中。下面详细介绍教务功能各个组件的设计。5.1.1 登陆模块登陆模块是软件的入口,通过登录验证模块,用户可以登陆到正方教务系统。用户通过输入用户名和密码进行身份验证,软件将用户名和密码信息通过HTTP请求提交给服务器验证用户名与密码是否正确,验证通过以后用户才能登入系统;如果验证不通过,系统将提示账号密码错误。此时用户则要通过学校教务处老师获取新的密码。登录验证过程图示如图5-2所示。 图 5-2登陆验证逻辑图软件运用OkHttoUtils工具包,模拟HTTP请求,并利用CookieJar自动保存Cookies,将相应的字符串POST到校园教务服务器,获取到正确的登陆提示后返回给用户,否则提示用户登陆错误。POST方法所需要的字段如表5-1。表 5-1HttpBody参数表HTTP Body参数名Http Body参数值_VIEWSTATEdDwyODE2NTM0OTg7Oz4inzfOP0sA5v6A0P2cvMG%2Fvoyoow%3D%3DButton1NullhidPdrsNullhidscNull1bLanguageNullRadioButtonList1%D1%A7%C9%FATextBox2获取到的用户密码txtSecretCode带有Cookie的登陆验证码txtUserName用户名在软件的登陆Activity的onCreate( )方法中,首先是根据验证码的URL:5/CheckCode.aspx获取到带有Cookies的验证码图片,然后显示给用户,之后通过POST方法将以上参数和Cookies发送给服务器,得到服务器反馈判断是否登陆成功。其中,_VIEWSTATE为.NET组件构建的参数,为固定值,Button1、hidPdrs、hidsc、lbLanguage默认为空即可,RadioButtonList1值为“学生”登陆方式的ULF-8转码字符,TextBox2填入获取到的用户密码,txtSecretCode填入获取到的验证码信息,txtUserName填入学生学号。代码如下:首先在AndroidManifest文件中声明软件联网权限:在登陆Activity中,初始化登陆界面的UI控件:username = (EditText) findViewById(R.id.user);pwd = (EditText) findViewById(R.id.psw);Code = (EditText) findViewById(R.id.code);fresh = (Button) findViewById(R.id.fresh);login = (Button) findViewById(R.id.log_btn);codeimg = (ImageView) findViewById(R.id.imageView);获取已自动保存的用户信息:TextUtils setInitText = new TextUtils();Map Map = setInitText.readInfo();if (Map != null) String name_2read = Map.get(Username); String pwd_2read = Map.get(pwd); username.setText(name_2read); pwd.setText(pwd_2read);刷新验证码:Fresh();public void Fresh() 设置Cookie自动保存功能:setCookie();构建HTTP请求,获取验证码: OkHttpUtils .get() .url(code_URL) .build() .execute

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论