版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业论文(科研训练、毕业设计)题 目:凭证管理及报表分析系统姓 名:陈肖如学 院:软件学院系:软件工程专 业:软件工程年 级:2003级学 号:03368004指导教师(校内):史亮 职称:讲师指导教师(校外):王磊 职称:工程师2005年 6 月 2 日凭证管理及报表分析系统摘要我国加入WTO以后,我国金融业将面临来自国外的竞争,也给中国金融业带来了压力,如何利用更加科学和高效的手段对经营数据进行分析,是商业银行业务发展的需要。在此背景下,我们开发了凭证管理及报表分析系统。该系统采用J2EE架构,使用了MVC模式,并以目前较为流行的基于J2EE的应用程序框架Struts作为开发框架,尝试
2、了J2EE在信息管理领域和数据统计领域中的应用。凭证管理及报表分析系统是基于Web的凭证及报表的生成打印系统。该系统可以协助银行管理人员管理特种转帐明细记录,并从中获取有价值的统计信息,从而达到管理分析和决策支持的目的。关键词 J2EE Struts B/S架构 MVC模型 JavaBeanVoucher management and report analysis systemAbstract After joining to WTO, China will face the competition to finance industry from overseas, thus, our c
3、ommercial banks must think about how to analyze the business data more scientifically. With this background, we develop the Voucher management and report analysis system. Trying to use J2EE in information management domain and data statistics domain, the system use J2EE structure, the MVC pattern an
4、d the Struts framework. This system will help the bank manager manage the dealing record, and get valuable information from them.Keyword J2EE Struts B/S MVC JavaBean目录中文摘要Abstract第1章 绪 论11.1 引言11.2研究背景与研究意义11.3 工作内容21.4 论文组织结构2第2章 J2EE相关技术介绍32.1 J2EE (Java2 Enterprise Edition)32.2 MVC 模式42.3 Struts框
5、架52.4 本章小结6第3章 系统总体架构设计73. 1总体功能框架73.2 应用系统的数据流向83.3 部分组件的的设计83.3.1数据事件对象(Event)83.3.2数据访问对象(Data Access Object)93.4 本章小结10第4章 部分模块的设计与实现114.1 登陆界面114.2 凭证管理模块的设计与实现124.2.1凭证管理顺序图124.2.2界面实现134.3 报表分析模块的设计与实现164.3.1 相关名词的说明164.3.2操作流程图184.3.2界面实现184.4 本章小结24第5章 部分技术难点的实现255.1 Struts中分页显示的实现255.1.1 s
6、earchResult.jsp255.1.2 PaginationBean.java265.2 金额转换的实现275.2 本章小结32第六章 总结33致谢语34参考文献35凭证管理及报表分析系统第1章 绪 论1.1 引言当前,随着技术的日益进步,传统的软件开发两层结构正逐渐转变为多层体系结构,但在带来巨大的灵活性的同时,也增加了创建、测试、配置、管理和维护应用组件的复杂性;企业、公司纷纷需要参与到Internet中来,各种业务都进入了网络,这些企业级应用的快速增长促使其需要一个强壮的、企业级的、以web为中心的应用结构来支撑。以J2EE技术为代表的分布式对象技术和组件技术为解决上述的种种问题提
7、供了一条很好的途径。J2EE技术的运用,降低了开发多层服务的成本和复杂性,使企业面对新的需求能够迅速部署和增强服务,极大地提高软件的生产率。本系统对J2EE技术的采用,充分体现了其技术优点。1.2研究背景与研究意义在金融领域,尽管目前正在进行数据大集中,但是仍然有许多的业务数据需要手工以书面形式传送。这种重复工作,加大了业务处室的工作负担,在一定程度上也影响工作效率。同时,在我国加入WTO以后,我国金融业将面临来自国外的竞争,也给中国金融业带来了压力。如何利用更加科学和高效的手段对经营数据进行分析,是商业银行业务发展的需要。当前,现代商业银行基本上已经建立起了完备的业务系统,积累了相对丰富的历
8、史数据,可以利用这些宝贵的历史数据为银行服务,包括从历史数据中发现金融市场的发展规律、预测业务未来的变化趋势、洞悉业务经营的状况、预测和监控风险、辅助决策者发现新的利润增长点、优化银行的资金配置、帮助银行更加稳健地实现银行的管理和经营目标。1.3 工作内容凭证管理及报表分析系统是基于Web的凭证及报表的生成打印系统。该系统可以协助银行管理人员管理特种转帐明细记录,并从中获取有价值的统计信息,从而达到管理分析和决策支持的目的。具体包括:交易记录的查询、修改功能,凭证的预览打印功能,传统报表以及图形报表的定制、打印功能,和一般的系统管理功能。1.4 论文组织结构本文将依次介绍以下内容:在第二章中,
9、我们将主要介绍J2EE相关技术,包括J2EE的基本概念,其常见模式MVC (Model-View-Controller)的体系结构,以及目前较为流行的基于J2EE的应用程序开发框架Struts的基本组成。在第三章中,我们将提出凭证管理及报表分析系统的总体设计,包括系统的功能框架、数据在系统中的流向和部分组件的设计。在第四章中,我们将给出本系统的具体实现。主要包括凭证管理模块的实现顺序、界面实现,和报表分析模块的操作流程、界面实现等。在第五章中,我们将以Struts中的分页显示,以及金额数值向中文大写金额的转换这两个技术难点的实现细节为例,介绍本系统的一些技术特点。第2章 J2EE相关技术介绍J
10、ava 2平台企业版,也就是J2EE,定义了开发多层企业应用程序的标准。它的诞生并不是偶然的,它是在各种条件积累成熟之下的产物。2.1 J2EE (Java2 Enterprise Edition) J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如编写一次、随处运行的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)
11、、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE 的多层企业级应用模型将两层化模型中的不同层
12、面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是 J2EE 典型的多层结构1:(1) Client tier客户层一般为浏览器或其他应用。客户层普遍地支持HTTP协议,也称客户代理。 (2)WEB tier WEB应用层 在J2EE中,这一层由WEB 容器运行,它包括JSP, SERVLET等WEB部件。 (3) EJB tier 企业组件层 企业组件层由EJB容器运行,支持EJB, JMS, JTA 等服务和技术。(4) EIS tier 企业信息系统层企业信息系统包含企业内传统信息系统如财务,CRM等,特点是有数据库系统的支持。 图2-1 J2EE 体系架构2.2
13、 MVC 模式MVC (Model-View-Controller)模式是交互式应用程序广泛使用的一种体系结构。它有效地在存储和展示数据的对象中区分功能模块以降低它们之间的连接度,这种体系结构将传统的输入、处理和输入模型转化为图形显示的用户交互模型,或者换一种说法,是多层次的Web商业应用;MVC体系结构具有三个层面:模型(Model)、视图(View)和控制(Controller),每个层面有其各自的功能作用,MVC体系结构如下:图2-2 MVC模型(B/S模式)2模型层负责表达和访问商业数据,执行商业逻辑和操作。也就是说,这一层就是现实生活中功能的软件模拟;在模型层变化的时候,它将通知视图
14、层并提供后者访问自身状态的能力,同时控制层也可以访问其功能函数以完成相关的任务。视图层负责显示模型层的内容。它从模型层取得数据并指定这些数据如何被显示出来。在模型层变化的时候,它将自动更新。另外视图层也会将用户的输入传送给控制器。控制层负责定义应用程序的行为。它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作;在一个图形界面中,常见的用户输入包括点击按钮和菜单选择。在Web应用中,它包括对Web层的HTTP GET和POST的请求;控制层可以基于用户的交互和模型层的操作结果来选择下一个可以显示的视图,一个应用程序通常会基于一组相关功能设定
15、一个控制层的模块,甚至一些应用程序会根据不同的用户类型具有不同的控制层设定,这主要是由于不同用户的视图交互和选择也是不同的3。在模型层、视图层和控制层之间划分责任可以减少代码的重复度,并使应用程序维护起来更简单。同时由于数据和商务逻辑的分开,在新的数据源加入和数据显示变化的时候,数据处理也会变得更简单。2.3 Struts框架Struts是 Apache 软件基金会资助的一个开放源代码框架,是一个免费的开源的WEB层的应用框架。Struts有一组相互协作的类(组件)、Serlvet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合Model2的设计标准,可以说是MV
16、C设计模式的一种变化类型。Struts是一个web framwork,而不仅仅是一些标记库的组合。但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。在视图层,Struts能够与JSP, Velocity Templates,XSL等等这些表示层组件想结合。图2-3 Struts架构2.4 本章小结本章主要介绍了J2EE的基本概念
17、,其常见模式MVC (Model-View-Controller)的体系结构,以及目前较为流行的基于J2EE的应用程序开发框架Struts的基本组成。下一章将提出凭证管理及报表分析系统的总体设计方案。第3章 系统总体架构设计系统总体设计是指根据项目的需求,结合项目背景,提出系统的开发方案,并做出系统的总体开发结构的设计。3. 1总体功能框架如下图所示:系统设置用户管理报表定制柱状图报表饼状图报表报表打印凭证管理及报表分析系统凭证管理系统管理报表分析记录查询记录修改凭证打印凭证预览 图3-1 功能模块图 3.2 应用系统的数据流向数据的流向图如下:WebBrowserStrutsActionFo
18、rmRequestEventActionDispatcherBusinessLogicDAODatabasestartResponseEvent 图3-2 数据流向图(1)浏览器的请求通过HTTP协议进入Struts的Web层架构,由ActionServlet来处理客户端的HTTP请求。当ActionServlet接收到客户请求后,会根据配置文件中的映射关系,将客户请求转交给合适的处理器进行处理。(2)处理器直接调用不同的业务逻辑处理这些请求;或分发这些请求到其他的处理器进行二次处理甚至三次处理,形成处理链。(3)业务逻辑处理层根据不同的请求参数对象和数据做相应的处理,然后通过DAO(Data
19、 Access Object)返回数据对象(VO)给业务层。(4)数据对象通过ResponseEvent,传回给客户端。 3.3 部分组件的的设计3.3.1数据事件对象(Event)数据事件对象又包括请求事件对象(RequestEvent),返回事件对象(ResponseEvent)。通过事件来实现服务器与客户端之间数据的传送。实现方式:(1)RequestEvent实现了java.IO.Serializable接口,用来封装向EJB核心层传递的消息。RequestEvent是一个抽象类,在使用的时候必须要实现此抽象类。他的实现类将一系列将要传送给EJB核心层的属性封装,并为这些属性设置get
20、ter和setter方法。这些属性封装的是Value Object对象类型。比如说,对于web客户端,我们将把在JSP页面生成的ActionForm(javabean)对象作为RequestEvent对象的一个属性,并为它生成getter和setter方法。RequestEvent对象会在客户端被生成,并作为参数传递给处理器,最终被对应的业务逻辑处理,并在处理之后被清除。(2)ResponseEvent同样也实现了java.IO.Serializable接口,用来封装从EJB核心层传递到各种不同的客户端的数据。类似于RequestEvent,ResponseEvent中要封装一些Value O
21、bject(javabean),这些Value Object是根据不同的业务流程所产生的。Value Object的封装形式要根据不同的业务流程去具体判断,这里不做详细的描述。此外,如果在ResponseEvent对象中要封装相同的Value Object类的多个对象时,要使用ArrayList对象来把这多个Value Object对象封装起来。ResponseEvent的生存周期与RequestEvent正好相反,也就是说,哪里生成的RequestEvent,那里就清除相应的ResponseEvent;哪里清除RequestEvent,那么就对应的生成ResponseEvent。3.3.2数
22、据访问对象(Data Access Object)数据访问对象(DAO) 封装了对数据源的访问和操作,以保证业务逻辑对数据源的透明访问。业务逻辑都通过DAO来实现对数据库的访问所以业务逻辑只看到业务逻辑的操作方法,看不到后台的数据库的具体实现,这就实现了业务逻辑与数据逻辑的分离。实现方式:每个Business Object对应一个 (Table), 但是能够操作多个数据库表。每个数据库表对应一个DAO。简化业务逻辑与数据访问的层次,不设置单独的Business Object层,将Business Object和DAO合成一层。也就是说,对于对应多个数据库表的Business Object,直接
23、在主要的DAO中包含将对其他辅表的DAO的访问, 这种Business Object和DAO在一个Class中实现的对象称为BPO。Business Object中只应该包含数据层的逻辑,不能包含业务流程层的逻辑。DAO类中不仅能处理对单个对象 (Row/Record) ,而且能够处理多个对象 (RowSet/RecordSet) ,这也是符合OO的概念的体现。3.4 本章小结本章描述了系统的总体设计,包括系统的功能框架、数据在系统中的流向和部分组件的设计。下一章将阐述系统部分模块的详细设计。第4章 部分模块的设计与实现凭证管理和报表分析是本系统的核心模块,本章将对这两个模块的设计和实现进行详
24、细介绍。4.1 登陆界面基于银行内部管理的需要,凭证管理及报表分析系统不支持用户的注册,而是采用用户及其权限预分配的使用方法,因此在登陆界面上不出现注册功能。系统登陆界面如图4-1:图4-1 登陆界面4.2 凭证管理模块的设计与实现4.2.1凭证管理顺序图用户在进入凭证管理界面后可以进行以下操作:(1)输入0个或多个条件,进行明细记录的查询。(2)若查询结果不为空,选择一条记录进行修改。(3)若查询结果不为空,选择一条记录预览对应的电子凭证。(4)重新进行查询。如图4-2:预览该记录电子凭证打印预览的凭证打印多个凭证execute(ActionMapping,ActionForm,Servle
25、tResult,ServletResponse)对查询结果调用分页逻辑查询记录分页显示翻页修改记录修改成功或取消execute(ActionMapping,ActionForm,ServletResult,ServletResponse)查询界面(jsp)预览打印分页逻辑查询结果(jsp)修改重新查询图4-2 凭证管理顺序图4.2.2界面实现 记录查询页面用户根据提示,输入0个或任意多个查询条件,输入0个条件视为无条件限制,并且支持商户名字段的中文模糊查询。如图4-3:图4-3 记录查询页面 结果输出页面对查询所得结果进行分页显示。每条记录所显示的字段为:该记录在查
26、询结果中的编号、日期、付款人帐号、付款人名称、付款人开户行、收款人帐号、收款人名称、收款人开户行、金额和用途,其中金额字段由数据库表中的净金额字段与交易金额字段相减得出。对需要打印电子凭证的记录,可利用复选框,进行一次性打印。如图4-4:图4-4 结果输出页面 记录修改页面对查询所得的某条记录,点击其后面的“修改”按钮,进入记录修改页面。由于记录内容的特殊性,只有规定的字段可以作出修改。为了避免对信息的非法修改,修改页面做出了相应的设置,使修改仅限于允许的范围。若修改成功,返回修改前的查询结果输出页面,并更新被修改的记录。如图4-5:图4-5 记录修改页面 凭证预览
27、页面对查询所得的某条记录,点击其后面的“预览”按钮,弹出该条记录对应的电子凭证的预览页面。凭证的具体名称为“特种转帐贷方凭证”,其规格遵循中华人民共和国票据法。该电子凭证可直接打印。如图4-6:图4-6 凭证预览页面4.3 报表分析模块的设计与实现4.3.1 相关名词的说明 利润由于需求的特殊性,本系统的操作对象为银行特种转帐明细记录,每笔转帐所得利润即该笔转帐收取的手续费,手续费按以下方式收取:(1)计算应付金额应付金额净金额交易金额 (4-1)(2)应付金额为正时不收取手续费(3)应付金额为负时收取手续费,具体数额按以下公式计算:a. 付款人开户行为异地他行(XXX行):手续
28、费(50元封顶)基本费3元/笔(至少收3元)应付金额1 (4-2)b. 付款人开户行为异地我行(XX建行):手续费(50元封顶)基本费1元/笔(至少付1元)应付金额0.5 (4-3)c. 付款人开户行为本地我行(厦门建行):手续费基本费1元/笔(只收1元) (4-4)d. 付款人开户行为本地他行(厦门X行):手续费(50元封顶)基本费2元/笔(至少收2元)应付金额0.5(4-5) 利润贡献度利润贡献度是一个短期的、某一时点上的和基于历史分析的概念。对本系统而言,利润贡献度就是某客户或客户组群或某一时间段,在某一期间为企业带来的利润。利润贡献度分析的主要目标是帮助银行了解其利润贡献
29、度构成因子的分布状况,使行领导能够从不同角度进行绩效评估,制定相应的经营策略,进一步完善分行及业务部门的自身分析和流程规划。 维度在数据仓库的概念中,维度(Dimension)是用来反映业务的一类属性,这类属性的集合构成一个维度,如时间、地理位置或产品。而在数据挖掘与OLAP的概念中,其目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心就是维这个概念。“维”一般包含着层次关系,通过把一个实体的多项重要的属性定义为多个维,使用户能对不同维上的数据进行比较。在本系统中,统计分析在客户和时间这两个维度上进行,客户维度有(所有客户) - (单个客户)这两个层次;时间
30、维度有(年度) - (季度) - (月份)这三个层次。4.3.2操作流程图No选择维度选择度量和参照基准生成报表是否要生成图形报表Yes显示图形报表是否要重新定制YesNo图4-7 报表定制流程图4.3.2界面实现 维度选择进行报表定制的第一步,是选择统计的维度。本系统有客户和时间这两个维度供选择,可选择时间维度,或客户维度,或同时选择时间和客户维度。如图4-8:图4-8 维度选择 度量选择进行报表定制的第二步,是选择统计的度量。根据第一步所选的维度,可选择不同的度量。包括对维度层次的选择,和对利润贡献度计算的参照基准的选择。参照基准即利润贡献度的时间跨度。维度选择
31、客户时,度量选择界面如图4-9。维度选择时间和客户时,度量选择界面如图4-10。图4-9 度量选择1图4-10 度量选择 报表展示根据前面用户输入的定制条件,统计利润额及利润贡献度,生成报表。用户可根据需要,查看对应的柱状图报表或饼状图报表,或对报表进行打印。以统计维度为时间为例,生成报表如图4-11:以统计维度为客户为例,生成报表如图4-12:图4-11 报表1图4-12 报表柱状图报表图形报表是对传统报表的一个现代化的表现形式,为客户提供了更为直观的统计信息。对生成的报表,可查看其对应的柱状图报表。以统计维度为时间为例,生成报表如图4-13:以统计维度为客户
32、为例,生成报表如图4-14:图4-13 柱状图1图4-14 柱状图饼状图报表同样,对生成的传统形式报表,可查看其对应的饼状图报表。以统计维度为时间为例,生成报表如图4-15:图4-15 饼状图4.4 本章小结本章以凭证管理模块和报表分析模块为例,介绍了本系统的具体实现。主要内容包括凭证管理模块的实现顺序、界面实现,和报表分析模块的操作流程、界面实现等。下一章将剖析开发过程中部分技术难点的实现。第5章 部分技术难点的实现在前面的章节中,系统的设计工作已经得到详细的说明,本章将对体现本系统技术特点的部分技术难点进行分析。5.1 Struts中分页显示的实现目前比较广泛使用的分页方式
33、是将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示。这种方法有两个主要的缺点:一是用户可能看到的是过期数据;二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降。比较好的分页做法应该是每次翻页的时候只从数据库里检索页面大小的块区的数据。这样虽然每次翻页都需要查询数据库,但查询出的记录数很少,网络传输数据量不大,比在应用服务器层做缓存更为有效。本系统采用后者实现分页。5.1.1 searchResult.jsp/跳到第一页 第一页 /翻到上一页 上一页 /翻到下一页 下一页 /跳到最后一页 最后一页 5
34、.1.2 PaginationBean.javaint page_count = 0; /总页数int curren_page = 0; /当前页码int previous = 0; /上一页页码int next = 0; /下一页页码tryHttpSession session = request.getSession();RecordDao dao = (RecordDao)session.getAttribute(RecordDao);page_count = (Integer)session.getAttribute(page_count).intValue();curren_page
35、 = Integer.parseInt(request.getParameter(curren_page); dao.setPagination_SQL(curren_page); RecordVo recordVoArray = dao.searchRecord();session.setAttribute(RecordVo, recordVoArray); previous = curren_page - 1; if ( previous = 0 ) /若有上一页 request.setAttribute(previous, new Integer(previous); next = cu
36、rren_page + 1; if ( next page_count) /若有下一页 request.setAttribute(next, new Integer(next); 5.2 金额转换的实现预览电子凭证时,金额一栏需要自动填写符合规范的中文大写金额,其转换由转换器AmountConvertor实现。/* AmountConvertor.java * 用于把数值型金额转换成字符串型的中文大写金额*/import java.text.*;import java.math.*;public class AmountConvertorString ChineseAmount;public
37、AmountConvertor()/* 格式化函数 */public String toFormatedString(double amount) /把数值转为0.00格式的字符串if (amount=5 & decimalPosition=1 & decimalPosition=4) /整数分为1部分fragment2 = formatedString.substring(0,decimalPosition);fragment2 = this.fragmentConvert(fragment2);fragment3 = formatedString.substring(decimalPosi
38、tion+1);ChineseAmount += fragment2;if (!fragment1.equals()|!fragment2.equals() /整数部分不为0ChineseAmount += 元;else if (fragment3.equals(00) /整数部分为0且小数部分也为0ChineseAmount = 零元;return ChineseAmount;/* 3.处理小数部分 */if (fragment3.equals(00) /整数部分不为0但小数部分为0ChineseAmount += 整;else /小数部分不为0 /第一位小数为0if (fragment3.
39、charAt(0) = 0 & !ChineseAmount.equals() ChineseAmount += 零;else if (fragment3.charAt(0) != 0) /第一位小数不为0ChineseAmount += this.numberConvert(fragment3.charAt(0) + 角;if (fragment3.charAt(1) != 0) /第二位小数不为0ChineseAmount += this.numberConvert(fragment3.charAt(1) + 分;return ChineseAmount;/* 4位转换函数 */publi
40、c String fragmentConvert(String fragment) /以14位数为单位进行转换int i=1;String convertedFragment = ;int length = fragment.length();/千位转换if (length = 4) if (fragment.charAt(0) = 0) /千位为0for(i=1;ilength;i+)if(fragment.charAt(i) != 0)break;if (i=length) /4位都为0return convertedFragment;convertedFragment+= 零;fragm
41、ent = new String(fragment.substring(i);length = fragment.length();else /千位不为0convertedFragment+=this.numberConvert(fragment.charAt(0)+仟;fragment = new String(fragment.substring(1);length-;/百位转换if (length = 3) if (fragment.charAt(0) = 0) /百位为0for(i=1;ilength;i+)if(fragment.charAt(i) != 0)break;if (i=
42、length) /3位都为0return convertedFragment;convertedFragment+= 零;fragment = new String(fragment.substring(i);length = fragment.length();else /百位不为0convertedFragment+=this.numberConvert(fragment.charAt(0)+佰;fragment = new String(fragment.substring(1);length-;/十位转换if (length = 2) if (fragment.charAt(0) =
43、0) /十位为0if (fragment.charAt(1) = 0) /2位都为0return convertedFragment;convertedFragment+= 零;else /十位不为0convertedFragment+=this.numberConvert(fragment.charAt(0)+拾;fragment = new String(fragment.substring(1);length-;/个位转换if (length = 1) if (fragment.charAt(0) != 0) /个位不为0convertedFragment+=this.numberConvert(fragment.char
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精细化管理心得体会3000字【五篇】
- 2025版高考物理二轮复习 第16讲 力学实验
- 江苏省盐城市阜宁县多校2024-2025学年九年级上学期12月月考语文试题含答案
- 2024-2025学年北师大版数学九年级上册期末培优训练(含答案)
- 新人教版数学上册四年级口算除法(公开课)
- 2017-2018学年八年级道德与法治上册同步作业课件:第一单元考试热点突破 (共17张)
- 5.1 半波整流教学课件
- 高一(纲要上)统编版 历史 第九单元《第26课 中华人民共和国成立和向社会主义的过渡》课件
- 2024年四川省达州市73九年级上学期第一次月考生物学试题
- 《乒乓球基础理论》课件
- 初级电焊工培训课件
- 井下修井作业技术课件
- 高中政治统编版选择性必修三逻辑与思维 第三单元 运用辩证思维方法 知识提纲
- 博尔赫斯简介课件
- 公司战略规划和落地方法之:五看三定工具解析课件
- 2021年山东交投矿业有限公司招聘笔试试题及答案解析
- 射频技术在疼痛治疗中应用宋文阁课件
- 化脓性脑膜炎治疗的指南
- 2023-2023学年第一学期“1530”安全警示教育记录
- 提高内镜中心内镜洗消合格率PDCA
- The Golden Ax金斧头的故事英语伊索寓言
评论
0/150
提交评论