Android日程管理系统实训报告_第1页
Android日程管理系统实训报告_第2页
Android日程管理系统实训报告_第3页
Android日程管理系统实训报告_第4页
Android日程管理系统实训报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、w.安卓项目演习开发实训基于 Android 的日程管理系统设计与开发(2016/6/62016/6/23)项目名称院系班级学号学生姓名基于 Android 日程管理系统纳米生活计算机与软件学院. . 资 料.南京工业职业技术学院实训报告课程老师目录2第 1 章绪论41.1 项目背景41.2 项目目标4第 2 章系统开发环境及技术52.1 系统开发环境52.1.1 硬件环境52.1.2 软件支持62.2 系统开发技术62.2.1 Java简介62.2.2 Android Studio 简介62.2.3 SQLite 简介7第 3 章“日程管理”的需求分析83.1 用户需求83.2 功能分析83

2、.3 开发环境83.3.1 难点83.3.2 易点8第 4 章概要设计104.1 设计目标104.2 系统角色104.3 系统流程图10第 5 章详细设计125.1 设计目标125.2 编码设计125.2.1 splash 界面125.2.2 日历界面135.2.3 编辑日程界面145.2.4 查看日程界面155.2.5 删除日程界面165.2.6 闹钟提醒界面175.2.7 倒计时界面185.2.8 日程提醒界面195.2.9 通知栏提醒界面20第 6 章测试216.1 闹钟提醒测试用例216.2 备忘录测试用例22第 7 章小结23第 8 章参考文献24第 1 章绪论1.1 项目背景随着计

3、算机技术的飞速发展,计算机应用的迅速推广,计算机及技术给人们的日常生活、工作、学习带来了十分巨大的影响,计算机改变了人们的生活,工作的方式。而在使用计算机时有一些好的、实用的软件,将会给使用者提供非常便利的环境。因此我们采用Android 技术开发一个实用的个人日程管理系统,以便提醒大家一些重要的事情不要忘记,比如开会,生日什么的事情,有了这款 APP, 它会按时的提醒你去做该事情,你可以设置提醒一次,每天提醒,每周提醒。1.1 日程管理的起源在没有手机功能齐全的时代,我们的日程安排只能通过手写记录,经常会因为没有及时翻阅记录而错过了重要的日程,随着手机技术的飞速发展,手机应用的迅速推广,手机

4、改变了人们的生活,工作的方式。日程管理就是将每天的工作和事务安排在日期中,并做一个有效的记录,方便管理日程的工作和事务,达到工作备份的目的。同时也具有对日常工作进行指导、监督的作用。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

5、编程语言:JAVA数据库: SQLite开发工具: Android Studio2.2 系统开发技术2.2.1 java简介背景:Java 是一种应用分布式网络环境中的程序设计语言,由 sun 公司开发,Java 语言广为人知,得益于 Internet 的迅猛发展。人们开始了解并使用这种神奇的语言,一般的应用程序、Applet、web 服务器乃至手机的嵌入式系统,Java 都足以胜任。Java 对网络提供了强有力的支持,这也是这种奇妙语言的魅力所在。特点:(1) 面对对象(2) 可移植性(universality)(3) 安全性(security)(4) 多线程(thread)(5) 多态(6

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 开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。谷歌对开发

7、者控制台进行了改进,增加了五个新的功能,包括优化小贴士、应用翻译服务、推荐跟踪、营收曲线图、用版测试和阶段性展示。1、优化小贴士:在主体中打开你的应用,点击小贴士,会得到这样的建议: 为你的应用开发平板电脑版本。2、应用翻译服务:允许开发者直接在开发主体中获得专业的翻译。上传你的需求,选择翻译,其会显示翻译方和价格,并在一周内发回译本。3、推荐跟踪:允许开发者找出最有效的广告4、营收曲线图:向开发者展示其应用营收,以国家进行划分5、试用版测试和阶段性展示:开发者可以对应用进行测试,然后向测试用户推出,测试结果不会对外公布。当一个版本的测试结束,开发者可以向特定比例用户推出。Android St

8、udio 这款开发工具被首次公布,这也是为了方便开发者基于Android 开发。首先解决的一个问题是多分辨率。Android 设备拥有大量不同尺寸的屏幕和分辨率,根据新的Studio,开发者可以很方便的调整在各个分辨率设备上的应用。同时 Studio 还解决语言问题,多语言版本(但是没有中文版本)、支持翻译都让开发者更适应全球开发环境。Studio 还提供收入记录功能。最大的改变在于 Beta 测试的功能。Studio 提供了 Beta Testing,可以让开发者很方便试运行。2015 年 5 月 29 日,在谷歌I/O 开发者大会上,谷歌发布 AndroidStudio 1.3 版,支持

9、C+编辑和查错功能。Android Studio 1.3 版开发码代码变得更加容易, 速度提升,而且支持 C+编辑和查错功能 。2.2.3 Sqlite 简介SQLite,是一款轻型的数据库,是遵守ACID 的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百 K 的内存就够了。它能够支持Windows/Linux/Unix 等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java 等,还有ODBC 接口,同样比起Mysql、PostgreSQL 这两款开源世界著名的数据库管理系

10、统来讲,它的处理速度比他们都快。SQLite 第一个 Alpha 版本诞生于 2000 年 5 月。 至今已经有 13 个年头,SQLite 也迎来了一个版本 SQLite 已经发布。SQLite 是遵守 ACID 的关系型数据库管理系统,它包含在一个相对小的 C 库中。它是 D.RichardHipp 建立的公有领域项目。不像常见的客户-服务器范例,SQLite 引擎不是个程序与之通信的独立进程, 而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接 API 调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存

11、储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。第 3 章“日程管理”设计与分析3.1 用户需求(1) 功能需求:本系统完成对自己昨天的日程进行记录,今天、明天的日程安排以及查看修改工作。(2) 权限需求:用户管理员拥有最高的权限,可以对系统中所有的数据进行查看、添加、修改和删除等操作;普通用户只可以对自己的行程进行查看、修改、删除和删除等操作。(3) 系统安全性需求:一是用户进入系统时必须进行口令校验;二是连接数据库是使用 windows 身份验证。3.2 功能分析(1) 用户登录、用户注册:用户通过登录的方式进行口令校验安全进入在线日程管理系统:用户

12、注册是用户为进入该系统时将个人信息提交到数据库中。(2) 人员管理:系统管理员可以对用户进行修改,其中对用户密码进行修改,对一些长期没有用的人员进行删除操作,以减少系统压力。(3) 个人日程管理:其中使用TabControl 控件,对某一天或某段时间的日程进行查看,和对某个日程的地点、开始时间、重要性及联系电话进行修改,更新等操作。3.3 难易点分析3.3.1 、难点本程序在设计方面存在很大困难,这与我们目前所学习到的知识有关,用个 可能不太恰当的比喻就是:刚刚学习了一点什么是空气动力学的概念知识,就让 我们去造一架会飞的飞机出来。困难是存在的,但是实训的成果和报告是要交的, 所以我们要从多方

13、面入手,尽自己的最大努力完成本次实训的目的和效果。3.3.2 、易点本程序的很多设计可以从各种日程管理的 APP 中得到相关参考,程序中的用法有之前上课做的范例作为参照,退一步而言,所以在遇到某些问题时,可以小组讨论解决。也可以通过翻阅不同的资料来得到一定的经验。第 4 章概要设计4.1 设计目标个人日程管理系统是对已完成的工作进行记录,对未完成的工作进行有效、合理的安排,提高工作效率。每天可以自己安排自己的日程以及查看和修改。通过关于本系统的实现,个人的日程管理更加完善,可以通过笔记日程事务,了解行程,还可以提醒备忘录事项,大大提高了办事效率。4.2 系统角色本系统的角色主要包括有:系统管理

14、员(拥有整个系统 的访问权限,可以对本系统的所有数据进行查看、添加、修改、删除的操作),普通用户:进入日程管理系统,查看制定自己的日程安排;查看日程的详细内容,对日程安排提出疑问,通过网络与管理员沟通(拥有次级管理权限,可以进行本人日程管理)。管理人员:进入日程管理系统,查看所有用户日程安排;查看日程的详细内容;对日程安排进行调整,制定统一日程的制定;对系统进行维护和管理。已完成日程所有日程4.3 系统流程图如图所示:未完成日程用户注册系统简介登 录用户信息找回密码日程管理图 4.3 系统流程图日历部分设有三个模块:年份模块,月份模块,日期模块。具体如图所示:图为日历部分流程:系统界面日历部分

15、备忘录部分图 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",&quo

16、t;isLogin",false);if (isLogin = true)startActivity(new Intent(SplashActivity.this,MainActivity.class); finish();else5.2.2 日期选择界面本界面主要是编辑界面进行选择事件日期。图 5.2.2 日期选择界面核心代码如下:Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.YEAR);int monthOfYear = calendar.get(Calendar.MONTH

17、);int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);datePicker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() Overridepublic void onDateChanged(DatePicker view, final int year,final int monthOfYear, final int dayOfMonth) if (year < currentYear | monthOfYear < cur

18、rentMonthOfYear | dayOfMonth <currentDayOfMonth) Toast.makeText(EditActivity.this, "选择日期不能小于当前", Toast.LENGTH_SHORT).show(); else 5.2.3 添加日程界面本界面主要实现日程系统的填写与添加操作。图 5.2.3 添加日程界面核心代码如下:public static Boolean insertLog(Context context, String title, String content, String time)Boolean isSuc

19、cess = 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"

20、,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.que

21、ryLogByI(dthis, 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);

22、 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 = cur

23、rentYear && month = currentMonthOfYear && day =currentDayOfMonth) if (hourOfDay <= currentHour && minute <= currentMinute) Toast.makeText(EditActivity.this, "选择时间必须大于当前时间",Toast.LENGTH_SHORT ).show();return;elsedateStr += "" + hourOfDay + ":&quo

24、t; + minute;tvDate.setText(dateStr); dialog.dismiss();elsedateStr += "" + hourOfDay + ":" + minute;tvDate.setText(dateStr); dialog.dismiss();5.2.7 倒计时界面主界面主要实现的是倒计时的功能,输入倒计时的时间后点击确定按钮,下方的方块即会显示倒计时时间,时间到后手机会震动及振铃。点击方块后取消提醒。南京工业职业技术学院实训报告图5.2.7 倒计时界面核心代码如下:int hour = 0, minute = 0,

25、 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(

26、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);5.2.8 日程提醒界面主界面主要实现的是“正在提醒”,此时便是日程所设定的时间已到,系统正在提醒。南京工业职业技术学院实训报告图5.2.8 日程提醒界

27、面核心代码如下: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);elseholder.tvState.setText(" 正 在 提 醒 "); holder.tvStat

28、e.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);Inte

29、nt clickIntent = new Intent(NotificationService.this, MyReceiver.class); clickIntent.putExtra("id", id);PendingIntent pendingIntent = PendingIntent.getBroadcas(tNotificationService.this, 1, clickIntent, PendingIntent.FLAG_CANCEL_CURRENT);builder.setTicker("您有设定日程已到时间").setDefault

30、s(Notification.DEFAULT_VIBRATE).setContentIntent(pendingIntent).setSmallIcon(R.mipmap.android).setContentTitle("日程提示").setContentText("点击查看日程: " + title); Notification notification = builder.build();notificationManager.notify(1, notification);2南京工业职业技术学院实训报告第6章测试6.1 闹钟提醒测试用例用例名称日

31、程提醒用例编号01设计人:梁新宇测试目标基本功能:测试铃声是否正常响起前置条件将铃声响起时间设定为17:00步骤操作描述期望结果1提醒时间到下拉通知栏显示提醒,并且铃声响起2点击关闭铃声点击下拉提醒显示是否关闭铃声对话框3点击是铃声关闭4点击否铃声继续响用例名称日程提醒用例编号02设计人:梁新宇2测试目标基本功能:浏览网页时,铃声可以正常响起前置条件将铃声响起时间设定为17:00步骤操作描述期望结果1浏览网页是,铃声响主界面出现闹铃界面,铃声响起2点击关闭铃声闹铃关闭,停留在网页页面6.2 备忘录测试用例用例名称日程提醒用例编号03设计人:梁新宇测试目标基本功能:测试备忘录能否正常新建前置条件

32、出厂默认状态步骤操作描述期望结果11、在编辑备忘录界面,选中“开1、显示为2017/01/01始时间_日期”项2、日期显示为1970/01/012、输入1970/01/013、日期显示不正常3、输入当天日期4、日期显示为2026/06/154、输入2026/06/1521、在编辑备忘录界面,选中“开1、显示为2016/01/01始时间_日期”项2、警告提示,显示为1979/01/012、输入1969/00/003、警告提示,显示为2016/06/053、输入2016/06/174、警告提示,显示为2035/16/164、输入2036/16/1731、在备注编辑界面1、进入选项列表界面2、按键“选项”2、进入常用短语列表界面,内容3、选中“常用短语”,按OK键“确显示正常定”3、返回编辑界面,显示常用短语内容41、新增一个备忘1、可以新增2、方式设置为每月2、编辑正常3、保存完成后3、时间到响铃,按OK键“确定”后,每个月的1号备忘录响起第7章小结通过本次的实训,我感受颇多,尽管平时上课也认真听了老师的讲课,但是一开始面对这个实训题目时,除了设计主界面,

温馨提示

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

评论

0/150

提交评论