收藏 分销(赏)

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

上传人:精**** 文档编号:2881064 上传时间:2024-06-07 格式:DOC 页数:38 大小:3.77MB 下载积分:12 金币
下载 相关 举报
Android日程标准管理专业系统设计开发.doc_第1页
第1页 / 共38页
Android日程标准管理专业系统设计开发.doc_第2页
第2页 / 共38页


点击查看更多>>
资源描述
智能终端应用系统开发实训 ——Android日程管理系统设计与开发 (/12/3—/01/3) 项目名称 Android日程管理系统设计与开发 院 系 计算机与软件学院 班 级 移设1213 组 别 第五组 学 号 、09、23、48、50、52 学生姓名 顾飞黄锦烽张国浩 张慧敏张燕云朱冰雪 指引教师 张以利 目录 第1章 绪论 5 1.1日程管理来源 5 1.2日程管理特点 5 1.3任务分派 5 第2章 系统开发环境及技术 6 2.1系统开发环境 6 2.1.1硬件环境 6 2.1.2软件支持 6 2.2系统开发技术 6 2.2.1 java 简介 6 2.2.2 eclipse简介 7 2.2.3 SQLite简介 8 第3章 日程管理设计与分析 9 3.1 顾客需求 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 应用分享模块 29 6.10 应用推荐模块 29 6.11 关于咱们界面 30 6.12 设立模块 30 第7章 应用测试 33 小结 34 参照文献 38 第1章 绪论 1.1  日程管理来源 在没有手机功能齐全时代,咱们日程安排只能通过手写记录,经常会由于没有及时翻阅记录而错过了重要日程,随着手机技术飞速发展,手机应用迅速推广,手机变化了人们生活,工作方式。日程管理就是将每天工作和事务安排在日期中,并做一种有效记录,以便管理日程工作和事务,达到工作备份目。同步也具备对寻常工作进行指引、监督作用。 1.2 日程管理特点 1:绿色免费,程序轻便小巧,只占用几M内存! 2:非常灵活日期提示设立 3:全年月日周周期定期循环提示 4:绝不错过未开机状况下提示 5:完善日程查询功能 6:功能完善,简朴易用 1.3 任务分派 表1.1 任务分派表 可以清晰看到每个人在项目开发过程中所承担任务 顾飞 任务分派 已经做好功能归类 项目设立,编写文档 黄锦烽 设立告知栏常驻 语音辨认 张国浩 欢迎界面 图片资源准备 张慧敏 数据库表设计 设立界面布局 张燕云 图标设计 主界面 引导界面图片设计 朱冰雪 时间日期选取器 记事本功能,编写文档 第2章 系统开发环境及技术 2.1 系统开发环境 2.1.1 硬件环境 解决器PentiumⅡ以上; 内存容量1G以上; 外存容量50G以上; 2.1.2软件支持 操作系统:windows 7 编程语言:JAVA 数据库: SQLite 开发工具: 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中三个最吸引人地方: 一是它创新性图形API,即SWT/JFace,在此之前,我曾经用过Java AWT/SWING来开发Windows应用程序,AWT/SWING其界面客观地讲不够美观,并且界面响应速度比较慢;而SWT/JFace则大大改进了Java在这方面能力。二是它插件机制。三是运用它插件机制开发众多功能强大插件。 Eclipse平台体系构造: Eclipse 平台是一种具备一组强大服务框架,这些服务支持插件,例如Java开发环境插件(JDT)、插件开发环境(PDE)和其她第三方插件(New tool)。它由几种重要某些构成:平台运营库、工作区、工作台、团队支持和协助。 Eclipse平台体系构造: 平台运营库是内核,它在启动时检查已安装了哪些插件,并创立关于它们注册表信息。为减少启动时间和资源使用,它在实际需要任何插件时才加载该插件。除了内核外,其她每样东西都是作为插件来实现。 工作区是负责管理顾客资源插件。这涉及顾客创立项目、那些项目中文献,以及文献变更和其她资源。工作区还负责告知其她插件关于资源变更信息,例如文献创立、删除或更改。 工作台为 Eclipse 提供顾客界面。它是使用原则窗口工具包(SWT)和一种更高档API(JFace)来构建;SWT 是 Java Swing/AWT GUI API 非原则代替者,JFace则建立在 SWT 基本上,提供顾客界面组件。SWT 已被证明是 Eclipse 最具争议某些。SWT 比 Swing 或 SWT 更紧密地映射究竟层操作系统本机图形功能,这不但使得 SWT 更迅速,并且使得 Java 程序具备更像本机应用程序外观和感觉。使用这个新 GUI API 也许会限制 Eclipse 工作台可移植性,但是针对大多数流行操作系统 SWT 移植版本已经可用。Eclipse 对 SWT 使用只会影响 Eclipse 自身可移植性——使用 Eclipse 构建任何Java 应用程序都不会受到影响,除非它们使用 SWT 而不是使用 Swing/AWT。 团队支持组件负责提供版本控制和配备管理支持。它依照需要添加视图,以容许顾客与所使用任何版本控制系统(如果有话)交互。大多数插件都不需要与团队支持组件交互,除非它们提供版本控制服务。 2.2.3 Sqlite简介 SQLite,是一款轻型数据库,是遵守ACID关联式数据库管理系统,它设计目的是嵌入式,并且当前已经在诸多嵌入式产品中使用了它,它占用资源非常低,在嵌入式设备中,也许只需要几百K内存就够了。它可以支持Windows/Linux/Unix等等主流操作系统,同步可以跟诸多程序语言相结合,例如 Tcl、C#、PHP、Java等,尚有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界知名数据库管理系统来讲,它解决速度比她们都快。SQLite第一种Alpha版本诞生于5月。 至今已有13个年头,SQLite也迎来了一种版本 SQLite 已经发布。 SQLite是遵守ACID关系型数据库管理系统,它包括在一种相对小C库中。它是D.RichardHipp建立公有领域项目。 不像常用客户-服务器范例,SQLite引擎不是个程序与之通信独立进程,而是连接到程序中成为它一种重要某些。因此重要通信合同是在编程语言内直接API调用。这在消耗总量、延迟时间和整体简朴性上有积极作用。整个数据库(定义、表、索引和数据自身)都在宿主主机上存储在一种单一文献中。它简朴设计是通过在开始一种事务时候锁定整个数据文献而完毕。 第3章 日程管理设计与分析 3.1 顾客需求 (1)功能需求:本系统完毕对自己日程进行记录,每天日程安排以及查看修改工作。 (2)权限需求:顾客管理员拥有最高权限,可以对系统中所有数据进行查看、 添加、修改和删除等操作;普通顾客只可以对自己进程进行查看、添加、修改和删除等操作。 3.2 功能需求 (1)顾客登录、顾客注册:顾客通过登录方式进行口令校验安全进入在线日程管理系统:顾客注册是顾客为进入该系统时将个人信息提交到数据库中。 (2)日程管理:其中使用ListView控件,对某一天或某段时间日程进程查看,和对某个日程地点、开始时间、重要性及联系电话进行修改,更新等操作。 3.3 日程管理设计难易点分析 数据库操作(增删改查) 界面整体设计:找不到适合框架,自己又不会写 调试程序时候经常性遇到异常 3.4 日程管理总体框架 日程管理APP开发流程包括 应用定位、项目规划、UI设计数据库设计,功能类实现以及工具类附加 图3.1 总体框架图 第4章 概要设计 4.1系统总体功能设计 4.1.1系统设计原则 日程管理APP重要分为两大块功能: 日程记录功能:日程添加 闹钟提示 个人中心:可以进行注册 登录 并且可以对自己信息进行修改 系统设立:设立主题 告知栏启动 清除缓存等功能 应用分享:依照第三方提供share分享服务 可以将APP分享到别平台 4.1.2系统机构功能图 日程管理概要设计包括四大模块:日程管理,个人中心,系统设立,应用分享 图 4.1 系统功能图 4.2 数据库设计 4.2.1 分类报表 本次实训采用了一张数据库两张表(分别是日程表和顾客表) 4.2.2 数据库表 数据库采用了两张数据库表 分别是日程管理表(Remind表)和顾客信息表(Usertab表) Remind表 字段 数据类型 备注 title varchar 标题 remindDate varchar 设立闹钟日期 remindTime varchar 设立闹钟时间 serviceflag integer 闹钟服务开关 _id integer 日程id remindCounts integer 闹钟计数 note varchar 正文 图表 4.2 Remind表数据表内容 Usertab表 字段 数据类型 备注 id int 顾客id username varchar 顾客名 password varchar 密码 nickname varchar 昵称 regist_time varchar 注册时间 图表 4.3 Usertab表数据表内容 第5章 APP界面设计 5.1 APP应用图标设计 图标设计含义:一周有7天,咱们要筹划着做好每一天事情,因此APP名字为 7DayToDo 绘制工具:Ps 绘制办法:钢笔工具切片图层,填充色块而成 图5.1 应用图标 5.2 界面元素 图标设计伪扁平 蓝色+灰色 朴素大方 设计比较简洁,易于查看 第6章 详细设计与实现 6.1程序引导加载页面 每次进入应用时会显示一种程序加载页面 图6.1 程序引导加载图 重要代码(设立线程休眠后进行跳转) final Intent intent = new Intent(this,GuideActivity.class); // 如果之前启动过这个Activity,并还没有被destroy话,而是无论与否存在,都重新启动新activity intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 创立一种新线程来显示欢迎动画,指定期间后结束,跳转至指定界面 new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(3000);// 用线程暂停3秒来模仿做了一种耗时3秒检测操作 SharedPreferences 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)); } // 获取应用上下文,生命周期是整个应用,应用结束才会结束 // getApplicationContext().startActivity(intent);// 跳转 finish();// 结束本欢迎画面Activity Editor editor = preferences.edit(); editor.putBoolean("isFirstUse",false); mit(); } catch (InterruptedException e) { e.printStackTrace(); } }).start(); 6.2 第一次进入时欢迎界面 第一次使用应用所看到欢迎漫画 图6.2 欢迎界面图 重要代码(创立一种引导图片切换适配器来管理几种view) private void initView() { 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); views = new ArrayList<View>(); 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(vpAdapter); 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(),"该顾客名不存在", Toast.LENGTH_LONG).show(); } else { cursor.moveToFirst(); String password = cursor.getString(2); if (password.equals(passString)) { SharedPreferences userkey;//顾客名存储 userkey=getSharedPreferences("userkey",0);//打开Preferences,名称为userkey,如果存在则打开它,否则创立新Preferences SharedPreferences.Editor editor = userkey.edit();//让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="select * 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 + "','" + nicknameString + "','" + time + "')"; db.insert(sql); cursor.close(); 6.4程序主界面模块 运用SlidingMenu+ViewPager+fragment开源框架所构成应用主界面框架 图6.4 程序主界面模块图 重要代码(SlidingMenu+ViewPager+fragment开源框架) FragmentTransaction fragmentTransaction = getFragmentManager() .beginTransaction(); MenuFragment menuFragment = new MenuFragment(); fragmentTransaction.replace(R.id.menu,menuFragment);// 加载滑动设立布局 ScheduleFragment sf = new ScheduleFragment();// 新建一种日程管理Fragment,并在里面创立一种view title.setText("近期日程"); fragmentTransaction.replace(R.id.contnet,sf);// 所创立新Frgment布局替代容器布局 fragmentTmit(); SlidingMenu sm = getSlidingMenu(); sm.setShadowWidth(50); sm.setShadowDrawable(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 listener findPreference("a").setOnPreferenceClickListener(this); findPreference("b").setOnPreferenceClickListener(this); findPreference("c").setOnPreferenceClickListener(this); findPreference("d").setOnPreferenceClickListener(this); findPreference("e").setOnPreferenceClickListener(this); findPreference("f").setOnPreferenceClickListener(this); findPreference("g").setOnPreferenceClickListener(this); public boolean onPreferenceClick(Preference preference) { } 6.6添加日程界面模块 几种控件构成构成布局,设立线程完毕闹钟响应功能 图6.6 添加日程图 重要代码(定期线程启动) new Thread(new Runnable() { @Override public void run() { sql = "insert into remind (Title,Note,RemindTime,RemindTimeSecond,RemindCounts,ServiceFlag) values('" + 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辨别不同pendingintent if (!updateFlag.equals("1")) { 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个人中心模块 每个布局均有一种设立界面,点击进去该Acttivity 图6.7 个人中心图 重要代码(截取头像图片) private void showDialog() { new AlertDialog.Builder(mActivity) .setTitle("设立头像") .setItems(items,new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog,int which) { switch (which) { case 0: Intent intentFromGallery = new Intent(); intentFromGallery.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.putExtra( MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment .getExternalStorageDirectory(), IMAGE_FILE_NAME))); } startActivityForResult(intentFromCapture, CAMERA_REQUEST_CODE); break; } } }) .setNegativeButton("取消",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog,int which) { dialog.dismiss(); } }).show(); } 6.8反馈信息界面 摆放布局实现界面显示 图6.8 反馈信息图 重要代码 <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <EditText android:id="@+id/editText2" android:layout_width="fill_parent" android:layout_height="50dp" android:layout_alignParentLeft="true" android:layout_below="@+id/editText1" android:layout_marginTop="40dp" android:ems="10" android:gravity="top" android:hint="请输入您邮箱" > <requestFocus /> </EditText> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="250dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:hint="请输入您要反馈内容" android:background="@drawable/mm_chat_listitem_normal" android:ems="10" android:gravity="top" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:background="@drawable/btn_style" android:text="提交" android:textColor="@color/tabtextcolor" /> </RelativeLayout> 6.9应用分享模块 暂未开发 6.10应用推荐模块 暂未开发 6.11关于咱们界面 摆放布局实现界面显示 图6.9 关于咱们界面图 重要代码 <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="44dp" android:src="@drawable/ic_launcher" /> <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
展开阅读全文

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


开通VIP      成为共赢上传

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

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服