Android日程管理方案系统实训报告.docx
- 文档编号:10129582
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:24
- 大小:186.53KB
Android日程管理方案系统实训报告.docx
《Android日程管理方案系统实训报告.docx》由会员分享,可在线阅读,更多相关《Android日程管理方案系统实训报告.docx(24页珍藏版)》请在冰豆网上搜索。
Android日程管理方案系统实训报告
安卓项目演习开发实训
—基于Android的日程管理系统设计与开发
(2016/6/6—2016/6/23)
项目名称
基于Android日程管理系统—纳米生活
院系
计算机与软件学院
班级
学号
学生姓名
课程老师
第1章绪论4
1.1项目背景4
1.2项目目标4
第2章系统开发环境及技术5
2.1系统开发环境5
2.1.1硬件环境5
2.1.2软件支持6
2.2系统开发技术6
2.2.1Java简介6
2.2.2AndroidStudio简介6
2.2.3SQLite简介7
第3章“日程管理”的需求分析8
3.1用户需求8
3.2功能分析8
3.3开发环境8
3.3.1难点8
3.3.2易点8
第4章概要设计10
4.1设计目标10
4.2系统角色10
4.3系统流程图10
第5章详细设计12
5.1设计目标12
5.2编码设计12
5.2.1splash界面12
5.2.2日历界面13
5.2.3编辑日程界面14
5.2.4查看日程界面15
5.2.5删除日程界面16
5.2.6闹钟提醒界面17
5.2.7倒计时界面18
5.2.8日程提醒界面19
5.2.9通知栏提醒界面20
第6章测试21
6.1闹钟提醒测试用例21
6.2备忘录测试用例22
第7章小结23
第8章参考文献24
第1章绪论
1.1项目背景
随着计算机技术的飞速发展,计算机应用的迅速推广,计算机及技术给人们的日常生活、工作、学习带来了十分巨大的影响,计算机改变了人们的生活,工作的方式。
而在使用计算机时有一些好的、实用的软件,将会给使用者提供非常便利的环境。
因此我们采用Android技术开发一个实用的个人日程管理系统,以便提醒大家一些重要的事情不要忘记,比如开会,生日什么的事情,有了这款APP,它会按时的提醒你去做该事情,你可以设置提醒一次,每天提醒,每周提醒。
1.1 日程管理的起源
在没有手机功能齐全的时代,我们的日程安排只能通过手写记录,经常会因为没有及时翻阅记录而错过了重要的日程,随着手机技术的飞速发展,手机应用的迅速推广,手机改变了人们的生活,工作的方式。
日程管理就是将每天的工作和事务安排在日期中,并做一个有效的记录,方便管理日程的工作和事务,达到工作备份的目的。
同时也具有对日常工作进行指导、监督的作用。
1.2项目目标
1.通过关于本系统管理系统的实现,使个人的日程管理更加完善。
2.可以编辑日程事务,了解行程。
3.可以提醒备忘事项,大大提高了办事效率。
4.完善的日程查询功能,方便使用者的生活
第2章系统开发环境及技术
2.1系统开发环境
2.1.1硬件环境
处理器PentiumIV及以上;
内存容量4G以上;
存储容量50G以上;
2.1.2软件支持
操作系统:
MacOSX10.11.5
编程语言:
JAVA
数据库:
SQLite
开发工具:
AndroidStudio
2.2系统开发技术
2.2.1java简介
背景:
Java是一种应用分布式网络环境中的程序设计语言,由sun公司开发,Java语言广为人知,得益于Internet的迅猛发展。
人们开始了解并使用这种神奇的语言,一般的应用程序、Applet、web服务器乃至手机的嵌入式系统,Java都足以胜任。
Java对网络提供了强有力的支持,这也是这种奇妙语言的魅力所在。
特点:
(1)面对对象
(2)可移植性(universality)
(3)安全性(security)
(4)多线程(thread)
(5)多态
(6)解释执行
(7)分布性
2.2.2AndroidStudio简介
AndroidStudio是一个Android开发环境,基于IntelliJIDEA.类似EclipseADT,AndroidStudio提供了集成的Android开发工具用于开发和调试。
2013年5月16日,在I/O大会上,谷歌推出新的Android开发环境——AndroidStudio,并对开发者控制台进行了改进,增加了五个新的功能。
AndroidStudio是谷歌推出了新的Android开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。
谷歌对开发者控制台进行了改进,增加了五个新的功能,包括优化小贴士、应用翻译服务、推荐跟踪、营收曲线图、用版测试和阶段性展示。
1、优化小贴士:
在主体中打开你的应用,点击小贴士,会得到这样的建议:
为你的应用开发平板电脑版本。
2、应用翻译服务:
允许开发者直接在开发主体中获得专业的翻译。
上传你的需求,选择翻译,其会显示翻译方和价格,并在一周内发回译本。
3、推荐跟踪:
允许开发者找出最有效的广告
4、营收曲线图:
向开发者展示其应用营收,以国家进行划分
5、试用版测试和阶段性展示:
开发者可以对应用进行测试,然后向测试用户推出,测试结果不会对外公布。
当一个版本的测试结束,开发者可以向特定比例用户推出。
AndroidStudio这款开发工具被首次公布,这也是为了方便开发者基于Android开发。
首先解决的一个问题是多分辨率。
Android设备拥有大量不同尺寸的屏幕和分辨率,根据新的Studio,开发者可以很方便的调整在各个分辨率设备上的应用。
同时Studio还解决语言问题,多语言版本(但是没有中文版本)、支持翻译都让开发者更适应全球开发环境。
Studio还提供收入记录功能。
最大的改变在于Beta测试的功能。
Studio提供了BetaTesting,可以让开发者很方便试运行。
2015年5月29日,在谷歌I/O开发者大会上,谷歌发布AndroidStudio1.3版,支持C++编辑和查错功能。
AndroidStudio1.3版开发码代码变得更加容易,速度提升,而且支持C++编辑和查错功能。
2.2.3Sqlite简介
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
SQLite第一个Alpha版本诞生于2000年5月。
至今已经有13个年头,SQLite也迎来了一个版本SQLite已经发布。
SQLite是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。
它是D.RichardHipp建立的公有领域项目。
不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。
所以主要的通信协议是在编程语言内的直接API调用。
这在消耗总量、延迟时间和整体简单性上有积极的作用。
整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。
它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。
第3章“日程管理”设计与分析
3.1用户需求
(1)功能需求:
本系统完成对自己昨天的日程进行记录,今天、明天的日程安排以及查看修改工作。
(2)权限需求:
用户管理员拥有最高的权限,可以对系统中所有的数据进行查看、添加、修改和删除等操作;普通用户只可以对自己的行程进行查看、修改、删除和删除等操作。
(3)系统安全性需求:
一是用户进入系统时必须进行口令校验;二是连接数据库是使用windows身份验证。
3.2功能分析
(1)用户登录、用户注册:
用户通过登录的方式进行口令校验安全进入在线日程管理系统:
用户注册是用户为进入该系统时将个人信息提交到数据库中。
(2)人员管理:
系统管理员可以对用户进行修改,其中对用户密码进行修改,对一些长期没有用的人员进行删除操作,以减少系统压力。
(3)个人日程管理:
其中使用TabControl控件,对某一天或某段时间的日程进行查看,和对某个日程的地点、开始时间、重要性及联系电话进行修改,更新等操作。
3.3难易点分析
3.3.1、难点
本程序在设计方面存在很大困难,这与我们目前所学习到的知识有关,用个可能不太恰当的比喻就是:
刚刚学习了一点什么是空气动力学的概念知识,就让我们去造一架会飞的飞机出来。
困难是存在的,但是实训的成果和报告是要交的,所以我们要从多方面入手,尽自己的最大努力完成本次实训的目的和效果。
3.3.2、易点
本程序的很多设计可以从各种日程管理的APP中得到相关参考,程序中的用法有之前上课做的范例作为参照,退一步而言,所以在遇到某些问题时,可以小组讨论解决。
也可以通过翻阅不同的资料来得到一定的经验。
第4章概要设计
4.1设计目标
个人日程管理系统是对已完成的工作进行记录,对未完成的工作进行有效、合理的安排,提高工作效率。
每天可以自己安排自己的日程以及查看和修改。
通过关于本系统的实现,个人的日程管理更加完善,可以通过笔记日程事务,了解行程,还可以提醒备忘录事项,大大提高了办事效率。
4.2系统角色
本系统的角色主要包括有:
系统管理员(拥有整个系统的访问权限,可以对本系统的所有数据进行查看、添加、修改、删除的操作),普通用户:
进入日程管理系统,查看制定自己的日程安排;查看日程的详细内容,对日程安排提出疑问,通过网络与管理员沟通(拥有次级管理权限,可以进行本人日程管理)。
管理人员:
进入日程管理系统,查看所有用户日程安排;查看日程的详细内容;对日程安排进行调整,制定统一日程的制定;对系统进行维护和管理。
4.3系统流程图
如图所示:
图4.3系统流程图
日历部分设有三个模块:
年份模块,月份模块,日期模块。
具体如图所示:
图为日历部分流程:
系统界面
日历部分
备忘录部分
图4.4日历部分流程图
第5章详细设计
5.1设计目标
个人日程管理系统是对已完成的工作进行记录,对未完成的工作进行有效、合理的安排,提高工作效率。
5.2编码设计
5.2.1splash界面
该界面只有在开启本APP时才会出现,起到美观、缓冲的作用。
图5.2.1欢迎界面
核心代码如下:
handler.sendEmptyMessageDelayed(1,2500);
BooleanisLogin=SharedPreferencesUtils.getValue(SplashActivity.this,"Login","isLogin",false);
if(isLogin==true){
startActivity(newIntent(SplashActivity.this,MainActivity.class));
finish();
}else{
startActivity(newIntent(SplashActivity.this,LoginActivity.class));
finish();
}
5.2.2日期选择界面
本界面主要是编辑界面进行选择事件日期。
图5.2.2日期选择界面
Calendarcalendar=Calendar.getInstance();
intyear=calendar.get(Calendar.YEAR);
intmonthOfYear=calendar.get(Calendar.MONTH);
intdayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);
datePicker.init(year,monthOfYear,dayOfMonth,newDatePicker.OnDateChangedListener(){
@Override
publicvoidonDateChanged(DatePickerview,finalintyear,
finalintmonthOfYear,finalintdayOfMonth){
if(year Toast.makeText(EditActivity.this,"选择日期不能小于当前",Toast.LENGTH_SHORT).show(); }else{ dateStr=year+"-"+(monthOfYear+1)+"-"+dayOfMonth; showTimePicker(year,monthOfYear,dayOfMonth); dialog.dismiss(); 核心代码如下: 5.2.3添加日程界面 本界面主要实现日程系统的填写与添加操作。 图5.2.3添加日程界面 核心代码如下: publicstaticBooleaninsertLog(Contextcontext,Stringtitle,Stringcontent,Stringtime){ BooleanisSuccess=false; DBHelperdbHelper=newDBHelper(context); SQLiteDatabasedbWrite=dbHelper.getWritableDatabase(); ContentValuesvalues=newContentValues(); values.put("title",title); values.put("time",time); values.put("content",content); values.put("state",0); if(dbWrite.insert("info",null,values)! =-1){ isSuccess=true; } dbWrite.close(); dbHelper.close(); returnisSuccess; } 5.2.4查看日程界面 本界面主要实现已存在日程的信息查看。 图5.2.4日程查看界面 核心代码如下: privatevoidgetInfo(){ Intentintent=getIntent(); id=intent.getIntExtra("id",-1); mList=DataBaseUtil.queryLogById(this,id); tvTitle.setText(mList.get(0).getTitle()); tvContent.setText(mList.get(0).getContent()); tvTime.setText(mList.get(0).getTime()); } 5.2.5删除日程界面 本界面主要实现的功能是建好后的日程的删除操作。 图5.2.5日程删除界面 核心代码如下: publicstaticvoiddeleteInfoById(Contextcontext,intid){ DBHelperdbHelper=newDBHelper(context); SQLiteDatabasedbWrite=dbHelper.getWritableDatabase(); dbWrite.delete("info","_id=? ",newString[]{String.valueOf(id)}); dbWrite.close(); dbHelper.close(); } 5.2.6闹钟设置界面 本界面主要实现的功能是添加日程时时间的选择。 图5.2.6闹钟设置界面 核心代码如下: intcurrentMinute=Integer.valueOf(format1.format(date1)); if(year==currentYear&&month==currentMonthOfYear&&day==currentDayOfMonth){ if(hourOfDay<=currentHour&&minute<=currentMinute){ Toast.makeText(EditActivity.this,"选择时间必须大于当前时间",Toast.LENGTH_SHORT).show(); return; }else{ dateStr+=""+hourOfDay+": "+minute; tvDate.setText(dateStr); dialog.dismiss(); } }else{ dateStr+=""+hourOfDay+": "+minute; tvDate.setText(dateStr); dialog.dismiss(); } 5.2.7倒计时界面 主界面主要实现的是倒计时的功能,输入倒计时的时间后点击确定按钮,下方的方块即会显示倒计时时间,时间到后手机会震动及振铃。 点击方块后取消提醒。 图5.2.7倒计时界面 核心代码如下: inthour=0,minute=0,second=0; if(! TextUtils.isEmpty(etHour.getText().toString())){ hour=Integer.valueOf(etHour.getText().toString()); } if(! TextUtils.isEmpty(etMinute.getText().toString())){ minute=Integer.valueOf(etMinute.getText().toString()); } if(! TextUtils.isEmpty(etSecond.getText().toString())){ second=Integer.valueOf(etSecond.getText().toString()); } intsum=hour*1000*3600+minute*1000*60+second*1000; if(sum==0){ Toast.makeText(getActivity(),"请输入倒计时时间! ",Toast.LENGTH_SHORT).show(); }else{ mc=newMyCount(sum,1000); mc.start(); } etMinute.setText(""); etHour.setText(""); etSecond.setText(""); 5.2.8日程提醒界面 主界面主要实现的是“正在提醒”,此时便是日程所设定的时间已到,系统正在提醒。 图5.2.8日程提醒界面 核心代码如下: intstate=mList.get(position).getState(); if(state==0){ holder.tvState.setText("待办"); }elseif(state==1){ holder.tvState.setText("已完成"); holder.tvState.setTextColor(getResources().getColor(R.color.purple)); }else{ holder.tvState.setText("正在提醒"); holder.tvState.setTextColor(getResources().getColor(R.color.red)); } 5.2.9通知栏提醒界面 主界面主要实现的是在日程提醒的状态下通知栏展示提醒的日程,点击该通知栏后可进入日程查看界面。 图5.2.9通知栏提醒界面 核心代码如下: Notification.Builderbuilder=newNotification.Builder(this); notificationManager=(NotificationManager)this .getSystemService(NOTIFICATION_SERVICE); IntentclickIntent=newIntent(NotificationService.this,MyReceiver.class); clickIntent.putExtra("id",id); PendingIntentpendingIntent=PendingIntent.getBroadcast(NotificationService.this,1,clickIntent,PendingIntent.FLAG_CANCEL_CURRENT); builder.setTicker("您有设定日程已到时间").setDefaults(Notification.DEFAULT_VIBRATE).setContentIntent(pendingIntent).setSmallIcon(R.mipmap.android).setContentTitle("日程提示") .setContentText("点击查看日程: "+title); Notificationnotification=builder.build(); notificationManager.notify(1,notification); 第6章测试 6.1闹钟提醒测试用例 用例名称 日程提醒 用例编号 01 设计人: 梁新宇 测试目标 基本功能: 测试铃声是否正常响起 前置条件 将铃声响起时间设定为17: 00 步骤 操作描述 期望结果 1 提醒时间到 下拉通知栏显示提醒,并且铃声响起 2 点击关闭铃声 点击下拉提醒显示是否关闭铃声对话框 3 点击是 铃声关闭 4 点击否 铃声继续响 用例名称 日程提醒 用例编号 02 设计人: 梁新宇 测试目标 基本功能: 浏览网页时,铃声可以正常响起 前置条件 将铃声响起时间设定为17: 00 步骤 操作描述 期望结果 1 浏览网页是,铃声响 主界面出现闹铃界面,铃声响起 2 点击关闭铃声 闹铃关闭,停留在网页页面 6.2备忘录测试用例 用例名称 日程提醒 用例编号 03
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 日程 管理 方案 系统 报告