二维码电子请柬生成与扫描系统设计毕业设计.doc

上传人:仙人指路1688 文档编号:3934236 上传时间:2023-03-28 格式:DOC 页数:28 大小:535.50KB
返回 下载 相关 举报
二维码电子请柬生成与扫描系统设计毕业设计.doc_第1页
第1页 / 共28页
二维码电子请柬生成与扫描系统设计毕业设计.doc_第2页
第2页 / 共28页
二维码电子请柬生成与扫描系统设计毕业设计.doc_第3页
第3页 / 共28页
二维码电子请柬生成与扫描系统设计毕业设计.doc_第4页
第4页 / 共28页
二维码电子请柬生成与扫描系统设计毕业设计.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《二维码电子请柬生成与扫描系统设计毕业设计.doc》由会员分享,可在线阅读,更多相关《二维码电子请柬生成与扫描系统设计毕业设计.doc(28页珍藏版)》请在三一办公上搜索。

1、 毕 业 论 文(设 计)题目:二维码电子请柬生成与扫描系统设计姓 名 岳栋栋 学 号 200900171263 学 院 控制科学与工程学院 专 业 自动化 年 级 2009级 指导教师 赵子健 2013年 5月 20 日摘 要随着计算机技术和图像编码技术的不断发展与进步产生了一种自动识别技术,既条码技术。二维码是条码的一种,由于它信息容量大、容错能力强,可靠性高、成本低,近年来得到了广泛应用。随着智能手机的普及,Android平台以其开放性、良好的用户体验成为了智能手机主力的操作系统。结合二维码技术,在Android平台上进行相关软件的开发可以进一步普及二维码技术应用,方便数据信息的交流。本

2、项目就是用Java语言,通过Eclipse平台设计了一个适用于Android平台的基于二维码生成与解码的一个应用软件。本软件可以将一些信息加密后生成为二维码,生成的二维码可以应用在电子请柬中。然后再用本软件扫描电子请柬中的二维码,可以获得加密前的信息,并且确认来着的身份。本软件可以防止不被邀请的人混入一些场合,应用性较强。关键词:二维码,安卓,手机软件 ABSTRACTWith the continuous development of computer technology and image coding technology a kind of automatic identificat

3、ion technology called bar code technology imerged. Quick Respond code is one kind of the bar code. In recent years ,its widely used because of its large information capacity, fault tolerant ability, high reliability and low cost . With the popularity of smartphones, Android platform has become the m

4、ain smartphone operating system with its openness and good user experience. The development of applications related to QRcode on the Android platform can make code technology more popular and make data communication more convenient.In this project, a application based on the generate and encode of t

5、he Qrcode on the Android platform was designed and developed.This application was developed on Eclipse with Java programming language. This software can put some information in a qr code that can be used in the electronic invitation. Then you can scan the qr code in the electron invitation to get th

6、e original information and confirm the identification of the visitor. This software can prevent people who are not invited entering some occasions.KEYWORDS: Qrcode,Android,application目录第一章 绪论111 系统开发背景以及意义11.1.1 系统开发背景11.1.2 系统开发意义11.1.3 二维码介绍212 开发工具介绍31.2.1 JDK简介31.2.2 Android SDK简介31.2.3 Eclipse简

7、介31.2.4 ADT简介413 项目开发环境41.3.1 硬件环境41.3.2 软件环境41.4 环境搭建41.4.1 安装配置JDK41.4.2 安装配置Android平台SDK51.4.3 下载安装集成开发环境Eclipse51.4.4 安装设置ADT插件5第二章 系统的总体设计62.1 系统模块结构设计62.2 计算机物理系统的配置方案设计6第三章 系统的详细设计83.1 系统流程图83.2 界面设计9第四章 应用程序的编程实现114.1 Android应用工程文件组成114.2 Android应用程序组成124.3 Intent的使用124.4 调用ZXing134.5 编程实现14

8、4.5.1 编写配置文件144.5.2 编写布局文件154.5.3 编写源程序16第五章 应用程序的测试185.1 在模拟器上测试185.2 在目标设备上测试185.2.1 软件安装测试185.2.2 生成二维码测试195.2.3 扫描二维码测试19结论21致谢22参考文献23第一章 绪论11 系统开发背景以及意义1.1.1 系统开发背景智能手机是指具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,并可以通过移动通讯网络来实现无线网络接入的这样一类手机。智能手机具备无线接入互联网的能力,具有PDA的功能,具有开放性的操作系统,人性化,功能强大,扩展性能强,第三方软件支持

9、多。这些优点决定了智能手机必将在市场上占有一席之地,智能手机市场的潜力不可估量。Android智能操作系统是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,是由谷歌、开放手持设备联盟联合研发,谷歌独家推出的智能操作系统。Android平台有多种优势,首先在开放性方面,Android平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者。其次,用户可以更加方便地连接网络,运营商的制约减少。第三,安卓平台有丰富的相关硬件。第四,Android平台提供给第三方开发商一个十分宽泛、自由的环境。Android平台手机可以无缝结合优秀的Google服

10、务。这种种优势决定了安卓逐渐成为全球最受欢迎的智能手机操作系统。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班操作系统,跃居全球第一。条码技术是在计算机应用中产生并发展起来的,具有输入快、准确度高、成本低、可靠性强等优点,广泛应用于商业、邮政、图书管理、仓储、工业生产过程控制、交通等领域。条码分为一维码和二维码,一维条形码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,数据容量小,损坏后不能读取,这些缺点决定了二维码的诞生以及二维码广阔的应用前景。1.1.2 系统开发意义本项目设计了个安装在Android平台智能手机的电子请柬系统。可

11、以完成二维码生成,二维码扫描,以及信息核实。二维码信息容量大、编码范围广、容错能力强、译码可靠度高、成本低、容易制作,这些优点决定了二维码特别适用于表单、安全保密、追踪、证照、存货盘点、资料备援等方面。二维码电子请柬服务,是二维码技术在移动商务服务中的另一种应用,主要用于二维码会议。二维码电子请柬系统属于手机二维码应用,它将现代移动通信技术和二维码技术结合在一起。通过本系统把请柬信息编码成为一个二维码图形,可以通过短信等方式发送至受邀者的手机上。然后可以通过本系统对受邀者手机上收到的二维码图形进行扫描验证。它不仅节约了成本,更重要的是节省时间提高效率方便使用,同时还非常环保和时尚。而且避免了主

12、办方现场核对信息时手忙脚乱的尴尬,而且非常安全,有效核实身份,杜绝误闯者。1.1.3 二维码介绍二维码最早起源于日本,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形。二维条码与一维条码相比具有高容量、高密度、纠错能力强、安全强度高等特点,不仅可以存储传统的字符数字等文本信息,还可以存储图像等高容量的信息。二维码有堆叠式二维码和矩阵式二维码两种。其中矩阵式二维条码以矩阵的形式组成,在矩阵相应元素位置上用“点”和“空”的排列组成代码,这种排列组合确定了矩阵式二维码所代表的意义,“点”表示二进制“1”,“空”表示二进制“0”。矩阵式二维码是以计算机图像处理技术、组合编码原理等

13、为基础的一种新型图形符号识读处理码制,其中具有代表性的有:Code One、Maxi Code、QR Code等。QR Code是二维码的一种。它是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,它除具有一维条码及其它二维条码所具有的信息容量大、可靠性高等优点外,还可以超高速识读,它纠错能力强,能够有效地表示中国汉字和日本汉字2。由于QR码具有对汉字信息进行独特优化处理的功能,符合汉字国家使用习惯,QR码拥有一定的持续发展潜力。QR码的基本构造如图1所示。其中各部分有各部分的功能:位置探测图形、位置探测图形分隔符、定位图形用于对二维码的定位,对每个QR码来说,位置都是固定存在的,

14、只是大小规格会有所差异;规格确定,校正图形的数量和位置也就确定了;格式信息表示改二维码的纠错级别,分为L、M、Q、H;版本信息即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从2121(版本1),到177177(版本40),每一版本符号比前一版本 每边增加4个模块。数据和纠错码字表示了实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。 图1 QR码的基本构造12 开发工具介绍1.2.1 JDK简介JDK全称是Java Development Kit,是Sun针对Java开发的产品。JDK 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类

15、库。JDK有使用于各种设备各种环境的版本。没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的JDK。JDK的基本组件包括javac(编译器),jar (打包工具),javadoc(文档生成器),jdb debugger(查错工具),java (运行编译后的java程序),appletviewer(小程序浏览器)Javap(Java反汇编器),Jconsole(调试和监控工具)等。1.2.2 Android SDK简介SDK全称是software development kit,即软件开发工具包。SDK是指软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作

16、系统等建立应用软件的开发工具的集合。Android SDK 指的是Android专属的软件开发工具包。1.2.3 Eclipse简介Eclipse是著名的跨平台的自由集成开发环境(IDE), 是一个基于Java的、开发源代码的可扩展开发平台。本质上它只是一个框架和一组服务,用户通过插件组件构建开发环境。Eclipse还包括插件开发环境,这个组件允许希望扩展 Eclipse的软件开发人员构建与Eclipse环境无缝集成的工具。Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。由于任何人都可以免费得到

17、Eclipse的源码,并可以在此基础上开发各自的插件,因此越来越受人们关注。Eclipse的设计思想是:一切皆插件。除Eclipse基本内核,比如图形API (SWT/Jface)、Java开发环境插件(JDT)、插件开发环境(PDE),Eclipse其它所有功能都以插件的形式附加于Eclipse上。1.2.4 ADT简介ADT全称是Android Development Tools,即安卓开发工具。目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工

18、具。ADT是Android在Eclipse上的开发工具。13 项目开发环境1.3.1 硬件环境联想G450电脑一台三星s5830i手机一部1.3.2 软件环境操作系统:windowsXP(32 bit)开发工具:JDK1.7、Eclipse-TADP、Android SDK、ADT1.4 环境搭建1.4.1 安装配置JDK在网站 下载适合目标平台的JDK版本。下载完成后,双击并根据提示安装JDK。安装结束后,还要配置JDK环境变量,步骤如下:我的电脑属性高级环境变量,然后在系统变量中设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则

19、点击“新建”: JAVA_HOME指明JDK安装路径,Path使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME%bin;%JAVA_HOME%jrebinCLASSPATH设为:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar (要加.表示当前路径)。1.4.2 安装配置Android平台SDK在Android Developers下载android SDK,下载完成后解压到目标文件夹。与JDK设置相同,Android SDK安装目录下的“tools”子文件夹的路径需要添加到系统的“PATH”环境变量中。SDK下载戒烟后,其中包括非常丰富的开

20、发资源,包括丰富的辅助工具和完备的开发参考。1.4.3 下载安装集成开发环境Eclipse到http:/www.eclipse.org/downloads下载Eclipse。Eclipse工具的下载文件也是压缩文件,直接解压后就可以使用。1.4.4 安装设置ADT插件安装ADT插件有两种办法,一种是通过网络安装,另一种是通过本地文件安装。在此选择第二种方法。步骤如下:启动Eclipse,选择HelpSoftware UpdatesAvailable SoftwareAdd SiteAchieve。然后在弹出的页面选择ADT下载文件,点击OK,完成ADT插件的安装。ADT插件安装完毕后,重启Ec

21、lipse,选择WindowPreferences,进入首选项设置页面。选择左侧的“Android”项目,按照要求选择Android SDK的位置,然后点击OK。至此,开发环境安装完毕。第二章 系统的总体设计总体设计即对有关系统全局问题的设计,也就是设计系统总的处理方案,又称系统概要设计。总体设计包括系统模块结构设计和计算机物理系统的配置方案设计。在进行总体设计时,还要进行计算机物理系统具体配置方案的设计。2.1 系统模块结构设计系统模块结构设计的目的是划分子系统并确定其模块结构,最后画出模块结构图。要想进行好的模块设计,必须考虑如何将一个系统划分成多个子系统;每个子系统如何划分成多个模块;如

22、何确定子系统之间、模块之间传送的数据及其关系。顾名思义,基于二维码的电子请柬生成与扫描系统有两个子系统,二维码的生成系统和二维码的扫描系统。其模块划分分别如图2(a)、图2(b)所示。选择“扫描二维码”选择“生成二维码”通过一个文本框输入信息加密信息并通过Intent传递信息调用BarcodeScanner扫描二维码将二维码解码后的信息传递到一个字符串显示解密后的信息,判断来宾是否被邀请者调用BarcodeScanner生成二维码 图2(a) 子系统模块图 图2(b) 子系统模块图2.2 计算机物理系统的配置方案设计进行总体设计除了进行系统模块结构设计,还要进行计算机物理系统具体配置方案的设计

23、。本项目用到了一部三星S5830i手机,一台windowsXP系统的电脑。另外还需要自己搭建开发平台,用到了JDK,Android SDK,Eclipse,ADT。具体的平台搭建在第一章有详细介绍。做条形码生成和扫描,一般要用到ZXing。ZXing有多种复用方式,在本项目中,选择的方式是在手机上安装Zxing库中的相关软件,即使用于Android平台的BarcodeScanner。然后在自己的应用中,通过Intent调用ZXing的生成条码或者扫描条码的Activity,然后将结果返回自己的Activity。 第三章 系统的详细设计3.1 系统流程图系统流程图(System Flowchar

24、t)是描绘系统物理模型的传统工具。系统流程图用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况。本系统的系统流程图如图3: 结束输出“警告”输出“匹配” 开始输入请柬内包含的信息将信息加密调用BarcodeScanner生成二维码输出“匹配”调用BarcodeScanner扫描二维码将解码后的信息传入TextView将解码后的信息传入TextView是否含有加密字符串否输出“警告”是 结束图3 系统流程图3.2 界面设计界面设计是人与机器之间传递和交换信息的媒介。UI即用户界面。UI设计则是指对软件的人机交互、操作逻辑、界面美

25、观的整体设计。好的UI设计要充分考虑到用户的感受,让软件的操作变得舒适、简单、自由。此系统有如下几个界面如图4所示:界面一中,TextView1显示了一些软件介绍信息。在界面一中选择Button1,就出现了界面二。界面二中,EditText1中,可以输入文本,以生成二维码,选择Button3,跳转到生成的二维码。在界面二中,选择Button2,则跳转到界面三,选择Button4,则出现二维码扫描界面,扫描结果返回到界面三中的TextView3,对结果进行检验后,在界面三的TextView4中,返回“匹配”或者“警告”。TextView1Button1 EditText1 Button3Butt

26、on2图4(a) 界面一 图4(b) 界面二Button4TextView3TextView2图4(c) 界面三第四章 应用程序的编程实现4.1 Android应用工程文件组成Android应用工程文件(如图5所示)主要由以下工程文件组成:1.src既源文件目录。2.gen目录,包含R.java文件,它由Eclipse自动生成和修改,不需要去维护。3.android库。4.assets目录,存放多媒体等文件。5.res目录,存放应用用到的资源文件。6.drawable目录,存放图片资源,分别为高中低三个分辨率。7.layout目录,放置布局文件,均为.xml文件。8.values目录,放置字符

27、串(string.xml),颜色(colors.xml),数组(arrays.xml)。9.AndroidManifest.xml.相当于应用的配置文件,我们要在这个文件中声明应用的名称,所有的Activity,Service,Reciver等。图5 工程文件目录4.2 Android应用程序组成一个典型的Android应用程序通常由5个组件组成,即Activity、Intent and Intent Filters、Service、BroadcastIntentReceiver、ContentProvider。Activity是这5个组件中最常用的,程序中Activity通常的表现形式是一个

28、单独的界面。每个Activity都是一个单独的类,它扩展实现了Activity基础类。这个类显示为一个由Views组成的用户界面,并响应事件。大多数程序有多个Activity。另一个比较常用的类就是Intent and Intent Filters。Android通过一个专门的Intent类来进行界面的切换,Intent描述了程序想做什么。有个相关的类叫IntentFilter。Intent是一个请求来做什么事情;IntentFilter则描述了一个Activity(或下文的IntentReceiver)能处理什么意图。系统通过解析传递进来的Intent来完成Activity的切换。使用sta

29、rtActivity()方法来启用新的Activity。4.3 Intent的使用Intent是一个对象,它可以解决Activity之间的相互跳转、相互传递数据。解决了Android应用的各项组件之间的通讯。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用14。一个Intent对象包括一组信息,主要的包括:1Component name,它决定从一个Activity究竟启动哪个组件;2Action,决定了启动另一个Activity后,传递进入一个Intent方

30、法进来,然后这个Activity要做的动作;3Data,是从一个Activity想向另一个Activity传递的数据。4Extras,是额外的一些信息,即键值对。可以在一个Activity中存放键值对,然后通过Intent对象在另一个Activity中将这个键值对取出来。在多个Activity的跳转过程中,Intent起到了非常重要的作用。要想实现从Activity1跳转到Activity2,就要调用Activity1的startActivity()方法传递一个intent对象进来,而究竟跳转到哪个Activity,又将有什么动作,主要是由intent对象决定。使用Intent实现Activi

31、ty1跳转到Activity2的主要代码如下:Intent intent=new Intent();intent.setClass(Activity1.this,Activity2.class);startActivity(intent);使用Intent将Activity1中的键值对传递进入Activity2的主要代码如下:在Activity1中编写有关代码Intent intent=new Intent();intent.putExtra(name,value);intent.setClass(Activity1.this,Activity2.class);startActivity(in

32、tent);在Activity2中调用getIntent()方法得到传递进入Activity2的intentIntent intent=getIntent();4.4 调用ZXing第一章已经讲过android众多优点中的一个,就是Android提供了一种机制,可以通过Intent复用多个应用的界面,可以无缝结合优秀的Google服务。比如可以在自己的应用中调用条形码识别程序,然后返回条形码的结果。不过呢,这需要系统必须事先在手机上安装ZXing的条码扫描工具。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口,可实现的条形码编码和解码

33、。Zxing提供了程序的核心代码、适用于J2SE客户端的程序、适用于Android客户端的程序(即BarcodeScanner),而且通过Intent支持Android程序和BarcodeScanner的集成。ZXing提供了一个集成API,使用者可以通过这个集成API调用ZXing的相应Activity。本项目就是利用了Zxing提供的BarcodeScanner,以及ZXing通过Intent支持app和BarcodeScanner集成的特点。当项目需要生产或者扫描二维码的时候,Activity通过Intent调用BarcodeScanner中的相应的方法,就能实现相应的功能,调用结束后,

34、然后再讲结果返回到相应的Activity。通过Intent传递数据和信息的主要代码见下文4.5.3。4.5 编程实现4.5.1 编写配置文件 本项目用到了3个Activity。在AndroidManifest.xml注册如下: 其中打开应用程序,首先进入的Activity是含有以下语句的Activity。 4.5.2 编写布局文件布局文件,即为res文件夹中的layout文件。Android平台定义了线性布局、相对布局、绝对布局、框布局和表格布局这五种布局类型。在本项目的三个Activity中,我们选择使用线性布局。线性布局就是将容器内的子组件按照直线进行摆放的一种方式。通过布局文件,我们摆放

35、了各个Activity中的各个组件,并且设置好了组件的长、宽、内容等属性。一个完整的布局文件如下: 上面这个完整的布局文件就是Acitivity1的布局文件,它用到了TextView和Button这两种组件。对组件的属性设置如下:android:id=+id/jieshao这句话可以在R文件中自动生成TextView的id,当我们引用这个Textview时,我们只需要引用R中生成的那个id。android:layout_width=fill_parent定义了组件的宽度是占满整个屏幕。android:layout_height=wrap_content定义了组件的高度随着内部文字变化。andr

36、oid:textSize=25sp定义了TextView内文字的大小。android:text=string/jieshao定义了TextView中的文字内容。在此,文字内容存放在一个字符串中。这个字符串资源存放在values文件夹下的strings文件中。Activity2、Activity3的布局文件中,除了Button组件和TextView组件,还用到了EditText组件。基本属性和TextView设置类似。需要特殊说明的两个属性是:android:inputType=none 定义了可输入任何类型的信息,包括文字、数字、字母等。android:hint=请输入内容. 定义了在不输入文

37、字的时候,EditText中显示的文字。而当EditText中输入文字时,这些文字消失。4.5.3 编写源程序编写程序步骤如下:1. 在程序中,导入需要用到的类。2. 建立一个继承Activity的新类。3. 定义Activity内用到的组件。4. 重写onCreate方法。5. 通过setContentView();选择布局文件。6. 通过findViewById();来使用各个组件。7. 编写主要程序。7.1 新建按钮,并将按钮和一个监听器绑定的程序如下:this.button.setOnClickListener(new buttonListener();class buttonList

38、ener implements OnClickListener Override public void onClick(View v) Intent intent = new Intent(); intent.setClass(MainActivity.this,QrActivity.class); MainActivity.this.startActivity(intent); 这段程序可以实现按下button按钮时,从当前的Activity即MainActivity跳转到QrActivity。72 调用BarcodeScanner生成二维码的主要程序如下:Override public

39、void onClick(View view) Intent intent = new Intent(com.google.zxing.client.android.ENCODE);String content = edit_text.getText().toString();content=content+n123456;intent.putExtra(ENCODE_DATA, content);intent.putExtra(ENCODE_TYPE, TEXT_TYPE); startActivity(intent); 通过这段程序,可以调用getText().toString()方法将用户输入到EditText中的文本信息存入字符串content中,然后系统给content加入一串字符以生成新的字符串,最后将新生成的字符串传递进入BarcodeScanner中,并且生成二维码。7.3 调用BarcodeScanner扫描二维码并且检测信

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号