Android日程管理系统实训报告.doc_第1页
Android日程管理系统实训报告.doc_第2页
Android日程管理系统实训报告.doc_第3页
Android日程管理系统实训报告.doc_第4页
Android日程管理系统实训报告.doc_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京工业职业技术学院实训报告 安卓项目演习开发实训 基于Android的日程管理系统设计与开发(2016/6/62016/6/23)项目名称基于Android日程管理系统纳米生活院 系计算机与软件学院班 级学 号学生姓名课程老师目录第1章 绪论41.1项目背景41.2项目目标4第2章 系统开发环境及技术52.1系统开发环境5 2.1.1硬件环境5 2.1.2软件支持62.2系统开发技术6 2.2.1 Java 简介6 2.2.2 Android Studio简介6 2.2.3 SQLite简介7第3章 “日程管理”的需求分析83.1用户需求83.2功能分析83.3开发环境8 3.3.1 难点8 3.3.2 易点8第4章 概要设计104.1 设计目标104.2 系统角色104.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 StringString.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设计人:梁新宇测试目标基本功能:测试备忘录能否正常新建前置条件出厂默认状态步骤操作描述期望结果11、 在编辑备忘录界面,选中“开始时间_日期”项2、 输入1970/01/013、 输入当天日期4、 输入2026/06/151、 显示为2017/01/012、 日期显示为1970/01/013、 日期显示不正常4、 日期显示为2026/06/1521、 在编辑备忘录界面,选中“开始时间_日期”项2、 输入1969/00/003、 输入2016/06/174、 输入2036/16/171、 显示为2016/01/012、 警告提示,显示为1979/01/013、 警告提示,显示为2016/06/054、 警告提示,显示为2035/16/1631、 在备注编辑界面2、 按键“选项”3、 选中“常用短语”,按OK键“确定”1、 进入选项列表界面2、 进入常用短语列表界面,内容显示正常3、 返回编辑界面,显示常用短语内容41、 新增一个备忘2、 方式设置为每月3、 保存完成后1、 可以新增2、 编辑正常3、 时间到响铃,按OK键“确定”后,每个月的1号备忘录响起第7章 小 结通过本次的实训,我感受颇多,尽管平时上课也认真听了老师的讲课,但是一开始面对这个实训题目时,除了设计主界面,其他的一些功能什么的感觉无

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论