您好,欢迎访问三七文档
1计算机科学与技术教研室课程设计说明书(2015-2016学年第二学期)课程名称计算机专业高级课程设计设计题目校园小菜APP学号姓名小组成员起止时间:2017年6月27日至2016年7月11日课程设计评语该生平时表现良好,程序设计代码实现的也很好,运用多种知识实现了多种功能,实现了仿QQ的侧滑菜单,使用了SlidingMenu控件;通过使用RefreshListView控件来实现新闻条目的下拉刷新和上拉加载。课程设计说明书填写正确,条理清楚,格式标准,,思路清晰。答辩过程中,课程设计过程介绍详细,代码正确,可见对于Android开发有了一定的独立编程能力并且对课本知识掌握较熟练;作品演示较熟练,能按照设计要求完成指定的功能且能加入一些自己的想法;回答问题较流利,对数据结构程序掌握熟练。但是程序还有部分功能不是很完美,优化之后会更好。平时成绩报告成绩演示与答辩成绩成绩总评指导教师(签字)年月日注:成绩均用百分制。总成绩=平时成绩*20%+报告成绩*40%+演示与答辩成绩*402设计题目:校园小菜APP1.课程设计的目的(1)使学生更深入地理解和掌握Android开发技术这门课程中的有关基本概念,程序设计思想和方法。(2)使学生掌握系统分析设计、布局设计、类的设计、相关控件的使用;使学生充分了解Android应用程序的设计和开发的基本过程,掌握常用的Android开发技术,培养学生综合运用所学的知识去开发一个APP的能力。(3)培养学生从文献资料中获得知识的能力,提高学生从别人经验中找到解决问题的途径的能力,初步培养学生软件开发的意识和能力。2.课程设计正文2.1.系统分析2.1.1.需求与功能分析校园小菜是一款校园新闻推送App,主要面向在校大学生群体,简单实用,为大学生生活添加乐趣、优惠和便利。校园小菜建设的目的是方便学生的学习和生活,可以足不出户就可以通过校园小菜了解校内的新闻,以及学校官方的通知,系里的讲座,学校的新鲜事,社团或者学生会开展的活动等等。此外,在开发过程中,我们利用UI的精心设计,在实现基本功能同时,尽力达到简约时尚、页面布局合理舒适,色彩清新的界面设计,提高APP的观赏性,让人耳目一新。网站实现功能实现以下功能:(1)实现新闻列表的展示,每个栏目对应相应的新闻内容;(2)点击列表新闻进入新闻详情页面;(3)实现动画效果使得页面更加友好;(4)实现侧滑页面;(5)设置轮播图片来宣传,或者来展示新闻内容,使得App更具观赏性;2.1.2.可行性分析及开发环境(一)Android操作系统分析校园小菜主要Android手机操作系统,通过用eclipse环境编写,最后用android手机模拟器进行执行配置调试,这都是比较成熟的技术,我们也掌握着这些技术,所以在技术上是完全可行的。Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(OpenHandsetAlliance)开发。它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。底层Linux3内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个Activity类(class)负责创建视窗(window),一个活动中的Activity就是在foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的Activity全部画面被其他Activity取代时,该Activity便被停止(stopped),甚至被系统清除(kill)。View等同于J2ME的Displayable,程序人员可以通过View类与“XMLlayout”档将UI放置在视窗上,Android1.5的版本可以利用View打造出所谓的Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的AndroidHero手机即含有大量的widget。至于ViewGroup是各种layout的基础抽象类(abstractclass),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity中,要通过findViewById()来从XML中取得View,Android的View类的显示很大程度上是从XML中读取的。View与事件(event)息息相关,两者之间通过Listener结合在一起,每一个View都可以注册一个eventlistener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。Android是运行于Linuxkernel之上,但并不是GNU/Linux。因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android为了达到商业应用,必须移除被GNUGPL授权证所约束的部份,例如Android将驱动程序移到userspace,使得Linuxdriver与Linuxkernel彻底分开。bionic/libc/kernel/并非标准的kernelheaderfiles。Android的kernelheader是利用工具由Linuxkernelheader所产生的,这样做是为了保留常数、数据结构与宏。(二)Xml文件及pull解析介绍XML(ExtensibleMarkupLanguage)即可扩展标记语言,它与HTML一样,都是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立。XML已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。XML的解析方式基本上分为三类:第一类是基于4XML文档树结构的解析,例如DOM第二类是基于流式的解析,例如SAX、StAX和XPP;第三类是基于非提取式的解析,例如VTD-XMLXML与Access,Oracle和sqlserver等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。Pull解析器的运行方式与SAX解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。跟SAX不同的是,Pull解析器产生的事件是一个数字,而非方法,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调parser.nextText()方法可以获取下一个Text类型节点的值。本软件以Eclipse作为开发环境,结合Android语言中的Activity、Intent等类,实现相关的API。从技术可行性角度考虑技术完成成熟,因此本软件设计与实现是可行的。(三)开发工具Eclipse介绍分析Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。虽然大多数用户很乐于将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++、COBOL和Eiffel等编程语言的插件已经可用,或预计会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于Eclipse的应用程序的突出例子是IBM的WebSphereStudioWorkbench,它构成了IBMJava开发工具系列的基础。例如,WebSphereStudioApplicationDeveloper添加了对JSP、servlet、EJB、XML、Web服务和数据库访问的支持。2.2系统设计2.2.1总体设计经过需求分析,现确定“校园小菜”的功能模块图如图1所示。5图1功能模块图2.2.2程序的流程图,如图2所示。图2系统流程图校园小菜APPFragment页面首页页面新闻页面发现页面关于我们主界面下方菜单Fragment控件上方标题侧滑页面主菜单个人信息开始开始动画引导界面第一次进入?主界面YN鼠标左滑?侧滑菜单点击按钮?个人信息鼠标右滑?首页点击按钮?其他页面结束YYNN62.3系统实现2.3.1主页面模块(1)进入主界面的流程图,如图3所示。图3进入主界面的流程图(2)主界面主要布局代码如下:FrameLayoutandroid:id=@+id/contentandroid:layout_width=match_parentandroid:layout_height=675dp/FrameLayoutRadioGroupandroid:id=@+id/navgroupandroid:layout_width=match_parentandroid:layout_height=70dpandroid:background=@drawable/tab_backgroundandroid:gravity=center_verticalandroid:orientation=horizontalandroid:paddingTop=5dip(3)主页面主要逻辑代码如下://设置ViewPager的页面状态改变的监听器开始监听事件第一次进入?主界面引导界面结束NOYES7mViewPager.setOnPageChangeListener(newOnPageChangeListener(){//当Pager页数法师改变时候调用@OverridepublicvoidonPageSelected(intposition){Log.e(tag,position+position);updateTextAndDot();//发送一个延时消息//handler.sendEmptyMessageDelayed(0,3000);}@OverridepublicvoidonPageScrolled(intposition,floatpositionOffset,intpositionOffsetPixels){Log.e(tag,onPageScrolled:);}@OverridepublicvoidonPageScrollStateChanged(intst
本文标题:课程设计说明书
链接地址:https://www.777doc.com/doc-2032512 .html