基于android平台的电子课表查询设计与实现毕业论文.doc
毕 业 设 计题目:基于android平台的电子课表查询设计与实现毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作与取得的研究成果。据我所知,除文中已经注明引用的容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示意。 作者签名: 日期:毕业论文(设计)授权使用说明本论文(设计)作者完全了解*学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分容。的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名:日期: 日期:注意事项1.设计(论文)的容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体与大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它基于android平台的电子课表查询设计与实现摘 要智能手机虽然早在多年前就已出现,但那时的智能手机的功能主要是本地应用,这些手机以Nokia的Symbian系统为主。但随着移动互联网时代的到来,本地应用已远远无法满足用户的需求了。然而在创新为王的今天,新的技术总在不断取代旧的技术。以创新闻名的Google为了进军移动广告市场,就开始研制新的移动操作系统Android。本程序主要使用了Java和Android的基础编程知识,用户界面采用MVC模型的电子课表应用程序的结构和设计实现过程。本程序的开发工具为Eclipse,并通过与SQLite数据库相连,从而实现了基于Android的电子课表管理应用程序。关键词:Android,Sqlite,MVC48 / 49Query android platform-based electronic curriculum Design and ImplementationAbstractAlthough many years ago smart phones had already appeared, but at that time the smart phone's main function is the local application and these phones is based on Nokia's Symbian OS.But with the arrival of the era of mobile Internet,the local application has far unable to meet the needs of users.However, in innovation is the king of today,new technology is always replacing the old technology.In order to enter the mobile advertising market,Google, known for innovation,started to develop a new mobile operating system Android.There have been all kinds of software and applications to jointhe Android system,the calendar application program as one of the daily tools,it has many small functions. Mainly in the display of date gives people the expression of the visual effect,inquires the date is very convenient and simple,andit is alsoa reminder of certain festivals that can brought us great convenience.It is a more practical little tool.This programis mainly used the basic programming knowledge of Java and Android and user view using the MVC model.Its development tool is Eclipse, and connects to the SQLite database, therebyachieve a calendar application program based on Android.Its main functions include the following two aspects: first,the front display,in the application home page you can view date;Second,background management,mainly do something about create, retrieve, update, deleteof information.Key words:Android, Sqlite, MVC目 录摘 要1Abstract2目 录3第1章绪 论51.1 论文研究主要容51.2 国外现状6第2章关键技术介绍82.1 Java开发方面82.2 Android用户界面技术8第3章系统分析103.1 系统概述103.1.1功能框架103.1.2 系统特性113.1.3 需求规格113.1.4 系统用例规约123.1.5 系统的流程分析153.2 系统开发环境163.3 系统任务的可行性分析17第4章系统设计184.1设计指导思想和原则184.1.1指导思想184.1.2软件设计原则184.2系统的功能结构设计184.3 系统静态模型设计204.4 数据库设计224.4.1数据库设计的概述224.4.2 概念结构设计234.4.3逻辑结构设计234.4.4物理结构设计24第5章系统实现255.1 应用程序功能实现255.2 应用程序界面功能实现255.2.1 应用程序主界面255.2.2 指定课表界面275.2.3 显示所有的课表285.3 数据库存储方式30第6章系统测试326.1测试方案与测试用例326.2 系统测试计划326.3 系统测试326.4 测试总结33第7章结论34参考文献35致 36外文原文:37中文翻译:43第1章绪 论Android是由Google发布的基于Linux的开放源码操作系统,刚开始的时候它主要用于手机移动设备,它是第一个完全定制、免费、开发的手机平台。最初由Andy Rubin开发,刚开始主要支持手机,后来慢慢发展逐渐扩展到平板电脑与其他领域上。Android是一种基于Linux核的软件平台和操作系统,采用了软件堆层(Software Stack)的架构,共分为四层。第一层是Linux核,提供由操作系统核管理的底层基础;第二层是中间件层,由函数库和Android运行时构成;第三层是应用程序框架层,提供了Android平台基本的管理功能和组建重用机制;第四层是应用程序层,提供了一系列核心应用程序。Android作为一种开放操作系统,随着它的快速发展,受到了越来越多的人的关注。所以就有越来越多的开发者使用许多种编程语言来编写Android。而不再像以前那样只能使用单一的编程语言来编写应用程序,因而有越来越多的人来开发Android。在这几年中由于Android的便携性和可开发性,使得Android的操作系统已经移植于越来越多的手机上。1.1 论文研究主要容通过开发一个项目,了解Android平台的相关特性和开发的流程。具体来讲:1、通过分析当前阶段下各种人群的喜好和对事物的关注程度来选择究的项目,既日程管理软件。2、通过独立设计UI来了解Android以至于移动平台开发的UI的设计方法。3、通过选取相应的数据存储来方式存储日程管理的数据,来了解Android 平台的类库和其相关的设计模式,了解其先进的思想和API的特点。4、通过设计功能点来初步的了解移动平台开发的所需注意事项,初步的了 解移动平台的开发,并了解别体会如何获得更好的人机交互。5、通过测试来完善程序,使其Bug不合理地方最少化,并进一步了解 Android平台的相关先进的特点和其人性化的设计,与此同时熟悉软件开 发的相关流程并深刻认识在编码时一些注意事项的重要性。6、其实完全可以通过发布程序到Google Android Market上,了解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系统,虽然它目前存在安全性和版本混乱等问题,但是拥有低廉的引入成本,良好的用户体验和开放性较强的特点,再加上Android Market和众多第三方应用商店做后盾,在应用方面的资源也非常丰富。Android系统在近几年取得了迅猛的发展,主要还是因为其适应了移动互联网的发展趋势,符合了移动互联网产业链各方的发展变化需求。当然,Android也同样面临着一些挑战和争议。虽然Android在发展过程中遇到一些问题,但在多方面积极的因素推动下,总体趋势仍旧看好。当前,随着HTC进入中国市场,以与酷派、华为、中兴等终端厂商的发力,Android在国的发展会越来越好;而随着Android系统的发展,Android手机在中国市场的销量在未来必然还将有较大发展空间。第2章关键技术介绍2.1Java开发方面对于Java语言而言,Android系统给了Java一个新的机会。随着Android平台在市场占有率的逐渐上升,采用Java语言开发的Android应用肯定会越来越多。由于Android的Java开发方面从接口到功能,都有层出不穷的变化,所以Android支持并使用了Java作为编程语言来开发应用程序。为了能够提高效率和减少资源占用并且考虑到Java虚拟机的效率和资源的占用,Google重新设计了Android的Java,因而它与J2ME等有许多不同之处。其中Activity就是一个Android的用户界面,一个Activity类(Class)主要负责创建UI界面(Windows),Service就是一个活动中的Activity在前景模式,背景运行下的程序。它们两者之间通过由ServiceConnection和AIDL连接,达到多种程序同时运行的效果。如果运行中的Activity下的全部画面被其他的Activity取代时,该Activity便会被停止(Stopped),甚至有可能会被系统清除(Kill)。在Android中的View和J2ME的Displayable挺类似的,程序开发人员可以通过把View类与“XML layout”文件放置在UI的视窗上,Android 1.5的版本也可以利用View创建出所谓的Widgets,其实Widget只是View的一种形式,所以也可以使用xml文件来设计它的layout,现在的许多手机都包含大量Widget的。至于ViewGroup它是各种layout的基础抽象类(abstract class),ViewGroup之还可以包含ViewGroup。View的构造函数其实是不需要在Activity中调用,但是Displayable是必须被调用的,在Activity中,是需要通过findViewById()来从XML中来获得一个View的,并且Android的View类的显示在很大程度上是从XML中获取的。View与事件息息相关,它们之间通过Listener结合在一起,每一个View都可以注册一个事件监听器。2.2 Android用户界面技术Android用户界面框架采用MVC模型。MVC模型为用户界面提供了处理用户输入的控制器,显示用户界面和图像的视图,以与保存数据和代码的模型。MVC模型中的视图将应用程序的信息反馈给用户,可能的反馈方法包括视觉、听觉或触觉等,但最常用的就是通过屏幕显示反馈信息。(1)创建界面通过工程下的res/layout目录下的main.xml,mydate.xml,record.xml,about.xml等配置文件,分别设置日程应用程序的主界面,制定日期的界面,添加记录的界面和关于的界面。通过工程下的res/values目录下的colors.xml,strings.xml,dimension.xml配置文件获得界面中的颜色,尺寸大小,一些属性的名字。通过工程下的res/drawable目录获得应用程序所用到的图片。通过工程下的AndroidManifest.xml的文件来描述Android应用程序整体资讯的设定档。简单来说,这是一个自我介绍档,我们可以向Android系统介绍我们的Android应用程序,以便让Android系统完整地了解我们的应用程序资讯。(2)创建模型类创建Disservice类实现对数据库的增、删、改、查操作,创建Grid类绘制万年类的主体部分:日期和表格,创建CalendarElement接口,定义绘制图形的方法,创建Border类定义边框,Remind类定义提醒时间的一些信息,AllRecord类定义记录的一些信息。(3)创建控制器主要的是Main类来实现界面和一些模型类的交互,把结果展示在界面上。RemindSetting类设置指定日期的类,Record类设置记录信息界面和处理记录的交互。第3章系统分析3.1 系统概述3.1.1功能框架课表应用程序根据需求调研结果确定本系统主要包括以下功能模块,如图3.1所示。查询帮助界面课表信息添加课表登陆业务处理DB图3.1 系统功能框架从系统功能框架中很容易看出,本应用程序采取的是MVC模型,一个Android的Activity通过业务处理来处理一些事务并把它反映在界面之中。启动应用程序首先看到的是一个显示的主界面,然后可以根据菜单选项访问SQLite数据库进行事件的添加、修改、查看、删除,这样做的好处是后台服务可以与时更新数据,以保证数据的准确性。设置提醒的时间功能同样也要和数据库相关联进行一系列的操作。DB下的DBService类封装了许多SQLite的数据库的增、删、改、查的操作,后台服务会调用它来实现数据库的操作。3.1.2 系统特性基于Android的课表应用程序是为了向用户展示一个友好的课表界面并能提供一系列的应用操作的一个应用程序。整个系统分为以下几个模块,见表3.1。表3.1 基于Android的课表应用程序特性概述功能编号功能名称功能描述优先级1 课表的显示 对日期按照一定的规则显示在界面上中2提醒时间的管理对设置的提醒时间进行管理和维护高续表3.1 基于Android的课表应用程序特性概述功能编号功能名称功能描述优先级3记录信息的管理对所记录的信息进行管理和维护高4切换界面的显示对切换日期的进行准确的显示中5帮助界面的显示对一些额外的信息的介绍中3.1.3 需求规格(1)日期的显示支持的日期围从1901-1-1至2100-12-31,在日期界面上我们能够很详细的看到这个月的详细信息,在这个界面我们可以通过键盘和触摸能够看到任何一天的日期和带有标记的记录信息和提醒事件的信息。(2)提醒时间的管理用户可以通过提醒时间的界面来设置什么时候去提醒自己去做某件事,在提醒时间界面中用户可以滑动屏幕来设置小时和分钟。(3)记录信息的管理通过菜单选项的记录和提醒控件,用户可以进入记录界面,在记录界面中用户可以添加、查看、修改、删除记录,并且为记录设置提醒时间。这样我们就可以在某一个时间点来通过程序来提醒我们做一些事情。(4)切换日期界面的显示当我们向任意查看某天的信息的时候,我们可以通过菜单选项的制定日期来进入我们想查看的那天的日期。(5)帮助界面的显示在应用程序中要把一些额外的信息告知用户,所以就是在此界面中设置的一些信息来供用户查看。3.1.4系统用例规约课表应用程序的几个功能中按照前、后台交互的功能划分,只有提醒时间的管理和记录信息的管理体现了这一部分。(1) 提醒时间管理的用例规约用例图提醒时间用例图,如图3.2所示。图3.2 提醒时间用例图用例描述本用例主要描述了提醒时间的相关功能和进行相关的设置,如表3.2-3.5所示。表3.2提醒时间-查看日期用例描述用例名称查看日期参与者任何使用本应用程序的用户用例概述想查看某一天日期的详细信息前置条件无基本事件流1、 用户打开本课表应用程序可以制定时间的日期。2、 当用户使用键盘或者触摸屏幕时可以查看这个日期对应的其他信息。3、 在有记录的信息上添加标记,这样用户在查看日期时就能知道此日期对于的提醒时间。其他事件流无表3.3提醒时间-查看记录用例描述用例名称查看记录参与者查看日期并且已经设置记录的用户用例描述查看自己在某一天某一个时间设置的记录信息前置条件用户已经在某一个记录下设置了提醒时间续表3.3提醒时间-查看记录用例描述基本事件流1、 用户打开课表应用程序在某一天记录信息2、 设置相应的提醒时间其他事件流无表3.4提醒时间-设置时间用例描述用例名称设置时间参与者登陆本应用程序并且已经设置好记录信息用例描述为某一个记录下的事件设置时间前置条件用户已经记录下时间基本事件流1、 用户记录下某一事件2、在这一事件下设置指定的时间其他事件流无(2) 记录信息管理的用例规约用例图记录信息管理用例图,如图3.3所示。图3.3 记录信息管理用例图用例描述本用例主要描述了记录信息管理的相关功能,如表3.6-3.9所示。表3.6 记录信息管理-添加记录用例描述用例名称添加记录参与者用户用例概述在用户打开应用程序后可以在记录界面中添加记录前置条件用户打开应用程序并且在记录界面上基本事件流1、当用户点击“添加记录”按钮时,程序打开添加记录界面2、用户在相应的文本框中输入信息3、用户点击“完成”按钮时,添加成功其他事件流无表3.7 记录信息管理-修改记录用例描述用例名称修改记录参与者用户用例概述在显示记录的界面中可以修改相关的记录信息前置条件用户已经完成记录的添加基本事件流1、 当用户打开“修改/查看”按钮时,系统打开记录修改页面,并且显示本记录的信息2、用户填写相关信息,点击“完成”按钮时,更新记录的信息其他时间流无表3.8 记录信息管理-查看记录用例描述用例名称查看记录参与者用户用例概述用户查看已经写好的记录前置条件用户在应用程序下查看日期基本事件流1、 用户点击“修改/删除”按钮,程序打开记录查询页面2、 在此页面下用户可以看到各种相关的记录的信息其他时间流无表3.9 记录信息管理-删除记录用例描述用例名称删除记录参与者用户用例概述用户删除已经不用的记录前置条件用户已经成功添加了记录信息基本事件流1、 用户打开记录界面,点击“删除”按钮,就可以删除此记录信息2、 删除完成后在界面中就看不到这个记录的信息其他时间流无通过以上的描述,能够很清楚的知道记录信息相关的功能和操作的步骤,并且很容易发现系统相关方面的漏洞。3.1.5 系统的流程分析用户进入课表应用程序可以任意查看每个年份相对应得日期,在每个日期的标志用户可以看到查看的那天是哪一个月的,并且可以为某一天设置记录信息和相应的提醒时间以便提醒我们去做某一件事,从而相应的我们也可以对这个记录进行添加、修改、查看、删除操作。(1) 添加记录模块用户进入记录信息管理页面,点击“添加”选项菜单,在添加记录界面中输入信息,如果输入一些非法字符则重新输入信息。流程图如图3.4所示。图3.4 添加记录流程图(2) 设置提醒时间模块用户进入设置时间状态,然后通过滑动时间选项来设置时间。流程图如图3.5所示。图3.5 设置提醒时间流程图3.2 系统开发环境(1)软件环境开发环境:JDK1.6、Eclipse 3.7、ADT数据库:SQLite数据库Android环境:Android SDK(2)硬件环境笔记本电脑(任何一部配置电脑即可)3.3 系统任务的可行性分析(1)技术与开发方法可行性该应用程序使用的是最主流和前沿的先进技术和工具。本程序采用的是MVC模式的开发,使用了Eclipse作为开发平台,结合了Android和Java的基本知识,采用了SQLite数据库,因为它占用的空间小,并且能够处理大量的数据。该应用程序基于Android系统,该系统提供了非常友好的界面和容易实现的操作,它的安全性,灵活性和易用性为数据库和编程提供良好的条件。因此本应用程序开发成熟可行。(2)管理可行性通过采用系统结构化的设计开发方法,将整个程序划分为多个模块,独立管理维护,这样当某一个类出现错误,就可以直接找到这个模块进行修改,而不用去每个类文件进行修改。所以经过这样的模块划分,就更加有利于程序的管理和维护。(3)经济可行性经过各方面详细谨慎的调研,采取了经济高效的开发,以与科学的设计开发方法,以达到降低程序的开发成本。(4) 运行可行性本应用程序操作简单易懂,界面友好,程序的运行环境只要基于Android系统即可。本程序的开发符合软件设计所遵循的几大原则,符合人们的逻辑思维习惯,所以本程序的设计为以后的程序升级留有很大的空间。第4章系统设计4.1设计指导思想和原则4.1.1指导思想本应用程序的前端开发使用的是Android布局技术,而后台数据库采用的是SQLite数据库。SQLite设计目标是嵌入式的程序,它是是一款非常轻型的数据库,而且目前已经在很多嵌入式的产品中使用了它,它占用的资源非常的低,在嵌入式的设备中,可能只仅仅需要几百K的存就足够了,因此能够很大程度上节约系统的存。它能够支持目前比较主流的几种操作系统,并且同时也能够跟很多编程语言相结合,比如PHP、Java等,还有JDBC接口,同时它的处理速度比Mysql、PostgreSQL这两款开源世界著名的数据库管理系统都快。SQLite虽然占用的资源很小,但是它支持的SQL语句绝对不会比其他开源数据库的差,同时它还支持事务处理功能等等。本应用程序以Eclipse为主要开发工具,整个程序在开发过程中符合MVC模式。MVC模式要求对应用分层,虽然要做许多额外的工作,但程序的结构清晰,可扩展性强、产品的应用性通过MVC模式可以得到更好地体现。这恰恰是日程应用程序所需要的。该程序的功能会随着时代的发展与用户的需要不断的扩展,因此这个程序需要不断的进行功能的升级和修改。4.1.2软件设计原则本应用程序的功能主要包括两方面:一是主界面的显示,在程序的打开界面上能够看到日期的显示和相关的其他信息;二是后台管理,主要实现对记录信息的增、删、改、查等操作。进入程序界面后,就可以很清晰地感受到该程序的设计所遵循的一贯原则,就是从人性化和智能化的角度出发,很好的为用户服务。4.2系统的功能结构设计根据上一章的系统分析,本应用程序实现的功能主要有提醒时间的管理和记录信息的管理等操作,具体如图4.1系统功能结构图所示。 Google android 平台的系统构架图如下所示:图4.1Android分为四层,从上层到底层分别是应用层、应用框架层、系统运行库层和Linux核层。(1). 应用层。应用层是用Java语言编写的运行在虚拟机上的程序。其实,Google 最开始时就在 Android 系统中捆绑了一些核心应用,比如E-mail客户端、SMS短消息程序、日历、地图、游览器、联系人管理程序,等等。(2). 应用框架层。这一层编写Google 发布的核心应用时所使用的API 框架,开发人员同样可以使用这些框架来发布自己的应用,这样便简化了程序开发的构架设计,但是必须遵守其框架的开发顺序。Android提供了如下一些组件:1). 丰富而又可扩展的视图:可以用来构建应用程序,它包括列表(List)、网络(Grid)、文本框(TextBox)、按钮(Button),以与可嵌入的Web游览器。2). 容提供器 (Content Provider):它可以让一个应用程序访问另一个应用程序的数据。3)资源管理器(Resoure Manager):提供非代码资源的访问,如本地字符串、图形和布局文件(layout file)。4)通知管理器(Notification Manager):应用可以在状态栏中显示自定义的提示信息。5)活动管理器(Activity Manager):用来管理应用程序生命周期并提供常用的导航回退功能。6)窗口管理器(Window Manager):管理所有的窗口程序。7)包管理器(Package Manager):Android系统的程序管理。4.3 系统静态模型设计由于本系统是电子课表应用程序,类图主要包括了类的属性和方法,在系统的实现上,本程序主要包括日期的绘制、添加记录和提醒时间的设置这几个方面,所以类图主要解释这几个方面的信息。其中日期的绘制类图如图4.2所示。图4.2日期的绘制类图本日程的日期绘制除去配置和xml文件,主要用到了Grid.java、CalendarParent.java、CalendarView.java、Calendar.java这四个文件。(1) CalendarParent.javaCalendarParent.java主要封装了显示界面的一些尺寸大小和颜色,除此之外实现了CalendarParent.java的接口,实现了draw()方法,以便让后面的类实现这个类,就可以绘制日历了。而这个类的构造方法直接把要显示的界面和公用的属性放在里面。(2) Calendar.java在构造方法里引用Grid类,并把边框和日期全都加到日历的显示主界面中,然后继承CalendarParent.java,去实现这个draw()方法绘制日历。(3) CalendarView.java这个类直接继承了View类,同样要去用draw()这个方法去绘制日历,然后的onTouchEvent()方法的意思是当手动滑动屏幕时日历的显示位置,而onKeyDown()方法是当在键盘上按上、下、左、右四个方向键时日历的显示位置。(4) Grid.java此类是本日历应用程序的核心类,它的主要作用是封装了日历和处理一些事务的方法,主要方法具体见表4.1所示。表4.1 Grid.java主要方法方法名功能说明setCurrentRow(int currentRow)设置当前日期所在的行getRecordDays()获取记录的天数setCurrentCol(int currentCol)设置当前日期所在的列getCurrentRow()获取当前日期的行getCurrentCol()获取当前日期的列getMonthDays(int year, int month)获取某年某月的天数calculateDays()计算出某个月的天数updateMsg(boolean today)更新当前日期的信息draw(Canvas canvas)绘制日期isCurrentDay()判定所选的日期是否是当天记录信息的类图如图4.3所示。图4.3记录类图本应用程序的记录信息方面,除了用到普通的类还要关联数据库,并把用户添加的记录信息放到数据库中。(1) Record.java直接继承了Activity类,把记录的相关功能界面显示在虚拟机上,并在此类中写了两个部类定义了触发事件的方法。(2) AllRecord.java同样继承了ListActivity,把添加、删除、修改记录的界面放置在虚拟机上,并写了部类来定义触发事件的方法。(3) DBService.java和数据库直接相关连的类,在此类中封装了增、删、改、查相关的方法供其它类调用使用。4.4 数据库设计4.4.1数据库设计的概述数据库设计是建立在数据库与其应用系统上的技术,是信息系统开发和建设中的核心技术。为了支持相关程序的运行,所以数据库的设计就变得非常复杂,又由于数据库应用系统的复杂性,因此数据库的最佳设计根本不可能就一蹴而就,而只可能是一种“反复探寻,逐步求精”的过程,也就是必须把数据库中的一些数据对象以与这些数据对象之间关系的过程规划和结构化好。数据库是信息系统的基础和核心,把信息系统量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、与时、准确地从数据库中获得所需的信息。在数据库设计和开发的过程中,它到处都透漏着软件工程的思想。按照软件的生命周期的思路,能把数据库的应用系统从开始的规划到最后被新系统所取代而停止使用的整个期间称之为数据库系统的生存期。4.4.2 概念结构设计概念结构设计的任务是根据需求分析阶段产生的需求说明书,按照指定的方法把数据模型抽象为一个不依赖于任何的具体机器,即概念模型。概念模型使设计开发者的注意力能够从繁杂的实现细节中解脱出来,而不仅仅只集中在最重要的信息的处理模式和组织结构上。在数据库的概念结构设计中,通常采用E-R图来表示数据库的概念结构设计。E-R图将现实世界的信息结构统一用属性、实体和它们之间的联系来描述,而本应用程序最终设计出的实体只有记录这一个,下面就说明这个实体。4.4.3逻辑结构设计应用程序的数据库逻辑设计是整个设计的前半段,包括所需的实体和关系,实体规化等工作,数据库的物理设计是整个设计的后半段,它包含所选择的数据库产品,确定的数据库实体属性(字段)、数据类型、长度、精度确定、DBMS页面大小等。数据库的逻辑设计决定了一个数据库与其应用的整体性能和调优位置。如果一个系统的数据库的逻辑设计的不好,则所有的调优方法对于提高数据库性能的效果都是不明显的。为了逐渐完善数据库设计的方法,必须遵守数据库的相关的规化理论。而规化理论又为数据库的逻辑设计提供了理论性的指导和工具,在减少了数据冗余的同时又节约了存储空间,并且同时加快了增、删、改、查的速度。根据用户的记录信息的需求,数据库的逻辑结构设计就包含一个表t_records,其字段见表4.2所示。表4.2数据库表属性数据类型是否为空主键idintegernot nullprimary keytitlevarcharnot nullcontenttext续表4.2数据库表属性数据类型是否为空主键record_datedatenot nullremind_timetimeremindbooleanshakebooleanringboolean4.4.4物理结构设计设计数据库的物理结构,根据数据库的逻辑结构来选定RDBMS(如Oracle、Sybase等),并设计和实施数据库的存储结构、存取方式等。第5章系统实现5.1 应用程序功能实现本系统的主要功能所用到类以与其作用,具体如表5.1系统结构类图说明所示。表5.1 主要文件列表