(开题报告)基于Android的日程表管理系统设计与实现--

基于Android的日程表管理系统设计与实现

一.课题的意义

    Android是由Andy Rubin创立的一个手机操作系统,后来被Google公司收购。Google公司希望与各方共同建立一个标准化、开放式的移动电话软件平台,从而在移动产业内形成一个开放式的操作平台。

目前使用Android系统的手机的数量已经超越iPhone,Android系统已经成为全球使用量最大的手机系统。

相关数据显示:1.Android用户已经达9亿,不就会达到10亿;

              2.仅有10%的国家没有被Android覆盖

              3.人才需求仍然巨大。智能招聘网站上每天大约有2000多个Android人才招聘。

Android的原意为“机器人”,Google将Android的标志设计为绿色机器人,不但表达了字面意思,而且表达Android系统是一个符合环保概念、轻薄短小、功能强大的移动系统,意在使其成为第一个真正为手机打造的开放并且完整的系统。

随着智能移动设备和物联网的快速发展,对于智能手机的发展前景,人们更希望将大部分生活所需的直接用一部智能手机就可以搞定。比如:各种支付,手机开锁,手机当遥控器等等。

以往,我们都是用备忘录来记录我们的日程安排,在这个注重效率和便利的快节奏社会,这或多或少给我们生活带来了些不便。手机日程管理系统可以为人们日常生活提供方便,而且能让我们更充分的利用时间,规划我们的生活,让我们的生活有条不紊。我们知道,传统的备忘录大多数是用便签纸或者笔记本来记录,其带来了些不便,如易丢失、携带不便以及容易损坏等。 而手机,我们却往往是生活必备品,联系好友、上网冲浪以及视频娱乐等,我们都可 以用手机实现。因此,手机日程管理将代替传统备忘录。我们可以随时随地拿出手机 查看我们的日程安排,而且手机日常管理系统,还提供到点提醒功能,让我们能够准时完成我们的日程安排。手机日程管理系统就显得很有必要,如果有一个很好的手机日常管理软件,就可以大大方便人们的生活。

    This barrier to application development began to crumble in November of 20## when Google, under the Open Handset Alliance, released Android. The Open Handset Alliance is a group of hardware and software developers, including Google, NTT DoCoMo, Sprint Nextel, and HTC, whose goal is to create a more open cell phone environment. The first product to be released under the alliance is the mobile device operating system, Android. (For more information about the Open Handset Alliance, see www.openhandsetalliance.com.)

    With the release of Android, Google made available a host of development tools and tutorials to aid would-be developers onto the new system. Help files, the platform software development kit (SDK), and even a developers’ community can be found at Google’s Android website, http://code.google.com/android. This site should be your starting point, and I highly encourage you to visit the site.

二. 基本概况及发展趋势

目前, 安卓应用程序发展十分迅速, 各种各样的应用程序都能在安卓市场中找到, 日程管理软件业随处可以见。其中,日程管家、日程表、日程备忘以及课程表在安卓市场上都有相当大的使用量,甚至很多知名企业也参与开发此类应用程序,如影响力比较大360公司开发的 360 课程表。此类软件在网上都有相当多的好评,可见,其对人们生活的带来了相当大的便捷。

虽然,该类应用有很多,但没有专门针对大学生开发的具有明显特色的一款软件。在大学生中,沉重的学习压力,凌乱的作息安排,上课地点的不断更换,临时课程的添加,让我们没有多余的心思去记那繁琐的教室、课程。因此,对于日程管理系统的开发和应用的改善就显得尤为重要。因此设计一个多元化,功能全面的日程管理系统尤为重要。日程管理系统是否实用直接影响其的使用量, 通常,日程可分为日程安排、 日历、 课程表三大类。日程安排,大学生可能用的不多,但日后成为上班族就会用的频繁。日历,在生活中也是不可或缺的。课程表,适应于对学生做学习计划及上课课程提醒,便于学生合理利用时间。本项目旨在设计一个将日程安排,日历和课程表完美结合的日程管理系统,大大提高用户交互性及系统完善性。

三.课题要求及设计方案

3.1 设计主要内容:

设计并实现一个基于Android的个人日程表管理系统,能提示日程安排,点到提醒,能显示日历,并在日历上添加日程任务安排,能显示学生的当周的课表,能实现日程安排、日历和课程表之间的相互切换。要求系统界面友好,具有良好的用户体验效果。

3.2 完成的主要任务及要求:

1. 日程安排:记录用户每天的日程安排, 并显示近日( 昨天、今天、明天) 的计划、安排, 让用户方便获知信息,并有到点提醒功能。

2. 日历:显示当月日历,并可查阅指定日期的日历,同时,还可以在日历上添加日程安排,并有到点提醒功能。

3. 课程表:显示当周学生的课程表,并有到点提醒功能。

4. 小控件可以实现日程安排、日历、课程表切换功能,以便显示用户需要的界面。

5. 系统测试与调试

3.3 初步设计方案:

    3.1界面设计(分为三个界面):

       3.1.1.日程表界面:标题可写为“近期日程”,进入之后显示当天日程,在“近期日程”标题栏添加两个方向按钮,向左可查看昨天的日程,向右可查看明天的日程。类似于:

  

3.1.2.日历界面:使用带农历和万年历的日历界面。类似于:

3.1.3.课程表界面:显示当周课程,类似于:



备注:通过学习,想到用ViewPager控件来实现日历,日程表,课程表之间的切换

  3.2 界面功能设计:

      3.2.1日历界面:

      日历使用可以查看中国农历的日历,对于习惯农历的人们来说可以方便根据农历来制定近期的日程。选定某天日期,点击直接切换到日程表界面来查看所选日期的计划。

      3.2.2日程表界面:

      日程表界面如上面显示,包含日程计划的类型以及提醒次数,日程提醒的时间选择以及一个日程计划编辑框。同时准备在“近期日程”标题栏添加两个方向按钮,向左按钮显示前一天日程,和在日历界面点击前一天日程的效果一样。向右按钮显示明天日程计划,同样也可以通过日历来显示。日程类型有会议、约会、生日、电话、纪念日、课程、其他。

      3.2.3课程表界面:

     课程表只显示周一到周五的课程包括选修课,每节课显示课程名称和上课地点,代课老师可以自行在课程名称后面或者上课地点后面添加。有一些选修课会安排在周末上课,但是比较少,所以不幸选择的同学可以在日程表中添加,这样还可以提醒,以免周末太高兴给忘记了。

备注:通过ViewPager控件,在每个界面的最上方添加一栏,显示日历,日程表,课程表,点击即可切换到相应的界面。效果跟微博的切换效果一样

Viewpager的相关介绍:ViewPager - onCreateView is not always called

   I have a ViewPager with 10 pages. When I start the last (10th) page onCreateView() method of my fragment is called. When I swipe to the 9th page onCreateView() is called also. But when I back to the 10th page onCreateView() isn't called. What's wrong?

   That is because a FragmentPagerAdapter keeps in memory every fragment. Hence, when you visit the first time the fragment, onCreate will be invoked but the second time Android will looking for in memory, so it not need invoke onCreate.

  If you need run the code in OnCreate every time fragment is displayed, you should move it to getItem(int id)

四.任务时间安排:

  1. 第1-4周,英文翻译,毕业设计调研,完成文献检索,撰写开题报告。

 2. 第5-10周,完成代码设计。

 3. 第11-12周,系统测试及调试,完善代码。

 4. 第13-14周,撰写本科毕业论文。

 5. 第15周,做好答辩前的所有准备工作,并参加答辩。

五.参考文献:

1. 孙士保,ASP.NET数据库网站设计教程(C#版),电子工业出版社,20##年8月

2. 徐婉珍,JSP动态网站开发项目教程,电子工业出版社,20##年11月

3. 方欣,赵红岩,Android程序设计教程,电子工业出版社,20##年5月

4. 吴清秀,PHP网站开发,机械工业出版社,20##年8月

5. 王卫红,Android应用开发基础教程,机械工业出版社,20##年12月

6.林建素,孟康健.Eclipse开发学习笔记[M].北京:电子工业出版社,2008. 

7.范春梅,王新刚,张卫华.XML基础教程[M].北京:人民邮电出版社,2009. 

8.Erik T.Ray[美]. XML入门[M].译者:卓小涛.北京:中国电力出版社,2001. 

9.梅尔斯T[美],奈克莫夫斯基 A[美].Java XML 编程指南[M]. 译者: 王辉等.电子工业出版 社,2001. 

10.麦克劳林 B[美]. JAVA与XML[M]. 译者: 孙照林等. 北京:中国电力出版,2001.  

11.威尔顿P[美],科尔比J[美].SQL入门经典 [M].译者:敖富江. 北京:清华大学出版社,2006. 

12.王虔.Flash矢量设计[M].北京:清华大学出版社,2007. 

13.管贻生.Java高级实用编程[M].北京:清华大学出版社,2006. 

14.姚昱曼.Android的架构与应用开发研究[J].计算机系统应用,2008,17(11):110~113. 

15.王会进,方锦亮.基于JAVA的自定义空间应用技术研究[J].微型机与应用,2005

                  指导教师(签名):                       

                                                                      年    月      日

 

第二篇:基于android的手机日程管理系统详细设计说明书

基于Android的手机日程管理系统的设计

与实现

详细设计说明书

学生姓名: 王炜

学 号: 09110514034

指导教师: 刘雪梅 课题类型: AXP

专 业: 软件工程

学 部 : 信息学部 审核组长:

北京城市学院

2013 年 2月 19日

I

II

基于android的手机日程管理系统详细设计说明书

目录

1、引言 ....................................................................................................... 1

1.1、编写目的........................................................................................................ 1

1.2、背景说明........................................................................................................ 1

1.3、定义................................................................................................................ 1

1.4、参考资料........................................................................................................ 1

2、程序系统的结构 ................................................................ 2

3、功能模块设计说明 ............................................................. 2 3.1、程序描述 ................................................................................. 2

3.2、功能 ........................................................................................ 3

3.3、性能 ........................................................................................ 4

3.4、输人项 .................................................................................... 4

3.5、输出项 .................................................................................... 4

3.6、算法 ........................................................................................ 4

3.7、接口 ........................................................................................ 6

3.8、限制条件 ................................................................................. 6

4、界面设计说明 .................................................................... 6

4.1、程序描述 ................................................................................. 6

4.2、功能 ........................................................................................ 6

4.3、性能 ........................................................................................ 6

4.4、输人项 .................................................................................... 6

4.5、输出项 .................................................................................... 6

4.7、限制条件 ................................................................................. 8

5、安全设置设计说明 ............................................................. 8 5.1、程序描述 ................................................................................. 8

5.2、功能 ........................................................................................ 8

5.4、输人项 .................................................................................... 9

5.5、输出项 .................................................................................... 9

5.6、算法 ........................................................................................ 9

5.7、接口 ....................................................................................... 10

5.8、限制条件 ................................................................................ 10

5.9、尚未解决的问题 ..................................................................... 11

6、其他需求设计 .................................................................. 11

III

1、引言

1.1、编写目的 本文档用于说明本软件开发的详细过程,使毕业设计审核组了解软件的

内部结构,从而对本日程管理系统有更深入的了解,便于审核。

1.2、背景说明 待开发软件系统的名称:基于Android的手机日程管理系统

本项目的任务提出者:学校 开发者:王炜

用户:android手机用户

项目开发环境:eclipse、Android系统平台

1.3、定义

Android 手机日程 详细设计

1.4、参考资料

[1]赵亮;张维;;基于Android技术的界面设计与研究[J];电脑知识与技术;20xx年29期.

[2]陈昱;江兰帆;;基于Google Android平台的移动开发研究[J];福建电脑;20xx年11期.

[3]蔡罗成;;Android后台监听实现机制浅析[J];信息安全与通信保密;20xx年06期.

[4]王会进,方锦亮;基于JAVA的自定义控件应用技术研究[J];微型机与应用;20xx年05期.

[5]陈璟;陈平华;李文亮;;Android内核分析[J];现代计算机(专业版);20xx年11期.

[6]姚昱旻;刘卫国;;Android的架构与应用开发研究[J];计算机系统应用;20xx年11期.

[7]方明;田野;户银龙;;基于Android平台的嵌入式软件项目组织方法[J];电脑知识与技术;20xx年34期.

[8]叶炳发;Android操作系统移植及关键技术研究[D];暨南大学;20xx年.

1

[9]岳传真;Android系统移植和应用程序开发[D];复旦大学;20xx年.

[10]刘敏;移动终端的Android移植与应用程序设计[D];西安电子科技大学;20xx年.

[11]胡思捷;基于Android平台的触摸屏系统设计及实现[D];南开大学;20xx年. [12]施金兰;基于Android平台的网络共享研究与实现[D];华东师范大学;20xx年. [13]李凯;Android操作系统分析与移植[D];华南理工大学;20xx年.

[14]刘瑞顺;基于Android平台的智能手机输入法研究与设计[D];汕头大学;20xx年.

2、程序系统的结构

手机日程管理系统结构设计如下:

基于android的手机日程管理系统详细设计说明书

3、功能模块设计说明

3.1、程序描述

主要功能:用于用户的可视化界面操作,有助于用户快速熟悉软件。 可扩展性:能够适应应用要求的变化和修改,具有灵活的可扩充性。

2

3.2、功能

基于android的手机日程管理系统详细设计说明书

图2 设置课程程序流程图

通过点击课程表界面,用户可以输入课程名和地点。设计每天天共有8节课程和一节选修课,用户可输入星期一到星期五的所有课程安排信息。

基于android的手机日程管理系统详细设计说明书

查看课程:

用户可查看输入的课程信息,设计只要左右滑动界面就可以查看星期一到星期五的所有课程信息。

基于android的手机日程管理系统详细设计说明书

新增日程:

点击新增日程,就跳转用户可输入的新增日程界面,通过点击下拉菜单可选择日程类型是会议还是约会,在内容框里输入日程信息,输入所花时间,点击评分就是日程的优先级。

查看日程:

基于android的手机日程管理系统详细设计说明书

3

图5 查看日程程序流程图 用户点击查看日程后,输入正确密码,程序自动调用系统内部的日历模块,即显示日历,点击今天的日期,即可查看今天的日程安排,点击今天的日程信息,即可跳转编辑此次日程信息界面。

3.3、性能

当用户选择菜单时能够快速反应,以满足用户的要求。

3.4、输人项

设置课程:

课程名和地点

查看课程:

用户通过点击输入操作命令

新增日程:

类型、内容、耗时、评分(日程优先级)

查看日程:

密码

3.5、输出项

设置课程:

查看课程:

课程表信息,课程名和地点

新增日程:

查看日程:

密码、类型、内容、耗时、评分(日程优先级)

3.6、算法

//定义菜单类,用于接收用户的单击消息。

public class MainActivity extends Activity

//设计4个按钮用于接收按钮消息,并将它们初始化:

super.onCreate(savedInstanceState);

setContentView(R.layout.main_activity);

Button btn = (Button)findViewById(R.id.btnSetSallybus); btn.setOnClickListener(onBtnSetSallybusClickListener); 4

btn = (Button)findViewById(R.id.btnAddNote);

btn.setOnClickListener(onBtnAddNoteClickListener);

btn = (Button)findViewById(R.id.btnViewSallybus);

btn.setOnClickListener(onBtnViewSallybusClickListener); btnViewNote);

btn.setOnClickListener(onBtnViewNoteClickListener);

在OnClick函数中对响应进行处理:

1跳转设置课程表界面

public View.OnClickListener onBtnSetSallybusClickListener = new View.OnClickListener(){

@Override

public void onClick(View view) {

Intent intent=new Intent(MainActivity.this, ScheduleInsert.class);

MainActivity.this.startActivity(intent);

}

} ;

2跳转新增日程界面

public View.OnClickListener onBtnAddNoteClickListener = new View.OnClickListener(){

@Override

public void onClick(View view) {

//To change body of implemented methods use File | Settings | File Templates.

Intent intent=new Intent(MainActivity.this, DiaryNew.class); MainActivity.this.startActivity(intent);

}

} ;

3跳转查看课程表界面

public View.OnClickListener onBtnViewSallybusClickListener = new View.OnClickListener(){

@Override

public void Intent intent=new Intent(MainActivity.this, ScheduleShow.class);

MainActivity.this.startActivity(intent);

}

5

} ;

4跳转查看日程界面

具体在安全设计中介绍

3.7、接口

API函数

3.8、限制条件

无明显限制条件

4、界面设计说明

因概要设计中有具体页面效果图,这里只举一例说明

4.1、程序描述

主要功能:用于为用户提供可视化的操作界面,增加了程序的可读性。 可扩展性:能够适应应用要求的变化和修改,具有灵活的可扩充性。

4.2、功能

显示主界面、课程表界面、日程界面、日历界面、密码界面。

4.3、性能

能够快速的显示用户所需要的操作界面

4.4、输人项

无输入

4.5、输出项

操作界面

6

4.6、页面布局代码

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="/apk/res/android" android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_gravity="center_vertical"

>

<LinearLayout android:orientation="horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_weight="1"

android:layout_gravity="center" android:gravity="center">

<Button

android:layout_width="120dp"

android:layout_height="120dp"

android:id="@+id/btnSetSallybus"

android:layout_gravity="center"/>

<Button

android:layout_width="120dp"

android:layout_height="120dp"

android:id="@+id/btnViewSallybus"

android:layout_gravity="center"/>

</LinearLayout>

<LinearLayout android:orientation="horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_weight="1" android:gravity="center" android:layout_gravity="center">

<Button

android:layout_width="120dp"

android:layout_height="120dp"

android:id="@+id/btnAddNote"

android:layout_gravity="center"/>

7

<Button

android:layout_width="120dp"

android:layout_height="120dp"

android:id="@+id/btnViewNote"

android:layout_gravity="center"/>

</LinearLayout>

</LinearLayout>

4.7、限制条件

无明显限制条件

5、安全设置设计说明

5.1、程序描述

主要功能:当用户点击查看日程时需输入安全密码才可查看信息,起到保护用户信息的功能。

可扩展性:能够适应应用要求的变化和修改,具有灵活的可扩充性。

5.2、功能

安全设置程序流程图:

基于android的手机日程管理系统详细设计说明书

图4 安全设置程序流程图图

5.3、性能

能够让用户输入密码,并保存进内部数据库。

8

5.4、输人项

用户输入密码。

5.5、输出项

5.6、算法

public View.OnClickListener onBtnViewNoteClickListener = new View.OnClickListener(){

@Override

public void onClick(View view) {

if(!Security.Logined)

{

LayoutInflater inflater = getLayoutInflater();

final View inputView = inflater.inflate(R.layout.input_string,(ViewGroup)findViewById(R.id.etInputString));

new AlertDialog.Builder(MainActivity.this).setTitle("请输入查看日程密码")

.setView(inputView)

.setNeutralButton(R.string.ok, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialogInterface, int i) {

EditText etPwd = (EditText) inputView.findViewById(R.id.etInputString);

String strInputPwd = etPwd.getText().toString();

SharedPreferences prefs = getSharedPreferences("user_info",MODE_PRIVATE); String strPwd = prefs.getString("password","");

if(!strPwd.equals("") )

{

if(strPwd.equals(strInputPwd)) {

Security.Logined = true;

9

}

}

else{

Security.Logined = true;

}

if(!Security.Logined){

new

AlertDialog.Builder(MainActivity.this)

.setTitle("提示")

.setMessage("密码不正确")

.setPositiveButton("确定", null) .show();

return;

}

}

})

.show();

return;

}

if(!Security.Logined){

new AlertDialog.Builder(MainActivity.this)

.setTitle("提示")

.setMessage("密码不正确")

.setPositiveButton("确定", null)

.show();

return;

}

Intent intent=new Intent(MainActivity.this, CalendarActivity.class);

MainActivity.this.startActivity(intent);

}

} ;

5.7、接口

API函数

5.8、限制条件

无明显限制条件

10

5.9、尚未解决的问题

不能进行密码重置,当用户忘记密码时,只能内部查看。当查看日程时输入一次密码后,必须在此点击查看日程按钮才能查看日程。

6、其他需求设计

详见需求规格说明书。

11

相关推荐