基于安卓android平台的移动手机商城设计与实现毕业论文

基于安卓android平台的移动手机商城设计与实现毕业论文

ID:12495457

大小:3.14 MB

页数:131页

时间:2018-07-17

上传者:xinshengwencai
基于安卓android平台的移动手机商城设计与实现毕业论文_第1页
基于安卓android平台的移动手机商城设计与实现毕业论文_第2页
基于安卓android平台的移动手机商城设计与实现毕业论文_第3页
基于安卓android平台的移动手机商城设计与实现毕业论文_第4页
基于安卓android平台的移动手机商城设计与实现毕业论文_第5页
资源描述:

《基于安卓android平台的移动手机商城设计与实现毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

毕业设计毕业设计题目:基于Android平台的移动手机商城设计与实现姓 名:张三学 号:000000000000学院:XXXXXXXX专业:XXXXXXXX同组人:指导教师:XXX2000年X月X日-1- 毕业设计摘要Android是基于Linux内核的软件平台和操作系统,以其特有的开放性在智能手机、平板电脑等领域广泛应用。近几年电子商务得到了迅速的发展,通过Internet进行交易己成为一种潮流。两者的结合,便产生了具有巨大发展潜力的移动电子商务。本系统主要是探索Android与电子商务的结合,利用SSH框架设计后台管理,AndroidSDK设计客户端。以手机商城为例,实现用户浏览,搜索,购买商品等功能。由于选择Mysql作为数据库,故部署了服务器作为客户端与数据库通信的桥梁。后台管理系统采用SSH框架技术控制逻辑及数据库操作,并且将CSS应用在JSP页面实现页面美化。实现对数据库中商品进行增,删,改,查的功能,并对客户订单进行管理。该系统较平常购物系统有更好的移动性与跨平台性。通过测试,已能够在Android手机上运行使用其各项购物流程。在本文的最后阐述了将来进一步可以完善的一些相关工作。关键词:手机网络JAVAAndroid;SSH;网上购物-1- 毕业设计AbstractAndroid operatingsystem originallydevelopedby founder AndyRubin.Anditonlysupportedphonesatfirst.Itwasacquired ofinjectionbyGooglein2005.AndGoogledrawin anumberof manufacturers formed theOpenHandsetAlliance (OpenHandsetAlliance) todevelopandimprovethesystemandextendto the tabletPC andother areasgradually.Attheendof2010,thedatashowedthatAndroidhadbecamethemostpopularsmartphone platformbeyondtheNokia Symbian system.ThissystemmainlyexploresthecombinationofAndroidande-commerce.UsingtheSSHFrame,themanagementsystemisdesigned.TheclientisdesignedwithAndroidSDK.Usingthephoneasanexample,achievetheuserstobrowsesearchbuygoodsandotherfunctions.BecauseoftheselectionofMysql,wedeployaserverasthebridgebetweenthedatabaseandtheclient.ThemanagementsystemcontrolsthelogicandtheoperationonthedatabasebytheSSHFrame.CSSisappliedtotheJSPtomaketheinterfacemorefriendly.Therealizationofadatabaseofgoodstoincrease,delete,change,searchfunction,andcustomerordermanagement.Thesystemis better thanthe usual shoppingsystem onmobilityand cross-platform.Bythetest,itcanruneveryfunctionofshoppingontheAndroid-mobilephone.Keywords:Android;SSH;E-commerce;OnlineShopping-1- 毕业设计目录摘要IAbstractII目录III引言11.课题研究背景21.1Android平台21.23G时代手机购物与网络购物的比较分析31.3集成开发环境Eclipse51.4Android模拟器..............................................................................................................61.4.1模拟器概述................................................................................................................61.4.2模拟器和真机的区别...............................................................................................71.5研究的目的和主要内容71.5.1研究的目的71.5.2研究的主要内容81.6论文组织结构................................................................................................................82.基于Android平台的移动手机商城开发环境和相关技术..............................................82.1开发环境及硬件需求92.2Java语言特点92.3关于ECLIPSE............................................................................................................132.4数据库需求分析.........................................................................................................132.5本章小结.....................................................................................................................133.系统总体设计143.1总体功能143.2E-R图........................................................................................................................153.3初步设计方案.............................................................................................................163.3.1客户端的登录和注册.............................................................................................16-1- 毕业设计3.3.2客户端的浏览功能.................................................................................................173.3.3购物车功能............................................................................................................173.3.4订单功能................................................................................................................183.3.5服务器管理功能....................................................................................................193.4系统流程概述193.5系统框架图.................................................................................................................203.6数据库设计..................................................................................................................213.7本章小结234.系统详细设计...................................................................................................................244.1总体流程概要设计244.2Android系统客户端逻辑结构设计及其内容编码..................................................254.2.1客户端登陆功能内容............................................................................................254.2.2客户端注册功能内容............................................................................................264.2.3客户端商品和搜索功能内容................................................................................284.2.4客户端购物车功能内容........................................................................................394.2.5客户端订单功能内容............................................................................................494.2.6客户端httpclient.....................................................................................................534.3系统后台逻辑结构设计及其程序开发.....................................................................554.3.1系统后台管理员和用户登录程序内容.................................................................564.3.2系统后台商品管理程序内容.................................................................................594.3.3系统后台订单管理程序内容.................................................................................624.4本章小结......................................................................................................................655.系统的具体实现...............................................................................................................665.1前台android客户端主要功能的实现.......................................................................675.1.1登入界面.................................................................................................................675.1.2注册界面.................................................................................................................685.1.3商品主界面.............................................................................................................685.1.4商品服装的详细页面.............................................................................................70-1- 毕业设计5.1.5htc手机商品的详细界面和将想要购买的加入购物车界面...............................715.1.6购物车界面.............................................................................................................725.1.7订单结算界面.........................................................................................................735.2后台web端主要功能的实现....................................................................................745.2.1后台登入界面.........................................................................................................745.2.2后台主界面.............................................................................................................755.2.3商品列表界面.........................................................................................................765.2.4后台添加商品界面.................................................................................................775.2.5后台编辑商品界面.................................................................................................785.2.6后台订单管理界面.................................................................................................805.3本章小结......................................................................................................................806.总结和展望.......................................................................................................................816.1基于Android平台的移动手机商城的设计回顾.......................................................816.2Android平台的移动手机商城的设计经验总结........................................................816.3本章小结82结论83致谢84参考文献86-1- 毕业设计引言Java语言是由美国SunMicrosystem的詹姆斯·高斯林、PratrickNaughton及MikeSheridan等人在1991年精心设计出来的计算机编程语言,它的构想在于实现可以在不同的平台上运作使用同一种编程语言所编写出来的程序。这种架构是具有革命性的对于消费性电子产品而言,因为在消费性电子产品中的操作系统及处理器各不相同,如果要在不同的平台上开发程序就必须要了解和熟悉各个平台的特性,以及其供应的API使用方式,必须分别开发不同的版本才可以执行,这就影响了应用程序的普便性。近几年,由于移动互联网作为全新的时代背景,甚至有业内人士大胆预测随着无线互联不断蚕食着有线互联市场,未来可能接近7成都将是无线互联的市场,人们日常上网的主要的产品将是手机。正是预见到手机用户的无线市场有着巨大的发展潜力,各行各业都不断加速抢占无线互联的市场。移动电子商务在未来的巨大发展潜力是吸引京东、当当、卓越以及淘宝等各大电子商务企业进入这一领域的主要原因。程善宝指出,淘宝、京东等传统电子商务企业进入移动电子商务,根据商品渠道、运营经验等方面的经验的优势,在移动电子商务领域将会比电信运营商、software提供商和新兴的移动电子商务企业具有着更好的远景。由于移动通信的不断发展和互联网转向移动终端的推广,用户和网络对移动终端的要求与日俱增,因为WindowsMobile,Symbian,PalmOS等手机平台过于陈旧与封闭,不能很好的满足用户的需要和要求,所以市场急切需要着开放性很强的一个平台。随着多年的发展,第三代数字通信(3G)技术获取了市场广泛的关注和接受,它为移动终端用户提供了更快捷的数据传输速率。随着3G网络的使用,移动终端不再只是通讯网络的终端,还将成为互联网的终端。所以,移动终端的应用软件以及需要的服务将会有着很大发展的空间。Google就为此在2007年的11月推出了一个专门为了移动设备设计的一个软件平台——Android。Android是一套真正意义上的具有开放性的移动设备的综合平台,它包括操作系统、中间件和一些关键的平台应用。Android是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行设计开发。Android平台具有的开放性等特点既能促进移动通信技术的不断创新,也将有助于对开发成本的降低,还可以使得运营商非常方便的制定出具有自己特色的产品。因此,它是具备-1- 毕业设计很大的市场发展潜力。1.课题研究背景1.1Android平台1.Android平台:Android是Google基于Linux平台研发出来的手机操作系统。是google公布的手机应用平台。它包括用户界面,操作系统和移动电话工作所需要的全部软件。它使用软件堆层的构架主要有3部分,最底层是以Linux内核工作为基础的。谷歌通过与运营商,设备制造商,开发商和其他相关方面的深厚的合作伙伴关系,希望能够通过创建一个标准的,开放的手机软件平台,在移动通信行业形成一个开放的生态系统。2.Android系统的优势以及特点:□开放性。Google与开放手机联盟合作开发了Android,谷歌通过与运营商,设备制造商,开发商和其他相关方面的深厚的合作伙伴关系,希望能够通过创建一个标准的,开放的手机软件平台,在移动通信行业形成一个开放的生态系统。□应用无国限。在Android设备上的应用程序可以通过标准API访问核心移动。通过互联网,应用程序的功能可以宣布它们提供给其他应用程序。□在平等基础上创建应用程序。在移动设备上的应用程序可以被替换或扩展,即便是拨号程序,或在主屏幕上的核心部件也可以。□应用程序可以很容易地嵌入到网络。应用程序可以很容易地嵌入在HTML、JavaScript和样式表,并且也可以通过WebView将网络内容显示。□在应用程序中可以实现并行运行。在Android这种完整的多任务环境中,应用程序可以在实现并行运行。并且后台运行的时候,应用程序能产生通知以引起注意。3.Android的应用发展现状因为现如今有很多的厂商看到了Android的美好发展前景,所以从外国到内陆很多厂商都已经利用Android来生产手机和平板电脑等的电子产品。像戴尔这样有实力的厂商也是如此,例如戴尔推出的平板电脑streak就是使用的Android系统,与苹果ipad的功能相比几乎不相上下,甚至用户在使用感受上和通用性能上会比ipad更加优秀。-1- 毕业设计在国内,许多厂商在全力追求具有高清播放能力的电子产品的情况下也都同时使用了Android作为他们自己产品的使用的系统。甚至还有很多的山寨产品也全是使用的Android的操作系统来生产他们的产品,虽然还是和模仿的产品有多少的差距,但是从外观和价格的角度上来讲山寨的产品还是有它的市场。这些都证实了当今Android的应用现状是非常受认可的。4.开发基于Android平台的应用在Android平台上,可以开发出各式各样的应用。Android的应用程序是用Java语言开发的,也就是说,只要会Java语言就可以比较容易地开发出Android的应用。如果不了解Java也没有关系,通过一段时间对Java语言的学习,也可以很快进入Android开发领域。加上Android平台提供了2D、3D的图形支持、数据库支持(SQLite),并且集成了浏览器。基于Android的平台,我们可以开发出丰富多彩的应用,这些应用可以涉及工具、管理、互联网、游戏等,在此开放的平台上,这一切都取决于程序员的自由发挥和创意。1.23G时代手机购物与网络购物的比较分析1.手机购物的概念手机购物指的是使用手机上网从而实现在网络上购物的过程,属于移动电子商务。其购物的原理与在使用电脑网购一样,仅仅是载体从电脑变成了网络手机。国内的3G业务将有可能与网络购物和网络支付等平台联手,通过网速的超高速率来实现“手机购物”。在不久的将来中国的手机购物将会迎来一个高速的增长期,用户只要开通手机的上网服务,就可以通过手机查询商品信息,并且可以在线支付购买产品。不用去实体店铺,也不用坐在电脑前“淘货”,一部手机就可以完成挑选、选购和支付的全过程。据了解,目前运营商和网购平台以及网付平台三方已有意向进行合作,一旦“手机购物”的铁三角形成,用户不仅购物将会更加的便捷,运营商和网购平台以及网付平台三方也将从中获益匪浅。实际上,此前国内的部分网购商曾经推出过“手机购物”业务,但是由于2G手机的网速较慢,用户浏览网店以及网上支付的效果并不是很好。2.外国的手机购物发展如今将近九成的日本以及韩国的手机用户都已经习惯了手机购物,即便是购买食品、洗浴用品这样的在日常生活中不可缺少的用品。在最早开通3G服务的日本,手机网络购物的交易额已经占电子商务总体交易额的四成左右。由于移动电子商务的高速发展,为日本的众多商业企业提供了更多的销售渠道,将近全部的网络经营者都同时经营着自己的移动商铺。与传统的互联网购物相比,用户消费者用手机购物更加-1- 毕业设计的方便、保密、共享。手机购物已经成为日本、韩国等国“快时尚”标志,在城市德年轻人当中深受喜爱。3.当今手机购物在中国的发展与问题在当今大城市的地铁中出现了这样的奇特情景:在行人匆匆走过的地铁通道中,出现了超市中才能见到的商品货架,琳琅满目的商品,就像是在大型超市一样,但走进才发现“货架”竟然是“贴在”墙上的,可乐、奶粉、甚至还有尿不湿,每一种产品下方都有相应价格和唯一的二维码。这究竟是何物呢?来这个“墙壁超市”是电商企业1号店进一步开拓潜在市场所推出的一种全新尝试,属于国内首创的虚实结合移动电子商务应用,12年7月25日在上海首次与消费者进行见面,29日覆盖北京CBD范围的公交站点同期进行投放,此举是为了让更多消费者体验到全新的购物模式。  早在今年年初,中国主力电子商务军真正向无线应用发起进军,不再是前两年的“雷声大、雨点小”。移动互联网俨然成为电子商务争抢的香饽饽,电子商务网站纷纷启动了移动互联网战略。目前,电子商务企业推出手机、PC客户端早已不是新鲜事,淘宝网、乐淘网、麦考林、凡客诚品、当当网、卓越网等均相继推出各种类型操作系统的手机客户端产品。  而今年第一季度中国移动互联网用户规模达到了约3.5亿人,同比增速高达66.5%,其中移动购物第一季度收入突破15亿,占移动互联网总收入的14.20%。  无论是网络的便捷性、物流的畅达性、产品的多样性、经营方式上的灵活性,抑或是对于消费者生活方式的改变,各种优势都在进一步挤压传统零售商的生存空间。同时也触动了他们对市场的敏感,面对此庞大的市场蛋糕开始蠢蠢欲动。  以目前国内手机产业的发展趋势来看,数量巨大的移动互联网用户,为移动电子商务的发展提供了潜在的用户基础,巨大的利益也引来了众多企业纷纷加入。不过,移动电子商务还不能达到炉火纯青的地步,比如手机上网不够快、资费仍然偏贵、移动终端的安全性、支付的安全性等制约着移动电子商务的发展。在市场化的过程中显露出的一系列问题,终将由市场来解决,移动电子商务也必将有广阔的市场前景。4.与传统网络购物相比,手机购物具有的优势分析(1)手机购物具有很好的便捷性(2)手机购物用户群体数量多(3)3G技术的支持(4)手机购物具有"随时随地"等特点(5)手机购物有较好的身份认证的基础-1- 毕业设计5.与传统网络购物相比,手机购物存在的问题(1)购物形式单一(2)支付体系的建立和完善尚需时间(3)相比网络购物具有更大的不安全因素1.3集成开发环境EclipseEclipse是一个开放源代码的、与NetBeans、SunONEStudio和BorlandJbuilder类似的一种基于Java的整合型可扩展开发平台,也是目前最著名的开源项目之一。其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。其未来的目标不仅仅是成为专门开发Java程序的IDE环境,根据Eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。同时可以通过开发新的插件扩展现有插件的功能,比如本文为了进行手机即时网络游戏的开发,就是通过J2ME插件的扩展来加以实现的。Eclipse的跨平台性很强,可以通过无限扩展各厂商的专有SDK,来实现应用程序在各种型号不同的手机上的应用,而且它本身有着统一的外观,操作和系统资源管理,这正是Eclipse的潜力所在[4]。相比其他的手机专用开发工具,Eclipse有如下几个优点:①、丰富的观察窗口。视图是Eclipse的最灵活的部分,可以自定义每个视图中包含的观察窗口种类,也可以自定义一个新视图。当然,每个视图的观察窗口都是可配置的,多样化的视图不但可以帮助程序员以不同角度观察代码,也可以满足不同的编程习惯。②、强大的调试功能。Eclipse有多种跟踪方式,断点设置,变量值察看窗口等,而且根据所安装插件的不同,Eclipse存在多种运行/调试程序的方式。这样可以使程序员能更快的发现问题和解决问题,提高开发的效率。③、强大的插件加载功能。这正是Eclipse实现手机跨平台特性的真正魅力所在,也是提高手机游戏移植效率的有效方法。④、快捷的代码显示切换功能。Eclipse提供了只显示所选单元的代码显示切换功能,这在编辑Java程序的时候可以以方法为单位进行编辑,不仅代码的显示更加简捷,而且还有助于编写封装性更好的类。正是由于Eclipse的种种优秀特性,使得Eclipse在众多整合型开发平台中脱颖而出,成为不少从事手机软件开发的程序员的首选开发工具,这也是本文中的手机即时网络游戏选用Eclipse进行开发的真正原因。-1- 毕业设计1.4Android模拟器1.4.1模拟器概述Android模拟器的主界面,如图1-1所示图1-1安卓模拟器的主界面如1-1图所示的是模拟器的主界面全景图,从图中我们可以看出模拟器主要是由两个部分组成的,上图左边的部分模拟的是手机的显示界面,主要分布有电话按钮,主菜单按钮和上网按钮,右面的部分模拟的是手机的键盘输入。在模拟手机的部分内置了一些Google公司自带的程序,如打电话,发短信以及其他程序。Android模拟器中AndroidSDK自带一个移动模拟器。它是一个可以运行在你电脑上的虚拟设备。Android模拟器可以让你无需使用物理设备便可预览、开发和测试设计的Android应用程序。Android模拟器能够模拟除了接听和拨打电话外的所有移动设备上的典型功能和行为。Android模拟器提供了大量的导航和控制键,你可以通过鼠标或键盘点击这些按键来为你的应用程序产生事件。同时它还有一个屏幕用于显示Android自带应用程序和你自己的应用程序。为了便于模拟和测试应用程序,Android模拟器允许你的应用程序通过Android平台服务调用其他程序、访问网络、播放音频和视频、保存和传输数据、通知用户、渲染图像过渡和场景。Android模拟器同样具有强大的调试能力,例如能够记录内核输出的控制台、模拟程序中断(比如接受-1- 毕业设计短信或打入电话)、模拟数据通道中的延时效果和遗失。下面的章节将提供关于模拟器的详细信息,以及如何在开发应用程序中使用模拟器。1.4.2模拟器和真机的区别Android的模拟器功能很强,但是模拟器仍然只能尽量去模拟手机,有些手机的功能还是模拟不了,下面做一个简单的说明。(1)模拟器不支持呼叫来电和接听实际来电,但可以通过控制台模拟电话呼叫。(2)模拟器不支持USB连接。(3)模拟器不支持相机/视频捕捉。(4)模拟器不支持音频输入,但支持输出。(5)模拟器不支持拓展耳机。(6)模拟器不支持蓝牙。(7)模拟器不能确定连接状态。(8)模拟器不能确定电池电量水平和充电状态。(9)模拟器不能确定SD卡的插入和弹出。1.5研究的目的和主要内容1.5.1研究的目的题目要求研究并完成一个基于Andriod平台的网上购物商城,在此设计使用手机商城,用户可以通过Android系统手机登录该商城,而且可以进行查询和购买商品等功能,就如京东,当当等网站一样,提供用户对商品的一些简单的操作.此购物系统使得用户使用的时候自由度较高,并非非要通过电脑来进行购买商品,只需要有个Android系统的手机就可以无时无刻的进行购物了.不但解放了时间和空间的限制,也增加了购物的效率,和购物的乐趣.1.5.2研究的主要内容(1)用户可以进行注册并成为会员(2)用户可以通过用户名登录(3)用户可以对自己想要浏览的商品进行查询和搜索(4)用户可以对商品进行浏览(5)用户可以添加想要购买的商品进入购物车(6)用户也可以将已经添加到购物车的商品删除或修改(7)登录的用户可以对订单进行查询(8)管理员管理商品的基本信息-1- 毕业设计(9)管理员可以对该网站的商品进行添加或删除(10)管理员管理订单的基本信息1.6论文组织结构本论文的引言部分和第一章中阐述了基于Android平台的移动手机商城的当今概况,并介绍了手机网络购物在当前社会的发展潜力,以及程序设计的一些研究背景。并且对基于Android平台的移动手机商城研究的目的和主要内容进行了说明。本文其余部分的内容如下:第二章介绍了Java语言的特点、本程序的开发环境及其相关工具的原理和使用。第三章中介绍了手机网络商城程序的基本流程和框架。对手机商城基本框架等做了详细叙述。第四章主要介绍了手机网络商城设计的详细过程,还对其重要部分的编程和代码进行了分析和讲解。第五章中在Eclipse开发平台下,使用Andriod模拟器对该手机购物商城系统进行测试实现。第六章中回顾了基于Android平台的移动手机商城设计过程中的遇到的难题,总结了设计过程中得到的经验与启示。-1- 毕业设计2.基于Android平台的移动手机商城开发环境和相关技术介绍2.1开发环境及硬件需求Windowsxp较好的兼容性,内存资源占用少的特点是我选择作为本次开发的主系统的重要依据。考虑到机器的性能方面,在数据库的选择上,选用相对小型的Mysql5.0,更有利于系统的开发。Tomcat是一个轻量级应用服务器,占用系统资源少,扩展性好,性能稳定,是现在比较流行的Web应用服务器MyEclipseforSpring8.6集成了很多eclipse没有的插件,对于Web的开发有很好的帮助。EclipseIndigo3.7.2是开发Android系统的相对较好,稳定的开发工具。此次java开发环境沿用的是一直很熟悉的JDK1.6,在android方面用的是最先版本SDK。自身电脑完全可以支持本次系统的开发,硬件支持较好。2.2Java语言特点Java与C++语言相比,去掉了C++语言的复杂性和二义性的成分,增加了安全性和可移植性的成分。Java语言具有如下特点:简单性、面向对象、平台无关性、可移植性、解释性、髙性能、动态性、可靠性和安全性、多线程、分布式处理等。下面将介绍Java语言的主要特点2.3关于ECLIPSEEclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。虽然大多数用户很乐于将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。2.4数据库需求分析-1- 毕业设计基于功能需求中的各项功能,总结出数据库需要的主要有四张表。分别是:用户表,商品表,订单表。用户表需要包含用户昵称,密码,性别等较为详细的信息;商品表则需要包含商品名称,数量,价格等商品所应具备的基本信息;订单表需要包含订单编号,用户昵称,用户地址,订单状态等详细信息。2.5本章小结第二章介绍了Java语言的特点、本程序的开发环境及其相关工具的使用原理和使用方法。-1- 毕业设计3.系统概要设计3.1总体功能该系统分为前端的客户端和后端的管理端,前端也就是客户端主要包括用户的浏览商品,注册,登录,商品搜索以及购物,添加到购物车,订单等重要功能.后端主要是管理员和用户的登陆与管理员对商品的订单信息和商品信息的管理,在整个系统中各自有不同的功能和权限.系统实现的大致过程是客户端连接服务器,服务器链接数据库;客户端连接数据库是网络连接,基于TCP/IP连接。服务器是通过jdbc接口与数据库连接的客户端的主要使用对象是普通的注册后的会员用户,后端管理模块的使用对象是管理人员和用户系统的概要设计流程如图3-1所示用户注册登录客户端商品搜索购物系统数据库浏览后台管理购物车订单查询管理员管理员登录商品信息管理订单信息管理图3-1系统的概要设计流程图-1- 毕业设计3.2E-R图1.系统管理员主要管理用户,商品的添加和删除,订单,商品类型四个方面。2.用户主要包含了,ID,昵称,密码等属性。3.商品主要包含ID,名称,价格等属性。4.订单主要包含ID,订单状态等属性。5.商品类型主要包含ID,类型名称等属性。如下图3-2所示:用户昵称用户ID管理员用户时间商品订单管理管理管理密码电话等级手机号码性别余额商品ID规格价格图片数量描述商品名称用户姓名订单ID用户电话总价订单日期收货地址订单状态管理商品类型类型ID类型名mmm1111m-1- 毕业设计图3-2E-R图3.3初步设计方案3.3.1客户端的登录和注册客户端的登录和注册是指一个用户如果要进行购买等商品时必须要有会员号,这是就需要注册手机商城是自己成为商城的会员,必须要填写用户自己想要在网站上使用的用户名还有密码,并且还要再次输入密码使得密码是确定唯一的。还要写入自己的手机号以便将来忘记密码时可以及时地找回并且还要填入性别。以上信息填写好后就可以生成一个属于用户个人的该网站的会员号。记住会员号和其对应的密码通过用户名和密码的填写可以进行登陆,若密码或用户名中出现与注册时不相同的信息则不能够登陆成功,将提示从新登陆。若用户名和密码填写正确后的用户可以登陆成功。通过挑选商品添加到购物车,方便下订单和之后的操作。客户端登陆注册流程如图3-3所示:手机主界面登陆/注册注册界面登陆界面NoyesNo验证验证yes注册用户的主界面图3-3客户端的登陆与注册流程图-1- 毕业设计3.3.2客户端的浏览功能浏览功能是当一个用户进行注册和登陆成功后可以看到手机商城的主界面,主界面中具有五大类商品的按钮,其中有服装/服饰,电视机/显示器,手机/数码,皮包/包包,还有运动鞋等商品。点击5个图片按钮的操作程序按钮,点击后即可以显示该类商品的具体有哪些商品的信息。使得用户进行浏览和选购。客户端的浏览功能图如3-4所示手机主界面手机电脑照相机其他图3-4浏览功能的流程图3.3.3购物车功能购物车功能是对注册完成的手机商城的会员可以进行登陆,登陆成功之后的用户可以对自己中意的商品添加到购物车中,若用户还需要继续购物则可以回到商品区继续进行购物从而再把自己喜欢的商品添加到购物车,若购物完成后则可以在购物车中进行管理,可以对自己选入购物车的商品进行筛选,最终将所选择的商品进行购买或者将购买的商品下订单等.客户端购物车功能如图3-5所示客户端本地请求,读取本地文件,造型为对象点击购物车Tab将列表中元素在客户端显示点击结算,将数据写成字节流,发送至服务器服务器读取数据,写入数据库-1- 毕业设计图3-5客户端购物车功能图3.3.4订单功能订单功能是对注册完成后的手机商城的会员可以进行对所选择的商品从购物车中下订单进行购买。订单界面中显示用户自己的账户余额,还有用户所要下订单的商品的价格,若要下订单必须要正确地填写用户的家庭住址以及联系电话,以便送货人员可以快速而又准确的配送;并且还要输入注册时填写的密码,若填写正确则下订单成功,若填写不正确则要继续填写正确后方可完成购买。订单系统的流程图如图3-6所示手机主界面商品浏览no订单用户登录状态yes接受订单图3-6订单功能的流程图3.3.5服务器管理功能服务器管理功能是指手机商城的网站管理员通过用户名以及密码的正确填写后登录到后台主页面,在商品管理的商品列表中通过数据库可以对产品的具体信息进行查询,修改,添加以及删除。管理员通过对商品信息的编辑可以添加商品。例如管理员要对打折期间的促销商品进行修改价格等操作或新上架的商品进行编辑从而使得普通用户可以在客户端浏览其信息。-1- 毕业设计管理员在订单管理中可以看到用户下的订单,并且对客户的订单进行完成。服务器后台的大致流程如3-7所示管理员登录数据库管理删除增加修改查询数据库图3-7服务管理流程图3.4系统流程概述(1)用户如果要浏览网站得时后首先应该看到的就是网站首页,在首页用户可以浏览近期发布或更新的最新商品,还有网站的热门产品和该网站推荐的产品,而且还可以对已知的商品的信息进行搜索。(2)如果用户想要购买某些商品的时候用户需要注册成为该网站的会员。(3)如果用户浏览完商品的具体信息后,还可以把自己想买的商品放入购物车,也可以随时增加和删除或修改购物车里已添加的商品。(4)如果购物车里的商品用户已经满意就可以去下单。(5)相关的程序模块会将用户所填写的所有信息内容都记录在数据库内,使网上商城的管理人员可以准确和快速的核对信息内容,以便发送货物(6)若用户已经确认收到了购买的产品后整个购买的过程就结束了。(7)管理员在电子商城的后台管理方面还需要添加,修改,删除商品,同时要对商品进行分类和订单处理都是需要后台的管理人员来操作的。3.5系统框架图(1)后台管理框图如图3-8所示-1- 毕业设计后台管理订单管理会员管理商品管理删除添加查找删除添加图3-8后台管理流程(2)用户端框图如图3-9所示用户订购商品查找商品浏览商品注册登录图3-9用户端框图-1- 毕业设计3.6数据库设计本系统采用的是Mysql数据库,为了将在系统页面中显示的动态数据存放在后台数据库中,便于修改、更新和信息隐藏,因此,将E-R图转换成关系模型,即在数据库中建立实体关系表。(1)用户表用户表具有用户昵称、密码、电话、等基本信息。设置uid为主键,主键的生成策略采用自动生成方式。用户的属性图如图3-10所示:用户用户ID密码用户昵称等级性别余额手机号码图3-10用户属性图根据图3-10可定义出用户的数据表user,用户表用来保存所有用户的信息。结构如表3-11:表3-11用户表列名数据类型说明useridIntprimarykeyauto_increment用户IDusernamevarchar用户昵称pwdvarchar密码phonevarchar用户手机号码Power1varchar等级sexvarchar性别Yu_eInt余额(2)商品表商品表具有商品名称、数量、价格、图片等基本信息。设置pid为主键,-1- 毕业设计主键的生成策略采用自动生成方式。商品的属性图如图3-12所示:商品商品ID数量商品名称规格价格描述图片图3-12商品属性图根据图3-12可定义出商品的数据表product,商品表用来保存所有商品的信息。结构如表3-13:表3-13商品表列名数据类型说明idIntprimarykeyauto_increment商品IDNamevarchar名称fujiavarchar规格jiaqianInt价格shuliangvarchar数量tupianvarchar图片miaoshuvarchar描述(1)订单表订单表具有用户昵称、用户姓名、商品名称、电话、地址、订单日期、订单处理状态等基本信息。设置sid为主键,主键的生成策略采用自动生成方式。订单的属性图如图3-14所示:-1- 毕业设计用户订单ID用户姓名时间总价收获地址订单明细电话订单处理状态图3-14订单属性图根据图3-14可定义出订单的数据表salesorder,订单表用来保存所有订单的信息。结构如表3-15:表3-15订单表列名数据类型说明IdIntprimarykeyauto_increment订单IDshijianvarchar订单时间kewuvarchar客户shouhuodizhivarchar收获地址Jin_eint总价mingxivarchar订单明细zhuangtaivarchar状态phonevarchar电话3.7本章小结第三章中介绍了程序的基本流程和框架。对手机商城基本框架等做了详细叙述。具体算法的代码实现和详细流程将在下章介绍。-1- 毕业设计4.课题详细设计4.1总体流程概要设计用户通过登录进入系统,可以进行修改自己的信息,浏览、订购商品,查看、取消订单等操作。通过管理员的权限可以进入后台管理系统分别对商品信息管理、订单信息管理、进行添加、删除、修改和查看等操作。系统工作流程图如图4-1所示。管理员用户登入后台登入客户端订单管理商品管理注册、登录浏览商品数据库购物车图4-1系统工作流程图4.2Android系统客户端逻辑结构设计及其内容编码4.2.1客户端登陆功能内容调用HttpClient这个类,实现与后台数据库的连接。运用sql语句查询数据库中用户的信息,与登入界面中输入的信息相匹配,如果匹配错误,则提示错误,如匹配正确,便可实例化一个Intent对象,并调用其方法,实现登录界面的成功跳转。如图4-2所示:-1- 毕业设计客户端将输入内容以字节流发送至客户端服务器输入用户名,密码用户名,密码判断TrueFalse客户端接收数据,做相应跳转图4-2客户端登陆流程图登陆功能内容编码的翻译解释packagecom.shopping;--这个类放在了com.shopping这个文件夹下面importandroid.app.Activity;--引入Activity这个类,因为之后会用到这个类中的一些方法importandroid.content.Intent;--Android系统起步开机importandroid.content.SharedPreferences;--SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态importandroid.content.SharedPreferences.Editor;--设置Android信息的保存和读取importandroid.os.Bundle;--引入Bundle这个类,Android使用Bundle进行数据传递分析importandroid.os.StrictMode;--规定android的模式importandroid.preference.PreferenceManager;--引入PreferenceManager类,用来保存简单的数据类型importandroid.view.View;Android.view.view--应该是android的封装类,引入后就可以用view中的方法了importandroid.view.View.OnClickListener;--引入onClickListener类,是一种处理的是点击事件的接口。importandroid.widget.Button;--引入widget.Button这个类,就可以使用该类中按钮的一些使用方法importandroid.widget.EditText;--引入widget.EditText这个类,即可以在下面程序中使用编辑文本框中的方法了importandroid.widget.Toast;--引入widget.Toast这个类,作用是实现在界面上弹出一个悬浮提示框importcom.http.httpclient;--引入HttpClient这个类,HttpClient是ApacheJakartaCommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,Java应用程序需要直接通过HTTP协议来访问网络资源。-1- 毕业设计publicclassloginextendsActivity{privateButtonb1;--定义按钮b1privateButtonb2;--定义按钮b2privateEditTexte1;--定义一个编辑文本框e1privateEditTexte2;--定义一个编辑文本框e2SharedPreferencessh;--项目中需要对用户输入的信息进行存储,然后在后续程序中读取使用,利用到了SharedPreferences类。Editore;--编辑器@OverridepublicvoidonCreate(BundlesavedInstanceState)--这是Activity建立的时候一定会调用的onCreate()方法{super.onCreate(savedInstanceState);--继承onCreate()方法setContentView(R.layout.login);--载入登录页面这个视图internet();sh=PreferenceManager.getDefaultSharedPreferences(this);--拿到控件在SharedPreferences中存储的数值e=sh.edit();b1=(Button)findViewById(R.id.login_button1);--从R文件下调出登录页面的button1的按钮符b2=(Button)findViewById(R.id.login_button2);--从R文件下调出登录页面的button2的按钮符e1=(EditText)findViewById(R.id.login_editText1);--从R文件下调出登录页面editText1编辑文本框e2=(EditText)findViewById(R.id.login_editText2);--从R文件下调出登录页面editText2编辑文本框这段代码为用户“登录”操作代码会出现4种结果:1、显示“用户名不存在”2、登录成功并显示用户信息;包括1、用户名;2、余额3、显示“密码错误”-1- 毕业设计4、如果没填写用户名或密码则显示“您是不是有东西没填啊”b1.setOnClickListener(newOnClickListener(){--设置一个登录按钮publicvoidonClick(Viewv){--点击这个“登录”按钮并执行该按钮下的操作if(!e1.getText().toString().equals("")||!e2.getText().toString().equals("")){httpclienthc=newhttpclient("l=1&sql=select@*@from@user1@where@username='"+e1.getText().toString()+"';");//"+e1.getText().toString()+"--访问网络资源,用户通过填写用户名,以及登录密码进行登录操作,后台将该用户的用户名及密码进行验证操作Stringstr=hc.getshuju();--得到数据信息//Log.d("Jersey",str);--输出数据str,且数据颜色为蓝色if(str.equals("")){Toast.makeText(login.this,"用户名不存在!",Toast.LENGTH_LONG).show();--如果str为空集,弹出一个文本框显示信息“用户名不存在”return;--返回结果}else{String[]str1=str.split(",");--将得到的信息以,分隔开if(e2.getText().toString().equals(str1[2])){e.putString("id",str1[0]);e.putString("name",str1[1]);e.putString("yu_e",str1[6]);e.commit();--当str不为空集,可能出现的情况1:则显示用户的id号码,名字,余额信息,并将信息以“,”分隔开Inteni=newIntent(login.this,ShoppingActivity.class);--切换到新的界面startActivity(i);--执行跳转到新界面的操作login.this.finish();--登录操作完成}else{Toast.makeText(login.this,"密码错误!",Toast.LENGTH_LONG).show();--当str不为空集,可能出现的情况2:弹出一个文本框,显示“密码错误”}}}else{Toast.makeText(login.this,"您是不是有点东西没填啊!",Toast.LENGTH_LONG).show();-1- 毕业设计--当str不为空集时,可能出现的情况3:弹出一个文本框显示“您是不是有点东西没填啊”即可能是用户名没填,或者登录密码没有填写}}});如果未注册则点击注册按钮先进行注册b2.setOnClickListener(newOnClickListener(){--设立一个注册按钮publicvoidonClick(Viewv){--点击“注册”按钮,并执行该按钮下的操作Intenti=newIntent(login.this,zhuce.class);--切换到注册界面startActivity(i);--执行跳转新界面的操作login.this.finish();--完成操作}});}这段程序是用来实现连接网络的功能;android系统固定模块程序privatevoidinternet(){StrictMode.setThreadPolicy(newStrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());StrictMode.setVmPolicy(newStrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath().build());}}4.2.2客户端注册功能内容同样是调用HttpClient这个类,连接到数据库,将输入的信息插入到后台数据库中,两次密码输入一致便可实现注册,如不一样,需重新输入。信息输入正确后实例化Intent对象,调用其方法,并跳转到登入界面。如图4-3所示:-1- 毕业设计密码判断客户端将输入内容以字节流发送至客户端服务器输入注册信息truefalse客户端接收数据,做相应的跳转图4-3客户端注册流程图注册功能内容编码和部分解释packagecom.shopping;--这个类放在了com.shopping这个文件夹下面importandroid.app.Activity;--引入Activity这个类,因为之后会用到这个类中的一些方法importandroid.content.Intent;--引入Intent类,用于Android系统起步开机操作importandroid.os.Bundle;--引入Bundle这个类,Android使用Bundle进行数据传递分析importandroid.os.StrictMode;--规定android的模式importandroid.view.View;--android.view.view应该是android的封装类,引入后就可以用view中的方法了importandroid.view.View.OnClickListener;--引入onClickListener类,是一种处理的是点击事件的接口。importandroid.widget.Button;--引入widget.Button这个类,就可以使用该类中按钮的一些使用方法importandroid.widget.EditText;--引入widget.EditText这个类,即可以在下面程序中使用编辑文本框中的方法了importandroid.widget.RadioGroup;--调用可以给用户提供多选一机制的实现方法importandroid.widget.Toast;--引入widget.Toast这个类,作用是实现在界面上弹出一个悬浮提示框importcom.http.httpclient;--引入HttpClient这个类,HttpClient是ApacheJakartaCommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,Java应用程序需要直接通过HTTP协议来访问网络资源。publicclasszhuceextendsActivity{-1- 毕业设计privateButtonb1;--定义按钮b1privateEditTexte1;--定义一个编辑文本框e1privateEditTexte2;--定义一个编辑文本框e2privateEditTexte3;--定义一个编辑文本框e3privateEditTexte4;--定义一个编辑文本框e4privateRadioGroupr1;--定义一个多选一机制菜单r1privateStringsex;--定义性别参量@OverridepublicvoidonCreate(BundlesavedInstanceState){--这是Activity建立的时候一定会调用的onCreate()方法super.onCreate(savedInstanceState);--继承这个方法setContentView(R.layout.zhuce);--载入zhuce(注册页面)这个视图internet();--连接网络b1=(Button)findViewById(R.id.zhuce_button1);--从R文件下调出注册页面的button1按钮e1=(EditText)findViewById(R.id.zhuce_editText1);--从R文件调出注册页面的editText1编辑文本框1e2=(EditText)findViewById(R.id.zhuce_editText2);--从R文件调出注册页面的editText1编辑文本框1e3=(EditText)findViewById(R.id.zhuce_editText3);--从R文件调出注册页面的editText1编辑文本框1e4=(EditText)findViewById(R.id.zhuce_editText4);--从R文件调出注册页面的editText1编辑文本框1r1=(RadioGroup)findViewById(R.id.radioGroup1);--从R文件调出注册页面的radioGroup1多选一机制菜单r1设立一个注册按钮,点击该页面上的注册按钮后可进入页面填写注册信息------可能的结果:1、注册成功;2、注册失败原因:两次密码输入不一致;3、注册失败原因:您是不是有东西没填啊b1.setOnClickListener(newOnClickListener(){--设立一个可点击的注册按钮publicvoidonClick(Viewv){--点击这个“注册”按钮,并执行该按钮下的操作if(!e1.getText().toString().equals("")&&!e2.getText().toString().equals("")&&!e3.getText().toString().equals("")&&!e4.getText().toString().equals("")){-1- 毕业设计f(e2.getText().toString().equals(e3.getText().toString())){--点击注册按钮后,进入注册页面,填写该页面上需要填写的信息内容if(r1.getCheckedRadioButtonId()==R.id.radio0)sex="男";elsesex="女";--该页中有二选一按钮,性别可以选择“男”或者“女”其中一个选项httpclienthc=newhttpclient("l=2&sql=insert@into@user1(username,pwd,phone,power1,sex)@values('"+e1.getText().toString()+"','"+e2.getText().toString()+"','"+e4.getText().toString()+"',2,'"+sex+"');"--访问网络资源,将注册用户的名字,电话,性别等信息加入到数据库中Stringstr=hc.getshuju();--得到到数据并放到str中if(str.equals("1")){--如果str=1Toast.makeText(zhuce.this,"注册成功!",Toast.LENGTH_LONG).show();--注册操作成功并弹出文本框显示提示信息为“注册成功”Intenti=newIntent(zhuce.this,login.class);--切换到新的界面startActivity(i);--执行跳转新界面的操作zhuce.this.finish();--完成注册操作}}else{当str不等于1时会出现下面两种情况Toast.makeText(zhuce.this,"两次密码没填对!",Toast.LENGTH_LONG).show();--情况1:注册时需要填写两次密码,两次密码填写必须一致,如果不一致则弹出文本框显示提示信息为“两次密码没填对”}}else{Toast.makeText(zhuce.this,"您是不是有点东西没填啊!",Toast.LENGTH_LONG).show();--情况2:当注册信息有的项目没有填写时,则弹出文本框显示提示信息为“您是不是有点东西没填啊!”}}});}-1- 毕业设计这段程序是用来实现连接网络的(android固定模块程序)privatevoidinternet(){StrictMode.setThreadPolicy(newStrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());StrictMode.setVmPolicy(newStrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath().build());}}4.2.3客户端商品和搜索功能内容会员用户在客户端选择具体商品显示商品详细信息选择数量,加入购物车,并购买图4-4客户端商品搜索流程图商品搜索的sql语句在ListInfo类中,调用这个类的方法,实例一个List>集合,将搜索出来的商品保存在这个集合中,实例SimpleAdapter对象,List集合中的商品,以列表的形式显示在页面中。1.商品搜索功能内容编码和部分解释packagecom.shopping;--这个类放在了com.shopping这个文件夹下面importjava.util.HashMap;--引入util.HashMap这个类,可以调用HashMap中的“链接”方法importjava.util.List;--引入util.List这个类,可以使用list进行批量数据序列操作importandroid.app.ListActivity;--引入ListActivity这个类,该类是绑定到一个数据源,用来显示这一串数据的importandroid.content.Intent;--引入Inrent类,用来实现Android系统起步开机操作importandroid.os.Bundle;--引入Bundle这个类,Android使用Bundle进行数据传递分-1- 毕业设计析importandroid.view.View;--android.view.view应该是android的封装类,引入后就可以用view中的方法了importandroid.view.View.OnClickListener;--引入onClickListener类,是一种处理的是点击事件的接口。importandroid.widget.ArrayAdapter;--引入widget.ArrayAdapter,可以使用将数据放到一个数据以便使用的方法importandroid.widget.Button;--引入widget.Button这个类,就可以使用该类中按钮的一些使用方法importandroid.widget.EditText;--引入widget.EditText这个类,即可以在下面程序中使用编辑文本框中的方法了importandroid.widget.ListView;--引入widget.ListView这个类,该类的作用是可以实现以列表的形式展示具体内容,并且能够根据数据的长度自适应显示importandroid.widget.SimpleAdapter;--引入Simple.Adapter这个类,可以将静态数据映射到XML文件中定义好的视图importandroid.widget.Spinner;--引入Spinner类,用来实现Spinner就是下拉菜单的操作importandroid.widget.TextView;--引入TextView类,该类具有用来显文本框的作用importandroid.widget.Toast;--引入widget.Toast这个类,作用是实现在界面上弹出一个悬浮提示框importcom.adapter.ImageSimpleAdapter;--引入ImageSimpleAdapter类,可以实现将静态图片数据映射到XML文件中定义好的视图importcom.list.listinfo;--引入listinfo类,之后会用到该类中的一些方法publicclasssousuoextendsListActivity{privatestaticfinalString[]m={"服装","包包","电视","运动鞋","手机"};--定义5个字符串分别是:“服装”、“包包”、“电视”、“运动鞋”、“手机”privateEditTexte1;--定义一个编辑文本框e1privateButtonb1;--定义一个按钮b1privateSpinnerspinner;--定义一个下拉菜单privateArrayAdapteradapter;--定义一个数据和视图之间的桥梁,数据在adapter中做处理,然后显示到视图上面@Override-1- 毕业设计从R.java文件中调出sousuo页面所需要的文本框TextView:1、name名字;2、miaoshu描述;3、shuliang数量;4、lujing路径;5、jiage价格;6、id;7:biaoming表明protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){--是ListView对应的响应事件,一共有四个参数:ListView就是用户单击项所在的列表;View就是我们单击项的视图;Position单击在列表的位置;Id单击项的idTextViewt1=(TextView)v.findViewById(R.id.text1);--从R文件中调出文本框t1TextViewt2=(TextView)v.findViewById(R.id.yin_miaoshu);--从R文件中调出描述商品的文本框t2TextViewt3=(TextView)v.findViewById(R.id.yin_shuliang);--从R文件中调出显示商品数量的文本框t3TextViewt6=(TextView)v.findViewById(R.id.yin_id);--从R文件中调出显示商品id的文本框t6TextViewt7=(TextView)v.findViewById(R.id.yin_biaoming);--从R文件中调出显示表明信息的文本框t7TextViewt4=(TextView)v.findViewById(R.id.yin_lujing);--从R文件中调出显示商品路径信息的文本框t4TextViewt5=(TextView)v.findViewById(R.id.text3);--从R文件中调出文本框t5Intenti=newIntent(sousuo.this,shangpin.class);--切换到搜索后的新界面i.putExtra("name",t1.getText());--文本框t1中显示搜索到的商品的名字i.putExtra("miaoshu",t2.getText());--文本框t2显示搜索的商品的描述信息i.putExtra("shuliang",t3.getText());--文本框t3显示搜索到的商品的库存数量i.putExtra("lujing",t4.getText().toString().substring(8));--文本框t4,显示搜索到的商品的路径信息i.putExtra("jiage",t5.getText());--文本框t5显示搜索的商品的价格信息i.putExtra("id",t6.getText());--文本框t6显示搜索到的商品的idi.putExtra("biaoming",t7.getText());--文本框t7显示搜索到的商品的表明信息startActivity(i);--执行跳转新界面的操作}从R.java文件中调出sousuo页面所需的EditText编辑文本框(可输入搜索信息的文本框),搜索button按钮。并按照R.layout中对sousuo页面的布局方式进行布局@Override-1- 毕业设计protectedvoidonCreate(BundlesavedInstanceState){--这是Activity建立的时候一定会调用的onCreate()方法//TODOAuto-generatedmethodstub--自动生成该语句super.onCreate(savedInstanceState);--继承这个方法setContentView(R.layout.sousuo);--载入登录页面这个视图e1=(EditText)findViewById(R.id.sousuo_editText1);--调出R文件下搜索页面所需的编辑文本框e1b1=(Button)findViewById(R.id.sousuo_button1);--调出R文件下搜索页面所需的按钮b1搜索:1、包包;2、服装;3、电视;4、运动鞋;5、手机的搜索程序------搜索结果:1、没有找到该商品;2、找到该商品并且按照预先设定好的布局方式将商品信息显示在页面中b1.setOnClickListener(newOnClickListener(){--设立一个“搜索”按钮publicvoidonClick(Viewv){--点击“搜索”按钮,并执行该按钮下的操作Strings=spinner.getSelectedItem().toString();--返回一个字符串Strings1=null;--定义s1为空集if(s.equals("包包"))--当s等于“包包”时s1="baobao";--s1的集合即为“包包”类所有商品elseif(s.equals("服装"))--如果s等于“服装”时s1="fuzhuang";--s1的集合即为“服装”类所有的商品elseif(s.equals("电视"))--如果s等于“电视”s1="dianshi";--s1的集合即为“电视”类所有的商品elseif(s.equals("运动鞋"))--如果s等于“运动鞋”s1="xiezi";--s1的集合即为“鞋子”类所有的商品elseif(s.equals("手机"))--如果s等于“手机”s1="shouji";--s1的集合即为“手机”类所有的商品Strings2=e1.getText().toString();listinfol=newlistinfo(s1,s2);List>list=l.list1();--在编辑文本框e1中输入要搜索的商品名称if(list==null){--如果列表list等于空集toast("没有找到和["+s2+"]相关的商品");-1- 毕业设计--则弹出文本框显示信息为“没有找到和搜索内容相关的商品”}else{SimpleAdaptersa=newImageSimpleAdapter(sousuo.this,list,R.layout.show_list_item,newString[]{--如果list不等于空集则找到与搜索内容相关的商品,布置搜索到的商品展示页面"product_item_image","text1","text2","text3","list_idex","yin_miaoshu",yin_shuliang","yin_lujing"},newint[]{--文本框1显示的是商品的描述信息,文本框2显示的是商品的数量信息,文本框3显示的是商品的路径信息R.id.product_item_image,R.id.text1,R.id.text2,R.id.text3,R.id.list_idex,R.id.yin_miaoshu,R.id.yin_shuliang,R.id.yin_lujing});setListAdapter(sa);--设立文本框1、文本框2即文本框3在搜索页面上的视图方式}}});spinner=(Spinner)findViewById(R.id.sousuo_spinner1);--从R文件中调出搜索页面所用的下拉菜单1adapte=newArrayAdapter(this,ndroid.R.layout.simple_spinner_item,m);--设置该下拉菜单的视图方式adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);--调用setDropDownViewResourc中的方法,以XML的方式定义下拉菜单要显示的模样spinner.setAdapter(adapter);--将adapter添加到下拉菜单spinner中去}publicvoidtoast(Stringstr){Toast.makeText(sousuo.this,str,Toast.LENGTH_SHORT).show();--显示提示信息文本框}}2.数据库文件中商品信息编码和部分解释-1- 毕业设计下面这段代码主要是设置数据库文件中商品素材信息packagecom.SQL;--这个类放在了com.SQL这个文件夹下面publicclassshangpinBean{publicStringgetKucun(){returnkucun;--这里是定义了一个string变量Kucun名字,并为该变量提供了获取方式。这样的定义方式使得其他的地方只能获取Kucun的值而不能再设置Kucun的值}publicvoidsetKucun(Stringkucun){this.kucun=kucun;--setKucun就是给Kucun设置一个值,也就是通过外部调用该方法给商品的对象中的Kucun赋值,所以外部方法肯定需要传入一个String作为参数。而this.kucun=kucun;便是赋值的部分,赋值之后不需要有返回值。}publicstaticfinalStringID="_id";--定义一个字符串常量IDpublicstaticfinalStringNAME="name";--定义一个字符串常NAMEpublicstaticfinalStringSHULIANG="shuliang";--定义一个字符串常量SHULIANGpublicstaticfinalStringJIAGE="jiage";--定义一个字符串常量JIAGEpublicstaticfinalStringKUCUN="kucun";--定义一个字符串常量KUCUNpublicstaticfinalStringSHANGID="shangid";--定义一个字符串常量SHANGIDpublicstaticfinalStringBIAOMING="biaoming";--定义一个字符串常量BIAOMINGprivateStringid;--定义一个字符串参量---idprivateStringname;--定义一个字符串参量---名字privateStringshuliang;--定义一个字符串参量---数量privateStringjiage;--定义一个字符串参量---价格privateStringkucun;--定义一个字符串参量库存publicStringgetId(){returnid;--这里是定义了一个string变量id,并为该变量提供了获取方式。这样的定义方式使得其他的地方只能获取id的值而不能再设置id的值}publicvoidsetId(Stringid){this.id=id;-1- 毕业设计--setId就是给id设置一个值,也就是通过外部调用该方法给商品的对象中的id号码赋值,所以外部方法肯定需要传入一个String作为参数。而this.id=id;便是赋值的部分,赋值之后不需要有返回值。}publicStringgetName(){returnname;--这里是定义了一个string变量Name名字,并为该变量提供了获取方式。这样的定义方式使得其他的地方只能获取Name的值而不能再设置Nane的值}publicvoidsetName(Stringname){this.name=name;}--setName就是给name设置一个值,也就是通过外部调用该方法给商品的对象中的name赋值,所以外部方法肯定需要传入一个String作为参数。而this.name=name;便是赋值的部分,赋值之后不需要有返回值。publicStringgetShuliang(){returnshuliang;--这里是定义了一个string变量Shuangliang数量,并为该变量提供了获取方式。这样的定义方式使得其他的地方只能获取数量的值而不能再设置数量的值}publicvoidsetShuliang(Stringshuliang){this.shuliang=shuliang;--setShuliang就是给shuliang设置一个值,也就是通过外部调用该方法给商品的对象中的shuliang赋值,所以外部方法肯定需要传入一个String作为参数。而this.shuliang=shuliang;便是赋值的部分,赋值之后不需要有返回值。}publicStringgetJiage(){returnjiage;--这里是定义了一个string变量Jiage价格,并为该变量提供了获取方式。这样的定义方式使得其他的地方只能获取价格的值而不能再设置价格的值}publicvoidsetJiage(Stringjiage){this.jiage=jiage;-1- 毕业设计--setJiage就是给jiage设置一个值,也就是通过外部调用该方法给商品的对象中的jiage赋值,所以外部方法肯定需要传入一个String作为参数。而this.jiage=jiage;便是赋值的部分,赋值之后不需要有返回值。}}3.设置4个menu菜单按钮和服装;电视;手机;包包;鞋子这五个图片按钮编码和部分解释packagecom.shopping;--这个类放在了com.shopping这个文件夹下面importandroid.app.Activity;--引入Activity这个类,因为之后会用到这个类中的一些方法importandroid.app.AlertDialog;--引入AlertDialog这个类,可以引用该类中对话框的方法importandroid.content.DialogInterface;--引入DialogInterface这个类,可以引用该类中加入对话框的操作方法importandroid.content.Intent;--引入Intent类,用来进行Android系统起步开机操作importandroid.os.Bundle;--Android使用Bundle进行数据传递分析importandroid.os.StrictMode;--规定android的模式importandroid.view.Menu;--引入Menu类,作用是会用到该类中动态菜单的操作方法importandroid.view.MenuItem;--引入MenuItem类,一个在Menu控件中显示的菜单项的方法importandroid.view.View;--android.view.view应该是android的封装类,引入后就可以用view中的方法了importandroid.view.View.OnClickListener;--引入onClickListener类,是一种处理的是点击事件的接口。importandroid.widget.ImageButton;--引入widget.ImageButton这个类,就可以使用该类中图片按钮的一些使用方法importandroid.widget.Toast;--引入widget.Toast这个类,作用是实现在界面上弹出一个悬浮提示框importcom.list.listinfo;--引入listinfo类,之后会用到该类中的一些方法publicclassShoppingActivityextendsActivity{退出商城的程序:出现一个对话框:1、点击确定按钮即可退出商城-1- 毕业设计2、点击取消按钮即继续购物@Overridepublicvoidfinish(){AlertDialog.Builderdialog02=newAlertDialog.Builder(ShoppingActivity.this);--创建一个对话框dialog02.setTitle("提示");--建立对话框标题显示“提示”dialog02.setIcon(R.drawable.ic_launcher);--为这个对话框设置图标,图标从R文件中调用dialog02.setMessage("确定要退出网上商城?");--对话框中的内容显示为“确定要退出网上商城?”的语句dialog02.setPositiveButton("确定",newDialogInterface.OnClickListener(){--设立一个“确定”按钮publicvoidonClick(DialogInterfacedialoginterface,intwhich){--点击该“确定”按钮,并执行该按钮下的操作finish1();--完成该操作}});dialog02.setNegativeButton("取消",newDialogInterface.OnClickListener(){--设立一个“取消”按钮publicvoidonClick(DialogInterfacedialoginterface,intwhich){--点击“取消”按钮,并执行该按钮下的操作return;}});dialog02.create().show();--显示这个对话框}一、设置4个menu菜单按钮1、UPDATE购物车;2、ABOUT关于;3、GEREN个人;4、EXIT退出四个按钮;二、并从R.java文件下调出:1、服装;2、电视;3、手机;4、包包;5、鞋子这五个图片按钮三、并按照R.layout中对于main页面即主页面的布局进行布局-1- 毕业设计privatestaticfinalintUPDATE=1;--定义UPDATE的值为1privatestaticfinalintABOUT=2;--定义ABOUT的值为2privatestaticfinalintGEREN=3;--定义GEREN的值为3privatestaticfinalintEXIT=4;--定义EXIT等于的值为4privateImageButtonImageButton1;--定义一个图片按钮1privateImageButtonImageButton2;--定义一个图片按钮2privateImageButtonImageButton3;--定义一个图片按钮3privateImageButtonImageButton4;--定义一个图片按钮4privateImageButtonImageButton5;--定义一个图片按钮5publicvoidonCreate(BundlesavedInstanceState){--这是Activity建立的时候一定会调用的onCreate()方法super.onCreate(savedInstanceState);--继承该方法setContentView(R.layout.main);--载入购物商城的主页面这个视图//internet();//4.0兼容//获得控件ImageButton1=(ImageButton)findViewById(R.id.imageButton1);--从R文件中调出图片按钮1ImageButton2=(ImageButton)findViewById(R.id.imageButton2);--从R文件中调出图片按钮2ImageButton3=(ImageButton)findViewById(R.id.imageButton3);--从R文件中调出图片按钮3ImageButton4=(ImageButton)findViewById(R.id.imageButton4);--从R文件中调出图片按钮4ImageButton5=(ImageButton)findViewById(R.id.imageButton5);--从R文件中调出图片按钮5//绑定控件的监听器ImageButton1.setOnClickListener(newibocl1());--设置图片按钮1ImageButton2.setOnClickListener(newibocl2());--设置图片按钮2ImageButton3.setOnClickListener(newibocl3());--设置图片按钮3ImageButton4.setOnClickListener(newibocl4());--设置图片按钮4ImageButton5.setOnClickListener(newibocl5());--设置图片按钮5}-1- 毕业设计publicbooleanonCreateOptionsMenu(Menumenu){--初始化选项菜单的操作//设置menu按钮menu.add(0,UPDATE,1,R.string.gouwu);--设置购物菜单按钮menu.add(0,GEREN,2,R.string.geren);--设置个人菜单按钮menu.add(1,ABOUT,3,R.string.about);--设置关于菜单按钮menu.add(1,EXIT,4,R.string.exit);--设置退出菜单按钮returnsuper.onCreateOptionsMenu(menu);}--创建Menu菜单的项目publicbooleanonOptionsItemSelected(MenuItemitem){--处理菜单被选择运行后的事件处理操作//点击购物按钮if(item.getItemId()==UPDATE){--如果点击的是购物按钮Intenti=newIntent(ShoppingActivity.this,car.class);--切换到购物按钮下新的界面startActivity(i);--执行调转到新界面的操作}//点击关于按钮elseif(item.getItemId()==ABOUT){--点击“关于”按钮,并执行该按钮下的操作}//点击个人按钮elseif(item.getItemId()==GEREN){--点击“个人”按钮,并执行该按钮下的操作Intenti=newIntent(ShoppingActivity.this,geren.class);--切换到个人按钮下的界面startActivity(i);--执行跳转新界面的操作}//点击退出按钮elseif(item.getItemId()==EXIT){--点击“退出”按钮this.finish();--完成购物操作}returnsuper.onOptionsItemSelected(item);--返回menu菜单页面}//服装classibocl1implementsOnClickListener{--点击手机商城主页面上服装图片按钮publicvoidonClick(Viewv){--点击“服装”的图片按钮,并执行该按钮下的操作-1- 毕业设计listinfol=newlistinfo("fuzhuang");l.list1();--以列表形式显示服装类商品信息Intenti=newIntent(ShoppingActivity.this,show.class);--跳转到点击服装按钮之后的新界面i.putExtra("show","fuzhuang");--显示所有服装类商品startActivityForResult(i,0);--回传服装类商品的数据}}//电视classibocl2implementsOnClickListener{--点击手机购物商城主页面上的电视图片按钮publicvoidonClick(Viewv){--点击“电视”的图片按钮,并执行该按钮下的操作Intenti=newIntent(ShoppingActivity.this,show.class);--跳转到点击电视图片按钮之后的新界面i.putExtra("show","dianshi");--显示所有电视类商品startActivityForResult(i,0);--回传所有电视类商品的数据}}//手机classibocl3implementsOnClickListener{--点击手机购物商城主页面上的手机图片按钮publicvoidonClick(Viewv){--点击“手机”图片按钮,并执行该按钮下的操作Intenti=newIntent(ShoppingActivity.this,show.class);--跳转到点击手机图片按钮之后的新界面i.putExtra("show","shouji");--显示所有手机类商品startActivityForResult(i,0);--回传所有手机类商品的数据}}//包包classibocl4implementsOnClickListener{--点击手机购物商城主页面上的包包图片按钮publicvoidonClick(Viewv){-1- 毕业设计--点击“包包”图片按钮,并执行该按钮下的操作Intenti=newIntent(ShoppingActivity.this,show.class);--跳转到点击包包图片按钮之后的新界面i.putExtra("show","baobao");--显示所有包包类商品startActivityForResult(i,0);--回传所有包包类商品的数据}}//鞋子classibocl5implementsOnClickListener{--点击手机购物商城主页面上的鞋子图片按钮publicvoidonClick(Viewv){--点击“鞋子”图片按钮,并执行该按钮下的操作Intenti=newIntent(ShoppingActivity.this,show.class);--跳转到点击鞋子图片按钮之后的新界面i.putExtra("show","xiezi");--显示所有鞋子类商品startActivityForResult(i,0);--回传所有鞋子类商品的数据}}privatevoidfinish1(){super.finish();--完成上述操作}}4.展示所需商品信息的编码和部分解释packagecom.shopping;--这个类放在了com.shopping这个文件夹下面importjava.util.HashMap;--引入util.HashMap这个类,可以调用HashMap中的“链接”方法importjava.util.List;--引入List类,可以在下面程序中进行使用list进行批量数据序列操作importandroid.app.ListActivity;--ListActivity是一个绑定到一个数据源,并且用来显示这一串数据的Activityimportandroid.content.Intent;--引入Intent类,引入Android系统起步开机的操作方法importandroid.os.Bundle;--Android使用Bundle进行数据传递分析-1- 毕业设计importandroid.view.View;--android.view.view应该是android的封装类,引入后就可以用view中的方法了importandroid.widget.ListView;--引入widget.ListView这个类,该类的作用是可以实现以列表的形式展示具体内容,并且能够根据数据的长度自适应显示importandroid.widget.SimpleAdapter;--引入Simple.Adapter这个类,可以将静态数据映射到XML文件中定义好的视图importandroid.widget.TextView;--引入TextView类,该类具有用来显文本框的作用importcom.adapter.ImageSimpleAdapter;--引入ImageSimpleAdapter类,可以实现将静态图片数据映射到XML文件中定义好的视图importcom.list.listinfo;--引入listinfo类,之后会用到该类中的一些方法publicclassshowextendsListActivity{@Override这段代码是从R.java文件中调出所需的文本框TextView:1、name名字;2、miaoshu描述;3、shuliang数量;4、lujing路径;5、jiage价格;6、id;7、biaoming表明protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){--是ListView对应的响应事件,一共有四个参数:ListView就是用户单击项所在的列表;View就是我们单击项的视图;Position单击在列表的位置;Id单击项的idTextViewt1=(TextView)v.findViewById(R.id.text1);--从R文件中调出文本框t1TextViewt2=(TextView)v.findViewById(R.id.yin_miaoshu);--从R文件中调出描述商品信息的文本框t2TextViewt3=(TextView)v.findViewById(R.id.yin_shuliang);--从R文件中调出显示商品数量信息的文本框t3TextViewt6=(TextView)v.findViewById(R.id.yin_id);--从R文件中调出显示商品id信息的文本框t6TextViewt7=(TextView)v.findViewById(R.id.yin_biaoming);--从R文件中调出表明商品信息的文本框t7TextViewt4=(TextView)v.findViewById(R.id.yin_lujing);--从R文件中调出显示商品路径信息的文本框t4TextViewt5=(TextView)v.findViewById(R.id.text3);-1- 毕业设计--从R中调出text3文本框t5Intenti=newIntent(show.this,shangpin.class);切换到显示商品信息的新界面i.putExtra("name",t1.getText());--显示商品名称i.putExtra("miaoshu",t2.getText());--显示商品的描述信息i.putExtra("shuliang",t3.getText());--显示商品的数量信息i.putExtra("lujing",t4.getText().toString().substring(8));--显示商品的路径信息i.putExtra("jiage",t5.getText());--显示商品的价格信息i.putExtra("id",t6.getText());--显示商品的id号码i.putExtra("biaoming",t7.getText());--显示商品的表明信息startActivity(i);--执行跳转新界面的操作}/**Calledwhentheactivityisfirstcreated.*/这段代码是设置展示所需商品信息的方式,即show商品的方式@OverridepublicvoidonCreate(BundlesavedInstanceState){--这是Activity建立的时候一定会调用的onCreate()方法super.onCreate(savedInstanceState);--继承该类方法setContentView(R.layout.show);--载入购物展示页面的视图Intenti=getIntent();--是将检索出来的intent赋值给一个Intent类型的变量iListinfol=newlistinfo(i.getStringExtra("show"));List>list=l.list1();--以列表的形式显示商品的信息SimpleAdaptersa=newImageSimpleAdapter(this,list,R.layout.show_list_item,--设置需要展示的商品信息的布局方式newString[]{"product_item_image","text1","text2","text3","list_idex","yin_miaoshu","yin_shuliang","yin_lujing","yin_id","yin_biaoming"},newint[]{R.id.product_item_image,R.id.text1,R.id.text2,R.id.text3,R.id.list_idex,R.id.yin_miaoshu,R.id.yin_shuliang,R.id.yin_lujing,R.id.yin_id,R.id.yin_biaoming});-1- 毕业设计setListAdapter(sa);--设置show页面上文本框,图片的视图方式}4.2.4客户端购物车功能内容在搜索的商品添加一个监听器,实现onListItemClick方法,在点击商品,实例Intent对象,将画面跳转到购物车的画面,同理用onListItemClick方法,实现商品的购买功能的实现。如图4-5所示:客户端本地请求,读取本地文件,造型为对象点击购物车Tab将列表中元素在客户端显示点击结算,将数据写成字节流,发送至服务器服务器读取数据,写入数据库图4-5客户端购物车流程图1.将所选商品加入购物车功能编码和部分解释packagecom.shopping;--这个类放在了com.shopping这个文件夹下面importandroid.app.Activity;--引入Activity这个类,因为之后会用到这个类中的一些方法importandroid.app.AlertDialog;--引入AlertDialog这个类,可以引用该类中对话框的方法importandroid.content.DialogInterface;--引入DialogInterface这个类,可以引用该类中加入对话框的操作方法importandroid.content.Intent;--Android系统起步开机importandroid.graphics.Bitmap;--引入Bitmap类,可以调用该类中对图片排序的方法importandroid.graphics.BitmapFactory;--引入BitmapFactory类,可以调用该类中设置图片大小的方法importandroid.os.Bundle;--Android使用Bundle进行数据传递分析importandroid.os.Environment;--引入这个类,设置java运行环境importandroid.util.Log;--引入Log这个类,-1- 毕业设计能够查看你想要知道的一些参数数据,而且可以帮找到程序的运行出错的位置importandroid.view.View;--android.view.view应该是android的封装类,引入后就可以用view中的方法了importandroid.view.View.OnClickListener;--引入onClickListener类,是一种处理的是点击事件的接口。importandroid.widget.Button;--引入widget.Button这个类,就可以使用该类中按钮的一些使用方法importandroid.widget.EditText;--引入widget.EditText这个类,即可以在下面程序中使用编辑文本框中的方法了importandroid.widget.ImageView;--引入widget.ImageView这个类,即可以在下面程序中使用图片信息的方法了importandroid.widget.LinearLayout;--引入LinearLayout类,该类是线性布局控件,它包含的子控件将以横向或竖向的方式排列importandroid.widget.RatingBar;--引入RatingBar,用星形来显示等级评定的方法importandroid.widget.TextView;--引入TextView类,该类具有用来显文本框的作用importandroid.widget.Toast;--引入widget.Toast这个类,作用是实现在界面上弹出一个悬浮提示框importcom.SQL.sql;--这个类放在了com..SQL这个文件夹下面publicclassshangpinextendsActivity{privateButtonbutton2;--定义一个按钮button2TextViewtextview3;//库存--定义一个文本框3显示商品库存数量TextViewtextview1;//描述--定义一个文本框1显示描述商品的信息TextViewtextview9;//价格--定义一个文本框9.显示商品的价格信息EditTexteditText1;//购买数量--定义一个编辑文本框,用来输入购买商品的数量ImageViewiv;--定义一个图片ivLinearLayoutll;--定义一个布局方式llRatingBarrb;--定义一个显示用户等级的方法llIntentin;--定义一个能够映射和传递给能够处理特定任务的组件in-1- 毕业设计@Override从R.java文件中调出商品页面所需的文本框textview:1、数量;2、描述;3、价格和编辑文本框editText,一个加入购物车的按钮button。并按照R.layout设定好的shangpin页面的布局方式进行布局publicvoidonCreate(BundlesavedInstanceState){--这是Activity建立的时候一定会调用的onCreate()方法super.onCreate(savedInstanceState);--继承该类方法setContentView(R.layout.shangpin);--载入购物商品页面的视图textview3=(TextView)findViewById(R.id.textView3);--从R文件中调出文本框3textview1=(TextView)findViewById(R.id.textView1);--从R中调出文本框1textview9=(TextView)findViewById(R.id.textView9);--从R中调出文本框9editText1=(EditText)findViewById(R.id.shangpin_editText1);--从R中调出编辑文本框1in=getIntent();--是将检索出来的intent赋值给一个Intent类型的变量intextview3.setText(in.getStringExtra("shuliang"));--设置文本框以显示商品数量信息textview1.setText(in.getStringExtra("miaoshu"));--设置文本框1显示商品的描述信息textview9.setText(in.getStringExtra("jiage"));--设置文本框9显示商品的价格信息ll=(LinearLayout)findViewById(R.id.ll1);--从R文件中调出该页面的布局方式ll.setOnClickListener(newOnClickListener(){--添加一个OnClickListener接口的匿名实例/对象11publicvoidonClick(Viewv){--当点击事件发生时会调用这个onclick方法System.out.println("haha");--显示所有haha商品的信息}});将所选商品加入购物车:1、如果购买数量大于库存-------则显示“库存量不够啊”;2、如果购买数量小于库存-------则成功加入购物车------之后会出现一个对话框可选择:1、去购物车;2、再逛逛button2=(Button)findViewById(R.id.button2);--从R文件中调出按钮2-1- 毕业设计button2.setOnClickListener(newOnClickListener(){--设立一个“加入购物车”按钮publicvoidonClick(Viewv){--点击加入购物车的这个按钮,并执行该按钮下的操作inta=(int)Double.parseDouble(textview3.getText().toString());--将数据类型转换成整数型,a代表库存量intb=(int)Double.parseDouble(editText1.getText().toString());--将数据类型转换成整数型,b代表购买数量if(ab){Toast.makeText(car.this,"库存量不够啊!亲!",Toast.LENGTH_LONG).show();}--当购买商品的数量>商品的库存数量,则弹出提示信息显示“库存量不够啊!亲!”Stringd=Integer.parseInt(str1)*Integer.parseInt(jiage.getText().toString())+"";--将购买数量转换成整数型放入d中dialog1(name.getText().toString(),str1,d,kucun.getText().toString(),t.getText().toString());}else{Toast.makeText(car.this,"请输入数量!",Toast.LENGTH_LONG).show();--当购买商品的数量<商品的库存数量时,弹出提示框显示信息为“请输入数量”}}});dialog07.setNegativeButton("取消",newDialogInterface.OnClickListener()--对话框中设置一个“取消”按钮{publicvoidonClick(DialogInterfacedialog,intwhichButton){--点击这个“取消”按钮,并执行这个按钮的操作}});dialog07.create().show();--显示对话框}-1- 毕业设计这段代码是执行删除购物车中商品的操作else{TextViewt=(TextView)v1.findViewById(R.id.car_list_item_id);--从R文件中调出购物车所需的文本框tsqlsql3=newsql(car.this,"shangpin");--购物车中购买商品的信息放到sql3中SQLiteDatabasedb=sql3.getdb();db.delete("shangpin",shangpinBean.ID+"="+t.getText().toString(),null);--删除购物车中所选的商品SimpleAdaptersa=list1();setListAdapter(sa);--更新购物车页面中列表的元素zong();}}});dialog06.create().show();--显示对话框}/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){--这是Activity建立的时候一定会调用的onCreate()方法super.onCreate(savedInstanceState);--继承该方法setContentView(R.layout.car);--载入购物车页面的视图zong();SimpleAdaptersa=list1();setListAdapter(sa);--更新购物车页面中列表的元素button1=(Button)findViewById(R.id.car_button1);--从R文件中购物车页面所需的按钮1button1.setOnClickListener(newOnClickListener(){--设立这个“结算”按钮publicvoidonClick(Viewv){--点击“结算”按钮,并执行该按钮下的操作Intenti=newIntent(car.this,jiesuan.class);--从购物车页面切换到结算页面-1- 毕业设计i.putExtra("qian",car_textView2.getText().toString());--在文本框2中显示所需要交付的亲属startActivity(i);--开始执行切换界面的操作}});button2=(Button)findViewById(R.id.car_button2);--从R文件中调出购物车页面所需的按钮2button2.setOnClickListener(newOnClickListener(){--设立“清空”按钮publicvoidonClick(Viewv){--点击“清空”按钮,并执行该按钮下的操作Log.d("Jersey","清空");--蓝色显示“清空”内容sqlsql3=newsql(car.this,"shangpin");--将购物车中商品信息放入sql3中Cursorc=sql3.select("");--将随机选出的数放入c中SQLiteDatabasedb=sql3.getdb();c.moveToFirst();--将c数值定位到第一行while(!c.isAfterLast()&&(c.getString(1)!=null)){db.delete("shangpin",shangpinBean.ID+"="+c.getString(0),null);--删除购物车中的商品c.moveToNext();--c的数值定位到下一行}SimpleAdaptersa=list1();setListAdapter(sa);--购物车中的信息是以列表形式展示的,更新购物车页面的列表zong();}});}privateImageSimpleAdapterlist1(){--列表中显示图片sqlsql1=newsql(this,"shangpin");--将购物车中商品信息放到sql1中List>list=newArrayList>();Cursorc=sql1.select("");--将sql1中菜单的值放到c中-1- 毕业设计c.moveToFirst();--c值定位到第一行while(!c.isAfterLast()&&(c.getString(1)!=null)){HashMapmap=newHashMap();map.put("car_list_item_id",c.getString(0));--购物车页面中首行显示id信息map.put("car_list_item_shangid",c.getString(1));--购物车页面中第一行显示商品id信息map.put("car_list_item_biaoming",c.getString(2));--购物车页面中第二行的商品表明信息内容map.put("car_list_item_textView1",c.getString(3));--购物车页面第三行显示文本框1中商品名字map.put("car_list_item_textView2",c.getString(4));--购物车页面第四行显示文本框2中商品价格map.put("car_list_item_textView3",c.getString(5));--购物车页面第五行显示文本框3中购买商品数量map.put("car_list_item_kucun",c.getString(6));--购物车页面第六行显示商品库存数量list.add(map);c.moveToNext();--c值定位到下一行}ImageSimpleAdaptersa1=newImageSimpleAdapter(this,list,R.layout.car_list_item,newString[]{"car_list_item_textView1","car_list_item_textView2","car_list_item_textView3","car_list_item_kucun","car_list_item_id","car_list_item_shangid","car_list_item_biaoming"},newint[]{R.id.car_list_item_textView1,R.id.car_list_item_textView2,R.id.car_list_item_textView3,R.id.car_list_item_kucun,R.id.car_list_item_id,R.id.car_list_item_shangid,R.id.car_list_item_shangid});returnsa1;--该段程序是用来安排购物车页面中所有图片、文本框等在该页面的布局与视图方式}显示购物车页面上所需的图片及文本框并按在R.java文件中预先设定好的布局方式布局购物车页面privatevoiddialog1(Stringname,Stringshuliang,Stringjiage,Stringkucun,Stringid){-1- 毕业设计sqlsql2=newsql(this,"shangpin");--将商品信息放到sql2中sql2.update(name,shuliang,jiage,kucun,id);--修改sql2中商品的信息,包括商品的名称,商品的数量,商品的价格,商品的库存量以及商品的id号SimpleAdaptersa=list1();setListAdapter(sa);--修改完成后,更新购物车页面的列表内容zong();}privatevoidzong(){sqlsql1=newsql(this,"shangpin");--将商品信息存放到sql1中intq=0;--初始化q值Cursorc=sql1.select("");c.moveToFirst();--将c值定位到第一行while(!c.isAfterLast()&&(c.getString(1)!=null)){q+=Integer.parseInt(c.getString(5));--转换商品数量信息的数据类型,q值即为购物商品的数量值c.moveToNext();--c值定位到下一行}car_textView2=(TextView)findViewById(R.id.car_textView2);--从R文件中调出购物车页面所需的文本框2car_textView2.setText(q+"");--购物车页面中文本框2显示修改后的商品购买数量}}4.2.5客户端订单功能内容连接到后台数据库,将填写的订单信息插入到数据库中,通过后台来实现对订单的管理,管理员在发货后,数据库中将订单状态更改为已发,前台页面中,返回数据库中订单状态。如图4-6所示:将订单请求发送至客户端服务器点击订单Tab服务器响应请求,将搜索结果列表造型,发送信息至客户端将列表中元素在客户端显示-1- 毕业设计图4-6客户端订单流程图订单结算编码和部分解释packagecom.shopping;--这个类放在了com.shopping这个文件夹下面importandroid.app.Activity;--引入Activity这个类,因为之后会用到这个类中的一些方法importandroid.content.Intent;--Android系统起步开机importandroid.content.SharedPreferences;--SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,importandroid.database.Cursor;--引入Cursor类,作用就是用于临时存储从数据库中提取的数据块importandroid.database.sqlite.SQLiteDatabase;--引入SQLiteDatabase类,用来引用数据库的操作方法importandroid.os.Bundle;--引入Bundle这个类,Android使用Bundle进行数据传递分析importandroid.preference.PreferenceManager;--引入PreferenceManager类,用来保存简单的数据类型importandroid.util.Log;--引入Log这个类,能够查看你想要知道的一些参数数据,而且可以帮找到程序的运行出错的位置importandroid.view.View;--android.view.view应该是android的封装类,引入后就可以用view中的方法了importandroid.view.View.OnClickListener;--引入onClickListener类,是一种处理的是点击事件的接口。importandroid.widget.Button;--引入widget.Button这个类,就可以使用该类中按钮的一些使用方法importandroid.widget.EditText;--引入widget.EditText这个类,即可以在下面程序中使用编辑文本框中的方法了importandroid.widget.TextView;--引入TextView类,该类具有用来显文本框的作用importandroid.widget.Toast;--引入widget.Toast这个类,作用是实现在界面上弹出一个悬浮提示框importcom.SQL.shangpinBean;--引入shangpinBean类,用于引用商品素材importcom.SQL.sql;--引入sql类,用于引用数据库操作方法-1- 毕业设计importcom.http.httpclient;--引入HttpClient这个类,HttpClient是ApacheJakartaCommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,Java应用程序需要直接通过HTTP协议来访问网络资源。publicclassjiesuanextendsActivity{结算privateTextViewt1;--定义一个结算页面的文本框t1privateTextViewt2;--定义一个结算页面的文本框t1privateTextViewt8;--定义一个结算页面的文本框t8privateEditTexte1;--定义一个结算页面的编辑文本框e1privateEditTexte2;--定义一个结算页面的编辑文本框e2privateEditTexte3;--定义一个结算页面的编辑文本框e3privateButtonb1;--定义一个结算页面所需的按钮b1privateButtonb2;--定义一个结算页面所需的按钮b2SharedPreferencessp;--定义一个数据存储方式Intenti;--定义一个专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦调出结算页面所需要所需要的图标、文本框textview、可编辑的文本框edittext、结算按钮buttonpublicvoidonCreate(BundlesavedInstanceState){--这是Activity建立的时候一定会调用的onCreate()方法super.onCreate(savedInstanceState);--继承该类方法setContentView(R.layout.jiesuan);--载入结算页面视图sp=PreferenceManager.getDefaultSharedPreferences(this);t1=(TextView)findViewById(R.id.jiesuan_textView1);--从R文件中调出结算页面所需的文本框t1t2=(TextView)findViewById(R.id.jiesuan_textView2);--从R文件中调出结算页面所需的文本框t2t8=(TextView)findViewById(R.id.jiesuan_textView8);--从R文件中调出结算页面所需的文本框t8e1=(EditText)findViewById(R.id.jiesuan_editText1);--从R文件中调出结算页面所需的编辑文本框e1-1- 毕业设计e2=(EditText)findViewById(R.id.jiesuan_editText2);--从R文件中调出结算页面所需的编辑文本框e2e3=(EditText)findViewById(R.id.jiesuan_editText3);--从R文件中调出结算页面所需的编辑文本框e3b2=(Button)findViewById(R.id.jiesuan_button2);--从R文件中调出结算页面所需的按钮b2i=getIntent();--将intent值传递给调用的组件,并且完成组件的调用Strings=sp.getString("yu_e",null);--将用户余额信息存到s中t2.setText(s);--文本框t2显示用户账户余额t1.setText(i.getStringExtra("qian"));--文本框t1中显示需要结算的价钱inta=Integer.parseInt(i.getStringExtra("qian"));--将需要交付的钱转换为整数型intb=Integer.parseInt(s);--将用户余额钱数也转换成整数型if(a>b){--当需要交付的钱数>用户账户中的余额时t8.setVisibility(1);--显示文本框t8中的内容b2.setVisibility(1);--显示b2按钮}b1=(Button)findViewById(R.id.jiesuan_button1);--从R文件中调出结算页面所需的b1结算按钮b1.setOnClickListener(newOnClickListener(){--设立b1结算按钮publicvoidonClick(Viewv){--点击“结算”按钮,并执行该按钮的操作Strings1=sp.getString("id",null);--将id号存放到字符串s1中//Log.d("Jersey",s1);--蓝色字体显示s1的内容httpclienthc=newhttpclient("l=3&sql=select@pwd@from@user1@where@userid="+s1+";");--通过HTTP协议访问网络资源Strings2=hc.getshuju();--得到数据,并将数据放到字符串s2中//Log.d("Jersey",s2);--看色字体显示s2内容结算完成后更新用户数据---即得到余额信息-1- 毕业设计if(s2.equals(e3.getText().toString())){--当s2中存放的内容等于编辑文本框e3中的内容时httpclienthc1=newhttpclient("l=4&sql=update@user1@set@yu_e=yu_e-"+i.getStringExtra("qian")+"@where@userid="+s1+";");--完成结算,并通过HTTP协议访问网络资源,修改用户账户余额信息hc1.getshuju();--得到修改后的数据添加订单数据包括订单的1、时间;2、客户名;3、收货地址;4、金额;5、状态;6、电话httpclienthc2=newhttpclient("l=2&sql=insert@into@dingdang(shijian,kehu,shouhuodizhi,jin_e,zhuangtai,phone)@values(now(),'"+sp.getString("name",null)+"','"+e1.getText().toString()+"',"+t1.getText().toString()+",'已付款','"+e2.getText().toString()+"');");--通过HTTP协议访问网络资源来添加订单信息,包括订单的时间、客户、收货地址、金额、状态、电话Strings5=hc2.getshuju();--将添加后的数据信息放到字符串s5中Log.d("Jersey",s5);--蓝色字体显示字符串s5的信息修改购买商品的数量sqlsql3=newsql(jiesuan.this,"shangpin");--将结算页面中商品信息放到sql3中Cursorc=sql3.select("");--将sql3中的值放到c中SQLiteDatabasedb=sql3.getdb();c.moveToFirst();--将c的值定位到第一行while(!c.isAfterLast()&&(c.getString(1)!=null)){Stringshangid=c.getString(1);Stringbm=c.getString(2);Stringshuliang=c.getString(4);httpclienthc3=newhttpclient("l=4&sql=update@"+bm+"@set@shuliang=shuliang-"+shuliang+"@where@id="+shangid+";");--通过HTTP协议访问网络资源修改订单中商品的数量Strings=hc3.getshuju();--得到修改后的数据放到字符串s中db.delete("shangpin",shangpinBean.ID+"="+c.getString(0),null);--执行删除商品的操作//Log.d("Jersey",s);--蓝色显示字符串s的信息-1- 毕业设计c.moveToNext();--c值定位到下一行}结算操作两种结果:1、购买成功2、密码错误Toast.makeText(jiesuan.this,"购买成功!",Toast.LENGTH_LONG).show();--提示文本框中显示内容为“购买成功”Intenti=newIntent(jiesuan.this,ShoppingActivity.class);--切换到结算页面startActivity(i);--开始执行切换新界面的操作jiesuan.this.finish();--完成结算}else{Toast.makeText(jiesuan.this,"密码错误!",Toast.LENGTH_LONG).show();--如果结算不成功,则提示文本框中显示“密码错误”}}});b2.setOnClickListener(newOnClickListener(){--设立“结算”按钮publicvoidonClick(Viewv){--点击“结算”按钮,并执行该按钮的操作}});}}4.2.6客户端httpclienthttpclient是用来支持HTTP协议的客户端编程工具包;HTTP协议:允许超文本标记语言(HTML)文档从Web服务器传送到Web浏览器。HTML是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。点击该链接可访问文档,图片或多媒体对象httpclient文档从服务器传送到web浏览器编码packagecom.http;--这个类放在了com.http这个文件夹下面Importjava.io.BufferedReader;-1- 毕业设计--引入BufferedReader类,该类是从缓冲区中读取内容,所有的输入的字节数据都将放在缓冲区之中如果要想接收任意长度的数据,而且避免乱码产生importjava.io.InputStream;--引入InputStream类,该类的作用是标志哪些从不同数据起源产生输入的类importjava.io.InputStreamReader;--引入InputStreamReader类,它是字节转换为字符的桥梁importorg.apache.http.HttpEntity;--引入HttpEntity类,用于包装内容的相关的编码格式,长度importorg.apache.http.HttpResponse;--引入HttpResponse类,封装来自ASP.NET操作的HTTP响应信息importorg.apache.http.client.HttpClient;--引入HttpClient这个类,HttpClient是ApacheJakartaCommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,Java应用程序需要直接通过HTTP协议来访问网络资源。importorg.apache.http.client.methods.HttpGet;--引入HttpGet类,这个类用来提交HTTP GET请求importorg.apache.http.impl.client.DefaultHttpClient;--引入DefaultHttpClient,用来访问网络的方法publicclasshttpclient{Stringurl1="http://192.168.0.102:8080/houtai/xiazai.php?";--统一资源定位符URL是www网页的网址,是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示,只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性;192.168.0.102为主机名;8080为端口号Stringurl=null;--定义统一资源定位符url为空集privateHttpResponsehttpResponse=null;--定义响应信息为空集privateHttpEntityhttpEntity=null;--定义编码格式为空集publichttpclient(Stringurl2){url=url1+url2;}publicStringgetshuju(){--获得数据--使用HttpGet都必须通过如下3步来访问HTTP资源HttpGethttpGet=newHttpGet(url);-1- 毕业设计--第一步:创建HttpGett对象,将要请求的URL通过构造方法传入HttpGet对象。HttpClienthttpClient=newDefaultHttpClient();InputStreaminputStream=null;Stringresult="";try{httpResponse=httpClient.execute(httpGet);--第二步:使用DefaultHttpClient类的execute方法发送HTTP GET请求,并返回HttpResponse对象httpEntity=httpResponse.getEntity();--第三步:通过HttpResponse接口的getEntity方法返回响应信息,并进行相应的处理inputStream=httpEntity.getContent();--得到数据流BufferedReaderreader=newBufferedReader(newInputStreamReader(inputStream));--就是把输入流作为参数,构建一个读取数据用的InputStreamReader流,然后再把刚才构建的流对象做个包装,包装成BufferedReader流,最后把它赋值给brStringline="";while((line=reader.readLine())!=null){result=result+line;--调用readLine方法,并将返回值赋给line变量。然后赋值语句会生成一个值-----要赋值表达式的值即result=result+line的值。所以可以使用一个关系操作符来比较一个赋值结果,并最终生成一个布尔结果即true或false;如果赋值为null,则赋值表达式result=result+line即为null,与null比较的结果将为true}System.out.println(result);--输出结果}catch(Exceptione){--抛出异常e.printStackTrace();--输出异常}finally{try{inputStream.close();--关闭输入流}catch(Exceptione){--抛出异常e.printStackTrace();--输出异常-1- 毕业设计}}returnresult;--返回结果值}}4.3系统后台逻辑结构设计及其内容编码后台系统主要有用户信息管理,商品信息管理,订单管理。其中用户信息管理,商品信息管理,订单管理功能基本相似。4.3.1系统后台管理员和用户登录程序内容管理员和用户在后台进行登入,输入的账号密码,将发送到数据库进行验证,如果正确,将直接登入到主界面中,如果错误,将进行重新登入。如图4-7所示:向服务器发送请求,校验密码登陆TrueFalse登入重新登入图4-7后台登陆系统后台管理员和用户登录程序编码和部分解释packagecom.shop.action;--这个类放在了com.shop.action这个文件夹下面importjava.util.Map;--引入Map类,提供了一个更通用的元素存储方法importcom.shop.dao.BaseDao;--引入BaseDAO类,提供从数据库增加、删除、修改记录、查询所有记录、查询符合某个条件记录、取得某条记录等方法的底层数据操作自定义类importcom.shop.util.BaseAction;--引入BaswAction类,增加了请求处理的灵活性@SuppressWarnings("serial")publicclassLoginActionextendsBaseAction{privateMapadminMap;--对得到的信息内容进行排序privateStringloginName;--定义登录名字参数字符串privateStringloginPass;--定义登录密码参数字符串-1- 毕业设计privateStringinfo;--定义信息参数字符串privateStringflg;--定义flg变量/***@return*@throwsException*/管理员登录程序输入username用户名和loginpass登录密码两种可能:1、成功登陆2、登录失败(用户名或密码错误)publicStringadminLogin()throwsException{BaseDaobaseDao=newBaseDao();--创建新类this.adminMap=baseDao.selectOne("user1","userid,username,pwd,phone,power1,sex,yu_e","username='"+this.loginName+"'andpwd='"+this.loginPass+"'andpower1=1");--登录操作需要输入,管理员用户名,登录密码;登录成功后以列表形式显示用户名,用户id号,用户电话,用户性别,账户余额等用户信息if((this.adminMap!=null)&&(this.adminMap.size()>0)){--当满足这个两个条件时getHttpSession().setAttribute("admin",this.adminMap);--查询到该管理员信息return"adminLogin";--成功登录}this.info="登录失败!!!";return"adminLoginFalse";--不满足((this.adminMap!=null)&&(this.adminMap.size()>0))这个条件时,则管理员登录失败并显示登录失败}/****@return*/管理员注销程序publicStringadminLogout(){getHttpSession().setAttribute("admin",null);--查询到的管理员名字为空集this.info="成功注销!!!";--则成功注销管理员-1- 毕业设计return"adminLogout";}/*****@return*@throwsException*用户登录程序,输入用户登录名loginname和登陆密码loginpass两种可能结果:1、成功登陆2、登录失败(用户名或密码错误)publicStringuserLogin()throwsException{BaseDaobaseDao=newBaseDao();this.adminMap=baseDao.selectOne("user1","userid,username,pwd,phone,power1,sex,yu_e","username='"+this.loginName+"'andpwd='"+this.loginPass+"'andpower1=0");--登录操作需要输入,用户的用户名,登录密码;登录成功后以列表形式显示用户名,用户id号,用户电话,用户性别,账户余额等用户信息if((this.adminMap!=null)&&(this.adminMap.size()>0)){--当满足这个两个条件时getHttpSession().setAttribute("user",this.adminMap);--查询到用户信息return"userLogin";--用户登录成功}this.info="登录失败!!!";if((this.flg!=null)&&(this.flg.equals("0"))){--当flg值不等于空集且flg值为0时outJson(this.adminMap,null);--查询到想要登录的用户为空集,即不存在return"none";}return"userLoginFalse";--用户登录失败}/*****@return*/-1- 毕业设计用户注销程序publicStringuserLogout(){getHttpSession().setAttribute("user",null);--当查询到用户信息为空集时this.info="成功注销!!!";--用户实现成功注销操作if((this.flg!=null)&&(this.flg.equals("0"))){--当flg不等于空集且flg等于0outJson(this.info,null);--用户信息为空集return"none";--返回空集}return"userLogin";--返回用户登录}publicMapgetAdminMap(){returnthis.adminMap;--这里是定义了一个string变量Object,并为该变量提供了获取方式。这样的定义方式使得其他的地方只能获取AdminMap的值而不能再设置AdminMap的值}publicvoidsetAdminMap(MapadminMap){this.adminMap=adminMap;--setAdminMap就是给AdminMap设置一个值,也就是通过外部调用该方法给商品的对象中的AdminMap赋值,所以外部方法肯定需要传入一个String作为参数。而this.adminMap=adminMap;便是赋值的部分,赋值之后不需要有返回值}publicStringgetLoginName(){returnthis.loginName;--这里是定义了一个string变量LoginName,并为该变量提供了获取方式。这样的定义方式使得其他的地方只能获取LoginName的值而不能再设置LoginName的值}publicvoidsetLoginName(StringloginName){this.loginName=loginName;--setLoginName就是给LoginName设置一个值,也就是通过外部调用该方法给商品的对象中的LoginName赋值,所以外部方法肯定需要传入一个String作为参数。而this.loginName=loginName;便是赋值的部分,赋值之后不需要有返回值}-1- 毕业设计publicStringgetLoginPass(){returnthis.loginPass;--这里是定义了一个string变量LoginPass,并为该变量提供了获取方式。这样的定义方式使得其他的地方只能获取LoginPass的值而不能再设置LoginPass的值}publicStringgetInfo(){returnthis.info;--这里是定义了一个string变量Info,并为该变量提供了获取方式。这样的定义方式使得其他的地方只能获取Info的值而不能再设置Info的值}publicvoidsetInfo(Stringinfo){this.info=info;--setInfo就是给Info设置一个值,也就是通过外部调用该方法给商品的对象中的Info赋值,所以外部方法肯定需要传入一个String作为参数。而this.info=info;便是赋值的部分,赋值之后不需要有返回值}publicvoidsetLoginPass(StringloginPass){this.loginPass=loginPass;--setLoginPass就是给LoginPass设置一个值,也就是通过外部调用该方法给商品的对象中的LoginPass赋值,所以外部方法肯定需要传入一个String作为参数。而this.loginPass=loginPass;便是赋值的部分,赋值之后不需要有返回值}}4.3.2系统后台商品管理程序内容在管理员点击商品列表的时候,数据库将所有商品信息显示在页面中,管理员可对商品进行增加,修改,删除,查询的功能。如图4-8所示:向数据库发送请求,将数据显示到页面中商品列表查询删除增加修改-1- 毕业设计图4-8后台商品管理图系统后台商品管理程序编码和部分解释packagecom.shop.action;--这个类放在了com.shop.action这个文件夹下面importjava.util.List;--引入util.List这个类,可以使用list进行批量数据序列操作importjava.util.Map;--引入Map类,提供了一个更通用的元素存储方法importcom.shop.dao.BaseDao;--引入BaseDAO类,提供从数据库增加、删除、修改记录、查询所有记录、查询符合某个条件记录、取得某条记录等方法的底层数据操作自定义类importcom.shop.util.BaseAction;--引入BaswAction类,增加了请求处理的灵活性@SuppressWarnings("serial")publicclassProductActionextendsBaseAction{privateList>objList;--对得到的信息内容进行排序privateMapobjMap;--对得到的信息内容进行排序privateBaseDaobaseDao;--定义一个baseDao类privateStringwhereStr="1=1";--用于连接sql语句privateStringid;--定义一个字符串参数---idprivateStringname;--定义一个字符串参数---名字privateStringtupian;--定义一个字符串参量---图片privateStringbiao;--定义一个字符串参量---表privateStringjiaqian;--定义一个字符串参数---价钱privateStringshuliang;--定义一个字符串参数---数量privateStringmiaoshu;--定义一个字符串参量---描述privateStringfujia;--定义一个字符串参量---附加privateStringptype;--定义一个字符串变量---ptypeprivateStringpdesc;--定义一个字符串变量---pdescprivateStringflg;--定义一个字符串变量---flg/***查询所有**@return*@throwsException*/-1- 毕业设计查询所有商品这段程序是以biao表商品为例,当输入biao(表)时,即显示所有表商品的信息;可能的结果:1、无biao商品2、查到biao商品信息,并显示出来商品信息包括1、商品ID号;2、商品名称;3、商品的附加信息;4、商品的价钱;5、商品的数量;6、商品的图片;7、对商品的描述publicStringfindAll()throwsException{System.out.println(biao);--输出所有表商品的信息this.baseDao=newBaseDao();if((this.name!=null)&&(!this.name.equals(""))){--当输入的商品名字不为空集且name值等于“”时this.whereStr=(this.whereStr+"andnamelike'%"+this.name+"%'");--查询所有满足条件的商品信息}this.whereStr+="orderbyiddesc";--将查询到的商品按降序排列this.objList=this.baseDao.select(biao,"id,name,fujia,jiaqian,shuliang,tupian,miaoshu",this.whereStr);--列表中显示表类商品的id号码,名字,商品的附加信息,商品的价钱,商品的数量,商品的图片,商品的描述信息if((this.flg!=null)&&(this.flg.equals("0"))){--当flg字不为空集且flg值等于0时outJson(this.objList,null);--想要查询的该商品为空集returnNONE;}if((this.flg!=null)&&(this.flg.equals("1"))){--当flg不等于空集且flg的值等于1时return"AdminFindAll";--查询到所有满足该条件的商品}return"findAll";}/****-1- 毕业设计*@return*@throwsException*/保存商品信息修改后的信息(商品信息的更新和修改)商品信息包括(商品名称,图片,价钱,附加信息,数量,商品描述内容,商品ID号码)publicStringsave()throwsException{this.baseDao=newBaseDao();--创建一个新的BaseDao类if((this.id!=null)&&(!this.id.equals("")))--当id不等于空集且id值等于“”时this.baseDao.update(this.biao,"name='"+this.name+"',tupian='"+this.tupian+"',jiaqian="+this.jiaqian+",fujia='"+this.fujia+"',shuliang="+this.shuliang+",miaoshu='"+this.miaoshu+"'","id="+this.id);--修改该商品的名字,图片信息,价钱,附加信息,商品数量,对商品的描述信息else{this.baseDao.insert(biao,"name,fujia,jiaqian,shuliang,tupian,miaoshu","'"+this.name+"','"+this.fujia+"',"+this.jiaqian+","+this.shuliang+",'"+this.tupian+"','"+this.miaoshu+"'");}--当不满足条件:“id不等于空集且id值等于“”的条件时,可以增加商品信息,包括商品的名字,商品的附加信息,商品的图片,商品的描述信息if((this.flg!=null)&&(this.flg.equals("0"))){--当满足flg不等于空集,且flg的值为0时getResponse().getWriter().write("{success:true}");--对修改或增加的商品信息数据没有保存成功returnNONE;}if((this.flg!=null)&&(this.flg.equals("1"))){--当flg不等于空集且flg值为1时return"AdminSave";--对修改或增加的商品信息数据保存成功}return"save";}-1- 毕业设计/****@return*@throwsException*/根据商品的ID号来查询商品可能的结果:1、查无此商品2、查到商品并显示商品信息(商品ID号、商品名称、商品附加信息、商品价钱、商品数量、商品的图片、商品的描述信息)publicStringgetById()throwsException{this.baseDao=newBaseDao();--创建一个新的基础BaseDao类this.whereStr=(this.whereStr+"andid="+this.id);--通过商品的id号码查询商品信息this.objMap=this.baseDao.selectOne(biao,"id,name,fujia,jiaqian,shuliang,tupian,miaoshu",this.whereStr);--列出显示查询到的商品信息,包括商品的id号码,商品的名称,商品的附加信息,商品的价钱,商品的数量,商品的图片,对商品的描述信息if((this.flg!=null)&&(this.flg.equals("0"))){--当flg不等于空集且flg值为0时outJson(this.objMap,null);--通过id号想要查询到的商品为空集returnNONE;}if((this.flg!=null)&&(this.flg.equals("1"))){--当flg不等于空集,且flg的值为1时return"AdminGetById";--通过商品的id号成功查询到该商品的信息}return"getById";}/*****@return*@throwsException*/-1- 毕业设计删除某商品的程序操作结果:1、删除不成功2、成功删除该商品publicStringdelete()throwsException{this.baseDao=newBaseDao();--创建一个新的BaseDao类this.baseDao.delete(biao,"ID="+this.id);--删除想要删除的商品的操作程序if((this.flg!=null)&&(this.flg.equals("0"))){--如果flg不等于空集,且flg的值为0时getResponse().getWriter().write("{success:true}");--删除商品的操作不成功,即没有实现删除该商品returnNONE;}if((this.flg!=null)&&(this.flg.equals("1"))){--当flg不等于空集且flg的值为1时return"AdminDelete";--成功删除该商品}return"delete";}4.3.3系统后台订单管理程序内容管理员点击订单列表,页面显示出所有客户的订单,而管理员可以操作这些订单,实现订单状态的修改,发货或关闭交易。如图4-9所示:向数据库发送请求,将数据显示到页面中订单列表关闭交易发货图4-9后台订单管理图系统后台订单管理程序编码和部分解释-1- 毕业设计packagecom.shop.action;--这个类放在了com.shop.action这个文件夹下面importjava.text.SimpleDateFormat;--引入SimpleDateFormat类,可以调用格式化日期的操作方法importjava.util.Date;--引入Date类,可以操作日期和时间各组成部分的方法importjava.util.HashMap;--引入util.HashMap这个类,可以调用HashMap中的“链接”方法importjava.util.List;--引入util.List这个类,可以使用list进行批量数据序列操作importjava.util.Map;--引入Map类,引用以按键/数值对的形式存储数据的方法importjava.util.UUID;--引入UUID类,目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要透过中央控制端来做辨识资讯的指定importjavax.servlet.http.HttpSession;--引入HttpSession类,调用客户端与服务器端通信的方法importcom.shop.dao.BaseDao;--引入BaseDAO类,提供从数据库增加、删除、修改记录、查询所有记录、查询符合某个条件记录、取得某条记录等方法的底层数据操作自定义类importcom.shop.util.BaseAction;--引入BaswAction类,增加了请求处理的灵活性@SuppressWarnings("serial")publicclassOrderActionextendsBaseAction{privateList>objList;--对得到的信息内容进行排序privateMapobjMap;--对得到的信息内容进行排序privateMap>cartMap;--对得到的信息内容进行排序privateBaseDaobaseDao;--定义一个BaseDao类privateStringwhereStr="1=1";--连接数据库语句privateStringid;--定义一个字符串参量---idprivateStringkehu;--定义一个字符串参量---客户privateStringprice;--定义一个字符串参量---价格privateStringaddress;--定义一个字符串参量---地址privateStringphone;--定义一个字符串参量---电话privateStringshijian;--定义一个字符串参量---时间privateStringmingxi;--定义一个字符串参量---明细privateStringzhuangtai;--定义一个字符串参量---状态privateStringinfo;--定义一个字符串变量---info-1- 毕业设计privateStringflg;--定义一个字符串变量---flg**@return*@throwsException*/管理员根据订单关键字查询订单publicStringfindByKey()throwsException{this.baseDao=newBaseDao();--创建一个新的BaseDao类if(id!=null&&!id.equals("")){--当id不等于空集,且id等于“”时whereStr+="andid='"+id+"'";--找到与该关键字有关的订单信息this.objList=this.baseDao.select("dingdang","id,shijian,kehu",this.whereStr);--列出信息,包括订单的id号,订单的时间以及这个订单的客户}return"findByKey";}/*****@return*@throwsException*/@SuppressWarnings("unchecked")管理员查询某客户所有订单管理员需先登录才能进行查询查询结果:1、无订单2、查到订单并显示订单信息,包括:1、订单id号;2、订单时间;3、客户名称;4、收货地址;5、金额;6、订单明细;7、订单状态;8、客户电话publicStringfindAll()throwsException{this.baseDao=newBaseDao();--创建一个新的BaseDao类if((this.id!=null)&&(!this.id.equals(""))){--当满足条件id不等于空集,且id等于“”时-1- 毕业设计this.whereStr=(this.whereStr+"andono='"+this.id+"'");--查找到该id号的订单信息}if((this.kehu!=null)&&(!this.kehu.equals(""))){--当客户信息不等于空集,且客户信息等于“”时this.whereStr=(this.whereStr+"andkehu='"+this.kehu+"'");--查找到该客户的所有订单信息}if((this.id!=null)){--当id值不等于空集时Mapmap=(Map)getRequest().getSession().getAttribute("user");--执行输入的请求,并得到响应if((map==null)||(map.size()<=0)){--当map等于空集,且map的大小小于等于0值时this.info="您还没有登录!!!请您先进行登录...";--显示提示信息“您还没有登录!!!请您先进行登录”return"userLoginFalse";--返回用户登录失败}Stringid=map.get("ID").toString();this.whereStr=(this.whereStr+"andid='"+id+"'");}this.whereStr+="orderbyiddesc";--将查询到的信息按降序排列this.objList=this.baseDao.select("dingdang","id,shijian,kehu,shouhuodizhi,jin_e,mingxi,zhuangtai,phone",this.whereStr);--列举显示出订单信息,包括订单的id号,订单的时间,订单的客户,订单的收货地址,订单的金额,订单的明细内容,订单的状态,订单客户的电话if((this.flg!=null)&&(this.flg.equals("0"))){--当flg不等于空集且flg的值等于0时outJson(this.objList,null);--则没有查询到想要查询的订单信息returnNONE;}if((this.flg!=null)&&(this.flg.equals("1"))){--当flg不等于空集,且flg的值等于1时-1- 毕业设计return"AdminFindAll";--查询操作成功,查询到所有满足条件的订单信息}return"findAll";}/*****@return*@throwsException*/4.4本章小结本章主要介绍了手机网络商城设计的详细过程,还对其重要部分的编程和代码进行了分析和讲解.系统是如何实现的会在下一章体现出来-1- 毕业设计5.系统的具体实现5.1前台android主要功能的实现5.1.1登入界面;如图5-1所示图5-1前台登入这是用户登陆的实现界面;用户登陆时需要输入注册的账号密码和用户名,填入正确后便可登入到主界面。调出R.java文件下login页面所需的按钮button,编辑文本框EditText,按照R.layout对login页面所设定好的布局方式进行布局。操作时会出现以下4种情况结果:1、显示“用户名不存在”2、登录成功并显示用户信息;包括1、用户名;2、余额3、显示“密码错误”4、如果没填写用户名或密码则显示“您是不是有东西没填啊”如果登陆之前未注册则需要点击注册按钮先进行注册,注册完成后才可以进行登陆。主要是判断了用户输入的信息,并对其进行验证,如果正确,可直接登入到主界面,如果错误,或者有些内容没填,会出现相应的提示。-1- 毕业设计5.1.2注册界面;如图5-2所示图5-2前台注册这是用户注册页面;用户注册时需要填入用户名和对应的密码,并且需要再次输入密码来保证密码的正确和有效,还需填写用户的手机号码,以便未来密码忘记的时候可以及时地找回,并且还需填写性别。以上填写确认无误后方可注册成功。从R.java文件中调出注册页面所需的Button注册按钮;EditText编辑文本框设立一个注册按钮,点击该页面上的注册按钮后可进入页面填写注册信息------可能的结果:1、注册成功;2、注册失败原因:两次密码输入不一致;3、注册失败原因:您是不是有东西没填啊;主要解释了在用户注册时,读取用户所填写的信息,并将这些信息插入到后台数据库中。用户在密码填写时必须保持前后一致,如果不一致并会出现提示。5.1.3商品主界面;如图5-3所示:-1- 毕业设计图5-3前台主界面这是商城商品的主页面;进入网上商城主页面,可点击服装、电视机、手机、包包、运动鞋这五个图片按钮进入该类商品详细页面进行浏览。从R.java文件中调出sousuo页面所需要的文本框TextView:1、name名字;2、miaoshu描述;3、shuliang数量;4、lujing路径;5、jiage价格;6、id;7:biaoming表明从R.java文件中调出sousuo页面所需的EditText编辑文本框(可输入搜索信息的文本框),搜索button按钮。并按照R.layout中对sousuo页面的布局方式进行布局-1- 毕业设计搜索:1、包包;2、服装;3、电视;4、运动鞋;5、手机的搜索程序搜索结果:1、没有找到该商品;2、找到该商品并且按照预先设定好的布局方式将商品信息显示在页面中退出商城的程序:出现一个对话框:1、点击确定按钮即可退出商城2、点击取消按钮即继续购物设置4个menu菜单按钮1、UPDATE购物车;2、ABOUT关于;3、GEREN个人;4、EXIT退出四个按钮;并从R.java文件下调出:1、服装;2、电视;3、手机;4、包包;5、鞋子这五个图片按钮;并按照R.layout中对于main页面即主页面的布局进行布局。点击四个menu菜单按钮的操作程序。点击5个图片按钮的操作程序,点击后即显示该类商品信息展示所需商品信息的编码和部分解释这段代码是设置展示所需商品信息的方式,即show商品的方式@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.show);Intenti=getIntent();listinfol=newlistinfo(i.getStringExtra("show"));List>list=l.list1();SimpleAdaptersa=newImageSimpleAdapter(this,list,R.layout.show_list_item,newString[]{"product_item_image","text1","text2","text3","list_idex","yin_miaoshu","yin_shuliang","yin_lujing","yin_id","yin_biaoming"},newint[]{R.id.product_item_image,R.id.text1,R.id.text2,R.id.text3,R.id.list_idex,R.id.yin_miaoshu,R.id.yin_shuliang,R.id.yin_lujing,R.id.yin_id,R.id.yin_biaoming});setListAdapter(sa);}5.1.4商品服装的详细页面;如图5-4所示-1- 毕业设计图5-4服装商品浏览列表从5个商品按钮中选择按钮点击商品按钮便可跳转到此页面,点击其中一类商品服装,即可跳转到相关商品浏览此商品的详细信息信息。当点击服装图片按钮时则出现服装的详细页面classibocl1implementsOnClickListener{publicvoidonClick(Viewv){listinfol=newlistinfo("fuzhuang");l.list1();Intenti=newIntent(ShoppingActivity.this,show.class);i.putExtra("show","fuzhuang");startActivityForResult(i,0);}}点击其中一类商品手机,可跳转到相关商品的浏览信息如图5-5所示:-1- 毕业设计图5-5手机商品浏览列表当点击手机图片按钮后出现以上页面classibocl3implementsOnClickListener{publicvoidonClick(Viewv){Intenti=newIntent(ShoppingActivity.this,show.class);i.putExtra("show","shouji");startActivityForResult(i,0);}}5.1.5htc手机商品的详细界面和将想要购买的加入购物车界面如图5-6和图5-7所示:-1- 毕业设计图5-6htc商品详细信息图5-7商品加入购物车点击选中的商品中手机htc,便可以出现此款手机的具体信息,详细界面中显示出该商品的具体信息,其中有价格,描述,库存以及用户想要购买的数量等等。用户可将选购好的想要购买的商品加入购物车从R.java文件中调出商品页面所需的文本框textview:1、数量;2、描述;3、价格和编辑文本框editText,一个加入购物车的按钮button。并按照R.layout设定好的shangpin页面的布局方式进行布局将所选商品加入购物车,会出现两种情况:1、如果购买数量大于库存-------则显示“库存量不够啊”;2、如果购买数量小于库存-------则成功加入购物车------之后会出现一个对话框可选择:1、去购物车;2、再逛逛图片从SD卡中调出商品的图片并显示在shangpin页面上结算价格的程序:intc=a*b总价格=商品价格*购买数量是在购物车中,对购买的商品信息的修改,主要是对购买数量的修改。如果客户不想购买这件商品,也可进行删除操作。5.1.6购物车界面;如图5-8所示-1- 毕业设计图5-8购物车界面打开购物车页面,可以看到已加入购物车中的商品,可以继续购物还可以选择去结算按钮或者清空按钮进行操作。购物车界面还会显示商品的总价格。对购物车中的内容进行修改1、代表所购买的数量;1、代表库存修改购物车操作会出现3种情况1.如果a大于b则显示“库存量不够”2.如果a小于b则修改操作成功3.也可取消修改操作也可以执行删除购物车中商品的操作,显示购物车页面上所需的图片及文本框并按在R.java文件中预先设定好的布局方式布局购物车页面5.1.7订单结算界面;如图5-9所示-1- 毕业设计图5-9商品订单结算图在付款页面中,用户需要填入相关信息,如收货地址和联系电话,并且还需要填写注册时用户会员设置的密码,填写正确后,便可生产订单。调出结算页面所需要所需要的图标、文本框textview、可编辑的文本框edittext、结算按钮button结算完成后更新用户数据---即显示用户的余额添加订单数据,包括订单的1、时间2、客户名3、收货地址4、金额5、状态6、电话,购买后可以更新购买商品的数量。结算操作是会出现两种结果:1、购买成功2、密码错误这张图片实现主要是读取用户填写的订单信息,并插入到数据库中生成订单表,最后一项要填写密码,是用户的登入密码,填写错误会出现提示并重新填写,正确后会有个提示信息,购买成功。5.2后台web端主要功能实现5.2.1后台登入界面;如图5-10所示:-1- 毕业设计图5-10后台登入界面这是后台管理员登陆页面;管理员在后台进行登入,需要输入正确的账号和密码,输入的帐号的密码将发送到数据库进行验证,如果正确,将直接登入到主界面中,如果错误,将进行重新登入。管理员登录程序输入username用户名和loginpass登录密码两种可能:1、成功登陆2、登录失败(用户名或密码错误)用户登录程序输入用户登录名loginname和登陆密码loginpass两种可能结果:1、成功登陆2、登录失败(用户名或密码错误)5.2.2后台主界面;如图5-11所示图5-11后台主界面5.2.3商品列表界面;如图5-12所示-1- 毕业设计图5-12商品列表信息图在管理员点击商品列表的时候,数据库将所有商品信息显示在页面中,管理员可对商品进行增加,修改,删除,查询等的功能。查询所有商品是以biao表商品为例,当输入biao(表)时,即显示所有表商品的信息;可能产生的结果:1、无biao商品2、查到biao商品信息,并显示出来商品信息包括1、商品ID号;2、商品名称;3、商品的附加信息;4、商品的价钱;5、商品的数量;6、商品的图片;7、对商品的描述可以保存商品信息修改后的信息(商品信息的更新和修改)商品信息包括(商品名称,图片,价钱,附加信息,数量,商品描述内容,商品ID号码)根据商品的ID号可以来查询商品可能产生的结果:1、查无此商品2、查到商品并显示商品信息(商品ID号、商品名称、商品附加信息、商品价钱、商品数量、商品的图片、商品的描述信息)删除某商品的程序会出现一下两种操作结果:1、删除不成功2、成功删除该商品5.2.4后台添加商品界面;如图5-13所示:-1- 毕业设计图5-13订单商品添加界面点击添加商品,填入商品的具体信息,如商品名称;附加信息;图片的来源地址;商品价格;库存等等信息,即可实现商品的添加。这段代码是对商品添加的实现,通过insert这个方法,将信息插入到数据库中。订单商品添加界面代码的具体的实现和部分代码的解释如下:publicintinsert(StringtableName,Stringfields,Stringvalues)throwsException{intresult=0;StringBuildersql=newStringBuilder();try{sql.append("insertinto").append(tableName).append("(").append(fields).append(")").append("values(").append(values).append(")");System.out.println(sql);result=executeUpdate(sql.toString());}catch(Exceptione){e.printStackTrace();thrownewException("执行添加sql语句:"+sql.toString()+"错误!");}finally{this.closeAll();}returnresult;}-1- 毕业设计5.2.5后台编辑商品界面;如图5-14所示:图5-14后台商品编辑界面对某一商品可进行编辑,可以更改商品的属性,如商品名称;商品的附加标注;商品的图片来源地址;商品价格;库存量;商品的描述以及商品的类型。便可在数据库中实现更改。后台商品编辑界面代码的具体的实现和部分代码的解释如下:publicintupdate(StringtableName,Stringsettings,StringwhereStr)throwsException{intresult=0;StringBuildersql=newStringBuilder();try{sql.append("update").append(tableName).append("set").append(settings);if((whereStr!=null)&&(!"".equals(whereStr))){sql.append("where").append(whereStr);}System.out.println(sql);result=executeUpdate(sql.toString());}catch(Exceptione){e.printStackTrace();thrownewException("执行修改sql语句:"+sql.toString()+"错误!");-1- 毕业设计}finally{this.closeAll();}returnresult;}5.2.6后台订单管理界面;如图5-15所示:图5-15后台订单界面管理员从后台查询所有订单,处理用户的订单,点击发货,或关闭交易,改变订单的状态。管理员可以查询某客户所有订单,管理员需先登录才能进行查询根据订单的ID号码来查询订单信息结果两种结果:1、查无此订单2、查到订单并显示订单信息。订单信息包括:1、订单ID号码;2、时间;3、客户名称;4、收货地址;5、金额;6、订单明细;7、订单状态;8、客户电话修改订单状态,根据this.zhuangtai.equals(“”)值得改变修改订单状态订单的状态有:equals(“1”)已发货equals(“2”)客户已付款equals(“3”)关闭(交易完成)可以保存订单修改后的状态1、已发货2、客户已付款3、关闭-1- 毕业设计5.3本章小结第五章中在Eclipse开发平台下,使用Andriod模拟器对该手机购物商城系统进行测试实现。从中找出不足之处,予以改进。-1- 毕业设计6.总结与展望6.1基于Android平台的移动手机商城的设计回顾此次毕业设计采用了Android和JavaWeb的技术,难度比想象中要大的多,是本人目前做过的最大的,也是难度最高的程序。.因此在完成的过程中并没有做到最完美。在设计初期,遇到了很多难题,但经过自己的努力和指导老师的帮助,其中的问题很快的都得到了解决。本次设计的主要思想还是注重于商品从浏览到购买这一系列流程,并实现前台到后台数据间的交互。前台主要是用了android的界面框架来设计,通过列表视图来显示出商品,并连接到后台,实现商品的第一时间更新。后台运用了JSP+SSH的MVC模型来设计管理页面,主要是针对商品的增,删,改,查和对订单的处理。客户端连接服务器,服务器链接数据库;客户端连接数据库是网络连接,基于TCP/IP连接.服务器是通过jdbc接口与数据库实现连接的。在此次设计中,有着很多的不足之处,各个模块的功能并没有设计的太全面,由于技术方面的问题,也只能将一些复杂的问题简单化。在这次的设计中让我学到了很多知识,尤其是android方面的,让我对移动通信方面的技术产生了很大的兴趣,对android的开发有了一个更深的认识,相信在以后的学习或工作中,都能带给我许多帮助!6.2Android平台的移动手机商城的设计经验总结1.对Java语言有一定了解是必要的,而Java语言本身是面向对象编程的一种语言,因此,对类与对象的概念要有必要的了解,而这些内容在论文中就不进行介绍了。2.要对开发环境进行很深和更透彻的了解3.关于Activity:如果把Activity看作MVC中的Control。它负责管理用户的输入,虽然说一个Activity通常对应一个屏幕,但事实上,我们是可以只用一个Activity管理多个不同的View来实现简单的逻辑。4.关于Intent的使用:Intent分为两大类,显性的(Explicit)和隐性的(Implicit)。一般来说,intent要定位事件的目的地,无外乎需要以下几个信息:(1).种类(category)(2).类型(type)(3).组件(component)(4).附加数据(extras)其实,如果是在一个应用内部,这种隐性的intent实在有点别扭,个人觉得,这种实现方法,只适用于那些较大的系统或者多个不同的应用之间的调用。-1- 毕业设计6.3本章小结第六章中回顾了基于Android平台的移动手机商城设计过程中的遇到的难题,总结了设计过程中得到的经验与启示。-1- 毕业设计参考文献[1]公磊,周聪.基于Android的移动终端应用程序开发与研究.计算机与现代化,2008[2]夏昕.Spring开发指南[M].北京:电子工业出版社,2004.[3]高焕堂.Android的开发入门与实战.人民邮电出版社.2012年4月[4]傅鹂.基于Struts+Spring+Hibernate+Ajax技术的科研管理系统设计[J].软件导刊,2009,8(1):134-136.[5]夏昕,曹晓钢.深入浅出Hibernate[M].北京:电子工业出版社,2005.[6]马越.Android的架构与应用[D].北京:中国地质大学(北京)硕士学位论文,2008:9-20.[7]何玉洁.数据库原理与应用教程.机械工业出版社2005.12[8]刘卫国姚昱禹.Android的架构与应用开发研究.中南大学信息科学与工程学院计算机系统应用2008-11[9]孙晓宇.Android手机界面管理系统的设计与实现.北京邮电大学.2009年[10]曹大有.基于Struts和Spring框架技术的Web应用的开发过程[J].计算机应用与软件,2008,25(8):203-204.[11-1- 毕业设计]孙强.基于Struts+Spring+iBATIS的轻量级Web应用框架研究[J].计算机应用与软件,2008,25(10):135-137.[12]刘平.Android手机访问服务器的一种数据交互方法.西安财经学院网络与现在教育技术中心2010-09[13]陈天河.Struts,Hibernate,Spring集成开发宝典[M].北京:电子工业出版社,2007.[14]黄志明.基于Spring+Struts+Hibernate的报备系统的设计与实现[J].电脑知识与技术,2008,4(Z2):40-41..[15]邓子云.基于Struts2+Hibernate3+Spring2的物流数据交换平台[J].计算机应用与软件,2009,26(10):88-100.[16]赵少卡.基于Struts+Spring+Hibernate架构的信息交流平台的设计与实现[J].计算机与现代化,2009(2):62-66..[17]郝玉龙.安卓程序设计基础清华大学出版社2011[18]邸烁,Android手机平台揭秘和未来发展趋势2008[19]马越.Android的架构与应用[D].北京:中国地质大学(北京)硕士学位论文,2008:9-20.[20]孙更新,Android从入门到精通电子工业出版社2011[21]鲁霞.基于Struts_Spring_Hibernate架构的综合积分系统的研究与实现[D].成都:西南交通大学硕士学位论文,2008.[22]吴善财,Android基础开发与实践清华大学出版社2012[23]开放手机联盟.Android[DB/OL].2008-07-30.[24]韩超,Android经典应用程序开发电子工业出版社2012[25]李刚.Struts2权威指南——基于WebWork核心的MVC开发[M].北京:电子工业出版社,2007.[26]汪永松,Android平台开发之旅机械工业出版社2010[27]高焕堂.Android应用框架原理与程式设计36技[M/OL].Google公司,2008:132-150.[28]杨丰盛,Android应用开发揭秘机械工业出版社2010年9月[29]陈天河.Struts,Hibernate,Spring集成开发宝典[M].北京:电子工业出版社,2007.-1- 毕业设计[30]CHENYu-fen. Mapspatialcognitionresearchandspatialinformationvisualization.,Informationsystem,2009,23(6),532-541[31]孙卫琴.Java面向对象编程.电子工业出版社,2006.7[32]阎宏.《JAVA与模式》电子工业出版社2002.10[33]赵能.基于Eclipse的嵌入式软件开发平台若干关键技术研究.浙江大学硕士学位论文2007.6[34]王世江,盖索林.GoogleAndroid开发人门指南[M].北京:人民邮电出版社,2009[35]李兴华Java开发实战经典[M].北京:清华大学出版社,2009[36]杨丰盛.Android技术内幕[M].北京:机械工业出版社,2011.[37]刘帅旗.Android移动开发从入门到精通.北京.中国铁道出版社,2012.3.386-409[38]简朝阳.MySQL性能调优与架构设计.北京.电子工业出版社,2009.121-155[39]余志龙,郑名杰.AndroidSDK开发范例大全(第二版).北京.人民邮电出版社,2010.36-43[40]ErichGamma,KentBeck.ContributingtoEclipse中国屯力出版社,2005-01本科毕业设计(论文)简明指导手册1毕业设计(论文)总论1.1概述高等院校的毕业设计(论文)教学过程是实现本科培养目标及规格的重要培养阶段。毕业设计(论文)是学生毕业前的最后学习阶段,是学习深化与升华的重要过程;是能力与素质培养的重要途径;是学生学习、研究与实践成果的全面总结;是学生综合素质与实践能力培养效果的全面检验;是学生毕业及学位资格认定的重要依据;是评价高等学校教育教学质量的重要依据。1.1.1毕业设计(论文)的基本概念-1- 毕业设计(1)毕业设计的内涵毕业设计是高等学校应届毕业生,毕业前接受课题任务,所进行的设计过程,并取得其设计成果。(2)毕业论文的内涵毕业论文是高等学校学生毕业前所撰写的学术论文。毕业论文表明作者在科学研究工作中取得的新成果或提出的新见解,并表明作者具有的科研能力与学识水平。毕业论文具有学术论文所共有的一般属性,它的构成与展开严格按照绪论、本论、结论的思维方式,以事实为基础,以严谨的推理过程为依据,得出可信的科学结论。1.1.2毕业设计(论文)的特点与功能(1)毕业设计的特点与功能①毕业设计的特点高等院校学生毕业设计具有设计内容的科学性、设计思想的新颖性、设计表述的规范性、设计条件的约束性、设计过程的综合性、设计结果的实用性等工程设计的特点外,还具有毕业设计任务的确定首先考虑教学基本要求、毕业设计时间的限定性及学业的规定性、毕业设计是在指导教师指导下独立完成的等特点。②毕业设计的功能·教学与教育功能毕业设计教学过程是高等院校培养计划的重要组成部分;是进行设计科学教育,强化工程意识,接受工程基本训练,提高工程实践能力的重要培养阶段;是培养优良的思维品质,进行综合素质教育的重要途径。通过毕业设计教学工作,培养学生综合运用多学科理论、知识与技能,解决具有一定复杂程度的工程实际问题的能力;培养学生树立正确的设计思想和掌握现代设计方法;培养学生严肃认真的科学态度和严谨求实的工作作风;培养学生优良的思维品质,强化工程实际意识;培养学生-1- 毕业设计2工学院毕业设计(论文)简明指导手册勇于实践、勇于探索和开拓创新的精神。在毕业设计阶段,通过毕业设计教学与教育功能的实现,有益于学生科学的智能结构的形成及综合素质的全面培养。·社会功能毕业设计课题来源于实际,毕业设计成果直接或间接为经济建设服务,为生产、科研服务,为社会服务,以实现毕业设计的社会功能。(2)毕业论文的特点与功能①毕业论文的特点毕业论文或称学位论文是学术论文中的一种类型,具有学术性、科学性、创造性,即一般学术论文的共同属性,同时具有下列特点:·毕业论文课题的确定,首先要符合教学基本要求,同时也要兼顾科学研究实际需要,紧密联系实际。·毕业论文具有时间的限定性及学业的规定性。·毕业论文是在指导教师指导下独立完成的。②毕业论文的功能·教学与教育功能毕业论文教学过程是高等学校培养计划的重要组成部分,是学生毕业前提交的一份具有一定理论与实际价值的学术论文。它是高等学校学生从事系统的科学研究的初步尝试;是在指导教师指导下,对取得的科研成果的综合表述。通过毕业论文的教学过程,培养学生探求未知、探索真理的科学精神,以及优良的科学品质与科学素养;培养学生从事科学研究的基本能力。通过毕业论文的教学过程,检验学生综合运用基础理论、基本知识和实验技术,解决科学和技术领域有关问题的能力;检验科研基本训练的实际效果。·社会功能毕业论文是以应用研究成果作为媒介与生产和社会实际相联系。然后,通过开发研究的成果应用于生产实际,为社会服务。同时,毕业论文又是面向社会发表研究成果的重要手段,也是信息交流与信息存储的重要工具,从而实现其社会功能。-1- 毕业设计3工学院毕业设计(论文)简明指导手册1.2毕业设计(论文)教学各阶段流程表1毕业设计(论文)教学各阶段流程1、指导教师上报课12、教研室(课程组)召开会议进行课题审查、论证(要求纪录3、院系(学术委员会)或邀请校外专家对教研室上报课题进行评4、对学生公布课题,并确保一名学生做一个课题(或子课题5、院系汇总通过评审的课题,并作为教学执行计划报教务1、指导教师指导学生查阅相关文献(包括一定数量的外文文献22、毕业生就课题撰写开题报告,开题报告包括以下内容2.1课题背景介2.2课题拟设计研究的主要内容、实验方2.3相关文献综2.4预期成果(或阶段性结果3、开题报告答辩(各院系制定答辩办法,报教务处备案1、中期检查,院系制定检查方2、检查形2.1学生撰写中期报告(含工作进展情况、存在问题、下一步计划安排等2.2学生向检查组自述报告内2.3检查组提问,学生进行答3、检查组对学生的工作作出检查结3.1指出存在的问题,提出意见或建3.2对工作进展严重滞后或不符合培养目标要求的学生提出严重警告或终止毕业设计(4、院系向教务处报中期检查工作总41、毕业答辩及成绩评定按“工学院本科毕业设计(论文)工作规范”进行-1- 毕业设计4工学院毕业设计(论文)简明指导手册毕业设计(论文)程序安排表内容教研室(课程组)确定指导调研、选题,填写选题审批表;院系毕业设计(论文)领导小组审批选题;负责人以适当形式向学生公布课题、学生选题(指导教师选题必以前2汇总选题,编制毕业设计(论文)教学执行计划报教务处第7学期15周前院系主任、教学秘书3完成毕业实习(毕业调研)报告及外文翻译、开题报告。教务处随院系主任、指导教师4中期检查:院制定中期检查方案。教务处随机进行进行抽查。学生完成毕业设计(论第8学期9周前院系主任、教务处院系部下达毕业设计答会,报教务处备案。完成第8学期14周第教研室(课程组)、院系6院系部将毕业设计(论文)成绩前院系主任处学校毕业设计(论文)复答辩8院系组织优秀毕业设计(论文)评选,按教务处要第8学期17周指导教师、院系主任毕业设计(论文)按有关要求存档1.3毕业设计(论文)选题1.3.1选题的基本原则选题是搞好毕业设计(论文)的前提,对毕业设计(论文)-1- 毕业设计5工学院毕业设计(论文)简明指导手册(1)课题必须符合本专业的培养目标及教学基本要求。(2)课题应结合社会实践和科学研究的实(3)课题类型应多样化,能使学生针对各自的情况来选择选题,以有利于发挥学生的积极性,有利于课题的(4)课题应力求有益于学生综(5)课题应具有可完成性。3.2课题的确定程序及学生选题(1)课题确定程序为:①指导教师在深入实际调查研究的基础上,结合自身研究开发实际提出课题,并填写《毕②经教研室(课题组)主任初审后,由院系组织同行专家评审,并报送院系主任批准;(2)学生的选题。各专业教研室(课题组)应员。各指导教师应将课题的提出背景、目的、意义及预期成果向学生作一简要介绍,学生根据自己的情况在教师指导下选题。(3)毕业设计(1.4毕业实习(课题调研)1.4.1毕业实习的目的与要求毕业实习是学生接到毕业设计(论文)任务书应到相关的单位去了解产生及现实状况。(1)毕业实习的目的毕业实习是学生深入生产实践、社会实践等一线实际取得感性认识,从中了解实际工作过程和生产或社会需求过程,结合所学过的理论知识,使认识向深化发展。这种理论与实践的紧密供必要的条件。(2)毕业实习的要求-1- 毕业设计6工学院毕业设计(论文)简明指导手册毕业实习要求学生利用各种有效方法和手段了解本专业所涉及的各方面的实际情况,完成实习任务。向实践学习,了解与专业有关的实际知识。向一线工作人员学习,了解研究者与生产者、创作者的实践感受、认识、经验、建议和优良作风。向使用者学习,了解产品、作品存在的问题及改进的愿望和要求。向文献资料学习,了解信息资料中反映出来的先进的作品1.4.2毕业实习的途径与方法毕业实习的途径主要有两个,一个是实地考察(毕业实习或现场调查),一个是收集资料,二者相互配合。具体方法有:(1)到与课题或专业有各种条件或因素,形成直观的感受,以便提高到理论的高度来研究、分析,找到解决问题的关键所在。(2)到与课题或专业有关的展览会、展销会去考察。展览会、展销会往往提供的是先进的设备与技术、完美的创作段及设备,了解国内外发展水平与趋势,对课题的研究能提供最新的启迪和帮助,使思路开阔,有利引导和借鉴。(3)到图书利、简报、图纸、说明书等文献资料与信息,为制定研究设计和创作方案提供依据和素材。(4)利用信息传递方式,向有关部门单位发函发电,以求帮助提供有关资料或有偿索取。5)资料的收集,重在分析和研究。要求获得的资料既可靠而又有代表性。收集资料,切忌不1.4.3毕业实习(课题调研)报告的撰写撰写实习(调研)报告是对课题调研工作进行总结提高的过程。学生在实习期间应及时把收集报告的原始资料。实习(调研)报告要力求文字通顺、简练,说明应充分利用简图和表格。-1- 毕业设计7工学院毕业设计(论文)简明指导手册实习(调研)报告内容应围绕毕业设计(论文)课题的有关内容深入系统地进行归纳整理,既要有收集到的实际资料,也还应有自己的映发现问题、分析问题、解决问题的主要方案。①实习(调研)报告内容应包括:阅读与课题有关的资料摘录与心得;对收集到的现场资料的整理研)对象的合理性、先进性、经题解决方案的初步探讨,利用现场条件进行的初步验证结果。②实习(调研)报告的撰写:1.5文献检索与应用通过文献检索,及时地、广泛地了解与自己的科研工作相关的信息.5.1文献资料的作用与分类1)文献资料的作用查阅文献资料的作用主了解前人成果;了解进行中的研究;扩大知识面。(2)文献资料的科技文献按其三次文献。①原始文献原始文献是科研人员根据其科研创作成果所形成的文因此也通常是科研人员进行文献检索的主要对象。原始文献主要以下列类型:·学一的版式,用连续的卷、期号或年、月顺序号标识时序,每期登载多篇文章、作品。·科技报告:它是科研、设计单位向上级主管部门或财政资助单位定期递交的关-1- 毕业设计8工学院毕业设计(论文)简明指导手册于科研项目进展情况的报告。·会议文献:主要指科技工作者在学术会议上宣读的论文,会后经主办单位整理而编辑出版的正式文献,通常称为“会议论文·学位论文:指大学或研究院所的学生为了获得高一级学位,,在指导教师指导下通过专题研究而撰写的学术性研·专利文献:指由专利发明人所提交的专利申请书和专利说明书,批准后由专利局公开出版发行并受专利保护。·政府出·其他②二次文献所谓二次文献就是将分散的原始文献用一定规则和方法进行加工、归。二次文献的目的是提供文献线索,是检索原始文献的辅助工具。③三次文献所谓三次文献是对原始文献所包含的知识和信息,进行综合归纳、核对鉴定、浓缩提炼、重新组织等而形成的综合性文献资料,它的时效性和针对性不如原始资料,但其系统性好,对于最初.5.2文献资料的检索1)文献检索途径文献检索的有效途径是正确利用检索工具。文献检索的途径有:书名或篇名途径;作者姓名途径;文献序号途径;分类途径;主题词途途径都是根据文献的内容特征来检索的,常用于未知文献的检索。(2)文献检索步骤分析研究课题5.3文献资料的筛选与引用-1- 毕业设计9工学院毕业设计(论文)简明指导手册(1)文献的筛选文献检索只是利用文献的第一步,要把的在于要把检索到的文献认真地筛选、消化和吸收,只有经过这个过程,才能达到查阅文献的真正目的——利用文献。文献筛选的目的在根据课题发展的不同时期、不同作者分类;也可按文献的类别如图书、论文、专利、报告等分类。文献筛选的过程是一个去粗取精、去伪存真的过程。在文献的筛选和消化吸收过程中,也存在一个“由薄到厚”和“由厚到薄”的积累过程。开始接触某一课题时,所知甚少,对文献的积累也少,随着课题研究工作的不断深化,文献阅历不断丰富,则文献资料的积累越来越多,这就是“由薄到厚”的过程。当“由薄到厚”的过程积累到一定程度,对研究课题的本质认识达到一个升华为“维生素”式的精华,这就是“由厚到薄”的过程。(2)文献的引用在查阅文献并经过筛选和消化吸收之后,有些文献可能就会在研究工作中起到重要的参考文等)时,应当注明所引用的文献。注明引用文献的目的一般来说主要有以下四个方面:·在说明自己的科研课题来源和立题思想时,通过引用文献说明前人工作的基础和自己·在论证自己的研究成果的结论时,有时可引用别人的文献资料作自己工作的旁证。·在一些重要的学术观点上注明可参考的文献资料,为感兴趣的读者检索同类文件提供方便。是对别人研究成果表示尊重和承认的体现。1.6毕业设计说明书与毕业论文的撰写1.6.1毕业设计(论文)撰写的内容与-1- 毕业设计10工学院毕业设计(论文)简明指导手册应包括如下主要内容:(1)标题:要求简洁、确切、鲜明。(2)中英文摘要及关键词:摘要一般应说明研究工作目的、实验方法、结果和最终结论等,而重点是结果和结论。摘要中有数据、有结论,是一篇完整的短文。中文摘要约30对应。(3)目录。5)正文①毕业设计的正文内容包括:·(外)发展概况及存在的问题;本设计的指导思想;阐述本设计应解决的主要问题。·本论:设计方案论证;计算部分;结构设计部分;样机或试件的各种实验及测试情况;方案的校验等;·结论:应概括说明本设计的情况要问题要重点指出并加以研究。②毕业论文的正文内容包括:·引言:选题的缘由;对本课题已有研究情况的评述;说明本文所要解决的问题和采用的手段、方法;概述成果及意义。本论:研究工作的基本前提、假设和条件;模型的建立,实验方案的拟定;基本概念和理论基础;设计明;理论论证,理论在实际中的应用等。根据课题的性质,一篇论文可能仅包含上述的一部分内容;·结论:应包括对整个研究工作进行归纳和综合而得出的总结;所得结果与已有结果的比较;以及在本课题的研究中尚存在的问题,对进一步开展研究的见解与建议。它集中反映作者的研究成果,表达作者对所研究的课题的见解和主张,是全文的思想精髓,是文章价值的体现。一般写得概括、篇幅较短。撰写时应注意下列事项:a结论要简单、明确。在措辞上应严密,但又容易被人领会;b结论应反映个人的研究工作,属于成果,切忌言过其实,在无充分把握时,应留有余地。因为在科学问题的探索上-1- 毕业设计11工学院毕业设计(论文)简明指导手册是永无止境的。(6)致谢:简述自己通过本设计的体会,并应对指导教师和协助完成设计的有关人员表示谢意。(7)附录:有各种篇幅较大的图纸、数据表格、公式的推演、编写的算法语言程序等材料附于应按照参考文献的注录规范列出主要参考文献。2毕业设计(论文)撰写规范2.1学生毕业设计(论文)的规范化要求2.1.1基本要求(1)毕业设计必须由学生本人独立完成,不得弄虚作假,不得抄袭他人成果(2)毕业论文应中心突出,内容充实,论据充分,论证有力,数据可靠,结构次分明,图表清晰,格式规范,文字流畅,字迹工整,结论解释合理。(3)毕业设计(论文)2.1.2一般格式和顺序(1)封面:(附1)·题目:应能概括;题名力求简短,严格控制在25字以标题和副标题。·导师:指导教师不能多于三人。(2)中文摘要:摘要叙述本设计的主要内容。特点,文字要精练.一般应说明研究工作目的、实0字左右;为了便于文献检索,应在本页下方另起一行注明论文的关键词(3-5个)。格式附3)(3)英文摘要:中文摘要后为英文摘要。内容应与中文摘要相同。(格式附3)(4)目录:应是论文的提纲,也是论文组成部分的小标题。写出目录,标明页码。(5)主要符号表;如果论文中使用了大量的物理量符号、标志、缩略词单位、自定义名词和术语等,应编写成注释说明-1- 毕业设计12工学院毕业设计(论文)简明指导手册使用讨论、与理论计算结果的比较,本研究方法与已有研究方法的比较、技术(论文)是专门可供参考的学术著作,必须写得简练、重点突出,不要叙):应该明确、精炼、完整、准确,使人只要一看结论就能全面献的写法世界上有通用的习惯,我国也有国家标准规定,应该遵循,不可杜撰给予直接帮助的人员,例如的辅在论文写作过程中,有些问题需要在正文之外加以阐述和说明。(11)附件将各种篇幅较大的图纸、数据表格、计算机程序等材料附于说明书的谢辞之后。2(1确,避免使用文学性质的带感情色彩的非学术性词语;数量不多,可以不设专门的汇集表,而在论文中出现时加以说明。(6)正文:包括引言、本论、结论三个部分①引言(第一章):在论文正页前,内容为:该研究工作在国民经济中的实用价值与理论意义:本研究主题范围内国内外已有的文献综述;论文所要解决的问题。②本论:是毕业设计(论文)的主体。写作内容可因设计、研究课题性质而不同,一般可包括:理论分析、计算方法、实验装置和测试方法、经过整理加工的实验结果的分析经济评价与分析等。根据课题的性质,一篇设计(论文)可能仅包含上述的一部分内容。毕业设计述那些专业人员已熟知的常识性内容。同时应注意使各章之间密切联系,形成一个整体。③结论(最后一章了解论文的意义、目的和工作内容;要认真阐述自己的创新性工作在本领域中的地位、作用和意义。(7)参考文献:只列作者直接阅读过、在正文中被引用过、正式发表的文献资料。参考文,而且全文应统一,不能混用。参考文献一律放在论文结论后,不得放在各章之后。(8)致谢:致谢根据自己的工作体会,对指导教师和协助完成设计的有关人员表示谢意。谢辞是以简短文字,对课题研究与写作过程中曾指导教师、答辩教师及其他人员,表示自己的谢意。这不仅是一种礼貌,也是对他人劳动的尊重,是治学者应有的思想作风。(限200字)(9)附录:可以包括正文内不便列出的冗长公式推导;以备他人阅读方便所需助性数学工具或表格;重复性数据图表;计算程序及说明。(10)注释.1.3毕业设计(论文)的书写要求)语言表述·毕业设计(论文)应层次分明、数据可靠、文字简炼、说明透彻、推理严谨、立论正-1- 毕业设计13工学院毕业设计(论文)简明指导手册·毕业设计(论文释清楚2)层次和标题·层次要清楚,标题要重点突出,简明扼要。·各层标题第二级、第三级和第四级标题均:1.1××××1.1.1××××(3)篇眉和页码·篇眉从第一章·页码从引言开始按阿拉伯数字端,居中书写。4)有关图、表、公式等图:·要精选·要清楚,但坐标比例不要过份放大,同一图上不同曲线出:·图中的术语、符号、单位等应同文字·图序及图名居中置于图的下方。表:·表中参数应标明量和单位的符号;·表序及表名置于表的左上方排列或居中排:公式的编号用括号括起写在右边行末,其间不加线。图、表、公式等与正文之间要有一行的间距。文中的图、表、3-2,公式(5-1)等。图或表的下方。(5)有关参考文献参考文献表可以采用顺序编码制组织,也可以按“著者一出版年”制组织。建议根据《中国高校-1- 毕业设计14工学院毕业设计(论文)简明指导手册或“,etal.”。几种主要参考文献著录表的格式为:连续出版物:序号作者.文题.刊名,年,卷号(期号):起~止页码论文集:序号作者,文题.见(im):编者,编(eds.).文集名.出版地:出版者.年.起~止页码学位论文:序号姓名.文题:[XX学位论文].授予单位所在地:授予单位,授予年序号申请者.专利名.国名,专利文献种类,专利号,出版日期技术标准:序号发布单位.技术标准代号.技术标准名称.出版地:出版者,出版日期举例如下:[1]张昆,冯立群,余昌钰,等.机器人柔性手腕的球面齿轮设计研究.清华大学学报,1994,34(2):1—7[2]竺可桢.物理学,北京:科学出版社,1973.56-60[3]DupontB.BonemarrowtransplantationmseverecombinedimmunodeficiencywithanunrelatedMLCcompatibledonor.In:WhiteHJ,SmithR,eds.ProcAnnualMeetingOftheInternationalSocietyrOrExperimentalHematology.HouInternationalSocietyfOrExperimentalHematology,1974.44-46[4]郑开青.通讯系统模拟及软件::[硕士学位论文]北京:清华大学无线电系,1987[5]姜锡洲.一种温热外敷药制备方法.中国专利,881056073,]中华人民共和国中国标准出版社,1994-1l-01(6)量和单位要严格执行GB3100~3102:93有关量和单位的规定(具体要求请参阅《常用量和单位》·计量出版社4打印要求1)封面l封面由学校统一设计(见附1),按学科不同,选用不同颜色的封面加以区l中文题目:一号黑体字,一行排不下时可排两行,行间距为1.2倍;l英文题目:二号“Timel院系名称、专业、班级、学生姓名等:三l论文编号:四号宋体。(2)论文字体、字型及字号要求及其举例中文英文-1- 毕业设计15工学院毕业设计(论文)简明指导手册l一级标题1引论黑体小三号Arial15ptl二级标题4.1实验方法黑体四号Arial14ptl三级标题3.l四级标题5.3.3.2原材料黑体小四号Arial12pt(不推荐使用)宋体小四TimesNewRoman12ptl表题与图题表2.13飞行时间质谱实验装置体五号TimesNewRoman11ptl参考文献及篇眉Herz宋体五号Tim(3)段落及行间距要求l正文段落和标题一律取“固定行间距20~21pt”。l一般一、二、三级标题段前间距为1行、后间距为0.5行。可适当调节各级标题的段后间距,以利参考文献正文取固定行距17pt。注意不要在一篇参考文献段落的中间换页。(4)用纸及打印规格纸张规格、尺寸(厘米):A4、(21x29.7),使用标准简化汉字,采用格打印。页面上、下、左、右、装订线、页眉、页脚的设定分注:根据论文的薄厚程度,自由选择单面或双面印刷。5毕业设计的资料管理1)装订:全部毕业设计(论文)的资料分两册装订。l毕业设计(论文)按“2.1.2一般格式和顺序”顺序装订;l毕业设计(论文)的相关文件按以下顺序装订:封面、目录、毕业设计(论文)选题审批表、毕业设计(论文)、毕业设计(论文)答辩纪录、论文)开题检查纪录、封底;(2)存挡保存:按学校规定执行(3)其他要求:凡学校有统一格式要求学号、主业和院(系)名称均应填写完整。(4)份量要求-1- 毕业设计16工学院毕业设计(论文)简明指导手册毕业设计说明书或毕业论文字数不少于1万字,外文翻译不少于3千汉字(或1.5万印)、译文、毕业设计图纸、毕业设计说明书、毕业指导教师批改实习报告时应对学生在实习过程中的表现、实习的内容作出全面的评价。在报告的最后给出不少于50字的评语,并以五级记分制,既优秀、良好、中等指导教师批改译文时应指出译文中的错误,并在译文最后给出不少于50字的评语,译文不单独计分,与毕业设计(论文)一并综合评分。译文的规范要求与毕业设计发现的错误应要求学生及时修改,如果在终稿上毕业设计(论文)整体(包括译文,设计图纸、说明书或论文)的评价在“工学院毕业设计(论文)评审表(一)”中的指导教师评语栏中进行,字数不少于150字,规范化审查评估加毕业答辩。规范化审查要求如下:规范化审查工作。(2)校评估专家组负责全校毕业设计(论文)的规范化评估工作。(3)规范化审查评估不合格者,应进行整改,直至达到要求为止。刷符),外文参考资料阅读量不少于5万印刷符。2.2指导教师批改的规范化要求对学生的毕业实习报告(调研报告论文,指导教师应全面认真地批改,并针对具体优、缺点给出评语及建议。2.2.1毕业实习报告(调研报告)、及格、不及格,给出学生的实习成绩。2.2.2译文(论文)相同。2.2.3毕业设计说明书及毕业论文指导教师在批改设计说明书或论文时仍有不当之处,指导教师应在教师评语中指出。2.2.4毕业设计(论文)整体评价并以百分制给出学生毕业设计(论文)的成绩。2.3毕业设计或毕业论文通过规范化审查后方可参(1)各系和专业答辩委员会根据规范化要求负责组织本单位的毕业设计(论文)的-1- 毕业设计17工学院毕业设计(论文)简明指导手册论文)的指导3.1.1指导教师的职责与作用毕业设计(论文)教学实行指导教师负责制。指导教师在毕业设计(论文)阶段始终起着主导作用。充分发挥指导教师的作用是提高毕业设计(论文)质量的关键。(1)指导教师条件指导教师一般应由具备中级及以上职称或硕士及以上学位,并有一年以上的本学科专业实践工作经历或一轮以上的相关实践指导工作,但可有计划地安排他们协助指导。指导教师由教研室(课题组)对其资格进行审查,院系主任批准。指导教聘请校外相当于中级以上技术职务的工程技术人员或研究人员担任指导,有关教研室(课题组)须指定专人进行检查和配合,掌握进度,协调有关问题。(2)对指导教师的要求①为确保毕业设计(论文)指导力量,充分发挥指导作用,每名指导教师所副教授及以上不超过10人。教授与初级及以上职称合作指导的毕业设计(论文)学生数不超过6人;②在毕业设计(论文)期间,指导教师应坚守岗位。如果指导教师出差期间须委③指导教师要重视对学生独立工作能力、调查研究能力和创造能力的培养,着重启发、引导,充分发挥学生的主动性和积极性。①通过调研提出课题,拟定并经院系主任审批后下达任务书,编写教学方案,制定指导计划;②组织和指导学生进行课题调研;③审定学生的总体方案和工作计划,并定期检-1- 毕业设计18工学院毕业设计(论文)简明指导手册④毕业设计(论文)过程中,进行指导和答疑,及时解答和处理学生提出的有关问题;⑤做好学生译文的评阅工作;评阅其他课题组学生的设计(论文),⑦参加毕业设计(论文)答辩和成绩评定。3.1.2指导方法及任务书的编写在整个毕业设计(论文)教学过程中,有关毕业设计(论文按时、独立完成毕业设计(论文)任务,更要充分调动学生的学习积极发挥学生的创造精神,鼓励学生独立分析解决问题。指导教师在指导中应尽量做到:①既要教给学生一定的知识和技能,更要培养学生的能力和素质。②既要敢于放手,不包办代替,又要积极引导,不放任自流。③既要在具体的设计④既要做好充分学生的创新能力。⑤既教书,又育人。关心学生,做好学生的思想教育工作。(1)指导方法①指导教师应善于引导学生以正确的思想方法、工作方法、科学态度来完成毕业设计(论文)课题。对足够的重视。②指导教师应引导学生抓重点,抓关键,对重要环节深思熟虑,仔细推敲,反复演算,严格把关。③指导教师要善于启发诱导,因材施教,调动学生的积极性。④指导教师应定期检查学生的工作进度及完成工作的质量,督促学生的时间、精力投入。要特别重视学生开题报告、中期报告的情况,发现⑤指导教师对学生应以各种形式及时进行指导、答疑。教师每周指导时间应依据课题内容及工作量和进度而定。答疑指导采取定期或不定期及时取得教师的帮助与指导,指导教师应有指导纪录。⑥指导教师应结合业务指导的同时,做好学生-1- 毕业设计19工学院毕业设计(论文)简明指导手册素质。要教育学生严谨治学,诚信做人,不抄袭他人成果。导教师共同从事毕业设计(论文)工作的依据,由专为正式任务下达给每位学生。每位位学生的任务书不同。毕业设计(论姓名等信息。③毕业设计(论文)工作进度、完成日期。所学知识和技能,提出解决问题的方案与方法,并付诸实施的能力;语言表、自主选择、自主实现的机会。毕业计(论文)的对工作的质量负责,有高度的责任感,在带队教师及实习单位的指挥和安排,注意安全。调研⑦指导教师对学生完成毕业设计(论文)任务进行全面审查,审阅全部书面材料,符合要求后方可同意参加毕业设计(论文)答辩。(2)毕业设计(论文)任务书的拟定毕业设计(论文)任务书是学校或院系根据已确定的毕业设计(论文)课题下达给学生个人的指令性文件,是学生和指业教研室(课题组)主任、院系主任审定后,作学生的任务都应有独立完成的部分,因此,每文)任务书的主要内容包括:①课题名称,学生专业、班级、②毕业设计(论文)的主要设计内容与要求。④主要原始资料和参考文献。毕业设计(论文)任务书的格式由教务处统一制定。3.1.3对学生的基本要求毕业设计(论文)教学环节是综合性实践教学活动。它不仅使学生融汇贯通所学过的知识和技能,综合地运用到实际工作中,还要掌握学习、钻研、探索的方法,即体现教学不仅只是让学生继承,还要努力让学生去创造。因此,毕业设计(论文)教学阶段主要应培养学生的调查研究、收集信息数据、查找文献资料的能力;观察、分析、判断、提出问题的能力;对事实及理论抽象概括的能力;实际运行和操作的能力;综合达的能力等等,总之,是为了培养学生独立获取知识并自主运用的能力。能力只能在实践活动中培养,在掌握、运用知识的过程中形成,能力的获得必须通过实践训练。毕业设计(论文)环节为学生提供了自主学习设计(论文)具有实践性、综合性、探索性、应用性等特点,同时也为启发学生智能和学生素质的培养,提供了综合训练和实习机会。因此,为了达到毕业设教学目的,必须对学生提出明确的基本要求:(1)充分认识毕业设计(论文)的重要性。规定的时间内全面完成毕业设计(论文)的各项任务,争取优异成绩。(2)在课题调研阶段,要服从结束后及时写出调研报告(实习报告)。-1- 毕业设计20工学院毕业设计(论文)简明指导手册(3)主动接受教师的检查和指导,定期向教师汇报毕业设计(论文)工作进度,听取教师对工作的意(4)充分发挥主动性和创造性,树立实事求是的科学作风,爱护公共财物和文献资料,自觉遵守和维护安全技术规程,爱护实验仪器,坚持节约、杜守规章制度。(5)培养严谨的工作作风和团结协作精神,必须独立完成毕业设计(论文)任务,严禁抄袭他人的设计(论文)成果或请人代替完成毕业设计(论文)。(6)在毕业设计(论文)答辩结束后,应交回毕业设计的所有材料(包括设计说明(7)毕业设计期间,应保证时间及精力的投入,请假3.2毕业设计(论文)的质量标准与成绩评定3.2.1毕业设计(论文)的质量标准及要求(1)毕业设计(论文)选题应按照专业培养目标,符合学生在校所学的理论知识和技能的实际情况,使学生受到综合训练,注重培养学生的创新精神和实践能力。理、工科类专业毕业设计(论文)应有利于培养学生的工程设计及绘图能力、科学计算及数据处理能力、实验能力、外文阅读能力、计算机应用能力、收集查阅文献资料和调查研究能力、技术经济综合分析能力、分析解决工程技术实际问题能力、独立工作能力和创新能力等。提倡不同学科专业互相结文目的在于总结消化在校期间的学习成果,培养综合运用所学知识分析问题和解决问题的能力,并使学生受到科学研究、外文阅读、计算机应用、收集查阅文献资料和调查研究、独立工作等方面的基本训练。(2)题目难度适中,原则上每人一题为宜;对于大而难的题目,指导教师可题目分解为学生可完成的、相对独立的若干子题目,保证学生既要作,又有独立完成的部分。毕业设计(论文)应有阶段性成果。(3)毕业(4)毕业设计(论文)题目必须符合学科专业方向和培养目标。(5)学生在修完培养计划规定的课程并取得规定的学分后方有资格做毕业设计(论文)。(6)学生应能将所学知识和技能用于毕业设计(论文)中。理论依据充分,数据准确,公式推导正确,理论联系实际,运用科学的研和实际问题的能力。-1- 毕业设计21工学院毕业设计(论文)简明指导手册(7)能够独立检索文献资料并合理利用。能运用一门外语阅读、翻译本专业外文资料。外文参考资料阅读量不少于5万个印刷符。(8)计算机应用任务明确。非计算机类理、工科专业以计算机绘图或试为主,文、管、经、法类学科专业以计算求能使用当前较流行的软件或根据课题需要自行开发软件。计算机应用的具体工作量由专业(9)必须对设计方案进行技术经济分析。(10)图纸、表格、插图规范准确,符合国家标准。并尽可能采用计算机绘制各种图表。(11)毕业设计(论文)任务书在毕业设计(论文)开始前由指导教师填写,每个学生一份且各不相同,经教研室(课题组)主任审批后正式下达,任务应具体明确,每个学生应有独立完成的任务。(12)经指导教师审阅修改的毕业设计(论文)应于答辩师由教研室主任指定。评阅教师应认真评阅图纸、论文和说明书,并在“工学院毕业设计(论文)评审表(一)”中的评阅教师评语栏中写出不少于120字针对性强、内容具体的评阅意见,并以百分制给出评阅成绩。(13)按时完成了任务书规定的毕业设计(论文)工作任务,并经专业答辩委员会审查合格的毕业设计(论文),方有资格参加答辩。答辩小组应认真做好答辩纪录,并在评审表(三)写出总评成绩。毕业设计(论文)的总评成绩按百分制折算为五级记分制,既优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)、不及格(59分以下)报教务处。(14)优秀毕业设计(论文)的评选工作由各院数量的优秀论文上网展示工作。各院系在优秀毕业设计(论文)中推荐出一定量的毕业设计(论文),每篇写出不少于300字的推荐意见和电子版叫教务处。由教务处在网上开辟的展示专区,供师生进行交流。1)评阅工作要认-1- 毕业设计22工学院毕业设计(论文)简明指导手册·指导教师评阅指导教师应对学生的毕业设计(论文)进行认真、全面审查并写出不少于150字的评语。·评阅人评阅论文评阅(论文)质量给出论文评阅人的评分和针对性强、内容具体、并写出不少于120字的评语。2)答辩工作①答辩资格审查。答辩前由专业答辩委员会对学生的况之一者,不准答辩。·未按时完成任务书规定的毕业设计(论文)任务·未达到毕业设计(论文)规范化形式审查要求者;·因违犯操作规程造成重大设备事故或人身伤亡事故者;·毕业设计(论文)期间,违反学校有关规定者。②各院系成立系答辩委员会,具体领导本系各答辩委员会由院系主任、专业教研室(课题组)主任和资深教授等人员组成;各专业教研室(课题组)成立专业答辩委员会,具体负责本专业毕业设计(论文)答辩和成绩评定,专业答辩委员会下设答辩小组。③答辩小组成员一般由校内教师组成,若课题需要,也可聘请校外同行专家参加。答辩小组成员以3~5名为宜,由一名骨干教师担任组长。答辩小组组成实行指导教师回避制,即学生不得在自己的指导教师所在的答辩小组④答辩分公开答辩和小组答辩两种形式,公开答辩可在院系或教师质疑⑤在校外做毕业⑥毕业设计(论文)答辩工作中出现的重大原则性问题,报院系答辩委员会研究处理。(3)成绩评定①毕业设计(论文)的成绩评定由指导教师、论文评阅教师、答辩小组分别给出的三部分成绩相加而成,其比例分委员会集体审定。毕业设计(论文)的总评成绩按百分制折算为五级记分制,既优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)、不-1- 毕业设计23工学院毕业设计(论文)简明指导手册及格(59分以下)报教务处。②成绩评定必须严格按《毕业设计(论文)成绩评定标准》进行,且各专业毕业设计(论文)的优良率不得超过该专业参加答辩人数的50%,其中优秀率不超过15%。优秀、良好、③成绩评定标准。下表给出了理工科专业本科毕表3理工科专业本科毕业设计(论文)成绩评定标准(试行)工作量[100>x≥90]超额完成任务书规定的工作量除全部阅读教师指定的参考资料、文献外,还能阅[90>x≥80]能较好地完成任务书规定的工作量除全部阅读教师指定的参考资料、文献外,还能阅读一些自献,并按要求[80>x≥70]按时完成任务书规定的工作量能阅读教师指定的参[70>x≥60]能基本完成任务书规定的工作量[x<60]没有完成任务书规定的工作量未完成教师指并按要求按时完成外文翻译,译文准确质量好设计合理、理论分析与计算正确,资料,并按要求按时完成外文翻译,译文质量较好设计比较合理,理论分析与计算正确译,译文质量尚可设计比较合理,理论分析与计算基本设计基本合理,理论分析与计算无大译达不到要求设计不合理,理论分析与计算有原则性错平与实际能力有较强的实际动手能力及较强的独立工作能力对研究的问题能较深刻分析比较准确,有一定的实际动手能力和独立工作能力对研究的问题能正确分析或有数据基本准确,实际动手能力及独立工作能力尚可对研究的问题能提出自己的据无原则差错,实际动手能力及独立工作能力较弱研究能力较弱,对某些问题提不误,实验数据不可靠,实际动手能力及独立工作能力差缺乏研究理论与专业知识独到之处,成果突出,很好地掌握了有关基础理论与专业知识见解,成果比较突出,较好地掌握了有关基础理论与专解,成果有一定意义,基本掌握了有关基础个人见解,取得一定成果,基础理论和专业知识掌握得不够扎实何成果,基础理论和专业知识不扎实-1- 毕业设计书)文结构严谨,逻辑性强,论述层次清晰,语言准确,文字流畅结构合理,符合逻辑,层次分明,语言准确,文字通顺结构基本合理,层次较为分明,文理通顺基本能结构有不合理部分,逻辑性不强,论述基本清楚,文字尚通顺能阐明自己的基本观点,对某内容空泛,结构混乱,文字表达不清,错别字较多不能阐明自己的基本观点,主要问题况地回答各种问题关的问题能回答,无原则错误回答或有错误,经提示后能作补充或进行纠正出或有原则错误,经提示后仍不能回答有-1- 毕业设计24工学院毕业设计(论文)简明指导手册学度与规范0.10100习态学习态度认真,模态度比较认真,学习态要求3.1毕业设计(论文)管理组织机构为了顺利完成各项管理目标,应建立校、调运行。3.3.2毕业设计(论文)以随机方式对全校毕业设计进行评估;毕业设计(论文)资料存档及管理。①贯彻落实上级主管部门的有关指导文件,②审定各院系毕业设计(论文)教学执行计划,③对毕业设计质量进行监控,组织全校毕业设计(论文)中期检查,组织校内专家对各院系毕业设计(论文)质量进行评估;④组织全校毕业设计(论文)抽样复答辩;⑤总结全校毕业设计(论文)教学工作,开展教学研究,组织经验交流,编辑出版优秀毕业设计(论文)集等。(2)学生处工作职责领导各院系辅导员和班主任做好毕业设计(论的同时,会同就业管理部门帮助学生(3)院系工作职责①在学校预算的基础上落实本系毕业设计(论文)经费预算;②进行毕业设计(论文)工作动员,向各教研室(课题组)布置毕业设计(论文)-1- 毕业设计25工学院毕业设计(论文)简明指导手册③组织审查全院系毕业设计(论文)选题和④定期检查各专业教研室(课题组)毕业设计(论文)工作进展和质量情况,协调处理本系⑤成立院系、专业两级答辩委员会,并负责组织公开答⑥复查成绩评定情况,组织有关专家对本院系毕业设评估;⑦评选本院系优秀毕业设计(论文),并向学校推荐⑧做好毕业设计(论文)工作总结,写出书面报4)教研室(课题组)工作职责①安排指导教师和审定毕业设计(论文)题目;②审核学生的毕业设计(论文)的答③审定并下达毕业设计(论文)任务书;④做好毕业设计(论文)前期、中期和后期的工作检查,及时研究和处理毕文)中的教学和其他有关问题;⑤考核全室指导教师的工作,对学生毕业设计(论文)质量进行检查把关;⑥审查学生毕业答辩资格,组织毕业设计(论文)答辩和成绩评定工作;⑦做好本专设计(论文)的实际质量等方面进行结分析)。.4毕业设计(论文)的教学质量评估3.4.1毕业设计(论文)教价的重要组成部分。毕业设计(论文)质量评估按学校《本科毕业设计质量评估指标体系》实施,业论文质量评估按《本科毕业论文质量评估指标体系》实施。3.4.3毕业设计(论文)教学质量-1- 毕业设计26工学院毕业设计(论文)简明指导手册27专是评价结果。毕业设计(论文)教学质量评估结果作为改进毕业设计(论文)教学的依据和系、教师教学考核的重要依据之一。院、系和教研室应根据毕业设计(论文)评估中发现的问题,及时采取有效措施,责成有关方面努力整改,提高质量。二○○○年一月三次修订二○○四年一月四次修订二○○六年十一月五次修订(1)全校毕业设计(论文)教学质量评估工作由主管教学副院长负责,教务处对评估工作全过程进行组织、协调和管理。各系毕业设计(论文)教学质量评估工作由系主任负责,可指定专人协助。(2)建立院、系两级评估专家组。学校教学评估专家组负责全校毕业设计(论文)的教学质量评估。系专家组负责本系毕业设计(论文)教学质量评估。专家组成员应由本学科教学经验丰富、学术上有较高造诣和热心于教学改革的具有高级职称的家组成。专家组的具体任务是检查毕业设计(论文)教学工作的实际状况,实事求地分析毕业设计(论文)教学工作的成功经验及存在的主要问题,提出改进毕业设计(论文)教学工作的意见和具体建议,促进教学改革的深入与教学质量的提高。(3)毕业设计(论文)抽查。评估专家组随机抽查应届毕业生毕业设计(论文)。(4)评价结果。根据所抽评的毕业设计(论文)的评分情况,给出客观、公正的-1-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭