版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE33目录1、设计背景和作品简介 12、设计目的与意义 33、设计要求 44、基础知识介绍 54.1Android架构分析 54.2Android应用组件 85、总体方案设计和完成的工作 145.1系统的目标 145.2可行性分析 145.3系统性能特点及控制要求 155.4数据库设计 155.5需求分析 165.6功能模块设计 175.7数据库概念结构设计 185.8数据库逻辑结构设计 205.9完成的工作 251、设计背景和作品简介随着通讯行业的发展和人们现代生活工作节奏的日趋加快,移动信息产品和服务的品种越来越多,更新换代速度越来越快,手机市场争夺日趋激烈和残酷。自2000年5月,国际电信联盟公布了第三代移动通讯标准,分别是美国CDMA2000,欧洲WCDMA,中国TD-SCDMA,成为3G时代最为主流的三大技术,还有后面加入的WiMAX的第四个3G标准,3G(3ul-generation)是第三代移动通讯技术的简称,是支持高速数据传输的蜂窝移动通讯技术。全球范围内移动通信发展迅速,国内电信市场竞争日益加剧,行业发展面临着新的机遇和挑战,为了以发展3G为契机,合理配置现有电信网络资源,实现全业务经营,形成适度、健康的市场竞争格局,2008年5月,工信部、国家发改委、财政部联合发布《关于深化电信体制改革的通告》,中国电信收购中国联通CDMA网,中国联通和中国网通合并,中国卫通的电信业务并入中国电信,中国铁通并入中国移动,经过重组合并,国内电信运营商由六家变为三家。并在当年12月,国务院常务委员会开始启动3G牌照发放,中国电信经营CDMA2000网,中国联通经营WCDMA网,中国移动则是TD-SCDMA网,至此,中国的通讯行业进入了全面发展3G网络的时代。市场迫切需要一个开发性很强的手机操作系统平台。随着第三代数字通讯技术获得普遍接受,Google于2005年收购“Android.Inc”后,继续进行对Android操作系统开发,并于2007年11月推出了专为移动设备设计的软件平台“Android操作系统”。据有关资料显示,我国使用手机上网的人数规模达约三亿,而手机的操作系统绝大多数是Android系统,使得Android应用平台广泛的扩大,了解到社会需要一款,能在Android平台上运行的图书信息管理系统,所以特别做了一套图书信息管理系统“图书信息管理系统”的实现,进一步方便了图书管理对图书的管理,对于初步操作“图书管理系统”人员而言能快速的学上手,从而对图书信息的快速操作,因此,研究信息管理软件的设计与实现是非常重要的。图书管,对于我们而言,是熟悉的不能在熟悉了,它,给予了我们太多太多,让我在知识海洋中尽情的遨游,让我们学习到更多的课外的知识,使我们对图书馆产生了一种情感,只要是认真学习过的人都知道,图书馆对我们的意义之大,所以,做了一套基于Android平台上图书管理系统,为图书馆的管理献上自己的绵薄之力。《图书信息管理系统》中的所有的数据都保存在Android系统自身所带的SQLite数据库中,主要包括:基本信息管理,图书库存管理,图书信息查询,以及账号管理,这四大块。基本信息管理包括:读者信息管理,图书信息管理;图书库存管理包括:借出图书信息管理,还入图书信息管理;图书信息查询包括图书视图查询和图书自定义查询;账户管理,包括管理员账户和密码两部分,管理员账户的修改是设置权限的,只允许超级管理员才能进行操作的。《图书信息管理系统》中的每个界面的设计,都非常的清晰,而采用的界面设计是同一种风格,使用的图片也比较的优美。管理员只要浏览几分钟,就知道怎么去操作它,简单且实用。
2、设计目的与意义随着网络技术的迅猛发展,信息科技水平的不断提高,移动终端技术逐渐增强,各种智能操作平台的出现,为即时通信系统移动化发展提供了硬件基础;移动设备中开放性的Android平台,随着3G网络发展迅猛占领了市场,开发Android平台下的软件成为了迎合行业发展的一种趋势。Android是Google推出的一个基于Linux内核的手机操作系统,包含底层框架,中间件和开发环境的一套平台系统。它支持流行的组件式程序设计,具有针对性移动设备的Dalvik虚拟机。浏览器核心是基于开源的WebKit引擎,对基于html的各种语言具有良好的支持。图像引擎使用基于openGLES1.0的三维图形库。又因为Google与运营商、设备制造商、开发商和其它第三方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。Android平台正在被越来越多的开发者和使用者所接受。目前,国内外对在Android平台下开发应用程序的热情很高,开发Android平台下的即时通信软件也层出不穷,其中涌现了许多有价值的开源社区以及一些第三方做的框架,例如:,AndroidAsmack等等,这对于完成Android平台下的即时通信软件有着阶段性的贡献,还有许许多多Android爱好者在一些论坛和博客中,例如最有名的CSDN,共同交流和完善中这个Android即时通信系统,给用户的体验也越来越好;这也吸引了越来越多的人投身到对Android软件开发的研究当中,因为它是开源的,因为它有许许多多的志同道合的人能够进行交流,并且从中获取经验和进步;深深地被吸引后,我也怀着对Android平台学习的热情,看中这个行业的发展,想在这个领域有所发展,于是我选择了开源项目比较丰富,不管是对于企业还是个人来说,实用性比较强的信息管理系统的研究;希望通过对此研究过后,能够完成对Android平台有个整体的学习和掌握,掌握开发Android程序的流程,Android平台下的程序设计模式以及对Android程序框架,内核有个基本认识,为以后更深入的研究打好基础。
3、设计要求主要功能:实现图书库存的移动设备管理。实现功能:实现图书和读者的连接;实现库存管理功能;实现增删改查图书信息的操作;实现增删改查读者信息的操作,实现增删改查借出图书和还入图书信息的操作,实现图书库存自定义查询和视图查询操作,实现帐户和密码的修改和删除等操作。性能要求:功能齐全,运行稳定。输出要求:数据完整,详实。安全与保密要求:实行权限管理,防止数据遭到破坏。数据库要求:实现数据库表、查询、报表等设计;同时提高数据库处理效率及便于数据库处理两方面考虑。硬件要求:CPU:主频500MHZ或更高内存(RAM):最少64M,建议128M或更多SDK:250MB或更多软件要求:Android2.3操作系统或更高版本
4、基础知识介绍这一章主要介绍了在系统中运用到的相关基础知识,包括JAVA相关基础,面向对象的设计模式4.1Android架构分析我们将分为三个方面对Android架构进行分析阐述,这三个方面包括Android特征、Android系统架构和Android应用组件4.1.1、Android特点Android特征介绍主要是对Android操作系统中所采用的技术进行综合阐述,具体内容如下:Android应用框架包含很多应用程序组件,这些组件在开发中可以被反复利用,并且软件开发人员可以基于已有的组件开发出属于自己的特色组件,这样可以节约开发成本,提高软件开发的效率。Dalvik虚拟机是Android所采用的Java虚拟机,区别于甲骨文的java虚拟机,它在性能上更加出色,占用资源更少,运行速度快,更适合移动设备平台。内嵌的浏览器基于WebKit引擎,WebKit在开源界非常流行,它是一个优秀的浏览器网页排版引擎。Android的浏览器速度更快,因为Android优化了Java的脚本编辑器,当浏览器调用包含Java的Web页面时,与其他浏览器相比,页面显示速度有明显的提升。Android系统包含OpenCLES的3D图形功能,这意味着Android手机支持3D程序开发,这无疑对游戏开发商有很大的吸引力,Android上的游戏画面体验必然会更上一层楼。多媒体技术是基于OpenCorePlatform来实现,它是PacketVideo公司开发的多媒体软件平台,该软件平台功能非常强大。Android的多媒体能够播放大多数的音频,视频格式文件,支持的编码包括MP3、3GP等等。通过OpenCore多媒体框架,程序员可以开发出属于自己的多媒体应用,比如多人视频会议应用程序等。Android操作系统采用SQLite数据库作为标准数据库,SQLite是一款开源的数据库,轻巧方便,资源占有率低,性能好,速度快,非常适用于移动嵌入式系统。所有Android应用程序的数据库都存放在/data/package/databases/下面。Android软件提供了对蓝牙和WiFi等无线技术的支持,为人们的近距离信息通讯提供了方便。蓝牙是一种无线电技术,支持设备短距离通信,距离大概是在10米左右,可以使用无线传输语音本和数据等。相比之下,WiFi应用更为广泛,因为WiFi传输距离更远,速度更快。Android系统为传感器提供了丰富的API支持,现在支持的传感器种类包括加速度传感器(aeeelerometer)、距离传感器(Proximity)、陀螺仪(gyroseope)、环境光照传感器(light)、磁力传感器(magnetiofield)、方向传感器(orientation)和温度传感器(temperature)等。这些传感器为应用程序和游戏开发人员提供了创造各种有趣应用的前提条件,现在加速度传感器己经普遍应用于游戏中了。GPS(GlobalPositioningSystem)是一个使用通讯卫星来定位用户位置的系统。通过GPS提供的服务,应用程序可以根据用户所在的位置,提供相应的特色服务。同时LBS服务在未来的移动互联网发展中,占有至关重要的地位,发展GPS技术,提供更加精确的位置服务,是未来各大SNS社交网站、手机服务提供商、运营商等移动互联网主力军所共同面临的问题与挑战。语音搜索为用户提供了将语音数据转换成文木数据或手机操作命令的功能,如果用户想要使用Google搜索引擎搜索,只需要对着手机说出想要搜索的内容,即可实现手机网页搜索。4.1.2、Android系统架构Android系统采用分层的架构实现,从下到上依次是Linux内核(LinuxKernel)、Libraries、C/C++函数库、dalvik虚拟机、应用框架(ApplicationFramework)以及最上层的应用程序(Applications)。如图4-1所示。图4-1Android系统架构图4.1.3、主要的应用程序Android平台内包含很多重要的应用程序,如联系人通讯录、SMS程序、浏览器程序、拍照程序、图片浏览程序、语音搜索程序等,手机软件开发者可以在Android上,利用系统提供的应用程序API,开发出自己想要的应用程序。4.1.4、应用程序框架Android应用程序框架具有很好的分层逻辑结构。Android系统本身现存的开发组件不胜枚举,软件开发者可以根据SDK轻而易举的写出Android程序。当然,软件开发者也可以继承现有的组件,或者实现系统提供的接口,派生出新的、功能更丰富的组件,从而调动开发者积极性、激发创造力。开发出来的新组件放入应用程序框架中,这样增加了代码的重用性。4.1.5、C/C++函数库C/C++程序的效率众人皆知,Google的上层应用程序采用Java编程语言,但Android应用程序框架之下封装了一套标准的C/C++函数库,Android系统通过Java的JNI将C/C++提供的服务传递给Android的上层应用程序组件,软件开发人员可以通过应用程序组件,获取C/C++提供的服务,以便提高程序性能。这些函数库包括:标准C函数库、Webkit、SSL(SecureSocketsLayer)、MediaFramework、Surface、OpenGLES等。4.1.6、Java程序运行环境Android中的Java程序运行环境是指Dalvik虚拟机环境。一般JAVA虚拟机执行的是Java标准的字节码,与其不同的是,Dalvik执行的是.dex格式的文件。Dalvik和一般的Java虚拟机存在很多区别,比如,Dalvik是基于寄存器的虚拟机,但JavaVM是基于栈的虚拟机。基于寄存器的虚拟机可以根据硬件进行优化,提高程序的运行效率,这是Dalvik的明显优势。4.1.7、Linux内核Android的核心服务基于Linux内核,如安全性、网络协议栈和进程管理等都依赖于此内核。Android的Linux内核是一个功能增强版本,它提供了大量用于支持Android平台的设备驱动程序,同时修改了内核本身的一些问题,其核心驱动主要包括:AndroidBinder、LowMemoryKiller、AndroidLogger、Android电源管理(PM)等等。4.2Android应用组件4.2.1、Activity组件Activity是Android应用程序中最为基本也是最为重要的组件之一,在Android应用程序中,手机屏幕上显示的每个窗口都是一个Activity,用户主要通过Activity组件与应用程序交互。软件开发人员可以在Activity的onCreate()方法中调用setContentView(R.layout.main)方法来关联个性化用户界面,R.layout.main是main.xml文件的标识符,main.xml是用户界面的配置文件。同时在这个方法中初始化程序中需要的实例对象。关闭窗口时,程序在onDestroy()方法中销毁这个窗口中的实例对象,并释放所使用的资源。Activity的生命周期如图4-2所示:图4-2Activity生命周期图一个Activity的整个生命周期是从调用onCreate()方法开始,到调用onDestroy()方法结束。Activity在onCreate()方法中进行所有数据的初始化工作,然后在onDestroy()方法中,清除不再使用的对象实例。比如在onCreate()中使用AysncTask进行异步数据请求或下载数据等操作,在onDestroy()方法中使用AysncTask的cancle()方法取消异步任务。一个Activity从onStart()方法开始,到onStop()方法之间时,始终处于可见状态,当Activity不可见时,调用onStop()方法,当Activity再次可见时,系统会调用Activity的onReStart()方法,用户可以看到屏幕上显示之前的界面。一个Activity能够在前台显示的生命周期是从onResume()方法开始,直到调用onPause()方法为止。在这个过程中,Activity始终是在所有Activity的最前面,用户可以与之进行交互。4.2.2、ActivityGroup组件Android还提供了一个ActivityGroup组件,此组件是Android的容器,在Android2.3API未出现之前,ActivityGroup组件是实现平板电脑分屏显示的最好方法。ActivityGroup可以嵌套多个Activity组件,两者的生命周期相同。ActivityGroup的所有功能都委托给一个成员变量:ProtectedLocalActivityManagermLocalActivityManager;该成员变量在ActivityGroup构造函数中进行相应的初始化操作。4.2.3、Intent组件Intent即“意图”的意思,Android使用Intent这个组件实现Activity与Activity之间的导航功能。描述Intent的结构中,有两个重要的组成部分:动作与动作对应的数据。系统提供的动作包括:MAIN、PICK、VIEW、CALL等,动作对应的数据以URI的形式表示。通过解析各种Intent,可以实现从一个屏幕跳转到其他屏幕。程序中采用startActivity(Intentintent)方法实现Activity之间的跳转。Android系统会在所有存在的应用程序中定义的IntentFilter中进行查找,一旦Intent匹配成功,新的Activity就开始运行了。Intent的属性设置包括以下几点:Action即“动作”,SDK中定义了一些标准动作,如表4-1所示。
ConstantTargetcomponentActionACTION_CALLactivityActivityAction:Performacalltosomeonespecifiedbythedata.ACTION_EDITactivityActivityAction:Provideexpliciteditableaccesstothegivendata.ACTION_MAINactivityActivityAction:Startasamainentrypoint,doesnotexpecttoreceivedata.ACTION_SYNCactivityActivityAction:PerformadatasynchronizationACTION_VIEWactivityActivityAction:Displaythedatatotheuser.ACTION_BATTERY_LOWBroadcastReceiverBroadcastAction:Indicateslowbatteryconditiononthedevice.ACTION_HEADSET_PLUGBroadcastReceiverBroadcastAction:WiredHeadsetpluggedinorunplugged.ACTION_SCREEN_ONBroadcastReceiverBroadcastAction:SentafterthescreenturnsonACTION_REBOOTBroadcastReceiverBroadcastAction:Havethedevicereboot.表4-1Intent的Action属性表软件开发人员自定义的Action需要加上包名作为前缀,例如“ject.SHOW_NAME”,然后再相应的Activity来处理自定义的动作。Data是执行动作要操作的数据内容"Android中是采用URL来表示数据的,如ACTION_DIAL指定Data为content://contacts/people/1,表示与ID是1的人进行通话,ACTION_EDIT指定Data为content://contacts/People/1,则表示对ID是1联系人信息进行编辑。Type(数据类型)显式指定Intent的数据类型(MIME类型)。一般情况下,Intent的数据类型是能够根据数据本身判定的。Category是被执行Action的附加信息。例如LAUNCHER_CATEGORY表示Intent的接收者必须在Launcher中作为顶级应用。Category属性如表4-2所示。ConstantMeaningCATEGORY_HOMEThisisthehomeactivity,thatisthefirstactivitythatisdisplayedwhenthedeviceboots.CATEGORY_BROWSABLEActivitiesthatcanbesafelyinvokedfromabrowsermustsupportthiscategory.CATEGORY_LAUNCHERShouldbedisplayedinthetop-levellauncher.CATEGORY_PREFERENCEThisactivityisapreferencepanel.表4-2Intent的Category属性表Component指定了Intent的目标组件的类名称。Extras(附加信息)是Intent进行Activity跳转时,附带的数据信息"使用Extras可以为即将运行的Activity提供附加信息,例如,用户在从编辑日记页面跳转到图片浏览界面,可以使用Extras传递相应的用户名和认证标识作为身份验证信息等。4.2.4、Service组件Service是“服务”的意思,顾名思义,Service在Android中是一种生命周期很长的组件,而且是不存在界面的应用程序组件,它在应用程序后台运行。最常见的例子如:多媒体播放器程,当用户切换到其他应用程序时,它可以在后台运行并能正常播放声音;或者如文件下载程序,它可以运行在后台执行文件的下载操作,而不会阻塞用户界面。Activity使用Context.startService()方法来启动一个Service,还可以通过Context.bindService()方法与其他Service相连接,当连接成功时,还可以使用Service提供的接口与之进行通信。4.2.5、ContentProvider组件Android提供了ContentProvider组件,这个组件的作用是:凡是实现ContentProvider接口的应用程序,都可以将自己的数据提供给其他应用程序共享。可以说ContentProvider是所有应用程序之间数据共享的纽带。Android系统同时提供了视频、音频、图像、个人基本信息等常用的ContentProvider。不同于普通获取数据的方式,ContentProvider采用URI的形式为外界提供数据。而具体获取哪个数据库中的数据,由Android操作系统的底层程序实现,外界不需要知道存储的具体细节就可以获取想要的数据。每个ContentProvider都会对外提供一个URI,URI由三部分组成,分别是“content://”、数据的路径、表示ID。例如下面是一些URI。content:/contacts/people表示返回所有联系人信息。content:/contacts/people/10表示返回联系人中ID是10的联系人信息"content://media/internal/images表示返回设备上的所有图片。4.2.6、Recognizerlntent语音识别组件语音识别技术是让机器将语音识别成文本或者命令的高新技术,涉及到多个学科。Android操作系统为软件开发人员提供了语音识别的接口API,屏蔽了语音识别的具体细节,方便软件开发"Recognizerlntent组件即为Android提供了软件开发人员的语音识别接口API,它通过Intent的Action动作来完成相应操作。Android存在两种主要的识别模式,分别是ACTION_RECOGNIZE_SPEECH和ACTION_WEB_SEARCH。前者是一般的语音识别,这种模式下,我们可以捕捉到语音识别后的文字,然后进行后续处理;后者是网络搜索模式,用于网络搜索"。
5、总体方案设计和完成的工作5.1系统的目标图书管理系统的总目标是:在数据库和先进的开发平台上,利用现有资源,开发一个体系结构完善的、易扩充的、易维护的、具有良好人机交互界面的图书管理系统;实现一整套图书管理系统,提供完善的功能,为图书管理员提供便利的工作方式。5.2可行性分析5.2.1目的 可行性分析的目的是对问题进行分析,以及根据对所选择的开发工具的了解,分析是否可以开发出一个比较完善的仓库管理系统,较好地完成任务。5.2.2具体分析(1)eclipse是一个开放源代码的,基于Java的可扩展开发平台。虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。只要将Android的SDK以及ADT导入至eclipse即可在此平台上进行Android软件的开发编程。此次设计的仓库管理系统是一个信息管理系统,用eclipse进行开发是可行的。(2)Android系统集成了一个轻量级的数据库:SQLite,SQLite只是一个嵌入式的数据库引擎,专门适用于资源有限的设备上(手机、PDA等)适量数据存取。但是它支持绝大部分SQL语法,也允许开发者使用SQL语句操作数据库中的数据。它可用于所有用户的数据库活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其他类型的终端用户。基本的SQL命令只需要很少时间就能学会,最高级的命令在几天内便可掌握。而此次设计的仓库管理系统的是一个小型的信息管理系统,对数据库的要求并不是太高。所有用SQLite对图书管理系统的开发是可行的。5.3系统性能特点及控制要求5.3.1系统简要描述本系统通过基本信息管理功能管理图书,读者的基本信息;通过库存管理功能实行图书的借出,还入登记表操作,以及入库单和出库单的相关查询;通过信息查询,查询库存信息,图书信息。5.3.2处理流程管理人员通过基本信息管理管理图书,读者的基本信息。基本操作包括添加、删除、修改和查询。这些基本信息放在通过第三章建立的表放在数据库当中。系统访问数据库,并且完成用户的这些操作需求。以表单的形式显示出来,方便用户查看。用户通过库存管理来完成借出图书和还入图书操作,同样,借出图书操作和还入操作也包括添加、删除、修改和查询。图书借出信息和图书还入信息也放在数据库中,当用户有入库和出库操作时,系统访问数据库,生成借出单和还入单,以表单的形式显示出来,方便用户查看。处理流程如图5-1所示:管理员管理员基本信息管理生成基本信息库存管理数据库生成借出单生成还入单账户管理生成账户信息图5-1处理流程5.4数据库设计所谓数据库设计是指从对现行非计算机管理的数据库系统的分析到最终实现由计算机管理的数据库系统的全过程。它包括表、查询、报表等的设计。总的原则应从提高数据处理效率及便于数据处理两方面考虑。数据库是信息系统的核心和基础。它把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。数据库设计的步骤有需求分析,概念结构设计,逻辑结构设计。5.5需求分析进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建数据库大厦的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。5.5.1图书借出操作图书借出功能实现可分为以下几个部分:(1)定制借出单由操作人员输入最基本的信息,从图书信息表中获取图书相关信息,从读者信息表中获取读者的相关信息。(2)输入借出单对应的图书信息借出图书与借出单自动关联,从图书信息表中获取图书的相关信息。图书借出操作的数据流图如图2-1所示。5.5.2图书还入操作图书还入功能实现可分为以下几个部分:(1)定制还入单由操作人员输入最基本的信息,从图书信息表中获取图书相关信息,从读者信息表中获取读者相关信息。(2)输入还入单对应的图书信息还入图书与还入单自动关联,从图书信息表中获取图书的相关信息。处理流程如图2-2所示。5.6功能模块设计系统功能模块结构图,如图5-2和5-3所示:登记借出单登记借出单借出单基本信息读者基本信息图书基本信息借出单信息借出单表借出单编号制单制定借出单图书信息借出单图书信息借出单图书信息表图5-2借出表数据流程图登记还入单登记还入单还入单基本信息读者基本信息图书基本信息还入单信息还入单表还入单编号制单制定还入单图书信息还入单图书信息还入单图书信息表图5-3还入表数据流程图该系统功能模块图列出了系统的主要功能模块。包括基本信息管理,库存信息管理以及系统设置。基本信息管理又包括图书信息管理,读者信息管理。库存信息管理包括借出图书管理和还入图书管理。系统设置包括管理用户,修改密码和退出三个功能。其中图书信息管理包括添加图书信息、修改图书信息、删除图书信息、查询图书信息四个子功能。读者信息管理包括添加读者信息、修改读者信息、删除读者信息、查询读者信息四个子功能。借出图书管理包括添加借出图书信息、修改借出图书信息、删除借出图书信息、查询借出图书信息四个子功能。还入图书管理包括添加还入图书信息、修改还入图书信息、删除还入图书信息、查询还入图书信息四个子功能。图书信息查询,包括视图项查询,和自定义图书查询,各个功能的操作步骤见第3章详细设计。5.7数据库概念结构设计概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。(1)图书实体属性图,如图5-4:图书图书ISBN单价出版日期编号名称作者出版单位图5-4图书实体属性图图书信息包括:图书编号,图书名称,图书作者,出版单位,ISBN,单价,出版日期。(2)读者实体属性图,如图5-5:E-mailE-mail读者所属院系所属年级联系地址编号姓名密码读者类型联系电话图5-5读者实体属性图读者信息包括:读者编号,读者姓名,读者密码,读者类型,所属院系,所属年级,联系地址,E-mail读者图书读者图书图书图书管理系统图5-6实体关系图读者与图书的之间的实体联系图。5.8数据库逻辑结构设计概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。现在需要将上面的数据库概念结构转化为SQLite数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。图书管理系统数据库中的各个表格的设计结果如下面的表格所示。每个表格表示数据库中的一个表。表2-1管理员信息表列名数据类型可否为空说明_idintauto_incrementNOTNULL自动增长idusernameVarcharNOTNULL管理员名passwordVarcharNOTNULL管理员密码idencharNULL管理员编号表5-1管理员信息表表5-1管理员信息表一共4个列名,即为管理员的基本属性其中第一个_id表示自动增长值,且不能为空,下面各表中,表示的意思相同,不再详述。其中管理员(username),它不能为空且唯一标识一个管理员组,且管理员名不能重复。建表程序代码如下:CREATETABLE[dbo].[user]([_id][int](20)COLLATEChinese_PRC_CI_ASNOTNULL, [username][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [password][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [iden][varchar](30)COLLATEChinese_PRC_CI_ASNULL,表5-2为图书信息表:列名数据类型可否为空说明_idintauto_incrementNOTNULL自动增长idbianhaoVarcharNOTNULL图书编号mingchengVarcharNULL图书名称zuozheVarcharNULL图书作者danweiVarcharNULL出版单位isbnVarcharNULL国际标准图书编号danjiaVarcharNULL图书单价dateDatatimeNULL出版日期表2-2图书信息表表5-2图书信息表共包括8个列名,即为图书实体的基本属性。其中图书名称mingcheng为候选码(Candidatekey),根据实体完整性规则,它不能为空且唯一标识一个图书元组。由于只有一个候选码,故bianhao为主码(Primarykey)。由于选择了图书编号bianhao为主码,则不允许图书编号重名。其它六个属性为非码属性,是可以为空的。建表程序代码如下:CREATETABLE[dbo].[tushu]([_id][int](20)COLLATEChinese_PRC_CI_ASNOTNULL, [bianhao][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [mingcheng][varchar](60)COLLATEChinese_PRC_CI_ASNULL, [zuozhe][varchar](40)COLLATEChinese_PRC_CI_ASNULL, [danwei][varchar](40)COLLATEChinese_PRC_CI_ASNULL,[isbn][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [danjia][float]NULL, [date][datetime]NULL,表5-3为读者信息表:
列名数据类型可否为空说明_idintauto_incrementNOTNULL自动增长idbianhaoVarcharNOTNULL读者编号xingmingVarcharNULL读者姓名mimaVarcharNULL读者密码leixingVarcharNULL读者类型yuanxiVarcharNULL所属院系nianjiVarcharNULL所属年级dizhiVarcharNULL地址dianhuaVarcharNULL电话mailVarcharNULLE-mail表5-3读者信息表表中共包含10个列名,即为读者实体的基本属性。其中xingming(读者姓名)为候选码,它不能为空且它们唯一标识一个读者信息元组。由于只有一个候选码,bianhao即为主码。由于选择了读者姓名xingming为候选码,则不允许读者编号重名。其它八个属性为非码属性,是可以为空的。建表程序与建图书表类似,在这里不再列出。表5-4为借出图书信息表:表中共包括10个表项,分别表示读者编号,读者姓名,读者电话,读者地址,图书编号,图书名称,图书作者,图书单价,借出日期。其中bianhaod(读者编号)和bianhaot(图书编号)为主码,不能够为空。其它7项为非码属性,可以为空。建表程序如下:列名数据类型可否为空说明_idintauto_incrementNOTNULL自动增长idbianhaodVarcharNOTNULL读者编号xingmingVarcharNULL读者姓名dianhuaVarcharNULL读者电话dizhiVarcharNULL读者地址bianhaotVarcharNOTNULL图书编号mingchengDatatimeNULL图书名称zuozheVarcharNULL图书作者danjiaVarcharNULL图书单价dateDatatimeNULL借出日期表5-4借出信息表CREATETABLE[dbo].[jiechu]( [_id][int](20)COLLATEChinese_PRC_CI_ASNULL, [bianhaod][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [xingming][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [dianhua][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [dizhi][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[bianhaot][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [mingcheng][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [zuozhe][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [danjia][float]NULL, [date][datetime]NULL, 表5-5为还入图书信息表:表中共包括10个表项,分别表示读者编号,读者姓名,读者电话,读者地址,图书编号,图书名称,图书作者,图书单价,借出日期。其中bianhaod(读者编号)和bianhaot(图书编号)为主码,不能够为空。其它7项为非码属性,可以为空。列名数据类型可否为空说明_idintauto_incrementNOTNULL自动增长idbianhaodVarcharNOTNULL读者编号xingmingVarcharNULL读者姓名dianhuaVarcharNULL读者电话dizhiVarcharNULL读者地址bianhaotVarcharNOTNULL图书编号mingchengDatatimeNULL图书名称zuozheVarcharNULL图书作者danjiaVarcharNULL图书单价dateDatatimeNULL还入日期表5-5还入信息表经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在在SQLlite数据库系统中实现该逻辑结构。这是利用SQLite数据库系统中的SQL查询分析器实现的。根据上面所举的建表语句分别建立下面几个表:创建管理员信息表创建图书基本信息表创建读者基本信息表创建图书库存基本信息表创建借出图书基本信息表创建还入图书基本信息表上面的表格的SQL语句在SQLite中查询分析器的执行,将自动产生需要的所有表格。有关数据库结构的所有后台工作已经完成。接下来就是系统的详细设计。
5.9完成的工作经过以上章节的分析、建模过程已经完成了数据库的后台工作,建立起了能够使系统顺利运行的后台,完成了初期的工作,接下来就要进入系统的实现工作阶段,也是本人要完成的工作。包括:界面设计和代码编写。系统主体功能由三部分组成,下面主要对程序总体框架的搭建以及数据库的连接、基本信息的管理(包括供应商基本信息、顾客基本信息、商品基本信息)、库存管理(包括入库操作、出库操作)、信息查询(包括库存信息查询)、系统设置(包括添加用户、修改密码、退出)的详细设计过程。数据库连接数据库程序设计是建立在数据库的基础之上的,因此,在开始程序设计时首要的任务是建立程序与数据库后台的联系。由于Android系统自己集成了自己的轻量级数据库,所以在连接时只需要创建一个代表指定数据库的SQLiteDatabase的对象,然后就可以通过SQLitedatabase对象来管理、操作数据库了。5.9.1主界面、注册界面、登录界面设计管理员登录模块管理员登录模块是系统模块中一个重要的子系统模块,它是系统安全的一个保障。它的主要功能是安全帐号管理,需要正确帐号和密码才能进入系统。对于错误帐号和密码给出提示。登录界面具体样式如图所示:图5-7登录界面图处理流程:输入:管理员和密码。处理:(1)管理员登录窗体启动。(2)操作人员填写管理员名并输入密码。(3)从操作人员表中检查是否有相应的管理员和密码。(4)如果管理员名或密码错误,进行提示。(5)如果输入的管理员名和相应密码正确,则根据该管理员的权限类别进行权限设置。(6)进入主控制平台。设计流程图,如图5-8:输入管理员和密码登录输入管理员和密码登录密码正确?进入主控制平台开始结束YN图5-8登录流程图5.9.2管理员注册模块管理员注册模块是系统模块中一个子系统模块,它也是系统安全的一个保障。它的主要功能是注册新的管理员号,需要输入正确管理员号,管理员编号和密码才能注册。对于注册相同的管理员号给出提示。注册界面具体样式如图所示:图5-9管理员注册图处理流程:输入:管理员,编号,密码,确认密码。处理:(1)管理员注册窗体启动。(2)操作人员填写管理员名,编号,密码,确认密码。(3)从操作人员检查是否注册相同的管理员号。(4)如果管理员名或密码错误,进行提示。(5)如果输入的用户名和相应密码正确,保存数据。(6)进入登录界面。设计流程图,如图5-10:输入用管理员,编号,密码,确认密码输入用管理员,编号,密码,确认密码注册信息是否正确?进入登陆界面开始结束NY图5-10注册流程图主界面具体样式如图5-11示:图5-11主界面Android对布局、组件的设置与修改是非常方便的。所以我设计的界面比较的简洁清晰。
参考文献[1](美)埃克尔(Eckel,B.)著;陈昊鹏译.JAVA编程思想(第四版).北京:机械工业出版社,2007.[2](印)SatyaKomatineni(美)DaveMacLean著曾少宁杨越译.ProAndroid4北京:人民邮电出版社,2013.1[3]黄维通.SQLServer2000简明教程[M].北京:清华大学出版社,2002[4]李刚.疯狂Android讲义(第二版)[M].北京:电子工业出版社,2013.3
附录程序部分代码:配置文件AndroidManifest.xml:<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="/apk/res/android"package="com.example.library"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="10"/><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><activityandroid:name=".MainActivity"android:label="@string/app_name"android:screenOrientation="landscape"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity><!--注册账户--><activityandroid:name="UserRegister"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"android:screenOrientation="landscape"></activity><!--主界面--><activityandroid:name="MenuDemo"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"android:screenOrientation="landscape"></activity><!--图书信息--><activityandroid:name="com.example.tushu.Tianjiat"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.tushu.Shanchut"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.tushu.Xiugait"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.tushu.Xiugait1"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.tushu.Chaxunt"android:screenOrientation="landscape"></activity><!--读者信息--><activityandroid:name="com.example.duzhe.Tianjiad"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.duzhe.Shanchud"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.duzhe.Xiugaid"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.duzhe.Xiugaid1"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.duzhe.Chaxund"android:screenOrientation="landscape"></activity><!--图书借出信息--><activityandroid:name="com.example.jiechu.Tianjiac"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"android:screenOrientation="l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 线上教育平台课程服务合作协议合同三篇
- 2025-2026年浙江省人教版小学五年级道德与法治第6课冲刺练习
- 2026年人教版初中英语第7单元词汇测试题
- 2025-2026年江苏省湘教版高三化学第11课化学与环境保护测试题
- 2025-2026年生物统计学与流行病学测试题
- 2025-2026年江苏省部编版八年级英语第9单元同步练习题
- 2025-2026年天津市人教版小学二年级道德与法治第2课专项题库
- 2025-2026年四川省人教版高二化学第10章化学计算基础练习题
- 2025-2026年四川省人教版高中生物必修一第三章遗传学基础模拟试题
- 2025-2026年江西省人教版九年级政治第6课备考习题集
- 实验室人员授权管理制度
- 2025至2030年中国药用氯化钠行业发展形势分析及市场前景趋势报告
- GB/T 19024-2025质量管理体系面向质量结果的组织管理实现财务和经济效益的指南
- T/NAHIEM 109-2024医用气体系统竣工验收和智慧运维管理标准
- 江苏省公共建筑(既有建筑改造工程)消防设计文件
- 《铪及铪合金高低倍组织检验方法》
- 大学生劳动教育第五章崇尚劳动实践
- 《神雕侠侣》江湖与爱情的绝美传说
- 2023年临沧市市级单位遴选(选调)考试题库及答案
- 茶文化与茶艺PPT全套完整教学课件
- 生物技术制药-课件
评论
0/150
提交评论