版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着时代的发展和科学技术的不断进步,手机、平板等移动设备的使用越来越普遍,随着移动设备功能的不断增加,其逐渐成为日常生活中不可或缺的重要工具,人们对于手机软件的需求也随之增长。然而,对于智能手机市场而言,占据主要位置的Android系统尚未具有一款得以被普遍应用的医疗软件。这就使得病患不分病情轻重大量涌向三甲医院,轻症病患的医治被拖延,重症病患的救治被阻碍,医疗资源没有得到充分的利用。针对以上问题,本项目主要目的在于开发一款基于Android系统整合地区医疗资源并将之充分利用的医疗软件。主要研究内容为前端实现实现用户注册登录、健康信息查询、疾病问答和药品查询,而后台端则实现管理药品信息,管理用户信息,管理疾病信息,管理症状询问信息的功能。关键词:Android软件医疗后台管理
AbstractWiththedevelopmentofthetimesandthecontinuousprogressofscienceandtechnology,mobilephones,tabletsandothermobiledevicesarebecomingmoreandmorepopular.withthecontinuousincreaseofthefunctionsofmobiledevices,theyhavegraduallybecomeanindispensabletoolindailylife.people'sdemandformobilephonesoftwareisalsogrowing.However,forthesmartphonemarket,Android,whichoccupiesadominantposition,doesnothaveamedicalsoftwarethatiswidelyused.Thismakesalargenumberofpatientsflocktothethird-tierandfirst-classhospitalsregardlessoftheseverityofthedisease,thetreatmentofmildpatientsisdelayed,thetreatmentofseverepatientsishindered,andmedicalresourcesarenotfullyutilized.ThemainpurposeofthisprojectistodevelopamedicalsoftwarebasedonAndroidsystemtointegrateandmakefulluseofregionalmedicalresources.Themainresearchcontentisthatthefrontendrealizesthefunctionsofuserregistrationandlogin,healthinformationquery,diseasequestionandansweranddrugquery,whilethebackgroundsiderealizesthefunctionsofmanagingdruginformation,managinguserinformation,managingdiseaseinformationandmanagingsymptominquiryinformation.Keyword:AndroidsoftwareMedicaltreatmentback-stagemanagement目录TOC\o"1-3"\h\u第一章绪论 绪论1.1选题目的与意义在过去的几年中,随着时代的发展和科学的进步,智能设备技术已在不断进步和更新换代,智能手机的应用范围渐渐涉及到生活的方方面面,同时Android系统的不断发展也为开发者提供了更大的开发空间。手机用途的广泛也使得手机软件如雨后春笋般不断涌现,这也使得Android手机的用户群体越来越大。在目前智能设备市场,市场占有率较高的两款操作系统为谷歌科技公司研发的Android操作系统以及苹果科技公司研发的iOS系统,还有一部分市场占有率较小的操作系统,比如Windowsphone系统等。两大系统均有各自的优势和缺点,发展前景也不尽相同。然而,随着移动设备技术的不断发展,这庞大的市场却没有一款被普遍使用的医疗软件。就当前而言,医院采用的医疗挂号软件均具有其局限性,那就是仅仅局限于一家医院或区域内的数家医院。由于医疗挂号软件的局限性,患者在挂号的时候需要在多个软件上进行重复的操作以确保自己可以成功挂号。这就造成资源的浪费,部分患者重复在多个医院均成功挂号,而部分的患者却没有挂号成功。医疗资源无法被充分利用便造成了挂号难、看病难等民生问题。1.2研究现状在过去的几年里,“实施健康中国战略”把“支持社会办医,发展健康产业”这一旗帜作为扶持企业发展的重要理念,自2017年政策实施以来,私人医疗产业在中国有了大显身手的机会。受益于国家政策的支持,一批新兴的医疗软件相继投入市场如:春雨医生、微医、丁香园等。这些医疗软件通过充分利用人工智能这一科技产物,将现有的与医疗相关的团队资源、信息、科研成果以及网络资源等排列、组合,逐渐搭建一个能过在线咨询与在线购药,在线咨询与线下就医的网络服务平台。通过此医疗软件平台,能过人性化的通过了解客户需求为客户提供对应的服务,是服务更加人性化、健康化、合理化。比如消费型医疗服务、健康管理和互动等。这些医疗软件不但有效解决了看病难的问题,令医疗资源得到充分利用,还能满足用户日常保健的需求,大大提高了服务的深度。然而,如此众多的医疗软件却没有一款可以整合多个功能的医疗软件,来满足用户的需求。如“丁香园”这一类医疗软件则以提供医疗咨询服务为主,而“微医”等软件则以医院预约挂号服务为主。用户若要使用多种服务,就需要下载多个医疗软件,这种做法导致手机资源被浪费,大大的影响了用户的使用体验。基于上述情况,开发一款综合型的医疗软件是非常必要的。本项目的目的是将预约挂号、在线购药、医疗资讯推送等多个功能整合,将“互联网+医疗”的服务体系进一步发展,降低医疗软件对手机资源的占用,提高用户的使用体验。1.3研究内容本研究课题需要设计的安卓手机医疗助手系统。对市场进行调研,对需求进行分析,得到一些设计理念如下:可通过软件了解相关业务的服务流程;针对医疗关系系统,搭建系统大致功能框架;将涉及以图纸的形式展示出来;撰写技术理论与设计思路;编写软件程序代码;完成代码后对系统进行检验、测试。
系统分析2.1可行性分析2.1.1技术可行性分析(1)Android系统概述在Linux开源代码的基础上,开发了目前使用范围最为广泛的移动设备操作系统之一的Android操作系统。Android系统操作系统最初被设计出来的公司名为"Android"。于2005年,名为谷歌的科技公司将"Android.Inc"并购,在Android系统的基础之上进一步开发和运营Android系统。对于Android系统而言,其系统体系机构采用的是软件堆层结构,英文名为softwarestack,也被称为软件叠层。于2007年,Google科技公司开发出了第一款关于安卓软件的开发工具包,叫做SDK,为安卓软件的开发拉开了序幕。于2008年8月,谷歌发布了安卓系统的首个商业版本,成为安卓系统发展史上的里程碑。有研究表明,Android操作系统进入市场之后在短短几年里就超越了曾不可一世的塞班系统,短时间内,迅速成为火爆全球的智能手机操作系统。不仅如此,安卓系统不仅在智能手机市场上占有很大的份额,而且平板电脑市场也在积极扩张,以中兴、华为、联想为首的中国大陆品牌和三星、MOTO为代表的海外品牌都加入了安卓家族。该系统被用作系列产品的运行系统。安卓操作系统是一款移动设备专用的,软件集平台,安卓作为一款专门针对专门针对移动设备的软件集,安卓拥有一个操作系统、一些重要应用程序以及中间件。安卓软件的开发包为安卓的开发提供了提供API接口以及开发工具,开发者可利用API接口和开发工具,通过Java语言开发安卓的应用。下述内容为Android系统相关特性的介绍。第一,在Android系统中,对于其应用程序框架而言,具有如下两个特点:一是组件可以被重复使用,另一个则是可以被替换,由于这两个特点的存在,程序得以被代替,极大提高了使用的舒适性;第二,Android浏览器的开发平台比较特殊,以Webkit引擎为基础平台,标志着WAP应用时间段的终结,并逐渐迈入移动互联网时期,因此具有丰富的图形库,这对于游戏开发而言,简直是非常大的利好;第三,数据库采用SQLite,具有结构化属性,从而进一步完善了存储功能;第四,系统集成有Dalvik虚拟机,和移动设备的契合度非常高,且相较于Java虚拟机,在运行速度方面具有非常大的优势;第五,支持多种常见的多媒体格式,如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF等;第六,支持多种数据传输方式,如:蓝牙Bluetooth,4G,3G,和Wi-Fi;第七,Android具有多种多样的开发环境,包括调试工具、Eclipse包含的开发环境插件、设备模拟器及内存及性能分析图表等;第八,支持GSM电话、摄像头、GPS等技术,但均依赖于硬件。(2)Android系统架构概述 Android系统大系统架构从大体上来看属于四层式:Linux内核层,系统核心;系统运行库层,主要框架;应用框架层,提供API;应用层,用户可直接使用的工具,详细信息分述如下:对于Android系统而言,其编写所依据的内核即为Linux,该层结构的主要的作用是提供给硬件以最为基础的驱动,比如非常常见的音频驱动、显示驱动及Wi-Fi驱动等。对于系统运行库层而言,其主要承担的角色是系统框架,提供特性支持,比如SQLite和Webkit,分别提供的支持类型;前者为数据库,后者为浏览器内核。同时对于Android运行库,其内部集成了Dalvik虚拟机,其主要作用为针对于应用程序,使其能够运行与独立进程,从而在极大程度上提升了应用的运行速度。应用框架层的主要功能体现在开发应用的过程中,在这个过程中提供各种类型的API。对于Android系统,有些自带的应用程序就是基于上述API开发的。此外,开发人员还可根据自身需求通过使用上述API进行应用的自定义开发。应用层,主要是一些核心应用程序,包括收发信息、通讯录、拨打电话等,上述程序均基于JAVA语言开发编写。图2-1Android体统架构(3)Android的优势与不足Android的优势主要体现在以下几个方面,首先,源代码具有开放性,使得开发者可以实时、清晰地掌握开发细节及进程,从而能够推动其技术实现进步,在根本上仍然对开发工作有非常大的好处;其次,使用Dalvik虚拟机,利用其对电池、系统内存等执行优化操作,从而提升了系统的运行速度;除此之外,在包括中国移动、中国联通在内的运营商大力支持下,极大地刺激了软件开发者的积极性。在了解Android系统的优势之后,就应该浅谈一下Android系统的不足了。就目前来看,其应用程序还不够完善,开发工作仍待持续跟进;Android系统的发展历程还比较短,这导致了操作系统版本更新过快,接口不统一,使得用户体验感有差异。(4)Android的影响Android自开发并应用后,在移动电信业、手机制造业等行业造成了巨大的影响。对开发商而言,由于Android是一个开源的移动计算软件平台,大量产业界巨头自发组成了以谷歌为主导的产业联盟,这使得Android的开发更为高效,大大降低了研究开发所需的成本。除此之外,由于Android是源代码开发的产品,小开发商可以开发出针对不同方向的产品以提高自身核心竞争力,缩小与大型厂商在核心技术上的差距,从而达到扬长避短的目的。而对消费者而言,影响更多体现在价格上。由于Android在设计初期便考虑到现有业务的融合,通过将GPS、蓝牙、MP3等列为提供支持的基本选项,减少了多项端口的授权费用。这使得Android产品的开发成本大大降低,最终使消费者受益。2.1.2经济可行性分析本项目在设计开发的过程中预计所需成本相对较低,所采用的技术与开发工具均为开源代码和免费的开发工具。所采用的均源于网上的开源代码,由资深的Android开发工程师免费提供。而在硬件方面,经过在多个模拟器上运行,适用于当前普及的大部分智能手机,因此可判断硬件成本并不高。综上所述,本系统经济上具有可行性。2.1.3运行可行性分析本文所开发的系统基于Android平台实现,该平台工具包技术较为完善且强大,同时数据包也比较成熟,对于手机资源的占用并不高。综上所述,本系统运行可行。2.2需求分析移动终端可以利用4G网络高速的通信技术,精确的定位功能,使得移动终端能够轻易地连接上网络,享有相关资源。此外,对于现在应用较为普遍的智能手机而言,其本身也具有较为强大的功能,结合这一点可以借助于智能手机为终端,准确、高效地开发出一套综合信息平台,实现用户查询医疗信息,其较高的实用性和便捷性一定会获得更多用户的认可。实现如下功能。1、服务器端:管理药品信息,管理用户信息,管理疾病信息,管理症状询问信息。2、客户端在android客户端上注册、登录;普通用户登录后,可修改用户信息,查看药品、健康信息,查询疾病问答等。总体分布如图2-2所示:图2-2总体功能需求图软件界面是用户使用频率最高的界面。软件操作的简易度、请求的响应时间、界面的布局、界面的信息类型均直接影响用户对一款软件的观感,影响一款软件的评分。2.3性能需求一个良好的架构设计应该具有以下几个特点:模块化。个体内的每一个模块的功能应当明确,而模块内部则要实现高聚合,合理实现信息的有效隐藏。适应化。软件架构要适应不同的功能需求,适应日益进步的技术水平。规划性优异。软件不仅需要做好对数据的存储,还应做好数据传递、数据复制等规划。具有灵活的部署规划。架构设计时应不拘泥于单一架构,根据不同的实际需求灵活变通架构策略。性能需求的核心来源为使用该系统的用户,对于用户来说,不仅功能性能够达到要求,还要求具有一定的质量性,所以,一些质量较差的系统往往得不到好的结局。所以,在进行架构设计的过程中,应当时刻考虑到用户的需求,包括功能需求、质量需求。通常来说,用户对系统性能的需求体现在下述几个方面:首先是良好的人机交互性,也就是要求系统具有友好的界面;其次是安全性。在实际使用过程中,前者较为容易满足,比如设置高系统配置等,因此需要在保证前者满足要求的条件下,保证系统的安全性。1、安全性对于本文的研究对象而言,其主要作用是实现对于相关医疗信息的管理,显然,安全性应当是首先考虑的问题。安全性通常体现在下述几个方面:第一,系统的安全性必须得到保障,这是基础;第二,数据的安全性,数据信息不能泄露。前者又体现在两个方面:一是系统操作的稳定性,二是开发平台的稳定性;后者也主要体现在两个方面:一是服务器设置,二是权限设置,系统必须提供给用户一定的权限,使其能够根据自身需要选择如何设置权限,从而实现对于信息的保护。2、可靠性可靠性包括两个方面的内容:一是软件运行,二是数据处理。基于软件工程设计的思想,应当尽可能的考虑到系统运行会出现的不利情况,并给出应对措施。2.4数据流图数据流,顾名思义指的是数据流动情况,其中各术语的含义分述如下:加工代表的含义是对数据进行加工处理,应当具体指出加工方式;数据存贮代表的含义是对数据进行保存,从其中调用数据指读数据,将数据流指向其表示写数据,如果是双向箭头,则代表修改数据;数据源点或终点的含义比较好理解,就是开始发出的点和终止点,数据流图内容的显示只是一种符号,无需通过软件设计。图2-4登陆数据流程对系统数据流程图处理过程细化,表现的是访问系统时,用户登录之后查询要信息以及健康咨询,如图2-5所示:图2-5手机客户端数据流图服务器端实现对药品、健康咨询的管理。图2-6服务器端数据流图
系统的设计3.1概述对于系统功能设计而言,其实现基础为以下两点:一点是总体任务,另一点则是设计思想,本文的研究对象从功能上来说是为了实现医疗助手系统在手机上的在线和离线功能,并根据用户的需求不断增强系统的功能,提高文件管理的实用性,完成一个让用户感到方便的医疗助手系统。3.2设计原则系统开发须符合下述原则:1.工作效率高,此原则的满足主要体现在下述三个指标上:(1)处理能力,单位时间内系统的处理效率;(2)运行时间,以软件初始化为起始点,以完成任务为终点,二者之间的时间长短即为运行时间;(3)响应时间,以用户发出请求指令为起始点,以软件接收并给出响应为终点,二者之间的时间长短即为响应时间。2.拥有较高的可靠性可靠性的实现一般是基于设计方面来考虑,同时还体现在纠错容错能力方面、故障恢复能力方面等。因此需要在设计阶段对上述几个方面进行综合考虑,可以给与一定的权限限制,避免出现越权现象,进而造成系统无法正常运行。3.拥有较好的交互性和操作性在系统设计的过程当中,应当时刻考虑到用户的实际需求,尽可能地保证设计出的界面具有下述特性:友好性、交互性、简单性。设计应用程序时,图形界面应当尽量保证显示的清晰度,同时还要兼具美观性,对于数据输入输出而言,应当充分考虑其可操作性,从而方面用户的使用。如果能够支持手写输入自然是最佳选择,从而能够大大降低输入工作量。3.3系统功能结构图对于医疗助手系统而言,基于整体性的角度并根据目标的不同可以将其分成诸多子系统,各自之间的功能性相互独立,但又可协调配合完成预定任务。根据这个原则可以把系统逐层往下分,直到不能分解为止。最上层的系统最为多样也最为复杂、最为具体,最下层则具有比较单一的功能性。对各子系统进行设计时,需要考虑独立性要求,并在保证功能不受影响的前提下减少联系。图3-1功能模块图3.4功能模块详细设计为了更好的展示此系统的功能,我们可以从活动图和时序图中体现出系统中主要功能的活动,以及对象与对象之间动态传递数据的过程,这样可以方便更好的了解本系统。3.4.1用户注册活动模块设计使用本系统必须注册账号方可访问相关页面。注册信息包括两个方面:一是用户名,二是登录密码。用户注册时,可以通过点击一个功能按钮即可查看用户名是否可用,即检测用户名按钮,如果发现输入的用户名已经被注册过,那么需重新选择一个用户名。在此同时,有一个检测用户名的功能按钮,如果已存在此用户则需要重新注册。相关信息均填写成功后即即提示注册成功,并在后台保存数据信息。用户注册活动图如下图3-2所示:图3-2用户注册功能活动图时序图见图3-3,从图中可以看出,用户进入登录界面后,当其尚未注册账号时,系统会提示其提供用户名和密码,并将其保存至数据库,经过分析查找判读是否为已经注册用户,如果账号可用,即可成功访问系统,并将注册信息反馈至系统后台数据库,完成信息的更新,并显示权限界面,最后则返回系统主界面。图3-3用户注册时序图3.4.2用户登录活动模块设计用户成功注册并登陆后即可进入系统主界面,详细信息及流程见图3-4。图3-4用户登录活动图3.5数据库设计3.5.1ER图设计对于系统而言,其逻辑模型主要包括两个组成部分,一是前面已经介绍过的数据流图,另一个则是E-R图。概念设计模型也称作实体E-R图,常被用于表示实体间的对应关系。E-R图可对现实世界进行准确的模拟,是沟通现实世界和控制系统的桥梁,其能够基于图表信息准确刻画现实世界的数据处理诉求,此外,还可以一种较为直观的方式去收集并表达客观的事物以便于我们在研究过程中理解与验证。(1)模型中的实体并不是一个单独的个体又或是一行数据,反而像是一个实体集。表示方式为矩形框,其中的内容则表示实体名称。各实体间的相互联系则基于菱形实现,接着借助于无向边把菱形和对应实体连接起来,并在其旁边注释出联系的具体类型。(2)属性表示通过椭圆框完成,代表的含义是实体的性质它是实体的。(3)对于各子系统而言,其中主键相同的字段相互之间具有关联性。(4)完整性控制通过程序实现,此外,一致性也通过此方式实现。本系统的ER图如下:图3-5系统ER图3.5.2数据库表设计为了存储各种数据,在数据库里建立了以下几张表:表3-1药品表序号列名数据类型长度标识主键允许空说明1idint11是是否标记药品2goodsvarchar100是商品3pircevarchar100是价格4uservarchar100是使用者5uidvarchar100是使用者ID6shopvarchar100是商店7billvarchar2000是账单8openidvarchar255是9ndatevarchar255是10totalvarchar255是11wayvarchar50是12gnamesvarchar500是13sidvarchar10是14telvarchar50是15addressvarchar50是16notevarchar200是17stateint11是18fenqiint11是19statecnvarchar200是20chepaivarchar200是21fdjhvarchar200是22fuwuvarchar2000是23idcardvarchar200是24chejiahaovarchar200是表3-2咨询表序号列名数据类型长度标识主键允许空说明1idint11是是否标记2gnamevarchar100是商品名3pricevarchar10是商品价格4jifenvarchar10是商品数量5notevarchar500是简介6typevarchar50是类型7imgvarchar500是图片8countvarchar10是数量9typeidvarchar10是10xiaoliangint11是11ownidvarchar10是12sidvarchar10是13shopvarchar50是14btypevarchar200是15videovarchar255是16zkvarchar255是17zksvarchar255是18bxjevarchar255是表3-3类型表序号列名数据类型长度标识主键允许空说明1idint11是是否标记分类2titlevarchar500是类型标题3ownidvarchar10是所有者ID表3-4用户表序号列名数据类型长度标识主键允许空说明1idint11是是否标记用户2usernamevarchar50是用户名3passwordvarchar50是用户密码4roletypevarchar50是用户类型5emailvarchar200是用户邮箱6telvarchar50是用户电话号码7qqvarchar20是用户QQ号码8wechatvarchar20是用户微信号码9sexvarchar20是用户性别10birthvarchar20是用户生日11imgvarchar200是用户头像12sidvarchar10是13addressvarchar200是用户地址14moneyint11是用户余额15idcardvarchar200是用户身份证号码16chejiahaovarchar200是
系统的实现4.1软件界面设计因为本软件的主要应用平台就是手机终端,然而该平台的显示屏相较于其他类型比较小,所以功能键数量的设计受到一定的限制。通常来说,菜单栏在不使用时保持在隐藏状态,使用时可以通过menu按钮进行激活。对于用户界面而言,菜单是其中设置最为普遍的一个功能,且使用频率相较于其他功能高出许多,所以本设计采用选项菜单(opinionmenu)。对于常用功能,我们一般设置到第一层菜单上,方便直接点击使用。而当按下手机上的menu按钮时,在屏幕底部会弹出选项菜单,通常显示数量为2排,每一排包含3个菜单项,由于存在图形信息,故也可叫作IconMenus。每一排包含的菜单项如果超过6个,那么在第6项之后的则设置为隐藏状态,包括第6项,且就在该项会弹出More选项,被称为ExpandedMenus。4.2用户界面4.2.1登录与注册该模块实现了用户的注册功能,在点击确认按钮后,将用户输入的用户名称与数据库中已经注册的用户名进行对比。具体会出现的情况,前已叙述,在此不再赘述。具体代码如下:functionregister(){varfdata=serializeObject($("#registerform"));if($.trim(fdata.username)==""||$.trim(fdata.passwd)==""||$.trim(fdata.tel)==""||$.trim(fdata.address)==""){showLoader("请填写完整信息!",true);return;}if(fdata.tel.length<11){showLoader("电话号码格式不对!",true);return;}if(fdata.passwd!=fdata.passwd2){showLoader("两次密码不一致!",true);return;}commitRegiesterInfo(fdata);}图4-1用户注册流程图图4-2用户注册界面对于用户来说,输入已经注册的用户名和预先设置的密码即可登录。在进行登录操作时,系统首先会校对用户名和密码是否为空,若为空则提示“请输入用户名和密码”;若不为空则进行下一步,将用户输入的用户名和密码与数据库中所存数据进行校对,错误则提示“用户名或密码错误”,否则就弹出“登录成功”的提示完成登录操作。具体实施代码如下:functionlogin(uinfo){varfdata=uinfo||serializeObject($("#loginform"));if($.trim(fdata.username)==""||$.trim(fdata.passwd)==""){showLoader("请输入用户名或密码!",true);return;}ajaxCallback("login",fdata,function(data){if(&&=="fail"){showLoader("用户名或密码错误",true);changePage("loginpage");}else{showLoader("登录成功!",true);userinfo=data;if(fdata.remember=="1"){localStorage["userinfo"]=JSON.stringify(data);}else{localStorage["userinfo"]="";}toMain();}});}图4-3用户登陆流程图图4-4用户登录界面4.2.2个人信息管理在登录之后用户可通过点击主页左上方的选项键,管理个人信息。更新后的个人信息将上传至数据库。图4-5用户个人信息编辑除此之外,用户还可以通过修改密码功能修改原始密码,进一步保障自身信息安全。在更改密码的过程中,系统首先会对输入的原始密码与数据库进行校对,以确保用户信息安全;此外,系统还会对用户设置的新密码进行校验,确保输入的信息正确。更新后的数据将自动上传至数据库,替换原有数据。具体代码如下:functionchangePasswd(){varfdata=serializeObject($("#passwdform"));fdata.id=userinfo.id;if(fdata.oldpasswd!=userinfo.passwd){showLoader("原始密码错误!",true);return;}if($.trim(fdata.passwd)==""){showLoader("密码不能为空!",true);return;}if(fdata.passwd!=fdata.passwd2){showLoader("两次密码不一致!",true);return;}ajaxCallback("changePasswd",fdata,function(r){if(=="success"){showLoader("保存成功!",true);setTimeout(function(){toLogin();},2000);}else{showLoader("保存失败,请稍候再试!",true);}图4-6用户密保4.3客户端主界面医疗助手系统手机端登录之后,可以对身体部位进行查询、药品信息进行查询。4.3.1部位查询在登录医疗系统之后,用户可根据身体不适部位的分类来查询自己的病症。图4-7主界面在点击头部分类后,即可通过输入关键字或滑动查询自己病症。图4-8部位查询4.3.2药品模块用户在点击底部导航栏中的药品后,即可通过滑动或关键字检索查找到自己适用的药物。除此之外,还可以根据提供的参考价格购买所需药物,避免花费冤枉钱。具体实现代码如下:functionlistGood(){ajaxCallback("listGood",{},function(data){focuslist=data;$("#goods").refreshShowListView(data);});}functiontoGood(id){varobj=getObjectById(id,focuslist);focusobj=obj;changePage("goodpage");$("#gname2").text("药品名:"+obj.gname);$("#gimg2").attr("src",fileurl+obj.img);$("#gnote2").text("简介:"+obj.note);$("#gprice2").text("价格:"+obj.price);}图4-9药品检索图4-10药品4.4服务器端管理中心4.4.1登陆在医疗系统的设计中,后台系统起到了非常重要的作用。而管理员的身份更是其中最重要的,因为管理员拥有整个系统最高的权限,所以身份识别是必须的。通过一个简单的判断,使得输入的数据与数据库进行对比,便可实现身份验证。图4-11后台登录publicvoidlogin(){ Stringusername=request.getParameter("username"); Stringpasswd=request.getParameter("passwd"); Usertu=newUser(); tu.setUsername(username); tu.setPasswd(passwd); Useru=userService.find(tu); if(u!=null){ session.put("usertype",u.getRoletype()); session.put("username",u.getUsername()); render("登录成功,欢迎您!"+u.getUsername()); }else{ render("用户名或密码错误!"); } }4.4.2信息管理后台端是实现对药品信息、用户信息和疾病信息等进行管理的重要部分,管理员可以在后台端添加、删减、编辑前端所显示的信息。由于后台端管理功能的实现方法大多相似,因此便以药品管理功能为例。在药品管理模块,管理员可以新增或删除药物,及时更新数据库。除此以外,还可以对药品的简介信息进行编辑。图4-12药品管理 publicvoidadd(){ Stringaction=request.getParameter("action"); if(good!=null){ good.setCount(0); if(img!=null){ Stringfilename=upload(); good.setImg(filename); } if(action.equals("add")){ goodService.save(good); render("操作成功!"); }else{ Stringid=request.getParameter("id"); good.setId(Integer.parseInt(id)); goodService.update(good); render("操作成功!"); } } } publicvoidaddType(){ Stringaction=request.getParameter("action"); if(type!=null){ if(action.equals("add")){ typeService.save(type); render("操作成功!"); }else{ Stringid=request.getParameter("id"); type.setId(Integer.parseInt(id)); typeService.update(type); render("操作成功!"); } } } publicvoiddeleteItem(){ Stringid=request.getParameter("id"); goodService.delete(Integer.parseInt(id)); render("操作成功"); } publicvoiddeleteTypeItem(){ Stringid=request.getParameter("id"); typeService.delete(Integer.parseInt(id)); render("操作成功"); } 4.4.3用户权限管理作为一款医疗系统,通常需要根据使用者身份的不同赋予其不同的权力,如:管理员具有最高的权力,可修改系统中的数据;而低级使用者仅有访问权力。因此,在设计本系统时设置了权限的分类,以区分识别使用者。图4-14权限管理publicvoidgetList(){ Stringusername=request.getParameter("susername"); Stringsort=request.getParameter("sort"); Stringorder=request.getParameter("order"); Pagepage=newPage(); MapparamsMap=newHashMap(); paramsMap.put("username",username); paramsMap.put("sort","orderby"+sort+""+order); StringpageNo=(String)this.request.getParameter("page"); StringpageSizes=(String)this.request.getParameter("rows"); if(pageNo==null){ page.setPageSize(10); page.setPageNo(1); }else{ page.setPageSize(Integer.parseInt(pageSizes)); page.setPageNo(Integer.parseInt(pageNo)); } page=userService.findByPage(page,paramsMap); Gsonjson=newGson(); Map<String,Object>map=newHashMap<String,Object>(); map.put("total",page.getTotal()); map.put("rows",page.getList()); render(json.toJson(map)); } publicvoidadd(){ Stringaction=request.getParameter("action"); if(user!=null){ if(action.equals("add")){ userService.save(user); render("操作成功!"); }else{ Stringid=request.getParameter("id"); user.setId(Integer.parseInt(id)); userService.update(user); render("操作成功!"); } } } publicvoiddeleteItem(){ Stringid=request.getParameter("id"); userService.delete(Integer.parseInt(id)); render("操作成功"); } } publicvoiddeleteItem(){ Stringid=request.getParameter("id"); postsService.delete(Integer.parseInt(id)); render("操作成功");}
系统的测试软件测试在开发过程中一直都是很受大众关注的一项,即使是在较为早期的软件开发项目中,也需要进行系统测试。当前阶段,软件危机时有发生,且用户对目标软件的本质的了解逐渐深入,在这种背景之下,软件测试成为了关注焦点。对于软件测试工作而言,不只是在开发的某个阶段需要进行,在整个开发过程中都应当给与其比较大的关注。因为用户逐渐了解:软件测试进行的越靠前,进行的次数越多,开发成本就会越少。ExtremeProgramming的一切软件开发活动都要从编写测试代码开始,这一举动更是把软件测试推到了极限的位置。5.1测试方案设计5.1.1测试策略对于设计开发的《android医疗助手系统》,为了确保用户能够方便使用并减少错误率,进行了如下的测试工作,包括三个方面:1、对《android医疗助手系统》的代码进行如下的测试:集成测试、验收测试、单元测试及系统测试;2、对于测试对象而言,将其特性以及功能统计出来,不管是能够被测试或不能测试的;3、测试需求分析文档。5.1.2测试安排测试系统质量的目的是确保其能够实现预定的功能且保证一定的性能,对此提出几点要求:1.系统的各个功能模块及集成后都需进行相应的测试,主要包括两个方面,一方面是单元测试,另一方面是集成测试;对系统每个功能的测试,单元测试,集成测试;2.确保全部测试案例均已执行;所有的测试案例都已执行过;3.确保关键功能不存在Bug;4.确保全部自动测试脚本均已执行;5.确保各模块测试等级被确认完成;6.需进行回归测试。5.1.3测试资源两点说明:1.开发人员需准时结束成开发工作,尽量防止受到外部环境的干扰,比如网络限制、可移植限制等。2.检查出测试项目对外界环境的依赖性。5.2测试用例构建5.2.1测试用例编写约定下述内容为对本系统各功能模块的测试,见表5-1。具体测试结果见表6-1。表5-1测试说明测试阶段技术是否采用说明审评测试是对软件产品功能说明文档和设计说明文档进行检测,在需求与设计阶段进行编写测试用例是在产品编码阶段编写测试用例单元测试是由开发人员进行操作功能测试是由开发人员进行操作集成测试是检测模块集成后的系统是否达到需求、对业务流程及数据的处理是否符合标准、系统对业务流处理是否存在逻辑不严谨及错误系统测试是包括性能测试、压力测试和回归测试验收测试是由建设单位、工程实施人员进行操作安装测试是由测试人员对系统安装方面的测试5.2.2测试用例设计表5-2用例设计序号测试用例测试记录测试结果分析1在配置文件和代码中,最好写上注释,这样便于查看代码,根据注释可以清楚的明白这里是在干什么。在大多数配置文件中和代码中,都进行了注释这是一个很好的编程习惯,这样使项目的功能一目了然。2版本控制。随着项目功能不断的完善,就会出现不断升级的版本了,这时就要进行版本的控制了,否则就会出现版本混乱。项目的命名是项目名+版本名,如doc1.0,当完成了一个新功能,就会修改项目名。版本也升级,另外还写了版本升级的日志。这样做的好处,可以减少一些不必要的麻烦,如重复的写同样的代码,或者找不到以前的代码。5.2.3测试分析因为在软件开发方面的经验不够,导致在写代码的过程中出现了和期望不一致的情况,例如编写代码时没有严格遵守相关规范,引发了接口间的连接问题,从而设计功能错误,和用户需求不一致。因此,在软件开发过程及未发布之前,必须进行反复测试直至功能性得到完善。在进行系统测试的过程中,基于需求性分析和设计要求,认真地排查各项功能,防止残片缺陷现象的出现,因为该现象会严重影响系统功能,同时降低数据的精确度,最终引发产品质量问题,因此需要对其进行反复的测试,从而实现对于产品质量的保障。
总结在本次研究中,初步实现了基于Android技术的医疗管理系统,成功实现了医疗系统的部分功能。用户在使用本系统时需要进行注册登录,以便进行个性化操作和数据库管理。而用户在登录之后可通过本系统使用智能咨询功能,既可以根据数据库中存储的数据判断自己的病症,也可以检索查找适合自己病症的药物。通过运用Android开发技术,初步构建了医疗系统的框架。但是,医疗系统尚有多项功能需要完善,如设想中的预约挂号、药物配送等功能尚需继续完善开发,可以说这个系统仍然具有很大的完善空间。
参考文献[1]郭霖,第一行代码[M].北京:人民邮电出版社,2016:1-12[2]靳岩, 姚尚朗.GoogleAndroid 开发入门与实战[M]. 北京: 人民邮电出版社,2009:1-12.[3]景保玉.2010中国移动应用开发现状与趋势大调查[M]. 北京: 人民邮电出版社,2011:2-19.[4]高昂. 支持动态语言的Android平台[M]. 北京: 人民邮电出版社,2009:5-7[5]郭志宏.Android应用开发详解[M]. 北京: 电子工业出版社,2010:6-21[6]韩超, 梁泉.Android 系统开发原理及开发要点详解[M]. 北京: 电子工业出版社,2010:1-11[7杨丰盛.Android应用开发揭秘[M]第一版.北京:机械工业出版社,2010姚昱旻,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,2008(11)1RickRogers,BlakeMeike,ZiqurdMednieks.Android应用开发[M].北京:人民邮电出版社,2010GayS.Hoerstmann,GaryCornell.Java核心技术[M].北京:机械工业出版社,2008余志龙,陈昱勋.GoogleAndroidSDK开发范例大全[M].北京:人民邮电出版社,2009张孝祥.JAVA邮件开发详解[M].北京:电子工业出版社,2007.杨文志.GoogleAndroid程序设计指南[M].北京:电子工业出版社,2009.陈昱,江兰帆.基于GoogleAndroid平台的应用程序开发和研究[J].福建电脑,2008(11)
致谢在历经几个月的学习与工作后,毕业设计项目初步完成了,并且完成了毕业论文的编写。首先需要感谢导师与学校为论文框架的设计提供了很多宝贵的意见,还提供了校外VPN使得本人在这个特殊时期也能查询到大量的资料文献。除此之外,还要感谢在CSDN等平台分享经验的开发者们,为本次研究提供了许多参考资料。
ExcelXP的八则快速输入技巧如果我们在用ExcelXP处理庞大的数据信息时,不注意讲究技巧和方法的话,很可能会花费很大的精力。因此如何巧用ExcelXP,来快速输入信息就成为各个ExcelXP用户非常关心的话题,笔者向大家介绍几则这方面的小技巧。1、快速输入大量含小数点的数字如果我们需要在ExcelXP工作表中输入大量的带有小数位的数字时,按照普通的输入方法,我们可能按照数字原样大小直接输入,例如现在要在单元格中输入0.05这个数字时,我们会把“0.05”原样输入到表格中。不过如果需要输入若干个带有小数点的数字时,我们再按照上面的方法输入的话,每次输入数字时都需要重复输入小数点,这样工作量会变大,输入效率会降低。其实,我们可以使用ExcelXP中的小数点自动定位功能,让所有数字的小数点自动定位,从而快速提高输入速度。在使用小数点自动定位功能时,我们可以先在ExcelXP的编辑界面中,用鼠标依次单击“工具”/“选项”/“编辑”标签,在弹出的对话框中选中“自动设置小数点”复选框,然后在“位数”微调编辑框中键入需要显示在小数点右面的位数就可以了。以后我们再输入带有小数点的数字时,直接输入数字,而小数点将在回车键后自动进行定位。例如,我们要在某单元格中键入0.06的话,可以在上面的设置中,让“位数”选项为2,然后直接在指定单元格中输入6,回车以后,该单元格的数字自动变为“0.06”,怎么样简单吧?2、快速录入文本文件中的内容现在您手边假如有一些以纯文本格式储存的文件,如果此时您需要将这些数据制作成ExcelXP的工作表,那该怎么办呢?重新输入一遍,大概只有头脑有毛病的人才会这样做;将菜单上的数据一个个复制/粘贴到工作表中,也需花很多时间。没关系!您只要在ExcelXP中巧妙使用其中的文本文件导入功能,就可以大大减轻需要重新输入或者需要不断复制、粘贴的巨大工作量了。使用该功能时,您只要在ExcelXP编辑区中,依次用鼠标单击菜单栏中的“数据/获取外部数据/导入文本文件”命令,然后在导入文本会话窗口选择要导入的文本文件,再按下“导入”钮以后,程序会弹出一个文本导入向导对话框,您只要按照向导的提示进行操作,就可以把以文本格式的数据转换成工作表的格式了。3、快速输入大量相同数据如果你希望在不同的单元格中输入大量相同的数据信息,那么你不必逐个单元格一个一个地输入,那样需要花费好长时间,而且还比较容易出错。你可以通过下面的操作方法在多个相邻或不相邻的单元格中快速填充同一个数据,具体方法为:首先同时选中需要填充数据的单元格。若某些单元格不相邻,可在按住Ctrl键的同时,点击鼠标左键,逐个选中;其次输入要填充的某个数据。按住Ctrl键的同时,按回车键,则刚才选中的所有单元格同时填入该数据。4、快速进行中英文输入法切换一张工作表常常会既包含有数字信息,又包含有文字信息,要录入这样一种工作表就需要我们不断地在中英文之间反复切换输入法,非常麻烦,为了方便操作,我们可以用以下方法实现自动切换:首先用鼠标选中需要输入中文的单元格区域,然后在输入法菜单中选择一个合适的中文输入法;接着打开“有效数据”对话框,选中“IME模式”标签,在“模式”框中选择打开,单击“确定”按钮;然后再选中输入数字的单元格区域,在“有效数据”对话框中,单击“IME模式”选项卡,在“模式”框中选择关闭(英文模式);最后单击“确定”按钮,这样用鼠标分别在刚才设定的两列中选中单元格,五笔和英文输入方式就可以相互切换了。5、快速删除工作表中空行删除ExcelXP工作表中的空行,一般的方法是需要将空行都找出来,然后逐行删除,但这样做操作量非常大,很不方便。那么如何才能减轻删除工作表中空行的工作量呢?您可以使用下面的操作方法来进行删除:首先打开要删除空行的工作表,在打开的工作表中用鼠标单击菜单栏中的“插入”菜单项,并从下拉菜单中选择“列”,从而插入一新的列X,在X列中顺序填入整数;然后根据其他任何一列将表中的行排序,使所有空行都集中到表的底部。删去所有空行中X列的数据,以X列重新排序,然后删去X列。按照这样的删除方法,无论工作表中包含多少空行,您就可以很快地删除了。6、快速对不同单元格中字号进行调整在使用ExcelXP编辑文件时,常常需要将某一列的宽度固定,但由于该列各单元格中的字符数目不等,致使有的单元格中的内容不能完全显示在屏幕上,为了让这些单元格中的数据都显示在屏幕上,就不得不对这些单元格重新定义较小的字号。如果依次对这些单元格中的字号调整的话,工作量将会变得很大。其实,您可以采用下面的方法来减轻字号调整的工作量:首先新建或打开一个工作簿,并选中需要ExcelXP根据单元格的宽度调整字号的单元格区域;其次单击用鼠标依次单击菜单栏中的“格式”/“单元格”/“对齐”标签,在“文本控制”下选中“缩小字体填充”复选框,并单击“确定”按钮;此后,当你在这些单元格中输入数据时,如果输入的数据长度超过了单元格的宽度,ExcelXP能够自动缩小字符的大小把数据调整到与列宽一致,以使数据全部显示在单元格中。如果你对这些单元格的列宽进行了更改,则字符可自动增大或缩小字号,以适应新的单元格列宽,但是对这些单元格原设置的字体字号大小则保持不变。7、快速输入多个重复数据在使用ExcelXP工作表的过程中,我们经常要输入大量重复的数据,如果依次输入,无疑工作量是巨大的。现在我们可以借助ExcelXP的“宏”功能,来记录首次输入需要重复输入的数据的命令和过程,然后将这些命令和过程赋值到一个组合键或工具栏的按钮上,当按下组合键时,计算机就会重复所记录的操作。使用宏功能时,我们可以按照以下步骤进行操作:首先打开工作表,在工作表中选中要进行操作的单元格;接着再用鼠标单击菜单栏中的“工具”菜单项,并从弹出的下拉菜单中选择“宏”子菜单项,并从随后弹出的下级菜单中选择“录制新宏”命令;设定好宏后,我们就可以对指定的单元格,进行各种操作,程序将自动对所进行的各方面操作记录复制。8、快速处理多个工作表有时我们需要在ExcelXP中打开多个工作表来进行编辑,但无论打开多少工作表,在某一时刻我们只能对一个工作表进行编辑,编辑好了以后再依次编辑下一个工作表,如果真是这样操作的话,我们倒没有这个必要同时打开多个工作表了,因为我们同时打开多个工作表的目的就是要减轻处理多个工作表的工作量的,那么我们该如何实现这样的操作呢?您可采用以下方法:首先按住“Shift"键或“Ctrl"键并配以鼠标操作,在工作簿底部选择多个彼此相邻或不相邻的工作表标签,然后就可以对其实行多方面的批量处理;接着在选中的工作表标签上按右键弹出快捷菜单,进行插入和删除多个工作表的操作;然后在“文件”菜单中选择“页面设置……”,将选中的多个工作表设成相同的页面模式;再通过“编辑”菜单中的有关选项,在多个工作表范围内进行查找、替换、定位操作;通过“格式”菜单中的有关选项,将选中的多个工作表的行、列、单元格设成相同的样式以及进行一次性全部隐藏操作;接着在“工具”菜单中选择“选项……”,在弹出的菜单中选择“视窗”和“编辑”按钮,将选中的工作表设成相同的视窗样式和单元格编辑属性;最后选中上述工作表集合中任何一个工作表,并在其上完成我们所需要的表格,则其它工作表在相同的位置也同时生成了格式完全相同的表格。高效办公Excel排序方法"集中营"排序是数据处理中的经常性工作,Excel排序有序数计算(类似成绩统计中的名次)和数据重排两类。本文以几个车间的产值和名称为例,介绍Excel2000/XP的数据排序方法。一、数值排序1.RANK函数RANK函数是Excel计算序数的主要工具,它的语法为:RANK(number,ref,order),其中number为参与计算的数字或含有数字的单元格,ref是对参与计算的数字单元格区域的绝对引用,order是用来说明排序方式的数字(如果order为零或省略,则以降序方式给出结果,反之按升序方式)。例如图1中E2、E3、E4单元格存放一季度的总产值,计算各车间产值排名的方法是:在F2单元格内输入公式“=RANK(E2,$E$2:$E$4)”,敲回车即可计算出铸造车间的产值排名是2。再将F2中的公式复制到剪贴板,选中F3、F4单元格按Ctrl+V,就能计算出其余两个车间的产值排名为3和1。如果B1单元格中输入的公式为“=RANK(E2,$E$2:$E$4,1)”,则计算出的序数按升序方式排列,即2、1和3。需要注意的是:相同数值用RANK函数计算得到的序数(名次)相同,但会导致后续数字的序数空缺。假如上例中F2单元格存放的数值与F3相同,则按本法计算出的排名分别是3、3和1(降序时)。2.COUNTIF函数COUNTIF函数可以统计某一区域中符合条件的单元格数目,它的语法为COUNTIF(range,criteria)。其中range为参与统计的单元格区域,criteria是以数字、表达式或文本形式定义的条件。其中数字可以直接写入,表达式和文本必须加引号。仍以图1为例,F2单元格内输入的公式为“=COUNTIF($E$2:$E$4,">"&E2)+1”。计算各车间产值排名的方法同上,结果也完全相同,2、1和3。此公式的计算过程是这样的:首先根据E2单元格内的数值,在连接符&的作用下产生一个逻辑表达式,即“>176.7”、“>167.3”等。COUNTIF函数计算出引用区域内符合条件的单元格数量,该结果加一即可得到该数值的名次。很显然,利用上述方法得到的是降序排列的名次,对重复数据计算得到的结果与RANK3.IF函数Excel自身带有排序功能,可使数据以降序或升序方式重新排列。如果将它与IF函数结合,可以计算出没有空缺的排名。以图1中E2、E3、E4单元格的产值排序为例,具体做法是:选中E2单元格,根据排序需要,单击Excel工具栏中的“降序排序”或“升序排序”按钮,即可使工作表中的所有数据按要求重新排列。假如数据是按产值由大到小(降序)排列的,而您又想赋予每个车间从1到n(n为自然数)的排名。可以在G2单元格中输入1,然后在G3单元格中输入公式“=IF(E3=E2,G3,G3+1)”,只要将公式复制到G4等单元格,就可以计算出其他车间的产值排名。二、文本排序选举等场合需要按姓氏笔划为文本排序,Excel提供了比较好的解决办法。如果您要将图1数据表按车间名称的笔划排序,可以使用以下方法:选中排序关键字所在列(或行)的首个单元格(如图1中的A1),单击Excel“数据”菜单下的“排序”命令,再单击其中的“选项”按钮。选中“排序选项”对话框“方法”下的“笔画排序”,再根据数据排列方向选择“按行排序”或“按列排序”,“确定”后回到“排序”对话框(图2)。如果您的数据带有标题行(如图1中的“单位”之类),则应选中“有标题行”(反之不选),然后打开“主要关键字”下拉列表,选择其中的“单位”,选中排序方式(“升序”或“降序”)后“确定”,表中的所有数据就会据此重新排列。此法稍加变通即可用于“第一名”、“第二名”等文本排序,请读者自行摸索。三、自定义排序如果您要求Excel按照“金工车间”、“铸造车间”和“维修车间”的特定顺序重排工作表数据,前面介绍的几种方法就无能为力了。这类问题可以用定义排序规则的方法解决:首先单击Excel“工具”菜单下的“选项”命令,打开“选项”对话框中的“自定义序列”选项卡(图3)。选中左边“自定义序列”下的“新序列”,光标就会在右边的“输入序列”框内闪动,您就可以输入“金工车间”、“铸造车间”等自定义序列了,输入的每个序列之间要用英文逗号分隔,或者每输入一个序列就敲回车。如果序列已经存在于工作表中,可以选中序列所在的单元格区域单击“导入”,这些序列就会被自动加入“输入序列”框。无论采用以上哪种方法,单击“添加”按钮即可将序列放入“自定义序列”中备用(图3)。使用排序规则排序的具体方法与笔划排序很相似,只是您要打开“排序选项”对话框中的“自定义排序次序”下拉列表,选中前面定义的排序规则,其他选项保持不动。回到“排序”对话框后根据需要选择“升序”或“降序”,“确定”后即可完成数据的自定义排序。需要说明的是:显示在“自定义序列”选项卡中的序列(如一、二、三等),均可按以上方法参与排序,请读者注意Excel提供的自定义序列类型。谈谈Excel输入的技巧在Excel工作表的单元格中,可以使用两种最基本的数据格式:常数和公式。常数是指文字、数字、日期和时间等数据,还可以包括逻辑值和错误值,每种数据都有它特定的格式和输入方法,为了使用户对输入数据有一个明确的认识,有必要来介绍一下在Excel中输入各种类型数据的方法和技巧。一、输入文本Excel单元格中的文本包括任何中西文文字或字母以及数字、空格和非数字字符的组合,每个单元格中最多可容纳32000个字符数。虽然在Excel中输入文本和在其它应用程序中没有什么本质区别,但是还是有一些差异,比如我们在Word、PowerPoint的表格中,当在单元格中输入文本后,按回车键表示一个段落的结束,光标会自动移到本单元格中下一段落的开头,在Excel的单元格中输入文本时,按一下回车键却表示结束当前单元格的输入,光标会自动移到当前单元格的下一个单元格,出现这种情况时,如果你是想在单元格中分行,则必须在单元格中输入硬回车,即按住Alt键的同时按回车键。二、输入分数几乎在所有的文档中,分数格式通常用一道斜杠来分界分子与分母,其格式为“分子/分母”,在Excel中日期的输入方法也是用斜杠来区分年月日的,比如在单元格中输入“1/2”,按回车键则显示“1月2日”,为了避免将输入的分数与日期混淆,我们在单元格中输入分数时,要在分数前输入“0”(零)以示区别,并且在“0”和分子之间要有一个空格隔开,比如我们在输入1/2时,则应该输入“01/2”。如果在单元格中输入“81/2”,则在单元格中显示“81/2”,而在编辑栏中显示“三、输入负数在单元格中输入负数时,可在负数前输入“-”作标识,也可将数字置在()括号内来标识,比如在单元格中输入“(88)”,按一下回车键,则会自动显示为“-88”。四、输入小数在输入小数时,用户可以向平常一样使用小数点,还可以利用逗号分隔千位、百万位等,当输入带有逗号的数字时,在编辑栏并不显示出来,而只在单元格中显示。当你需要输入大量带有固定小数位的数字或带有固定位数的以“0”字符串结尾的数字时,可以采用下面的方法:选择“工具”、“选项”命令,打开“选项”对话框,单击“编辑”标签,选中“自动设置小数点”复选框,并在“位数”微调框中输入或选择要显示在小数点右面的位数,如果要在输入比较大的数字后自动添零,可指定一个负数值作为要添加的零的个数,比如要在单元格中输入“88”后自动添加3个零,变成“88000”,就在“位数”微调框中输入“-3”,相反,如果要在输入“88”后自动添加3位小数,变成“0.088”,则要在“位数”微调框中输入“3”。另外,在完成输入带有小数位或结尾零字符串的数字后,应清除对“自动设置小数点”符选框的选定,以免影响后边的输入;如果只是要暂时取消在“自动设置小数点”中设置的选项,可以在输入数据时自带小数点。五、输入货币值Excel几乎支持所有的货币值,如人民币(¥)、英镑(£)等。欧元出台以后,Excel2000完全支持显示、输入和打印欧元货币符号。用户可以很方便地在单元格中输入各种货币值,Excel会自动套用货币格式,在单元格中显示出来,如果用要输入人民币符号,可以按住Alt键,然后再数字小键盘上按“0165”即可。六、输入日期Excel是将日期和时间视为数字处理的,它能够识别出大部分用普通表示方法输入的日期和时间格式。用户可以用多种格式来输入一个日期,可以用斜杠“/”或者“-”来分隔日期中的年、月、日部分。比如要输入“2001年12月1日”,可以在单元各种输入“2001/12/1”或者“2001-12-1七、输入时间在Excel中输入时间时,用户可以按24小时制输入,也可以按12小时制输入,这两种输入的表示方法是不同的,比如要输入下午2时30分38秒,用24小时制输入格式为:2:30:38,而用12小时制输入时间格式为:2:30:38p,注意字母“p”和时间之间有一个空格。如果要在单元格中插入当前时间,则按Ctrl+Shift+;键。了解Excel公式的错误值经常用Excel的朋友可能都会遇到一些莫名奇妙的错误值信息:#N/A!、#VALUE!、#DIV/O!等等,出现这些错误的原因有很多种,如果公式不能计算正确结果,Excel将显示一个错误值,例如,在需要数字的公式中使用文本、删除了被公式引用的单元格,或者使用了宽度不足以显示结果的单元格。以下是几种常见的错误及其解决方法。1.#####!原因:如果单元格所含的数字、日期或时间比单元格宽,或者单元格的日期时间公式产生了一个负值,就会产生#####!错误。解决方法:如果单元格所含的数字、日期或时间比单元格宽,可以通过拖动列表之间的宽度来修改列宽。如果使用的是1900年的日期系统,那么Excel中的日期和时间必须为正值,用较早的日期或者时间值减去较晚的日期或者时间值就会导致#####!错误。如果公式正确,也可以将单元格的格式改为非日期和时间型来显示该值。2.#VALUE!当使用错误的参数或运算对象类型时,或者当公式自动更正功能不能更正公式时,将产生错误值#VALUE!。原因一:在需要数字或逻辑值时输入了文本,Excel不能将文本转换为正确的数据类型。解决方法:确认公式或函数所需的运算符或参数正确,并且公式引用的单元格中包含有效的数值。例如:如果单元格A1包含一个数字,单元格A2包含文本"学籍",则公式"=A1+A2"将返回错误值#VALUE!。可以用SUM工作表函数将这两个值相加(SUM函数忽略文本):=SUM(A1:A2)。原因二:将单元格引用、公式或函数作为数组常量输入。解决方法:确认数组常量不是单元格引用、公式或函数。原因三:赋予需要单一数值的运算符或函数一个数值区域。解决方法:将数值区域改为单一数值。修改数值区域,使其包含公式所在的数据行或列。3.#DIV/O!当公式被零除时,将会产生错误值#DIV/O!。原因一:在公式中,除数使用了指向空单元格或包含零值单元格的单元格引用(在Excel中如果运算对象是空白单元格,Excel将此空值当作零值)。解决方法:修改单元格引用,或者在用作除数的单元格中输入不为零的值。原因二:输入的公式中包含明显的除数零,例如:=5/0。解决方法:将零改为非零值。4.#NAME?在公式中使用了Excel不能识别的文本时将产生错误值#NAME?。原因一:删除了公式中使用的名称,或者使用了不存在的名称。解决方法:确认使用的名称确实存在。选择菜单"插入"|"名称"|"定义"命令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论