rences"窗口的左边选中"Android",在右边点击"Browse..."选择Android SDK所在目录作为SDK Location,如图5所示:
图5 应用SDK到Eclipse
3 系统分析
3.1 可行性分析
在中国,手机已经成为人们日常生活必不可少的一部分,智能手机在高校人群中逐渐得到了普及,Android手机凭借其优秀的系统性能以及良好的用户体验迅速得到了高校师生的青睐。在高校中,上课并不像高中时期有固定的教室和固定的时间,高校课程种类繁多,并且上课地点和时间都不固定,一周内极少会出现重复课程,所以要将课程表完整的记忆下来是一项很艰难的事情,很多同学不得不随身携带一张课表来防止遗忘上课,但是还是不能完全避免该
问题的发生。
基于这些问题,有必要设计一款具有课程提醒功能的手机课表程序,配合上可以让用户自定义上课时间以及地点的功能,从而避免遗忘上课的事情出现。
3.2 需求分析
手机电子课表在手机应用程序中并不常见,一般在手机上较为常见的日程提醒程序无法实现自由设置校历,重复提醒等功能。
经过对周边同学的调查研究,普遍认为这款软件方便实用,其主要功能如下:
* 课程到点闹铃提示;
* 自定义设置每天课程数量;
* 设置校历;
* 能依据校历区分课程单双周;
* 能依据校历设置
学习计划提醒;
4 系统设计
4.1 概要设计
从程序流程来分,用户在第一次进入程序时会进入设置界面,设置一些基本的配置信息以方便数据库管理,然后进入添加课程界面,进行添加课程操作。添加课程除了UI展示以外其他的方式都是在操作数据库,在程序中使用SQLite以实现校历功能,按天
查询功能,单双周功能等。在程序主界面使用用list展示记录,从数据表中按当天的时间读取出当天的记录,得到当天每节课的课程id,再通过课程id从class表中查询出对应了课程信息,并在主界面中显示。
程序的配置信息主要存在preference中,该信息在数据显示时读取必要的配置信息,比如读取本学期的第一周星期一是哪一天,用户选择第几周星期几时就可以计算出当天的日期,再通过日期在数据表表中查询。添加学习计划模块也是采用preference中的键值对的方式存储数据,键为计划提醒的时间,值为计划的提示信息。这样在service中监听系统时间变化,每分钟会收到一个当时时间的消息,通过转换成时间字符串在preference中去查询,如果能得到计划的值,则说明在此时间有计划,弹出提示信息并播放音乐,用来实现计划提醒和上课提醒功能,如图6所示:
图6 程序数据流图
4.2 数据存储
本程序数据存取方面主要用到了SQLite数据库和Preference存储机制。其中,SQLite主要用来存储课程信息,Preference则主要用来存储配置信息。
4.2.1 SQLite
SQLite数据库是Android系统中非常重要的数据存储方法,它是Android系统唯一支持的数据库类型,也是Android应用程序进行持久化存储的三种方式之一。 SQLite数据库是SQL数据库的简化版,支持大部分SQL操作。SQLite是Android应用程序中非常
常用的一种数据存储手段。[4]
4.2.1.1 SQLite数据库的创建
创建数据库主要用到了DBHelper类,该类继承了SQLiteOpenHelper类,实现了数据库、数据表的创建。具体方法如下:
private static final String DB_NAME = "classschedule.db";
public DBHelper(Context context){
super(context, DB_NAME, null, 1);
};
//在dbhelper的构造函数中调用父类构造函数,传入数据库名,创建数据库
4.2.1.2 SQLite数据表的设计
根据对本程序的需求分析,本程序一共需要用到两张数据表,分别为Class表和term表。
Class表主要用来存储已经添加的课程,用户