收藏 分销(赏)

Android日程标准管理专业系统设计开发.doc

上传人:精**** 文档编号:2881064 上传时间:2024-06-07 格式:DOC 页数:38 大小:3.77MB
下载 相关 举报
Android日程标准管理专业系统设计开发.doc_第1页
第1页 / 共38页
Android日程标准管理专业系统设计开发.doc_第2页
第2页 / 共38页
Android日程标准管理专业系统设计开发.doc_第3页
第3页 / 共38页
Android日程标准管理专业系统设计开发.doc_第4页
第4页 / 共38页
Android日程标准管理专业系统设计开发.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、智能终端应用系统开发实训 Android日程管理系统设计与开发(/12/3/01/3)项目名称Android日程管理系统设计与开发院 系计算机与软件学院班 级移设1213组 别第五组学 号、09、23、48、50、52学生姓名顾飞黄锦烽张国浩 张慧敏张燕云朱冰雪指引教师张以利目录第1章 绪论51.1日程管理来源51.2日程管理特点51.3任务分派5第2章 系统开发环境及技术62.1系统开发环境6 2.1.1硬件环境6 2.1.2软件支持62.2系统开发技术6 2.2.1 java 简介6 2.2.2 eclipse简介7 2.2.3 SQLite简介8第3章 日程管理设计与分析9 3.1 顾客

2、需求9 3.2 功能需求9 3.3 日程管理设计难易点分析9 3.4 日程管理设计总体框架10第4章 概要设计 4.1系统总体功能设计11 4.1.1 系统设计原则11 4.1.2 系统构造功能图11 4.2 数据库设计11 4.2.1 分类报表11 4.2.2 数据库表12第5章 APP界面设计13 5.1 APP应用图标设计13 5.2 界面元素13第6章 详细设计与实现13 6.1 程序引导加载界面13 6.2 欢迎界面15 6.3注册登录模块16 6.4程序主界面模块18 6.5 滑动菜单模块19 6.6添加日程模块23 6.7 个人中心模块26 6.8 反馈信息界面29 6.9 应用

3、分享模块29 6.10 应用推荐模块29 6.11 关于咱们界面30 6.12 设立模块30 第7章 应用测试33小结34参照文献38第1章 绪论1.1 日程管理来源在没有手机功能齐全时代,咱们日程安排只能通过手写记录,经常会由于没有及时翻阅记录而错过了重要日程,随着手机技术飞速发展,手机应用迅速推广,手机变化了人们生活,工作方式。日程管理就是将每天工作和事务安排在日期中,并做一种有效记录,以便管理日程工作和事务,达到工作备份目。同步也具备对寻常工作进行指引、监督作用。 1.2 日程管理特点 1:绿色免费,程序轻便小巧,只占用几M内存! 2:非常灵活日期提示设立 3:全年月日周周期定期循环提示

4、 4:绝不错过未开机状况下提示 5:完善日程查询功能 6:功能完善,简朴易用 1.3 任务分派表1.1 任务分派表 可以清晰看到每个人在项目开发过程中所承担任务顾飞任务分派 已经做好功能归类 项目设立,编写文档 黄锦烽设立告知栏常驻 语音辨认 张国浩欢迎界面 图片资源准备张慧敏数据库表设计 设立界面布局张燕云图标设计 主界面 引导界面图片设计朱冰雪时间日期选取器 记事本功能,编写文档第2章 系统开发环境及技术2.1 系统开发环境 2.1.1 硬件环境解决器Pentium以上;内存容量1G以上;外存容量50G以上; 2.1.2软件支持操作系统:windows 7编程语言:JAVA数据库: SQL

5、ite开发工具: eclipse 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 eclipse简介Eclipse

6、中三个最吸引人地方:一是它创新性图形API,即SWT/JFace,在此之前,我曾经用过Java AWT/SWING来开发Windows应用程序,AWT/SWING其界面客观地讲不够美观,并且界面响应速度比较慢;而SWT/JFace则大大改进了Java在这方面能力。二是它插件机制。三是运用它插件机制开发众多功能强大插件。Eclipse平台体系构造:Eclipse 平台是一种具备一组强大服务框架,这些服务支持插件,例如Java开发环境插件(JDT)、插件开发环境(PDE)和其她第三方插件(New tool)。它由几种重要某些构成:平台运营库、工作区、工作台、团队支持和协助。Eclipse平台体系构

7、造:平台运营库是内核,它在启动时检查已安装了哪些插件,并创立关于它们注册表信息。为减少启动时间和资源使用,它在实际需要任何插件时才加载该插件。除了内核外,其她每样东西都是作为插件来实现。工作区是负责管理顾客资源插件。这涉及顾客创立项目、那些项目中文献,以及文献变更和其她资源。工作区还负责告知其她插件关于资源变更信息,例如文献创立、删除或更改。工作台为 Eclipse 提供顾客界面。它是使用原则窗口工具包(SWT)和一种更高档API(JFace)来构建;SWT 是 Java Swing/AWT GUI API 非原则代替者,JFace则建立在 SWT 基本上,提供顾客界面组件。SWT 已被证明是

8、 Eclipse 最具争议某些。SWT 比 Swing 或 SWT 更紧密地映射究竟层操作系统本机图形功能,这不但使得 SWT 更迅速,并且使得 Java 程序具备更像本机应用程序外观和感觉。使用这个新 GUI API 也许会限制 Eclipse 工作台可移植性,但是针对大多数流行操作系统 SWT 移植版本已经可用。Eclipse 对 SWT 使用只会影响 Eclipse 自身可移植性使用 Eclipse 构建任何Java 应用程序都不会受到影响,除非它们使用 SWT 而不是使用 Swing/AWT。团队支持组件负责提供版本控制和配备管理支持。它依照需要添加视图,以容许顾客与所使用任何版本控制

9、系统(如果有话)交互。大多数插件都不需要与团队支持组件交互,除非它们提供版本控制服务。 2.2.3 Sqlite简介SQLite,是一款轻型数据库,是遵守ACID关联式数据库管理系统,它设计目的是嵌入式,并且当前已经在诸多嵌入式产品中使用了它,它占用资源非常低,在嵌入式设备中,也许只需要几百K内存就够了。它可以支持Windows/Linux/Unix等等主流操作系统,同步可以跟诸多程序语言相结合,例如 Tcl、C#、PHP、Java等,尚有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界知名数据库管理系统来讲,它解决速度比她们都快。SQLite第一种Alpha版本诞生于5月

10、。 至今已有13个年头,SQLite也迎来了一种版本 SQLite 已经发布。SQLite是遵守ACID关系型数据库管理系统,它包括在一种相对小C库中。它是D.RichardHipp建立公有领域项目。不像常用客户-服务器范例,SQLite引擎不是个程序与之通信独立进程,而是连接到程序中成为它一种重要某些。因此重要通信合同是在编程语言内直接API调用。这在消耗总量、延迟时间和整体简朴性上有积极作用。整个数据库(定义、表、索引和数据自身)都在宿主主机上存储在一种单一文献中。它简朴设计是通过在开始一种事务时候锁定整个数据文献而完毕。 第3章 日程管理设计与分析3.1 顾客需求(1)功能需求:本系统完

11、毕对自己日程进行记录,每天日程安排以及查看修改工作。 (2)权限需求:顾客管理员拥有最高权限,可以对系统中所有数据进行查看、添加、修改和删除等操作;普通顾客只可以对自己进程进行查看、添加、修改和删除等操作。 3.2 功能需求(1)顾客登录、顾客注册:顾客通过登录方式进行口令校验安全进入在线日程管理系统:顾客注册是顾客为进入该系统时将个人信息提交到数据库中。 (2)日程管理:其中使用ListView控件,对某一天或某段时间日程进程查看,和对某个日程地点、开始时间、重要性及联系电话进行修改,更新等操作。3.3 日程管理设计难易点分析数据库操作(增删改查)界面整体设计:找不到适合框架,自己又不会写调

12、试程序时候经常性遇到异常3.4 日程管理总体框架日程管理APP开发流程包括 应用定位、项目规划、UI设计数据库设计,功能类实现以及工具类附加 图3.1 总体框架图 第4章 概要设计4.1系统总体功能设计 4.1.1系统设计原则日程管理APP重要分为两大块功能:日程记录功能:日程添加 闹钟提示个人中心:可以进行注册 登录 并且可以对自己信息进行修改系统设立:设立主题 告知栏启动 清除缓存等功能应用分享:依照第三方提供share分享服务 可以将APP分享到别平台 4.1.2系统机构功能图日程管理概要设计包括四大模块:日程管理,个人中心,系统设立,应用分享 图 4.1 系统功能图4.2 数据库设计

13、4.2.1 分类报表本次实训采用了一张数据库两张表(分别是日程表和顾客表)4.2.2 数据库表数据库采用了两张数据库表 分别是日程管理表(Remind表)和顾客信息表(Usertab表)Remind表 字段 数据类型备注titlevarchar标题remindDatevarchar设立闹钟日期remindTimevarchar设立闹钟时间serviceflaginteger闹钟服务开关_idinteger日程idremindCountsinteger闹钟计数notevarchar正文 图表 4.2 Remind表数据表内容Usertab表 字段数据类型备注idint顾客idusernameva

14、rchar顾客名passwordvarchar密码nicknamevarchar昵称regist_timevarchar注册时间 图表 4.3 Usertab表数据表内容第5章 APP界面设计5.1 APP应用图标设计图标设计含义:一周有7天,咱们要筹划着做好每一天事情,因此APP名字为 7DayToDo绘制工具:Ps 绘制办法:钢笔工具切片图层,填充色块而成 图5.1 应用图标5.2 界面元素图标设计伪扁平蓝色+灰色 朴素大方设计比较简洁,易于查看 第6章 详细设计与实现6.1程序引导加载页面每次进入应用时会显示一种程序加载页面图6.1 程序引导加载图重要代码(设立线程休眠后进行跳转)fin

15、al Intent intent = new Intent(this,GuideActivity.class);/ 如果之前启动过这个Activity,并还没有被destroy话,而是无论与否存在,都重新启动新activityintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);/ 创立一种新线程来显示欢迎动画,指定期间后结束,跳转至指定界面new Thread(new Runnable() Overridepublic void run() try Thread.sleep(3000);/ 用线程暂停3秒来模仿做了一种耗时3秒检测操作SharedPre

16、ferences preferences = getSharedPreferences(isFirstUse,MODE_WORLD_READABLE); isFirstUse = preferences.getBoolean(isFirstUse,true); if (isFirstUse) startActivity(new Intent(Welcome.this,GuideActivity.class); else startActivity(new Intent(Welcome.this,MainActivity.class);/ 获取应用上下文,生命周期是整个应用,应用结束才会结束/g

17、etApplicationContext().startActivity(intent);/ 跳转finish();/ 结束本欢迎画面ActivityEditor editor = preferences.edit(); editor.putBoolean(isFirstUse,false); mit(); catch (InterruptedException e) e.printStackTrace();).start();6.2 第一次进入时欢迎界面第一次使用应用所看到欢迎漫画 图6.2 欢迎界面图重要代码(创立一种引导图片切换适配器来管理几种view)private void init

18、View() LayoutInflater mLi = LayoutInflater.from(this);view1 = mLi.inflate(R.layout.gudie_view01,null);view2 = mLi.inflate(R.layout.gudie_view02,null);view3 = mLi.inflate(R.layout.guide_view03,null);view4 = mLi.inflate(R.layout.guide_view04,null);viewPager = (ViewPager) findViewById(R.id.viewpager);v

19、iews = new ArrayList();vpAdapter = new ViewPagerAdapter(views);regist = (Button) view4.findViewById(R.id.regist);login = (Button) view4.findViewById(R.id.login);startBt = (Button) view4.findViewById(R.id.startBtn);private void initDate() viewPager.setOnPageChangeListener(this);viewPager.setAdapter(v

20、pAdapter);views.add(view1);views.add(view2);views.add(view3);views.add(view4);6.3注册登录模块注册登录所展示UI界面以及数据库写入实现办法图6.3 注册登录图重要代码(用db_help来管理数据库增删改查 只需给它传一种sql语句便可执行)sql=select * from usertab where username=+ nameString + ;cursor = db.select(sql);if (cursor.getCount() = 0) Toast.makeText(getBaseContext(),

21、该顾客名不存在,Toast.LENGTH_LONG).show(); else cursor.moveToFirst();String password = cursor.getString(2);if (password.equals(passString) SharedPreferences userkey;/顾客名存储userkey=getSharedPreferences(userkey,0);/打开Preferences,名称为userkey,如果存在则打开它,否则创立新PreferencesSharedPreferences.Editor editor = userkey.edit

22、();/让userkey处在编辑状态editor.putString(name,nameString);/存储数据mit();/完毕提交Toast.makeText(getBaseContext(),成功,Toast.LENGTH_LONG).show();Intent intent = new Intent(LoginActivity.this,MainActivity.class);startActivity(intent);finish(); else Toast.makeText(getBaseContext(),密码错误,Toast.LENGTH_LONG).show();sql=s

23、elect * from usertab where username=+ usernameString + ;cursor = db.select(sql);if (cursor.getCount() 0) Toast.makeText(getBaseContext(),该顾客名已存在,Toast.LENGTH_LONG).show(); else sql=insert into usertab(username,password,nickname,regist_time) values(+ usernameString+ ,+ passwordString+ ,+ nicknameStri

24、ng + , + time + );db.insert(sql);cursor.close();6.4程序主界面模块运用SlidingMenu+ViewPager+fragment开源框架所构成应用主界面框架图6.4 程序主界面模块图重要代码(SlidingMenu+ViewPager+fragment开源框架)FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();MenuFragment menuFragment = new MenuFragment();fragmentTransa

25、ction.replace(R.id.menu,menuFragment);/ 加载滑动设立布局ScheduleFragment sf = new ScheduleFragment();/ 新建一种日程管理Fragment,并在里面创立一种viewtitle.setText(近期日程);fragmentTransaction.replace(R.id.contnet,sf);/ 所创立新Frgment布局替代容器布局fragmentTmit();SlidingMenu sm = getSlidingMenu();sm.setShadowWidth(50);sm.setShadowDrawabl

26、e(R.drawable.shadow);sm.setBehindOffset(60);sm.setBehindWidth(300);/ 设立SlidingMenu菜单宽度sm.setFadeDegree(0.35f);sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);6.5滑动菜单运用Preferences自定义布局,来设计滑动菜单里显示内容图6.5 滑动菜单图重要代码addPreferencesFromResource(R.xml.menu);/ add listenerfindPreference(a).setOnPrefere

27、nceClickListener(this);findPreference(b).setOnPreferenceClickListener(this);findPreference(c).setOnPreferenceClickListener(this);findPreference(d).setOnPreferenceClickListener(this);findPreference(e).setOnPreferenceClickListener(this);findPreference(f).setOnPreferenceClickListener(this);findPreferen

28、ce(g).setOnPreferenceClickListener(this);public boolean onPreferenceClick(Preference preference) 6.6添加日程界面模块几种控件构成构成布局,设立线程完毕闹钟响应功能图6.6 添加日程图重要代码(定期线程启动)new Thread(new Runnable() Overridepublic void run() sql = insert into remind (Title,Note,RemindTime,RemindTimeSecond,RemindCounts,ServiceFlag) valu

29、es(+ workRemind.this.etTitle.getText().toString()+ ,+ workRemind.this.etNote.getText().toString()+ ,+ workRemind.this.etTime.getText().toString()+ ,+ workRemind.this.etRemindTimeSecond.getText().toString()+ ,+ counts + , + flags + );helper.insert(sql);/ 通过id辨别不同pendingintentif (!updateFlag.equals(1)

30、 String sql = select * from remind;myDBhelper myhelper = new myDBhelper(workRemind.this);Cursor cursor = myhelper.select(sql);if (cursor.getCount() 0) cursor.moveToLast();Log.i(*lastid,cursor.getInt(cursor.getColumnIndex(_id)+ );pendingid = cursor.getInt(cursor.getColumnIndex(_id);6.7个人中心模块每个布局均有一种设

31、立界面,点击进去该Acttivity图6.7 个人中心图重要代码(截取头像图片)private void showDialog() new AlertDialog.Builder(mActivity).setTitle(设立头像).setItems(items,new DialogInterface.OnClickListener() Overridepublic void onClick(DialogInterface dialog,int which) switch (which) case 0:Intent intentFromGallery = new Intent();intentF

32、romGallery.setType(image/*);/ 设立文献类型intentFromGallery.setAction(Intent.ACTION_GET_CONTENT);startActivityForResult(intentFromGallery,IMAGE_REQUEST_CODE);break;case 1:Intent intentFromCapture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);/ 判断存储卡与否可以用,可用进行存储if (Tools.hasSdcard() intentFromCapture.putEx

33、tra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(Environment.getExternalStorageDirectory(),IMAGE_FILE_NAME);startActivityForResult(intentFromCapture,CAMERA_REQUEST_CODE);break;).setNegativeButton(取消,new DialogInterface.OnClickListener() Overridepublic void onClick(DialogInterface dialog,int which)

34、dialog.dismiss();).show();6.8反馈信息界面摆放布局实现界面显示图6.8 反馈信息图重要代码 6.9应用分享模块暂未开发6.10应用推荐模块暂未开发6.11关于咱们界面摆放布局实现界面显示图6.9 关于咱们界面图重要代码 TextView android:id=+id/textView1 android:layout_width=wrap_content android:layout_height=wrap_content android:layout_alignParentLeft=true android:layout_below=+id/imageView1 android:layout_marginLeft=46dp android:layout_marginTop=17dp android:text=7DayToDo andr

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服