毕业设计(论文)-基于Android应用的课程表项目.doc_第1页
毕业设计(论文)-基于Android应用的课程表项目.doc_第2页
毕业设计(论文)-基于Android应用的课程表项目.doc_第3页
毕业设计(论文)-基于Android应用的课程表项目.doc_第4页
毕业设计(论文)-基于Android应用的课程表项目.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

全套图纸加扣 3012250582湖南软件职业学院毕业设计毕业选题: 基于Android应用的课程表项目 指导教师: 学生姓名: 院系名称: 软件工程 专业班级: Java1304 学生学号: 提交日期: 2015年12月 19日 目 录第一章 绪论- 1 -1.1 开发背景及目的- 1 -1.2国内外研究现状- 2 -第二章Android开发技术介绍- 4 -2.1 Java概述- 4 -2.2 Android概述- 5 -2.3 XML简介- 6 -2.4 SQLite- 7 -第三章 需求分析- 8 -3.1 应用功能模块概述和分析- 8 -3.2 应用功能模块设计- 8 -3.3 数据库分析- 9 -第四章 数据库设计- 13 -4.1 概要分析- 13 -4.2 数据库分析- 13 -4.3 SQLite数据表设计与创建- 14 -4.3.1数据表的设计- 14 -第五章 界面设计- 16 -5.1 界面分析- 16 -5.2 欢迎界面- 16 -5.3 主界面- 18 -5.4 课程编辑界面- 18 -5.5 设置界面- 20 -第六章 功能设计- 21 -6.1显示课程- 21 -6.2 课程编辑功能- 22 -6.2.1编辑模式- 22 -6.2.2“删除”事件- 23 -6.3 课程提醒功能- 23 -结论- 25 -参考文献- 26 -致谢- 27 -iii第一章 绪论1.1 开发背景及目的在中国,智能手机已经成为人们日常生活中必不可少的一部分,根据市场研究机构eMarketer发布的关于未来三年智能手机市场趋势的报告,新兴市场仍是智能手机市场主要增长来源,2014年中国智能手机用户量首次突破5亿,预计2018年可能超7亿。智能手机在高校人群中更是得到了普及,其中,基于Android系统的智能手机凭借其优秀的系统性能,较为低廉的价格以及良好的用户体验迅速得到了收入能力较低的大学学生的青睐,大学学生中,使用Android手机的比例大大高于ios等其他智能系统的手机,故而我们选择在android系统上进行开发。在小学和中学时代,我们上课只需在固定的教室和固定的时间并且只需坐在教室等老师来就够了,但是在大学时代就大大不同了,大学课程多且杂,而且上课地点和上课时间都不是固定的,一周内出现重复课程的情况较少,所以要将一张基本没有什么规律的课程表完整地记忆下来是一件很艰难的事,每次上课时,总有很多同学在上课的路上突然才想起不知道在哪个教室上课,于是不得不每次拿出手机打给其他同学询问,或者有些同学选择将一个纸质的课程表装在衣服口袋里,非常不方便。考虑到Android手机在大学中的使用率非常高,于是我就想到了开发一个基于Android的课程表程序。将课程表放进我们的智能手机里,只需大家需要按照具体上课时间、课程名称等将自己的课程信息记录到手机的课程表中,为整个学期的每一天添加下课程安排,就可以一劳永逸。再也不用担心忘记明天要上什么课或者走在路上突然忘了等一下要上什么课,在什么地方上啊,上课时间又是在什么时候啊,随时随地,方便你我他。基于以上这些考虑,我认为有必要开发一款基于Android系统的课程表程序,配合上可以让用户自己编辑及保存上课时间以及地点的功能,从而避免忘记上课等尴尬事情发生。1.2国内外研究现状Android操作系统于2007年在美国推出后,凭借其良好的用户体验,低廉的成本和较高的开放性吸引着越来越多的终端厂商采用,根据Gartner等国际研究机构的报告,Android在这几年的全球智能手机的市场份额在逐渐增多,并且于2011年成功超过了Symbian系统在全球智能手机的市场份额。在Android出现之前,智能手机操作系统市场中Symbian和WM两者占据大部分的市场份额,但随着移动互联网的快速发展,终端+应用的趋势逐渐成为主流的情况下,两者的劣势逐渐突出,而Android的优势也越来越明显。Symbian由于发展了很多年,已经被很多人熟悉,在这十多年中Symbian几乎没发生什么变化,它的用户体验功能已经无法满足现在人的需求。WM系统同样也较为封闭,对终端厂商来讲引入成本较为昂贵,娱乐性一般,多用于商务机型。2007年,苹果iPhone上市后iOS凭借iPhone优秀的用户体验和多种多样的功能获得了巨大的成功,特别值得一提的是苹果的应用开发分成模式刺激了开发者不断进入,使得苹果的应用程序能不断的更新和发展,截至2010年8月,可用于iOS的应用已经超过了25万,苹果公司因为顺应了终端+应用的智能手机发展趋势,取得了快速的发展.但iOS也有许多问题,因为iOS属于半开放的OS,实现了移动互联网产业链上各环节的普及还是较为困难;其次iPhone的价格比较高,短期时间内难以满足中低端市场的需求。而Android系统,虽然它目前存在安全性和版本混乱等问题,但是拥有低廉的引入成本,良好的用户体验和开放性较强的特点,再加上AndroidMarket和众多第三方应用商店做后盾,在应用方面的资源也非常丰富。Android系统在近几年取得了迅猛的发展,主要还是因为其适应了移动互联网的发展趋势,符合了移动互联网产业链各方的发展变化需求。当然,Android也同样面临着一些挑战和争议。虽然Android在发展过程中遇到一些问题,但在多方面积极的因素推动下,总体趋势仍旧看好。当前,随着HTC进入中国市场,以及酷派、华为、中兴等终端厂商的发力,Android在国内的发展会越来越好;而随着Android系统的发展,Android手机在中国市场的销量在未来必然还将有较大发展空间。第二章Android开发技术介绍2.1 Java概述Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C+语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。2.2 Android概述Android是一个基于Linux的开源操作系统,主要应用于智能手机、智能手表以及平板电脑等移动智能设备,由Google和开放手机联盟(即Open Handset Alliance)设计开发。在大中华区至今尚未有统一中文名称,而在中国大陆地区较多人使用“安卓”。Android来源于硅谷著名“极客”Andy Rubin创建的Android公司,Rubin最初的目标是就想把Android系统打造成一个可以对所有软件开发人员开放的移动终端平台。很快这个公司便受到了青睐,很多人表示打算买下他建立的Android公司。在2005年的8月,Rubin考虑了Google的创始人拉里佩奇提出的合伙意向后,Android公司就被Google就抢先买下了。到了2007年11月,Google与包括摩托罗拉、HTC、LG、三星等84家手机厂商、手机芯片提供商、软硬件供货商、移动运营商联合组成开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机在2008年10月被发布了。而后,Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等电子设备。2011年的第一个季度,Android全球市场份额首次超过了塞班系统,当仁不让成为全球第一。 到2013年四季度,搭载Android智能系统的手机全球市场份额已经达到了78.1%。 2013年09月24日谷歌所开发的智能操作系统Android在迎来了它的5岁生日,并且这个时候全世界搭载这款智能系统的设备数量已经超过了10亿台。与其他的手机操作系统相比,Android操作系统有以下4个突出的优点:(1)开放性:Android系统同时包含了底层操作系统以及移动电话所需的全部软件,不存在专有权障碍,开发平台允许任何移动终端厂商加入到Android联盟中来,并允许不同厂商可以根据自己的需求对平台进行定制和扩展,无需任何授权许可费用;(2)所有应用程序平等:在Android系统中,无论是系统核心应用,还是第三方应用,它们都是完全平等的,用户可以随意地将自己手机中的任意应用程序替换成其他所需的应用程序,而不用担心只能使用自己不喜欢的程序;(3)应用程序间无界限:开发人员可以很方便地把Web上的网络数据与本地的联系人、日历、位置等信息结合起来,应用程序还可声明这些信息数据可供其他程序使用;(4)快速方便的应用程序开发:Android平台还为开发人员提供了海量的实用库以及开发工具,可以让开发人员快速的开发自己的应用。2.3 XML简介XML是指可扩展标记语言(即EXtensible Makeup Language),用来存储和传输数据的工具。XML的数据是一种以纯文本格式存储的数据,它提供了一种独立于硬件和软件的数据存储方法。XML文档必须含有根元素,该元素是其它所有根元素的父元素。文档中的各个元素形成了一棵文档树。这棵树从根部(即根元素)开始,并扩展到树的最底端。所有元素均可拥有各自的子元素。父、子以及同胞等术语用来描述它们之间的关系。父元素拥有其子元素。相同层级上的子元素互为同胞(姐妹或兄弟)。所有元素都可以拥有自己的文本内容和属性。XML语言对大小写敏感,而且XML所有元素都必须正确嵌套,必须拥有关闭标签,其元素的属性值都必须加引号。XML的命名规则:元素名称可以使用除和&外其他任何字母或符号,也没有保留字;元素名称不能以标点或数字和XML Xmlxml等字符开始,也不能包含有空格。2.4 SQLiteSQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2015年已经有15个年头,SQLite也迎来了一个版本 SQLite 3已经发布。第三章 需求分析3.1 应用功能模块概述和分析课程表是一款简单,轻量,精美的实用型App,主要为学生解决了记不住上什么课,上课时间,上课教室等问题,只要用户把课程信息录入到我们的app我们就能把用户录入的课程信息保存起来,以供用户随时随地查看。针对这一特点我们还对用户提供了对课程信息的增删改查,课堂笔记的增删改查,以及周数设置,上课提醒,账号管理等一些额外的功能,应用的主要难点体现在,界面的设计,代码的编写,性能的优化。在App的设计与开发过程中严格遵守软件工程的规范,运用软件设计模式,从而减少系统模块间的偶合,力求做到系统的稳定性、可重用性和可扩充性。android课程表主要功能如下:用户管理:注册,登录;课程管理:添加课程,修改课程,查看课程,删除课程。课堂笔记: 添加笔记,修改笔记,查看笔记,删除笔记。设置页面:账号管理,周数设置,上课提醒,关于,退出。 3.2 应用功能模块设计根据应用功能分析,画出应用的功能模块图。首页:应用首页功能设计图3.2-1应用首页功能设计图3.3 数据库分析开发一款产品,数据存储是必不可少的,我们采用了android系统内嵌的一款小型数据库Sqlite进行数据存储。 1概念模型设计概念模型用于信息世界的建模,与具体的DBMS无关。为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型。人们常常首先将现实世界抽象为信息世界,然后再将信息世界转换为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统和具体的DBMS,而是概念级的模型,然后再把模型转换为计算机上某一个DBMS支持的数据模型。实际上,概念模型是现实世界到机器世界的一个中间层次。 信息世界中包含的基本概念有实体和联系。 (1) 实体 (entity)客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个学生、一门课、一个供应商、一个部门、一本 书、一位读者等都是实体。 (2) 联系 (relationship)在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是组成实体的各属性之间的联系。两个实体型之间的联系可以分为3类,一对一联系,(1:1);一对多联系(1 : n);多对多联系(m : n)。 概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示信息世界中的常用概念。概念模型的表示方法很多,其中最为常用的是P.P.S.Chen于1976年提出的实体,联系方法(Entity-Relationship Approach)简记为E-R表示法)。该方法用E-R图来描述现实世界的概念模型,称为实体-联系模型,简称E-R模型。 根据设计规划的主要实体有:用户、课程、笔记。各个实体具体的描述属性图如下(实体属性在下图中并没有全部给出,因为属性过多的原因):3.3.1-1用户实体3.3.1-2课程实体3.3.1-3笔记实体数据库表设计主要是把概念结构设计时设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。它包括数据项、记录及记录间的联系、安全性和一致性约束等等。导出的逻辑结构是否与概念模式一致,从功能和性能上是否满足用户的要求,要进行模式评价。本应用数据库表如下:3.1课程信息表 3.2用户信息表3.3笔记内容表第四章 数据库设计4.1 概要分析从程序流程来分,用户在第一次进入程序时,在短暂的欢迎页面后,程序将会进入主页面,这个页面会给我们显示课程信息,而这些课程信息从哪里来呢?从我们的数据库来,而且,我们在操作课程编辑界面时,除了UI展示以外其他的方式都是在操作数据库,所以,我们有必要对进行数据库设计,以管理我们的课程信息。程序的配置信息主要存放在preference中,程序在数据显示时在preference中读取必要的配置信息。 4.2 数据库分析数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。数据库中的数据按一定数据模型组织、描述和存储,具有较小的重复度、较高的数据独立性和易扩展性,并且可以被在一定范围内的各种用户共享。在涉及数据库的软件开发中,需要根据有待解决的问题性质、规模,以及所采用的前端程序创建工具等,做出合适的数据库类型选择。本程序数据存取方面主要用到了SQLite数据库,SQLite主要用来存储课程信息。4.3 SQLite数据表设计与创建SQLite数据库是Android系统中非常重要的数据存储方法,它是Android系统唯一支持的数据库类型,也是Android应用程序进行持久化存储的三种方式之一。 SQLite数据库是SQL数据库的简化版,支持大部分SQL操作。SQLite是Android应用程序中非常常用的一种数据存储手段。4.3.1数据表的设计根据对本程序的需求分析,本程序只需要用到一张数据表。该数据表主要用来存储已经添加的课程,用户每添加一个课程信息就会在该表中新增一条记录,并且自动生成一个唯一的id,用以区别每条记录,该表结构设计如下:字段名称数据类型是否主键说明_idinteger是课程编号namevarchar(30)否课程名称teachervarchar(25)否老师名称weekvarchar(30)否课程所在星期day_weekinteger否课程所在星期几class_startinteger否课程开始节数class_endinteger否课程结束节数adrvarchar(25)否上课教室表4.1 数据表课程信息的E-R图如图5.1所示:结束节数上课教室课程信息课程编号课程名称老师名称上课周数星期几开始节数图4.2 课程信息E-R图该数据库设计初衷为保存整个学期的课程,这样实现整个学期的课程排布,包括数据的存储,课程查看都比较方便。第五章 界面设计5.1 界面分析Android的每个可视化界面,都拥有其唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如文字,图像,颜色的引用,运行程序时,可以通过java代码对各配置文件进行读取与修改。这样就能形成不同的可视化界面和漂亮的视觉效果。课程表每个界面都是一个Activity,Android工程在每个Activity启动的时候都会首先执行Oncreate()方法,在Oncreate()里调用setContentView(int layoutResID)方法加载布局文件(.xml) ,参数为资源ID,该ID在工程目录res/layout下。根据系统的设计,将界面设计为4个界面:欢迎界面、主界面、课程编辑界面以及设置界面。5.2 欢迎界面每次启动程序时,第一个显示的界面不是主界面,而是欢迎界面。在欢迎界面顶部显示课程表应用名称。名称下面就是欢迎语“欢迎使用我的课程表!”图5.1 欢迎界面5.3 主界面在经过欢迎界面的短暂延时(1000毫秒,即1秒),程序会自动跳转到课程表的主界面。主界面顶部显示当前学期,当前周数,顶部两边各有一个按钮“添课”和“设置”,点击这两个按钮会分别跳转到课程编辑界面和设置界面,当然了,这两个界面我们后面再介绍,学期周数下面就是整个课程表的信息显示。主界面如图5.2所示。图5.2 主界面5.4 课程编辑界面在主页面,点击左上角的添课按钮,或者点击课程表上已有的课程,程序将会从主界面跳转到课程编辑界面,编辑的顶部中间显示“添加课程”或者“修改课程”,顶部两边同样是两个按钮,一个是“取消”,另一个是确定。往下显示专业班级和班级人数,专业班级下面就是可编辑的信息,分别是:课程名称和上课老师名称。再下面就是上课时间段了,这时间段可以任意添加或删除,在每一个时间段里,都有几个信息可以编辑,分别是:上课周数、上课时间(包括星期几,开始节数和结束节数)、上课地点。课程编辑界面如图5.3所示。图5.3 课程编辑界面5.5 设置界面主页面点击“设置”会跳转 到设置页面。设置界面主要用来设置基本信息,界面从上到下有8个列项,点击列项可以设置或查看各种信息。设置界面如图5.4所示:图5.4 设置界面第六章 功能设计6.1显示课程课程信息都保存在数据库中,我们之前在设计数据库时定义了一个封装好的数据库管理类DBManager,我们将通过它来管理数据库里的信息,首先定义一个DBManager对象。图6.1 主界面的课程显示6.2 课程编辑功能6.2.1编辑模式课程编辑包括两种模式:添加课程和修改课程。在主页面,点击“添课”按钮,程序会跳转到课程编辑页面,这时的编辑模式为添加课程模式,页面顶部显示“添加课程”,如果是在主页面,点击主界面上已有的课程,程序也会跳转到课程编辑页面,不过这时的编辑模式为修改课程模式,页面顶部显示“修改课程”,页面底部增加删除按钮。图6.3 添加课程模式图 图6.4 修改课程模式图 6.2.2“删除”事件修改课程模式下,页面的下方将会出现“删除”按钮,我们需要为删除按钮绑定监听器,当点击“删除”按钮时,程序将会弹出确认窗口,以确认是否删除课程。图6.5 删除课程确定窗口6.3 课程提醒功能使用闹钟进行提醒,需要告知系统你想在什么时候被提醒,然后需要一个闹钟的广播接收器,当到你设置的时间时,系统会给你发送一条广播,当接收到广播后会启动一个Service,进行提醒。 图6.6 课程提醒通知 结论经过了几个月来的努力,在指导老师的用心帮助下,该程序的设计与实现基本完成。本设计的开发是基于Android系统的,由于此前较少接触过关于这方面的知识,这次设计是一边学习相关的Android开发知识一边设计实现的。将文献上学到的知识与具体实践充分结合起来,最终完成开发。在编写本应用的过程中发现了许多自身存在的不足,学到的知识点也得到进一步的巩固,各个知识点也都串联起来。在解决问题的过程中,对知识点也有了更深刻的记忆、理解。以后在遇到同样的问题是不至于毫无头绪。相信这也是为之后的工作打下了良好的基础。 论文研究了关于手机课程表的需求分析,并完成了系统的设计与实现。归纳起来主要完成了以下工作:1、阐述了手机课程表的定义,确定了开发手机课程表的基本技术路线。2、从用户需求的角度说明开发手机课程表的基本技术路线。并针对所收集的资料整理出手机课程表的系统流程图、系统模块图。3、确定程序开发所需要的技术,结合现有的数据和编程思想,设计生成所需要的数据库。4、在详细设计和编码阶段,运用了Java最基本的开发技术,代码简单易懂,程序里各个Activity之间的跳转比较清晰。能正常的将输入的合法数据保存到数据库中,需要显示时正常读取数据库里的数据。参考文献1 杨明羽.Android语法范例参考大全M.北京:电子工业出版社,2012:17-141. 2 韩超.Android经典应用程序开发M.北京:电子工业出版社,2012:25-783 李刚, 疯狂Android讲义(第2版)(附光盘), 电子工业出版社, 2013.34 王珊.数据库系统原理教程M. 北京:清华大学出版社, 2

温馨提示

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

评论

0/150

提交评论