收藏 分销(赏)

Android日程管理系统实训报告.doc

上传人:二*** 文档编号:4534716 上传时间:2024-09-27 格式:DOC 页数:28 大小:742KB
下载 相关 举报
Android日程管理系统实训报告.doc_第1页
第1页 / 共28页
本文档共28页,全文阅读请下载到手机保存,查看更方便
资源描述
. 安卓项目演习开发实训 —基于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.1 Java 简介 6 2.2.2 Android Studio简介 6 2.2.3 SQLite简介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.1 splash界面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 硬件环境 处理器Pentium IV及以上; 存容量 4G以上; 存储容量50G以上; 2.1.2软件支持 操作系统: Mac OS X 10.11.5 编程语言:JAVA 数据库: SQLite 开发工具: Android Studio 2.2 系统开发技术 2.2.1 java 简介 背景: Java是一种应用分布式网络环境中的程序设计语言,由sun公司开发,Java语言广为人知,得益于Internet的迅猛发展。人们开始了解并使用这种神奇的语言,一般的应用程序、Applet、web服务器乃至手机的嵌入式系统,Java都足以胜任。Java对网络提供了强有力的支持,这也是这种奇妙语言的魅力所在。 特点: (1) 面对对象 (2)可移植性(universality) (3)安全性(security) (4)多线程(thread) (5)多态 (6)解释执行 (7)分布性 2.2.2 Android Studio简介 Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。 2013年5月16日,在I/O大会上,谷歌推出新的Android开发环境——Android Studio,并对开发者控制台进行了改进,增加了五个新的功能。 Android Studio是谷歌推出了新的Android开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。 谷歌对开发者控制台进行了改进,增加了五个新的功能,包括优化小贴士、应用翻译服务、推荐跟踪、营收曲线图、用版测试和阶段性展示。 1、优化小贴士:在主体中打开你的应用,点击小贴士,会得到这样的建议:为你的应用开发平板电脑版本。 2、应用翻译服务:允许开发者直接在开发主体中获得专业的翻译。上传你的需求,选择翻译,其会显示翻译方和价格,并在一周发回译本。 3、推荐跟踪:允许开发者找出最有效的广告 4、营收曲线图:向开发者展示其应用营收,以国家进行划分 5、试用版测试和阶段性展示:开发者可以对应用进行测试,然后向测试用户推出,测试结果不会对外公布。当一个版本的测试结束,开发者可以向特定比例用户推出。 Android Studio这款开发工具被首次公布,这也是为了方便开发者基于Android开发。 首先解决的一个问题是多分辨率。Android设备拥有大量不同尺寸的屏幕和分辨率,根据新的Studio,开发者可以很方便的调整在各个分辨率设备上的应用。 同时Studio还解决语言问题,多语言版本(但是没有中文版本)、支持翻译都让开发者更适应全球开发环境。Studio还提供收入记录功能。 最大的改变在于Beta测试的功能。Studio提供了Beta Testing,可以让开发者很方便试运行。 2015年5月29日,在谷歌I/O开发者大会上,谷歌发布AndroidStudio 1.3版,支持C++编辑和查错功能。Android Studio 1.3版开发码代码变得更加容易,速度提升,而且支持C++编辑和查错功能 。 2.2.3 Sqlite简介 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.1 splash界面 该界面只有在开启本APP时才会出现,起到美观、缓冲的作用。 图5.2.1欢迎界面 核心代码如下: handler.sendEmptyMessageDelayed(1,2500); Boolean isLogin = SharedPreferencesUtils.getValue(SplashActivity.this,"Login","isLogin",false); if (isLogin == true){ startActivity(new Intent(SplashActivity.this,MainActivity.class)); finish(); }else{ startActivity(new Intent(SplashActivity.this,LoginActivity.class)); finish(); } 5.2.2 日期选择界面 本界面主要是编辑界面进行选择事件日期。 图5.2.2日期选择界面 Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int monthOfYear = calendar.get(Calendar.MONTH); int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); datePicker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, final int year, final int monthOfYear, final int dayOfMonth) { if (year < currentYear || monthOfYear < currentMonthOfYear || dayOfMonth < currentDayOfMonth) { 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添加日程界面 核心代码如下: public static Boolean insertLog(Context context, String title, String content, String time) { Boolean isSuccess = false; DBHelper dbHelper = new DBHelper(context); SQLiteDatabase dbWrite = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); 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(); return isSuccess; } 5.2.4查看日程界面 本界面主要实现已存在日程的信息查看。 图5.2.4日程查看界面 核心代码如下: private void getInfo() { Intent intent = 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日程删除界面 核心代码如下: public static void deleteInfoById(Context context, int id) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase dbWrite = dbHelper.getWritableDatabase(); dbWrite.delete("info", "_id = ?", new String[]{String.valueOf(id)}); dbWrite.close(); dbHelper.close(); } 5.2.6 闹钟设置界面 本界面主要实现的功能是添加日程时时间的选择。 图5.2.6闹钟设置界面 核心代码如下: int currentMinute = 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 倒计时界面 核心代码如下: int hour = 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()); } int sum = hour * 1000 * 3600 + minute * 1000 * 60 + second * 1000; if (sum == 0) { Toast.makeText(getActivity(), "请输入倒计时时间!", Toast.LENGTH_SHORT).show(); } else { mc = new MyCount(sum, 1000); mc.start(); } etMinute.setText(""); etHour.setText(""); etSecond.setText(""); 5.2.8 日程提醒界面 主界面主要实现的是“正在提醒”,此时便是日程所设定的时间已到,系统正在提醒。 图5.2.8日程提醒界面 核心代码如下: int state = mList.get(position).getState(); if (state == 0){ holder.tvState.setText("待办"); }else if (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.Builder builder = new Notification.Builder(this); notificationManager = (NotificationManager) this .getSystemService(NOTIFICATION_SERVICE); Intent clickIntent = new Intent(NotificationService.this, MyReceiver.class); clickIntent.putExtra("id", id); PendingIntent pendingIntent = 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); Notification notification = builder.build(); notificationManager.notify(1, notification); 第6章 测试 6.1 闹钟提醒测试用例 用例名称 日程提醒 用例编号 01 设计人:梁新宇 测试目标 基本功能:测试铃声是否正常响起 前置条件 将铃声响起时间设定为17:00 步骤 操作描述 期望结果 1 提醒时间到 下拉通知栏显示提醒,并且铃声响起 2 点击关闭铃声 点击下拉提醒显示是否关闭铃声对话框 3 点击是 铃声关闭 4 点击否 铃声继续响 用例名称 日程提醒 用例编号 02 设计人:梁新宇 测试目标 基本功能:浏览网页时,铃声可以正常响起 前置条件 将铃声响起时间设定为17:00 步骤 操作描述 期望结果 1 浏览网页是,铃声响 主界面出现闹铃界面,铃声响起 2 点击关闭铃声 闹铃关闭,停留在网页页面 6.2 备忘录测试用例 用例名称 日程提醒 用例编号 03 设计人:梁新宇 测试目标 基本功能:测试备忘录能否正常新建 前置条件 出厂默认状态 步骤 操作描述 期望结果 1 1、 在编辑备忘录界面,选中“开始时间_日期”项 2、 输入1970/01/01 3、 输入当天日期 4、 输入2026/06/15 1、 显示为2017/01/01 2、 日期显示为1970/01/01 3、 日期显示不正常 4、 日期显示为2026/06/15 2 1、 在编辑备忘录界面,选中“开始时间_日期”项 2、 输入1969/00/00 3、 输入2016/06/17 4、 输入2036/16/17 1、 显示为2016/01/01 2、 警告提示,显示为1979/01/01 3、 警告提示,显示为2016/06/05 4、 警告提示,显示为2035/16/16 3 1、 在备注编辑界面 2、 按键“选项” 3、 选中“常用短语”,按OK键“确定” 1、 进入选项列表界面 2、 进入常用短语列表界面,容显示正常 3、 返回编辑界面,显示常用短语容 4 1、 新增一个备忘 2、 方式设置为每月 3、 保存完成后 1、 可以新增 2、 编辑正常 3、 时间到响铃,按OK键“确定”后,每个月的1号备忘录响起 第7章 小结 通过本次的实训,我感受颇多,尽管平时上课也认真听了老师的讲课,但是一开始面对这个实训题目时,除了设计主界面,其他的一些功能什么的感觉无从下手。要设计一个独具一格的日程管理系统方法与技巧是必要的;以前老是觉得自己只要认真听课,什么东西都会,什么东西都懂,一到实践应用中,什么技巧也没用上,常因为一点小错误而前功尽弃,这才发现,原来是自己眼高手低了。 当然过程也需要美化,怎样让手中的素材尽可能地动起来,从而吸引别人的眼球。那就必须充分运用教程中所学到的制作技巧,举一反三,大胆尝试,在学习阶段要尽量把老师所教的容充分运用到作品中去,这样才能学深学透。遇有不懂的地方要随时请教同学、老师,要做到不耻下问,好在我们每天都有个各组交流的时间,那样我们就能够在欣赏别人作品的同时也能让自己有一个灵感,使自己的程序更加美观。同时,在设计过程中一定要耐心、细致,对于其中的细节、布局等方面要反复推敲、练习,考虑周祥,力求做到完美。 在整个过程中,我感觉就像人生的一个缩影,充满了酸甜苦辣。当一个问题我想了好久也没办法解决时,我感到沮丧与无助;当经过努力解决了一个程序上的难题时,我感到无比的喜悦;当经过每天为了写代码,找素材一坐就是一上午甚至一天的时候,我感到无比的痛苦。但艰难痛苦已成往事,灿烂的明天正向我们走来,今天我们总算迎来了胜利的坚果,以前的辛酸和艰苦化作了我们坚强的力量,将在我们将来的人生历程中,为我们的美好明天打下坚实的基础。经过这次的实训,我又一次的感受到了只有付出才会有收获,成功永远只属于不懈努力的人。 人非生而知之,要学得知识,一靠学习,二靠实践。没有实践,学习就是无源之水,无本之木。以上就是我这次图书管理系统设计与开发的心得和感受。不到一年的时间就将步入社会的我们,面临是继续深造,还是就业的压力,我想我们更应该把握住最后的一段时间,充实、完善自我。 第8章 参考文献 1.《Java JDK学习笔记》,林信良 编著,清华大学,2012年 2.《Java核心技术 卷1》 ,cay s.horstmann;gary cornell著,叶乃文等译,机械工业,2008年版 3.《Android开发入门与实战》,靳岩 尚朗,人名邮电,2009年 4.《疯狂Android讲义(第3版)》,刚,电子工业,2015年 5.《Android编程权威指南》, [美]Bill Phillips Brian Hardy,人民邮电,2014年 6.《数据库系统原理教程》,王珊 红,清华大学,2004年 7.《Android 的设计与实现》,云君著,机械工业,2013年 8.《Android系统上应用程序按需加载机制的设计与实现》,剑,大学,2011年 28 / 28
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服