`
院 系 控制与计算机工程学院计算机系
专业班级 软件工程1001班
学生姓名
指导教师
毕 业 设 计(论文)
题 目 基于Android的日历系统
的设计与实现
二○一四年六月
I
华北电力大学本科毕业设计(论文)
基于Android的日历系统的设计与实现
摘要
Android系统凭借其良好的用户体验、低廉的成本及高开放性产生了巨大的应用量和广阔的应用面。如今,基于Android系统的应用极为丰富,从输入法到影音播放器,从系统工具到网页浏览器,从社交网络客户端到学习办公助手工具,以及形式繁多的游戏应用,都有力体现了Android平台的强大的适应性和发展潜力。
而日历应用作为智能终端的出厂必备控件,更是Android系统中不可或缺的一部分。而应用开发商力求为客户带来更好的用户体验,将日历这一原本普通的生活用品打造成植于移动终端中的生活助手,且界面风格迥异,功能也是趋于多样化和一体化。
本文通过论述对基于Android的日历系统的开发的全过程,研究了Android系统的开发环境、核心构架、主要组件,展示了开发移动应用的一般过程,并对Android平台的背景、现状和发展前景进行了讨论。本次项目所实现的日历系统,除了最基本的日期信息查询功能外,还具备了公历转换农历功能、指定日期跳转功能、当天日期定位功能和日程管理功能。通过转换功能,用户可将希望查询的公历日期转为农历日期;如果用户想知道某一天或某个月有什么节日,可以使用跳转功能;在主界面没有显示当月日期时,用户可通过定位功能回到当天日期;而日程管理功能则为用户提供了类似备忘录的平台。
关键词;Android;移动终端;手机日历;移动应用开发
I
华北电力大学本科毕业设计(论文)
THE DESIGN AND IMPLEMENTATION OF
CALENDER BASED ON ANDROID
SYSTEM
Abstract
Android system has been achieved a great number of users because of its excellent user experience,low cost and high openness.Nowadays,there are plenty of smartphone applications based on android system such as input methods,audio/video players,system tools,web browsers,social networks,school/office softwares,games,etc,which show great adaptation and development potential of Android.
Calender has become a necessary widget in intelligent terminals and also a quite important part of Android system.App developers strive to improve the user experience so that they change the calender,a commonplace articles for daily use,into a kind of assistant for users,with different kinds of interface.And its function becomes more and more diversified and incorporate.
This article is about the whole development process of calender based on Android system, the development environment,the core framework and the main module of Android.Also,we will discuss the background,the current situation and the development potential.The Calendar we enforce in this project contains functions not only the most basic date information inquire,but also other functions such as gregorian-lunar transformer,current date locator,events manager.Users are able to transform gregorian dates they want to lunar dates by using gregorian-lunar transformer;If users want to check out festivals of dates,the skip function will help;Users could skip back to current date with the help of date locator when the main interface doesn ‘t show;And the events manager provides a kind of platform like memorandum.
Keywords: Android; The mobile terminal; Smart mobile Calender;Mobile application
development
II
华北电力大学本科毕业设计(论文)
目 录
摘要 ....................................................................................................................................................................... I Abstract ................................................................................................................................................................ II 目 录 ............................................................................................................................................................... 3 1绪论 .................................................................................................................................................................... 1
1.1课题背景 ................................................................................................................................................ 1 1.2 发展现状 ............................................................................................................................................... 1
1.2.1 Android SDK发布里程碑 ....................................................................................................... 1 1.2.2 Android市场发展轨迹 ............................................................................................................. 3 1.3 Android系统的发展前景 ..................................................................................................................... 3 1.4 课题研究意义 ....................................................................................................................................... 4 1.5 本文主要结构 ....................................................................................................................................... 5 2 Android系统核心技术概述 ............................................................................................................................. 6
2.1 Android的体系结构 ............................................................................................................................. 6 2.2 Android系统组件 ................................................................................................................................. 8 2.3 Android主要控件 ................................................................................................................................. 9 2.4 本章小结 ............................................................................................................................................. 11 3 基于Android的日历系统 .............................................................................................................................. 12
3.1需求分析 .............................................................................................................................................. 12
3.1.1 系统目标 ................................................................................................................................. 12 3.1.2 功能需求描述 ......................................................................................................................... 12 3.1.3 界面需求分析 ......................................................................................................................... 12 3.1.4 运行需求分析 ......................................................................................................................... 12 3.2 系统概要设计 ..................................................................................................................................... 12
3.2.1 系统功能结构 ......................................................................................................................... 12 3.2.2 系统界面布局 ......................................................................................................................... 13 3.3 主要算法与核心代码实现 ................................................................................................................. 14
3.3.1 主界面 ..................................................................................................................................... 14 3.3.2 菜单项目操作 ......................................................................................................................... 16 3.3.3 日程管理功能实现 ................................................................................................................. 18 3.3.4 农历、闰年、节日算法 ......................................................................................................... 19 3.4 软件测试 ............................................................................................................................................. 20
3.4.1测试平台 .................................................................................................................................. 20 3.4.2 软件安装 ................................................................................................................................. 20 3.4.3 程序运行情况 ......................................................................................................................... 21 3.5 本章小结 ............................................................................................................................................. 23 4 总结 ................................................................................................................................................................. 24
4.1 论文工作总结 ..................................................................................................................................... 24 4.2 问题与展望 ......................................................................................................................................... 24 参考文献 ............................................................................................................................................................. 26 致谢 ..................................................................................................................................................................... 27
1
华北电力大学本科毕业设计(论文)
1绪论
1.1课题背景
Android一词最早出现在法国作家威利耶德利尔·亚当的科幻小说中,作者将外表像人的机器称为“Android”[1]。它由四部分构成,分别如下;
(1)生命系统(平衡、步行、发声等)
(2)造型解质(关节能自由活动的金属覆盖体) (3)人造肌肉(有肌肉、静脉等人体特征) (4)人造皮肤(含有肤色、毛发等)
Andy Rubin创立了两个手机操作系统公司,分别是Danger和Android。Danger在2008年以5亿美元卖给Microsoft;Android与2005年卖给了Google。因此,Android系统一开始并不是由Google研发出来的。
2007年11月5日,Google正式发行了这款名为Android基于Linux平台的开源移动操作系统平台,并且在当天与34家手机制造商、软件开发商、电信运营商以及芯片制造商组成开放手持设备联盟(Open Handset Alliance)。该联盟将共同研发Android系统及其应用软件并生产Android系统的智能手机。而后,Google发布了第一个面向开发者的软件开发包(SDK)Android 1.0 beta,Android平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件平台[2]。
至此,Android进入世人的视野,也开始了一场移动互联网的伟大。
1.2 发展现状
作为当前最热门的移动应用操作系统之一,Android早在2012年就已经占据欧美市场超过50%的市场份额。而在国内,市场上采用Android系统的智能终端也在不断增多。
1.2.1 Android SDK发布里程碑
Android1.1
2008 年9月发布的Android第一版 Android1.5 Cupcake(纸杯蛋糕)
2009年4月30日,官方1.5版本(Cupcake:纸杯蛋糕)的Android发布。主要的更新如下;拍摄/播放影片,并支持上传到Youtube;支持立体声蓝牙耳机,同时改善自动配对性能;最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索性能大大提高;提供屏幕虚拟键盘;主屏幕增加音乐播放器和相框widgets;应用程序自动随着手机旋转;短信、Gmail、日历,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件;相机启动速度加快,拍摄图片可以直接上传到Picasa;来电照片显示;支持中文。
Android1.6 Donut(甜甜圈)
2009年9月15日,1.6(Donut;甜甜圈)版本软件开发工具包发布。主要的更新如下;重新设计的Android;Market手势;支持支持CDMA网络;文字转语音系统
1
华北电力大学本科毕业设计(论文)
(Text-to-Speech);快速搜索框;全新的拍照接口;查看应用程序耗电;支持虚拟私人网络(VPN);支持更多屏幕分辨率,支持OpenCore2媒体引擎;新增面向视觉或听觉困难人群的易用性插件。
Android2.0/2.0.1/2.1 Eclair(松饼)
2009年10月26日,2.0(Eclair 松饼)版本软件开发工具包发布。主要的更新如下;优化硬件速度;\"Car;Home\"程序;支持更多的屏幕分辨率;改良的用户界面;新的浏览器的用户接口和支持HTML5;新的联系人名单;更好的白色/黑色背景比率;改进Google;Maps;3.1.2;支持Microsoft;Exchange;支持内置相机闪光灯;支持数码变焦;改进的虚拟键盘;支持蓝牙2.1;支持动态桌面的设计。
Android2.2/2.2.1 Froyo(冻酸奶)
2010年5月20日,2.2(Froyo 冻酸奶)版本软件开发工具包发布。整体性能大幅度的提升;3G网络共享功能;Flash的支持;App2sd功能;全新的软件商店;更多的Web应用API接口的开发。
Android2.3 Gingerbread(姜饼)
2011年2月2日, 3.0(Honeycomb 蜂巢)优化针对平板;全新设计的UI增强网页浏览功能;n-app purchases功能
Android3.1 Honeycomb(蜂巢)
2011年5月11日在Google I/O开发者大会宣布发布,Honeycomb 蜂巢(改进3.0BUG) 经过优化的Gmail电子邮箱;全面支持GoogleMaps Android手机系统跟平板系统再次合并从而方便开发者。任务管理器可滚动,支持USB 输入设备(键盘、鼠标等)。支持 Google TV.可以支持XBOX 360无线手柄 widget支持的变化,能更加容易的定制屏幕widget插件。
Android3.2 Honeycomb(蜂巢)
2011年7月13日发布,支持7英寸设备;引入了应用显示缩放功能。 Android4.0 Ice Cream Sandwich(冰激凌三明治)
2011年10月19日 在发布,4.0(Ice Cream Sandwich 冰激凌三明治)版本主要更新;蓝色主题;接近于桌面版的Chrome;Lite浏览器,有离线阅读,同步Chrome书签,新的标签样式等;截图功能;更强大的图片编辑功能;自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序;Gmail加入手势、离线搜索功能,UI更强大。新增流量管理工具,可具体查看每个应用产生的流量。正在运行的程序可以像电脑一样的互相切换;人脸识别功能;系统优化、速度更快;支持虚拟按键,手机可以不再拥有任何按键;专为3D优化的驱动;平板电脑和智能手机通用。
Android 4.1/4.2 Jelly Bean(果冻豆)
2012年6月28日发布。添加了基于时间和位置的语音搜索;Google Now;增加离线语音输入,即不需要联网也能够语音输入;增强通知中心;Google Play增加内容订阅购买功
2
华北电力大学本科毕业设计(论文)
能;新的安卓彩蛋。
Android 4.2;完整的Chrome浏览器。全新的手机风景模式;全新的文件管理器;Android Key Lime Pie精简版;具有开关切换的用户界面;全新的电源管理系统;全新的锁屏界面;全新的时钟界面[3]。
1.2.2 Android市场发展轨迹
苹果公司推出的iPhone开启了智能手机的,并很快获得了消费者的青睐。但Andro id平台正以更快的速度蔓延世界。从第一台Android设备T-Mobile G1于2008年10月22日在美国上市以来,在不到四年的时间里,Android成长为移动操作系统的霸主。截止2012年第二季度占据全球52.6%的市场份额,较7月多了0.4%,与同年5月相比有1.7%的增长。
Android操作系统超过称霸数以十年的诺基亚Symbian OS系统,在目前,使用Android系统的手机厂商主要包括;Sony Ericsson、宏达电子-HTC、三星-Samsung、Motorola与LG。至今,Android已经成为全世界最为欢迎的智能手机平台,且平板电脑也大多应用此系统[4]。
市场表现; (1) 中国市场
Android开始在国内占据手机操作系统竞争的上风。据艾媒咨询发布的《2011年中国Android用户调研报告》数据显示,2011年中国Android智能手机用户使用品牌调查中,国内品牌华为、中兴、酷派占比分别为11.4%、9.8%、9.2%。 (2) 美国市场
2010年8月3日早间消息称,尼尔森公司最新数据显示,Android手机在美国市场的销售量首次超过苹果iPhone,达到27%。 (3) 其他国家
据国外媒体消息称,Kantar WorldPanel ComTech最新数据显示,Android智能手机主宰了欧洲主要市场的销售,在英国、法国、意大利、西班牙及德国等五大国家的整体市场占有率从去年5月的38.8%上升到今年5月的60%。
随着iOS新版本的不断推出,以及Microsoft已经推出的Windows Phone系统不断完善,再加上RIM即将推出的全新操作系统BlackBerry 10做最后一搏,手机智能系统的竞争愈加激烈,但就目前来说,Android手机的统治地位还是无法改变的[5]。
1.3 Android系统的发展前景
就目前而言,智能设备主要是三大玩家、七大公司所引领。三大玩家指Apple、Microsoft和Google;七大公司指的是Amazon、Samsung、Sony Ellison、HTC、联想和华为。就目前看,智能设备上,苹果三星暂时领先,Amazon最有潜力。
智能设备的未来不是由硬件决定的,是由第三方软件和渠道来决定。第三方软件上,苹果领先,谷歌其次,微软第三;渠道上苹果领先,亚马逊其次,微软最次。由于苹果全
3
华北电力大学本科毕业设计(论文)
面控制了操作系统和硬件,导致其他公司大部分只能依靠安卓。类似PC战胜Mac一样,随着iPhone潮流随乔布斯而去,众多公司合力之下,Android占据智能手机主流将是发展趋势[6]。
1.4 课题研究意义
随着科技的发展,智能手机已经开始逐步取代传统PC渗透进入了人们娱乐、生活的各个方面。从2011年开始,我们的生活开始步入移动互联网时代,微博和微信已经占据了大多数人的社交圈。而作为它们的载体——智能手机,时至今日也对我们的生活造成了性的影响。手机从过去单一的通话功能,到今天集通话、短信、摄影、上网、听歌、电子书于一身,不仅极大地满足了人们的通讯需求,也满足了人们的娱乐需求。 手机上网,将信息整合使人们随身携带的手机成了互联网的终端机,手机与电脑相比,具有体积小、便于携带、价格便宜等优点,而且手机上网相比有着移动性的优势,从而能够迅速、及时得满足人们的信息需求。手机信息载体比报纸、广播、电视信息在信息传递上更方便、直接、快速。
而作为智能手机平台中的霸主,Android平台凭借其优势,得到了广阔的普及面。 (1)开放性
在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
(2)不受束缚
在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从2007年iPhone上市后,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。
(3)丰富的硬件
这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。
(4)方便开发
Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情
4
华北电力大学本科毕业设计(论文)
色方面的程序和游戏如何控制正是留给Android难题之一。
(5)Google应用
在互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务[7]。
综上所述,Android系统的发展与成熟时大势所趋,精通基于Android平台上应用软件的开发技术,也是紧随时代发展脚步的当务之急。
1.5 本文主要结构
本篇文章共分为四个章节,从开端到结尾循序渐进地论述了基于Android平台开发应用软件的过程。各个章节涵盖内容如下。
第一章:绪论。向读者展示了Android的由来和历史,列举了从发布至今Android SDK各个版本及其新特性,引用数据说明了Android的现状及前景,讨论了这类课题的研究意义。
第二章:介绍了Android系统的架构,Android的四大组件,以及开发常用的一些控件。
第三章:对日历系统进行需求分析,根据需求设计系统功能,例举其中的核心代码介绍系统是如何实现的,实现后对日历系统进行了测试。
第四章:对整个论文的工作过程进行了总结,讨论了Android的不足,并对其发展趋势进行展望。
5
华北电力大学本科毕业设计(论文)
2 Android系统核心技术概述
2.1 Android的体系结构
在Android操作系统中,将体系结构划分为四层;应用层(Application)、应用框架层(Application Framework)、系统运行库层(Libraries)以及Linux内核层(Linux Kernel)。这四层架构如图2-1所示[8]。
图1-6 Android的体系结构
(1)应用层(Application)
应用层是和用户交互的一个层次,用户可以看得见的一些应用,用户可以操作。这类
6
华北电力大学本科毕业设计(论文)
应用基本都是通过Java语言编写的的能够完成某些功能的应用程序。Android本身提供了桌面(Home),联系人(Contacts),拨打电话(Phone),浏览器(Browsers)等很多基本的应用程序。开发人员可以使用应用框架提供的API编写自己的应用程序,普通开发人员要做的事情就是开应用层的程序提供该广大消费者使用。
(2)应用框架层(Application Framework)
普通开发者可以使用Android基本应用程序使用的系统API,android 应用框架中的各个模块都可以被复用,各种服务也可以被复用,理解了这个机制,开发人员可以更好的更轻松的开发出优秀的android应用。开发过程中常用到的基本框架组件如下;
1)一组View(UI 组件),这些UI组件包括Button(按钮),EidtView(文本框),TextView(标签),List(列表)等等,灵活运用这些组件可以快速方便的创建良好的用户交互界面。
2) Content Providers(内容提供者),听起来有点抽象,通俗的理解Content Provider 就是提供一种服务,通过这种服务应用程序之间可以实现数据的互相访问和共享,比如通讯录的存储就使用了这种服务,其它应用也可以访问通讯录中存储的联系人信息。
3) Resource Manager 顾名思义就是资源管理,android中的资源很多包括图片,用户界面(Layout xml),字体,颜色,UI组件的ID等等都可以称之为资源,这些丰富的资源,都是通过Resource Manager来统一进行管理。
4) Notification Manager(消息通知管理),它在不影响用户正常操作和使用设备的时候在状态栏上提供消息的提示。比如有短信来的时候,android自动会将这个消息提示在状态栏上,用户可以及时的看到。
5) Activity Manager(活动管理),Activity管理着应用程序的生命周期,并且控制着应用的导航,扮演控制器的角色。每个Activity类似于Windows应用中的一个wendow。一般的应用都是通过一个个Activity交互构成的。
6) Window Manager(窗口管理),管理所有启动的窗口。
7) Location Manager(位置管理),用来管理地图服务的相关功能。 8) Telephoney Manager(电话管理),用来管理有关的电话的相关功能。 9) Package Manager(包管理),管理所有的安装在android系统内的应用程序。 (3)系统运行库层(Libraries)
这部分内容开始涉及底层,开发普通的应用不会直接对这个层进行操作。这层中包含了一组类库(Libraries)和运行时(RunTime)。
1)系统C库(libc),一个从BSD集成来的标准C系统函数库(libc)它是专门为基于嵌入式Linux的设备定制的。
2)媒体库(Media Framework),基于PackeVideo OpenCore,该库支持多种常用的音频,视频格式以及回放和录制,同时支持静态图像文件。编码格式包括;MPEG4、H.2,MP3、AAC、AMR、JPG、PNG。(3)Surface Manager 对显示子系统的管理,并且为多个应用提供2D,3D图层的无缝融合。
7
华北电力大学本科毕业设计(论文)
4)WebKit,一个最新的web浏览器引擎,用来支持Andiroid浏览器或者嵌入的web视图。
5)SGL 底层的2D图形引擎。
6)OPENGL|ES,基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速或者使用高度优化的3D软加速。
7)FreeType,位图(bitmap)和适量(vector)字图显示支持。
8)SQLite,一个对所有应用程序可用,功能强大的轻量级关系型数据库引擎。 9)Core Libraries 该核心库提供了Java编程语言核心库的大多数功能。
10)Dalvik VM,android平台的一个虚拟机,它相当于PC中Java的虚拟机JVM。 (4)Linux内核层(Linux Kernel)Android 的核心系统服务依赖于Linux 2.6 内核,操作系统为Android提供的服务包括;
1)安全性(Security)。
2)内存管理(Memory Management) 3)进程管理(Process Management) 4)网络堆栈(Network Stack) 5)驱动程序模型(Driver Model)
对android的整体框架有一定的了解后对与理解android的一些机制和应用开发有很大的帮助,只有了解了android框架才能更好的使用android提供的功能和服务。从而使学习android应用开发少走弯路[9]。
2.2 Android系统组件
一般情况下,有四种组件组成Android应用程序;活动--Activity、广播接收器--Broadcast Intent Receiver、服务--Service和内容提供器--Content Provider。应该重视的是,并非每个Android程序都需要构建该4个组件,确定要应用的组件,应该在AndroidMani-fest.xml中列出,它是XML配置文件,可定义程序中的组件的必要条件及功能。最基本的组件就是活动,每个活动往往是一个单独的屏幕,每个活动均被实现为的类,还由活动基类中继承过来。活动类可以显示通过视图控件构成的用户接口,同时就事件发出响应;广播接收器能够使应用程序就外部事件发出响应,服务在Android中拥有比较长的生命周期;内容提供器是对外提供数据的一个借口, 类似于普通Web运用的Web service借口,根据标准开放出接口,使另外的应用取得数据。 (1) Activity 简介
在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。 (2) Service 简介
8
华北电力大学本科毕业设计(论文)
顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件注册,通过 Broadcast Receiver 顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent (4) ContentProvider简介 Content Provider 用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。 Android 为常用的数据类型(如;音视频、图片和联系方式等)提供了大量的Content Provider。它们被定义在android.provider包下面。通过这样定义好的ContentProvider 我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定ContentProvider共享我们的数据,方便用户的访问[10]。 2.3 Android主要控件 (1) EditText 主要函数: setText/getText 设置/获取文本内容 setHint 设置缺省显示内容 (2) RadioGroup,RadioButton RadioButton的isChecked()判断是否被选中 获取选中RadioButon的ID:设置RadioGroup.setOnCheckedChangeListener方法 public onCheckedChanged(RadioGroup group,int checkedId)//checkedId是选中RadioButton的ID。 (3)CheckBox isChecked()判断是否被选中 setOnCheckedChangeListener方法监视选中状态改变情况 (4)Spinner a,显示数据 b,设置下拉列表的风格(可选) 9 华北电力大学本科毕业设计(论文) adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); c,监听选项选择变更事件 setOnItemSelectedListener设置监听去 Spinner.OnItemSelectedListener类须实现以下两个方法 public void onItemSelected (AdapterView> parent, View view, int position, long id)//view 选中项实例,position选择项在adapter中的位置 public void onNothingSelected(AdapterView> arg0) d,设置选中项 Spinner.setSelection(position)//索引从0开始 getSelectedItemPosition () getSelectedItem () //该值toString()则为选中内容的字符串 getSelectedItemId () getSelectedView () (5)AutoCompleteTextView setAdapter设置数据adapter 设置输入多少个字符显示提示AutoCompleteTextView.setThreshold(int threshold) (6)DatePicker,TimePicker a,DatePicker b,TimePicker c,获取系统当期时间和日期 Calendar.getInstance()返回Calendar Calendar.get (int field) ---field 可以为Calendar.YEAR/ Calendar.MONTH/ Calendar.DAY_OF_MONTH/ Calendar.HOUR_OF_DAY/ Calendar.MINUTE (7)ImageView/ImageButton 主要方法 setImageResource 设置显示图片 setAlpha 设置Alpha invalidate 强制更新 setScaleType( ScaleType st) 设置图片显示方式,st是一枚举 setAdjustViewBounds 设置是否调整控件适应图片大小 setBackgroundResource 设置背景 (8)GridView(表格显示一系列图片) 显示数据 setAdapter(ListAdapter adapter)设置数据适配器. 数据适配器可以继承自BaseAdapter,该类 public View getView(int position, View 10 华北电力大学本科毕业设计(论文) convertView, ViewGroup parent) 返回当前选择的视图(ImageView) 选项选中监听setOnItemSelectedListener getSelectedView()返回当前选中的视图 (9)ListView a.显示数据setAdapter(ListAdapter adapter) adapter可为new SimpleCursorAdapter/SimpleAdapter(Context context, int layout, Cursor c, String[] from, int[] to) layout 用来显示数据的模板.显示一列可用android.R.layout.simple_list_item_1 两列可用android.R.layout.simple_list_item_2 多列则需要自己实现xml视图布局文件 b. 动态增删数据 adapter.notifyDataSetChanged() c.数据(可用ArrayList构造数据) from ': to 用来显示对应列的空件id d.设置背景色 setBackGroudRource[11] 2.4 本章小结 本章节简要介绍了Android系统的内核结构,对其系统构架进行了一定的阐述。分别介绍了Activity、Intent、Service及Content Provider四大组件,并列举了Android SDK中较为常用的一些开发控件。基于本章内容,对Android系统底层有了一定程度的理解。 11 华北电力大学本科毕业设计(论文) 3 基于Android的日历系统 3.1需求分析 3.1.1 系统目标 设计并实现一款基于Android平台的日历系统,具备基本的日期显示功能;能够显示公历、农历、星期、节日等;并提供日程记事本功能。要求该系统能够在真机上顺利安装并运行。 3.1.2 功能需求描述 该系统除实现基本的日历功能之外,还有附加的插件以满足用户需求。 (1)可以使用户查看当天日期为何年何月何日、当天是星期几、阴历日期为多少。 (2)可满足用户对于是否闰年、闰几月、生肖年、干支年的查询需求。 (3)用户能够获的具体日期的节日信息,包括国际节日与中国传统节日。 (4)为用户提供日程管理功能,允许在指定日期下添加、查询、删除、修改提醒事件。 (5)可快速将用户指定的公历日期转换为农历日期。 (6)可快速跳转到用户想要查看的日期。 (7)提供当天日期定位功能。 3.1.3 界面需求分析 用户界面(User Interface,简称UI)是软件的重要部分。用户通过UI来得到服务,后台的代码结构往往与用户的直观体验关系不大,故用户界面的成功与否直接关系到用户软件的满意度[12]。 (1)界面应布局合理,简洁大方,使用户对于日期信息一目了然. (2)当天日期应特殊显示,使用户能够方便快捷地得知当天信息。 (3)本月日期与非本月日期应区别显示。 (4)允许用户左右滑动屏幕来跨月查询。 3.1.4 运行需求分析 该系统应能够在虚拟机上和真机上顺利安装、运行、卸载;应保证运行流畅,不卡机不死机;能够适应不同智能终端的多种设备屏幕。 3.2 系统概要设计 3.2.1 系统功能结构 该日历系统以显示当月日期及年月日等信息的主界面为主,通过Intent触发日程管理 12 华北电力大学本科毕业设计(论文) 界面、公农历转换控件、当天日期定位菜单、日期跳转项。功能结构如图3-1所示。 日历系统 闰年生肖干支 星期 当月日期 当天日期定位 指定日期跳转 日程管理界面 公历转换农历 当月日期主界面 菜单项目 图3-1 日历系统功能结构 3.2.2 系统界面布局 本日历系统的主界面采用线性布局(Linear Layout)与列表视图(GridView)相结合的界面构造。图3-2为主界面的简要布局示意[13]。 13 华北电力大学本科毕业设计(论文) 图3-2 主界面的布局示意图 3.3 主要算法与核心代码实现 3.3.1 主界面 主界面提供日期信息显示,允许呼出菜单栏,并支持左右滑动。 (1)主界面显示Activity public void addTextToTopTextView(TextView view){ StringBuffer textDate = new StringBuffer(); draw = getResources().getDrawable(R.drawable.top_day); view.setBackgroundDrawable(draw); textDate.append(calV.getShowYear()).append(\"年\").append( calV.getShowMonth()).append(\"月\").append(\"\\"); if (!calV.getLeapMonth().equals(\"\") && calV.getLeapMonth() != null) { textDate.append(\"闰\").append(calV.getLeapMonth()).append(\"月\") .append(\"\\"); } gridView = new GridView(this); gridView.setNumColumns(7); gridView.setColumnWidth(46); 14 华北电力大学本科毕业设计(论文) if(Width == 480 && Height == 800){ } gridView.setGravity(Gravity.CENTER_VERTICAL); gridView.setSelector(new ColorDrawable(Color.TRANSPARENT)); gridView.setHorizontalSpacing(1); gridView.setColumnWidth(69); gridView.setVerticalSpacing(1); gridView.setBackgroundResource(R.drawable.gridview_bk); (2)创建菜单 public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, menu.FIRST, menu.FIRST, \"今天\"); menu.add(0, menu.FIRST+1, menu.FIRST+1, \"跳转\"); menu.add(0, menu.FIRST+2, menu.FIRST+2, \"日程\"); menu.add(0, menu.FIRST+3, menu.FIRST+3, \"日期转换\"); return super.onCreateOptionsMenu(menu); } (3)左右滑动屏幕 public class CalendarActivity extends Activity implements OnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { int gvFlag = 0; //每次添加gridview到viewflipper中时给的标记 if (e1.getX() - e2.getX() > 120) { addGridView(); //添加一个gridView jumpMonth++; //下一个月 calV = new CalendarView(this, //像左滑动 getResources(),jumpMonth,jumpYear,year_c,month_c,day_c); gridView.setAdapter(calV); //flipper.addView(gridView); addTextToTopTextView(topText); gvFlag++; flipper.addView(gridView, gvFlag); this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_in)); this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_out)); 15 华北电力大学本科毕业设计(论文) this.flipper.showNext(); flipper.removeViewAt(0); return true; } else if (e1.getX() - e2.getX() < -120) { addGridView(); //添加一个gridView jumpMonth--; //上一个月 calV = new CalendarView(this, //向右滑动 getResources(),jumpMonth,jumpYear,year_c,month_c,day_c); gridView.setAdapter(calV); gvFlag++; } return false; } return true; 3.3.2 菜单项目操作 菜单栏包含四项功能操作;当今日期定位、指定日期跳转、日程管理以及公农历转化。 (1)定位至今天日期 public boolean onMenuItemSelected(int featureId, MenuItem item) { switch (item.getItemId()){ case Menu.FIRST: //跳转到今天 int xMonth = jumpMonth; int xYear = jumpYear; int gvFlag =0; jumpMonth = 0; jumpYear = 0; if(xMonth == 0 && xYear == 0){ //nothing to do }else if((xYear == 0 && xMonth >0) || xYear >0){ this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_in)); this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_out)); this.flipper.showNext(); }else{ this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_right_in)); 16 华北电力大学本科毕业设计(论文) this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_right_out)); this.flipper.showPrevious(); } flipper.removeViewAt(0); Break; (2)指定日期跳转 @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { //不在查询范围内 new AlertDialog.Builder(CalendarActivity.this).setTitle(\"错误日期if(year < 1901 || year > 2049){ new DatePickerDialog(this, new OnDateSetListener() { \").setMessage(\"跳转日期范围(1901/1/1-2049/12/31)\").setPositiveButton(\"确认\ }else{ gridView.setAdapter(calV); addTextToTopTextView(topText); gvFlag++; flipper.addView(gridView,gvFlag); if(year == year_c && monthOfYear+1 == month_c){ } //跳转之后将跳转之后的日期设置为当期日期 year_c = year; } break; } month_c = monthOfYear+1; day_c = dayOfMonth; jumpMonth = 0; jumpYear = 0; //nothing to do flipper.removeViewAt(0); },year_c, month_c-1, day_c).show(); (3)日程管理 case Menu.FIRST+2: 17 华北电力大学本科毕业设计(论文) Intent intent = new Intent(); intent.setClass(CalendarActivity.this, ScheduleAll.class); startActivity(intent); break; (4)公农历转换 case Menu.FIRST+3: Intent intent1 = new Intent(); intent1.setClass(CalendarActivity.this, CalendarConvert.class); intent1.putExtra(\"date\ startActivity(intent1); break; } } return super.onMenuItemSelected(featureId, item); 3.3.3 日程管理功能实现 package com.pwp.activity; public class ScheduleAll extends Activity { public void createInfotext(String scheduleInfo, int scheduleID){ @Override public boolean onOptionsItemSelected(MenuItem item) { } 18 switch(item.getItemId()){ case Menu.FIRST: } return super.onOptionsItemSelected(item); Intent intent = new Intent(); intent.setClass(ScheduleAll.this, CalendarActivity.class); startActivity(intent); break; Intent intent1 = new Intent(); intent1.setClass(ScheduleAll.this, ScheduleView.class); startActivity(intent1); break; case Menu.FIRST+1: 华北电力大学本科毕业设计(论文) } 3.3.4 农历、闰年、节日算法 package com.pwp.calendar; final static String chineseNumber[] = { \"一\二\三\四\五\六\七\ \"八\九\十\十一\十二\" }; \"yyyy年MM月dd日\"); static SimpleDateFormat chineseDateFormat = new SimpleDateFormat( //农历部分假日 final static String[] lunarHoliday = new String[]{\"0101 春节\元宵\端 午,\"0707 七夕情人\中元\中秋\重阳\腊八\小年\除夕\ final static String[] solarHoliday = new String[]{\"0101元旦\情人\妇女 \植树\消费者权益日\愚人\劳动\青年\护士\儿童\\"0701建党\建军\父亲\逝世纪念\\"0910教师\孔子诞辰\\"1001国庆\老人\联合国日\孙中山诞辰纪念\回归纪念\圣诞\诞辰纪念\ } // ====== 传回农历 y年闰哪个月 1-12 , 没闰传回 0 final private static int leapMonth(int y) { } // ====== 传回农历 y年的生肖 final public String animalsYear(int year) { } // ====== 传入 月日的offset 传回干支, 0=甲子 final private static String cyclicalm(int num) { final String[] Gan = new String[] { \"甲\乙\丙\丁\戊\己\庚\ \"辛\壬\癸\" }; \"未\申\酉\戌\亥\" }; final String[] Zhi = new String[] { \"子\丑\寅\卯\辰\巳\午\return (Gan[num % 10] + Zhi[num % 12]); 19 return (int) (lunarInfo[y - 1900] & 0xf); final String[] Animals = new String[] { \"鼠\牛\虎\兔\龙\蛇\ \"马\羊\猴\鸡\狗\猪\" }; return Animals[(year - 4) % 12]; 华北电力大学本科毕业设计(论文) } 3.4 软件测试 随着市场对软件质量要求的不断提高,软件测试愈来愈受到重视。软件测试的意义在于发现软件错误,有效定义和实现软件成分由低层到高层的组装过程,验证软件是否满足任务书和系统定义文档所规定的技术要求,为软件质量模型的建立提供依据[14]。 软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的[15]。 软件质量是由几个方面来衡量的;一、在正确的时间用正确的的方法把一个工作做正确。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量。四、质量也代表着它符合客户的需要 [16] 。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看 产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才有效提高[17]。 3.4.1测试平台 本次测试选用真机测试,用以测试的Android手机机型为小米2S 16G版,搭载的系统为Android 4.1.1 JRO03L,测试机信息如图3-3所示。 图3-3 测试机及Android版本信息 3.4.2 软件安装 20 华北电力大学本科毕业设计(论文) 将项目打包导出,生成.apk文件,传入测试机进行安装,安装成功,如图3-4所示。 图3-4 程序安装成功 3.4.3 程序运行情况 经测试,程序可以正常运行,日期跳转、公农历转换、日程管理等功能均能顺畅运行。 在程序主界面按菜单键呼出菜单栏,如图3-5所示。 图3-5 程序主界面及菜单测试 21 华北电力大学本科毕业设计(论文) 点击菜单栏的“跳转”项,进入日期跳转对话框,如图3-6所示。 图3-6 日期跳转测试 点击菜单栏的“日期转换”项,进入公历/农历日期转换界面,如图3-7所示。 图3-7 公历转换农历测试 22 华北电力大学本科毕业设计(论文) 点击菜单栏的“日程”项,进入日程管理界面,如图3-8所示。 图3-8 日程管理测试 3.5 本章小结 本章节重点展示了Android手机日历这一项目的核心算法及相应代码,列举了程序内部运行的原理。在功能实现后,在真机上进行了测试,安装、运行皆流畅完美。 23 华北电力大学本科毕业设计(论文) 4 总结 4.1 论文工作总结 从多方面来看,Android是一种性的开源平台,作为开发者在创造更新以及创新服务和应用上有着许多的自由度。从产品的观点来看,要保持每一个应用软件的设计与外表、以及对基本操作平台的感觉的紧密关系 是至关重要的[18]。Android会让开发商逐渐开发出奢华的用户界面,这往往要通过不同的开发商向不同的方向扩展来实现,并随着时间的推移无疑将变得更好。然而,设计者仍然必须确保与整个用户界面范例的一致性,这样才能缩小形式和功能的碎片化并提供坚实的用户体验[19]。Android独到之处在于它的内建的意图处理功能,这是一段能够要求在其它应用软件中使用某一功能的应用软件。网络浏览器就能够要求运行适当的PDF文件的阅读器,而在设备上能够处理这一请求的应用软件能够无缝地与该功能联用[20]。从框架的观点来看,这不仅是一种巨大的可扩展的系统,而且从用户的观点来看非常强大。意图处理使得开发商有可能支持无缝的互动,使得一个用户任务能够跨越多个应用软件。它是一种以人的任务为中心的方法,而不是以系统应用为中心的方法。因此,不管它称为什么,Android就是一种非常人性化的平台。 在本次项目开发中,通过对Android SDK这一开发环境的熟悉,能够深切体会到支持平台的人性化。可以预见,无论何种开发语言,何种开发工具,在今后的发展中会越来越强大,图形界面化的开发模式将会愈加成熟,功能控件趋于集成化,灵活性会越来越高。这将为开发者节约成本,给开发者以更多的空间去创造多样的软件应用。 本文由浅入深循序渐进地论述了基于Android平台开发应用软件的过程。向读者展示了Android的由来和历史,列举了从发布至今Android SDK各个版本及其新特性,引用数据说明了Android的现状及前景,讨论了这类课题的研究意义。介绍了Android系统的架构,Android的四大组件,以及开发常用的一些控件。对日历系统进行需求分析,根据需求设计系统功能,例举其中的核心代码介绍系统是如何实现的,实现后对日历系统进行了测试。对整个论文的工作过程进行了总结,讨论了Android的不足,并对其发展趋势进行展望。 基于Android的日历系统,除了最基本的日期信息查询功能外,还具备了公历转换农历功能、指定日期跳转功能、当天日期定位功能和日程管理功能。通过转换功能,用户可将希望查询的公历日期转为农历日期;如果用户想知道某一天或某个月有什么节日,他可以使用跳转功能;在主界面没有显示当月日期时,用户可通过定位功能回到当天日期;而日程管理功能则为用户提供了类似备忘录的平台 4.2 问题与展望 对于Android平台上日历系统的开发,由于是第一次接触,开始时遇到了一些困难,加之对于Java语言并不是特别深入研究过,开发过程中走了不少的弯路。同时,也又一次 24 华北电力大学本科毕业设计(论文) 体会到了说明文档的重要性,在今后的开发过程中,应该逐渐养成随时书写说明文档的习惯,将说明文档与程序代码融为一体,这才是成熟有效的开发模式。 一个明显的不足就是我所涉及的UI过于简陋。日常生活中接触过太多的Android应用,但只有在开发时才明白,做出好的UI其实并不容易。色彩的搭配、渐变效果的应用 程序界面的布局……这些只有经历过一次又一次的开发历程,才会渐渐对UI设计有正确的理解。 在程序功能方面,当完成代码实现,从整个软件的角度着眼才发现功能设计的不是很合理,比如日期跳转和当前日期定位其实有重叠的部分;日程管理的功能还不够完善,提醒方式并不完美。应该多鉴赏成功案例,学习成熟的功能模式划分。 在本次项目开发中,通过对Android SDK这一开发环境的熟悉,能够深切体会到支持平台的人性化。可以预见,无论何种开发语言,何种开发工具,在今后的发展中会越来越强大,图形界面化的开发模式将会愈加成熟,功能控件趋于集成化,灵活性会越来越高。这将为开发者节约成本,给开发者以更多的空间去创造多样的软件应用。 借助这次的项目开发,我已建立起对于Android应用开发的浓厚兴趣,也大概了解到Android开发过程的一般形式,希望今后能有机会在这个领域深加钻研。我相信,其中会有丰厚的收获和浓浓的乐趣。 25 华北电力大学本科毕业设计(论文) 参考文献 [1] 李培林. 安卓系统的应用及发展趋势展望[J]. 计算机光盘软件与应 用,2012(第十八期). [2] 张亚杰. 基于Android平台的移动终端应用程序的研究与开发[D]. 郑州大 学信息工程学院, 2013年. [3] 雍宾宾. Android应用快速开发系统设计与实现[D]. 兰州大学, 2012年. [4] 岳传真. Android系统移植和应用程序开发[D]. 复旦大学出版社, 2010. [5] Son N. A study of user data integrity during acquisition of Android devices[J]. Digital Investigation, 2013(Vol.10). [6] 曾辉. Android系统结构与安全机制初探[J]. 岁月, 2012(01). [7] 陈益强. 简析Android系统的安全性能[J]. 信息系统工程, 2011(09). [8] 赵宇新. Android手机在欧洲五国销售比例达60%[N/OL]. [2013-1-3]. [9] 刘磊 周作栋. Android手机的前景与现状[J]. 论坛集萃, 2013(第1期). [10] Nelson W. Android mobile phone sold more than iPhone for the first time in American[J/OL]. [2013-4-6]. . [11] 胡伟. Android系统架构及其驱动研究[J]. 广州广播电视大学学报, 2010(总第41期). [12] 季光献. Android系统环境下应用前景与开发研究[J]. 软件, 2011(第10 期). [13] 李波,史江萍,王祥凤.Google Android4.X 从入门到精通.北京;清华 大学出版社,2012. [14] 黄叶. Eclipse简介[J/OL]. [2013-07-12]. . [15] 佚名. 集成开发环境 Eclipse[J/OL]. [2013-04-23]. . [16] 白润华. APP用户界面设计经典案例[M]. 人民邮电出版社, 2013. [17] W.Frank Ableson Charlie Collins Robi Sen.Unlocking Android: A Developers Guide.2010. [18] Rick Rogers.Learning Android Game Programming.2012. [19] Wei—Meng Lee. Beginning Android 4 Application Development.2012. [20] Charles B. Samsung Prospects Dim Vs. Apple: What Next, Android Designers?[J]. ProQuest, 2012(09). 26 华北电力大学本科毕业设计(论文) 致谢 本篇毕业设计论文是在我的导师 老师的亲切关怀和悉心指导下完成的。她严谨的治学精神,精益求精的工作作风,和蔼耐心的教诲引导,深深地感染和激励着我。朵老师学业上给我以精心指导,同时在思想、生活上也给我以深深的启发,在此谨向朵老师致以诚挚的谢意和崇高的敬意。 我还要感谢一起努力完成项目的两位同学——邓佩、武志磊,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。 在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!谢谢你们! 最后,再次对关心、帮助我的老师和同学表示衷心地感谢! 目 录 第一章 项目总论 ········································ 错误!未定义书签。 §1.1项目简介 ············································ 错误!未定义书签。 §1.2可行性研究的范围 ································ 错误!未定义书签。 §1.3编制依据 ············································ 错误!未定义书签。 第二章 项目建设背景及必要性 ······················ 错误!未定义书签。 §2.1橡胶密封件项目提出的背景 ···················· 错误!未定义书签。 §2.2国家产业 ······································ 错误!未定义书签。 §2.3项目建设的必要性 ································ 错误!未定义书签。 第三章 项目优势 ········································ 错误!未定义书签。 §3.1市场优势 ············································ 错误!未定义书签。 §3.2技术优势 ············································ 错误!未定义书签。 §3.3组织优势 ············································ 错误!未定义书签。 §3.4优势:关中—天水经济区发展规划 ······· 错误!未定义书签。 27 华北电力大学本科毕业设计(论文) §3.5区域投资环境优势 ································ 错误!未定义书签。 第四章 产品介绍与技术介绍 ························· 错误!未定义书签。 §4.1橡胶密封件产品介绍 ····························· 错误!未定义书签。 §4.2 产品标准 ··········································· 错误!未定义书签。 §4.3 产品特征及材质 ·································· 错误!未定义书签。 §4.4产品方案 ············································ 错误!未定义书签。 §4.5产品技术来源 ······································ 错误!未定义书签。 第五章 项目产品发展预测 ······························ 错误!未定义书签。 §5.1产品行业关联环境分析 ·························· 错误!未定义书签。 §5.2行业竞争格局与竞争行为 ······················· 错误!未定义书签。 §5.3竞争力要素分析 ··································· 错误!未定义书签。 §5.4项目发展预测 ······································ 错误!未定义书签。 §5.5竞争结构分析及预测 ····························· 错误!未定义书签。 第六章 项目产品规划 ·································· 错误!未定义书签。 §6.1项目产品产能规划方案 ·························· 错误!未定义书签。 §6.2产品工艺规划方案 ································ 错误!未定义书签。 §6.3项目产品营销规划方案 ·························· 错误!未定义书签。 第七章 项目建设规划 ·································· 错误!未定义书签。 §7.1项目建设总规 ······································ 错误!未定义书签。 §7.2项目项目建设环境保护方案 ···················· 错误!未定义书签。 §7.3项目建设节能方案 ································ 错误!未定义书签。 §7.4项目建设消防方案 ································ 错误!未定义书签。 28 华北电力大学本科毕业设计(论文) §7.5项目建设生产劳动安全方案 ···················· 错误!未定义书签。 第八章 项目组织实施情况 ···························· 错误!未定义书签。 §8.1项目组织 ············· 错误!未定义书签。 §8.2项目劳动定员和人员培训 ······················· 错误!未定义书签。 §8.3项目管理与实施进度安排 ······················· 错误!未定义书签。 §8.4工程招标 ············································ 错误!未定义书签。 第九章 项目财务评价分析 ···························· 错误!未定义书签。 §9.1项目总投资及资金筹措 ·························· 错误!未定义书签。 §9.2项目财务评价依据及相关说明 ················· 错误!未定义书签。 §9.3 项目总成本费用估算 ···························· 错误!未定义书签。 §9.4 销售收入、销售税金及附加和估算 · 错误!未定义书签。 §9.5 利润分配估算 ····································· 错误!未定义书签。 §9.6 借款偿还计划 ····································· 错误!未定义书签。 §9.7现金流估算 ········································· 错误!未定义书签。 §9.8不确定性分析 ······································ 错误!未定义书签。 §9.9风险分析 ············································ 错误!未定义书签。 第十章 项目经济、社会效益评价 ····················· 错误!未定义书签。 §10.1经济效益评价 ····································· 错误!未定义书签。 §10.2社会效益评价 ····································· 错误!未定义书签。 第十一章 可行性研究结论与建议 ····················· 错误!未定义书签。 §11.1研究结论 ··········································· 错误!未定义书签。 §11.2建议 ················································· 错误!未定义书签。 29 华北电力大学本科毕业设计(论文) 30 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务