jsp21大学生个人理财系统(jsp+servlet+sqlserver)-qkr_第1页
jsp21大学生个人理财系统(jsp+servlet+sqlserver)-qkr_第2页
jsp21大学生个人理财系统(jsp+servlet+sqlserver)-qkr_第3页
jsp21大学生个人理财系统(jsp+servlet+sqlserver)-qkr_第4页
jsp21大学生个人理财系统(jsp+servlet+sqlserver)-qkr_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学生理财信息管理系统摘要当今社会己进入信息社会时代。信息己经受到社会的广泛关注,被看作社会和科学技术发展的三大支柱(材料、能源、信息)。信息是管理的基础,是进行决策的基本依据。在一个组织里,信息己作为人力、物力、财力之外的第四种能源,占有重要的地位。然而,信息是一种非物质的,有别于基本资源的新形式的资源。信息也是管理的对象,必须进行管理和控制。本文主要介绍了大学生理财系统的设计,本系统主要采用JSP为编程语言,数据库采用SQLSERVER2000。可以方便大学生理财管理需要。主要包括收入统计功能、查询功能、理财功能。本系统易于操作,使用方便,具有很高的可靠性。关键字:大学生理财系统;系统设计;JSPTheuniversitystudentmanagesfinancesinformationmanagementsystemAbstractSocialoneselftoentertheinformationsocietytimenow.Informationoneselfundergoestosociety'swidespreadattention,isregardedassocialandthescientifictechnologicaladvancethreebigprops(material,energy,information).Theinformationisthemanagementfoundation,iscarriesonpolicy-makingthebasicbasis.Inanorganization,informationoneselftakesoutsidethemanpower,thephysicalresource,thefinancialresourcefourthkindofenergy,holdstheimportantstatus.However,theinformationisonenon-material,isdifferentwiththebaseresourcesthenewformresources.Theinformationisalsothemanagementobject,mustcarryonthemanagementandthecontrol.thisarticlemainlyintroducedtheuniversitystudentmanagesfinancessystem'sdesign,thissystemmainlyusesJSPistheprogramminglanguage,thedatabaseusesSQLSERVER2000.Mayfacilitatetheuniversitystudenttomanagefinancesthemanagementneed.Mainlyincludestheincomestatisticsfunction,theinquiryfunction,themanagingfinancesfunction.Thissystemsimplifyoperation,theeasytooperate,tohavetheveryhighreliability.Keywords:Theuniversitystudentmanagesfinancesthesystem;Systemdesign;JSPTOC\o"1-3"\h\z第1章引言 41.1选题背景 41.2可行性分析 5第2章需求分析 52.1用户功能需求 52.2性能需求 62.3主要技术分析 6第3章概要设计 83.1功能模块图 83.2处理流程设计 93.2.1系统操作流程 93.2.2数据增加流程 103.2.3数据修改流程 103.2.4数据删除流程 113.3系统E-R图 123.4数据库设计 123.4.1SQLServer2000分析 123.4.2数据库表结构 133.4.3数据库连接技术 13第4章详细设计 194.1管理员模块设计 194.2注册用户管理 204.3用户登陆 234.4用户注册 254.5收入统计 284.6收入查询功能 31第5章系统调试与测试 325.1程序调试 325.2程序的测试 325.2.1测试的重要性及目的 325.2.2测试的步骤 345.2.3测试的主要内容 34第6章结论 366.1系统评价 366.2安全性问题 37致谢 38参考文献 39第1章引言1.1选题背景一个企业的发展需要长远的规划,长期、中期与短期目标计划的相互协调,日常必要的各种预测、考察和尽心尽力的实践。同样,对个人而言,人生就是自己最重要的企业,富翁就是一个成功的企业经营者。只有建立充分的自信心和高度的责任感,才具备成功者的气魄。20~30岁时,年富力强,风险承受能力是最强的。个人理财的核心是投资收益的最大化和个人资产分配合理化的集合,通过充分利用各种理财工具,才能达到合理分配的目的、满足对理财安全性、收益性等多样化要求。理财是现代每个人都必须要具有的能力。理财能力是一个人得以生存不可缺少的一部分,也是素质教育不可忽视的一项重要内容。那么,大学生在校期间应该如何加强理财技能的培养,做好自己的理财呢?我认为,应该努力做好以下几点:首先,养成合理的消费习惯,钱要花在刀刃上。作为学生,要树立勤俭意识,应该把钱花在必须花的地方,不要一味追求档次盲目攀比,更多地应考虑所购物品的性价比和自己的承受能力。其次,培养财务规划意识,学会记帐和编制预算。这是控制消费最有效的方法之一。其实记帐并不难,只要你保留所有的收支单据,做一个简单的T型记帐簿,抽空整理一下,就可以掌握自己的收支情况,做到量人为出,这样对自己每笔资金的去向有一个详尽的记录,养成良好的记帐习惯。第三,理性花钱,遵守一定的生活消费原则。花钱必须要理性,要有计划不该花的钱尽量不花,必须花的钱决不吝啬。学生时代吃要营养均衡;穿要耐穿耐看;住要简单实用;行要省钱方便。1.2可行性分析1.2.1技术可行性本系统仅需要一台装有Office软件的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的程序设计语言已非常成熟,要运用HTML样式,图形图象制作工具来制作生动活泼的网页及美观的图形文件或动画文件。1.2.2经济可行性由于本系统是为学生学习使用的系统,装上该应用软件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物力。所带来的效益远远大于系统软件的开发成本。在经济上完全可行。1.2.3操作可行性界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。第2章需求分析2.1用户功能需求本系统设计为基于B/S结构的个人理财系统,凭借设计的软件系统,通过数据库的连接和访问,进行相关数据的统计和查询,还可以通过相应的计算功能,完成一些经济方面的实用计算。本系统的思路是:通过系统的数据录入,可以将数据保存在相应的数据库里面,而数据库的设计方式,使录入的数据更加有效,合理。对数据的统计有比较完善的设计,对各种输入错误的情况有着比较合理的考虑,通过代码提示用户输入完整,合理的数据,以便于查找,统计。在记录中有计算统计功能,避免用户手动计算出错;有相关的用户登陆,密码检测,密码修改的功能,保护用户数据的安全性。2.2性能需求系统对环境的要求服务起端的最低配置是由建立站点所需要的软件来决定的,在最底配置的情况下,服务器的性能往往不进人意,现在硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器端配置高性能硬件。本机器的配置如下:处理器:InterPentium41.6Hz或更高。内存:512MB硬件空间:160GB题目主要采用的技术数据库:MicrosoftSQLServer2000。编程语言JSP服务器:Tomcat5.5,jdk1.6开发环境:WindowsXP2.3主要技术分析JSP(JavaServerPages)作为一种新的Web应用开发技术,越来越受到开发人员的关注。它为创建高度动态的Web应用提供了一个独特的开发环境,能够适应市场上绝大多数的服务器产品。JSP是由多个公司参与合作建立起来的动态网页技术标准。JSP的具体特征如下:(1)分离内容的生成和演示。使用JSP技术,Web页面开发人员可以使用HTML标识设计和格式化最终页面。使用JSP标识或者Java片段来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBean组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。(2)生成可用的组件。绝大多数JSP页面依赖于可重用的、跨平台的组件来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者让这些组件为更多的使用者或者客户集体所使用。(3)采用标识简化页面开发。Web页面开发人员不一定都是熟悉脚本语言。JavaServerPage技术封装了许多功能,这些功能都是在易用的、与JSP相关的XML标识中进行动态内容生成时所需要的。标准的JSP标识能够访问和实例化JavaBean组件、设置或者检索组件属性、下载Applet以及执行用其它方法更难于编码或耗时的功能。通过开发定制标准库,JSP技术可以进行相当的扩展,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和同标识一样执行特定功能的构件来工作。第3章概要设计3.1功能模块图用户登陆用户登陆理财功能系统设置收支管理资产管理理财计算收支统计收支查询助学贷款本外币换算利率计算基金收益新用户注册密码修改按日统计按月统计按年统计3.2处理流程设计3.2.1系统操作流程系统登录界面输入操作员及密码系统主界面系统管理错误信息系统登录界面输入操作员及密码系统主界面系统管理错误信息数据库检查密码错误 数据库检查密码错误密码正确功能界面功能处理密码正确功能界面功能处理3.2.2数据增加流程添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判断,合法则写入保存至数据库,不合法则重新输入数据。数据增加流程图:开始开始自动生成编号输入数据是否合法写入数据库结束图3.2数据增加流程图3.2.3数据修改流程在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。数据修改流程图如图3.3所示。开始开始选择需要修改记录输入数据是否合法写入数据库结束图3.3数据修改流程图3.2.4数据删除流程当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如图3.4所示。开始开始选择需要删除记录是否删除更新数据库图3.4数据删除流程图3.3系统E-R图密码密码用户名用户管理信息资产管理收支管理理财计算密码修改3.4数据库设计3.4.1SQLServer2000分析本系统采用SQLServer2000数据库,SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。SQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用户见面;SQLServer2000是Microsoft公司于2000年推出的最新版本。SQLServer特点:1.真正的客户机/服务器体系结构。2.图形化用户界面,使系统管理和数据库管理更加直观、简单。3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。4.SQLServer与WindowsNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQLServer也可以很好地与MicrosoftBackOffice产品集成。5.具有很好的伸缩性,可跨越从运行Windows95/98的膝上型电脑到运行Windows2000的大型多处理器等多种平台使用。6.对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。7.SQLServer提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。3.4.2数据库表结构系统用户表:系统用户表(表3.1)用来存储用户名、密码,权限等信息,是用户登录的关键表。表3.1系统用户表user_info序号名称编码类型宽度标志备注1编号(流水号)user_idN10Y系统自动管理,自动产生。2用户名user_nameC50NN系统的登录用户名。用户的唯一标识,不重复。3登录密码user_pwdC50NN密码。未加密。3.4.3数据库连接技术JDBC技术是JavaDataBaseConnectivity的缩写,它是SUN公司提供的一种支持基本SQL功能的通用的应用程序接口(ApplicationProgrammingInterface)。它由一组用Java语言编写的类和接口组成。通过这些类和接口,程序开发人员可以在Java语言中方便地建立与数据库的链接,通过执行相应SQL语句,完成对不同数据库的访问。因此,开发人员使用JDBCAPI可以不必编写一个应用程序来访问Sybase数据库,又另外编写一个应用程序去访问Oracle数据库,再写一个应用程序访问Microsoft的SQLServer。不但如此,使用Java语言编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上开发不同的应用程序。简单地说,JDBC能完成下列三件事:同一个数据库建立连接;向数据库建立连接;处理数据库返回的结果。JDBC是一种通用低层的应用程序编程接口,它在不同的数据库功能模块的层次上提供一个统一的用户界面。说JDBC是一处低级的API,是指它直接调用SQL命令,它比其他的一些数据库连接API要容易使用些,但它有同样可以作为更高级的,用户办面更友好的API或开发工具基础。很多可视化的Java开发工具,如VisualAgeForJava、VisualCafé、J++等都提供了基于JDBC的更面向用户的类和包,直接将关系数据库的表或视图映射为Java类,程序员通过可视化工具直接对Java对象进行操作,而真正需要的SQL调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。另一种使用JDBCAPI的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的SQL命令以及Java程序。通过这处方式,用户可以完成对数据库的操作,即使他并不了解SQL语法以及JDBC编程。数据库访问的三层结构如图5.1所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。图5.1使用中间件的数据库访问三层结构用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过Web服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本系统采用的正是这样的三层结构的数据库访问模式。在三层模型中,命令将被发送到服务的”中间层”,而”中间层”将SQL语句发送到数据库。数据库处理SQL语句并将结果返回”中间层”,然后”中间层”将它们返回用户。其模型如图5.2所示。图5.2JDBC的三层模型因为”中间层”可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层API,这个API可以由“中间层”进行转换,转换成低层的调用。所以在许多种情况下,三层模型可以提供更好的性能,本系统中所采用的就是此种模型。JDBC是JAVA应用程序与数据库的沟通桥梁。它提供了三项服务功能:一、与数据库建立连接。二、将SQL语句传递给数据库。三、从数据库取得SQL语句的执行结果。当JDBC要与数据库建立连接前,首先,它必须先取得连接此数据库的JDBC驱动程序,Class.forName()即是在执行此项工作。建立数据库连接的第一步骤就是将JDBC驱动程序的类载入至JVM(JavaVirtualLMachine)中,本系统中利用java.lang.Class类内的forName()静态函数依据指定的类名称,将JDBC驱动程序载入进来。完成载入驱动程序的步骤后,必须使用java.sal.DriverManager类所提供的getConnection()静态函数,取得与数据库间的连接对象。此连接对象的类类型为java.sal.Connection,必须通过它才能将SQL指令传递给数据库,而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得Statement对象才能对数据库执行SQL指令。Statement主要实现两个功能:执行SQL语句以及取得执行结果。在java.sql.Statement的sql对象中执行查询或修改命令的函数后传回的是一个ResultSet对象,这个对象提供了一个存取SQL执行结果的管道,以便通过它将表格数据从数据库中取出。每个Statement对象只能产生一个ResultSet对象。数据库连接如图5.3所示:图5.3数据库的连接处理数据库的连接处理具体实现如下://建立JDBC——ODBC桥sun.jdbc.odbc.JdbcOdbcDriver;//桥建立不成功时的错误处理catch(ClassNotFoundExceptionevent){}//建立与数据库的连接,并发送SQL查询语句,将结果保存到rs对象中 Con=建立JDBC——ODBC桥 Sql=SQL查询语句 执行查询 Rs=返回结果//SQL出错处理 catch(SQLExceptione1){}有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。

Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。而JDBC正是作为此种用途的机制。JDBC扩展了Java的功能。例如,用Java和JDBCAPI可以发布含有applet的网页,而该applet使用的信息可能来自远程数据库企业也可以用JDBC通过Intranet将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有Windows、Macintosh和UNIX等各种不同的操作系统)。随着越来越多的程序员开始使用Java编程语言,对从Java中便捷地访问数据库的要求也在日益增加。MIS管理员们都喜欢Java和JDBC的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务,Java和JDBC可为外部客户提供获取信息更新的更好方法。简单地说,JDBC可做三件事:与数据库建立连接、发送SQL语句并处理结果。下列代码段给出了以上三步的基本示例:Connectioncon=DriverManager.getConnection("jdbc:odbc:wombat","login","password");Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");while(rs.next()){intx=rs.getInt("a");Strings=rs.getString("b");floatf=rs.getFloat("c");}上述代码对基于JDBC的数据库访问做了经典的总结。第4章详细设计4.1管理员模块设计当系统登陆时,首先出现的是一个用户登陆的界面,主要是维护系统的安全性和完整性。拥有管理员权限的操作员能进行相应操作,没有权限的操作员不能对相应的窗口进行操作。如下图所示:主要代码如下:packageutil;importjava.sql.*;publicclassDBConn{static{try{ Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");// Class.forName("com.mysql.jdbc.Driver");//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(Exceptionex){ex.printStackTrace();}}publicstaticConnectiongetConn(){try{ Connectionconn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=hshygl","sa","123");// conn=DriverManager.getConnection("jdbc:mysql://localhost/fzshop","root","123");// Connectionconn=DriverManager.getConnection("jdbc:odbc:temp");returnconn;}catch(Exceptionex){ex.printStackTrace();returnnull;}}publicstaticvoidclose(Connectionconn,Statementst,ResultSetrs){ if(rs!=null){try{rs.close();}catch(SQLExceptionex){}}if(st!=null){try{st.close();}catch(Exceptionex){}}if(conn!=null){try{conn.close();}catch(Exceptionex){}4.2注册用户管理该模块主要功能教职工信息进行管理,包括对注册用户的删除功能,界面如下图所示:packageutil;importjava.io.UnsupportedEncodingException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassValidate{ /** *是否为数字和英文验证 * */ publicintgetIntAndChar(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!((c>='0'&&c<='9')||(c>='a'&&c<='z')||(c>='A'&&c<='Z'))){ break; } }//判断字符是否在某个区间 if(i<str.length()){ return-1; }else{ return0; } } /** *是否为整数验证 * */ publicintgetInt(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!(c>='0'&&c<='9')){ break; } }//判断字符是否在某个区间 if(i<str.length()){ return-1; }else{ return0; } } /** *是否为非法字符验证 * */ publicbooleangetLawlessChar(Stringstr){ booleanflag=false; charc; for(inti=0;i<str.length();i++){ c=str.charAt(i); switch(c){ case'<':flag=true;break; case'>':flag=true;break; case'"':flag=true;break; case'&':flag=true;break; case'':flag=true;break; } } returnflag; }4.3用户登陆用于用户登陆进入系统的界面,用户需要建立一个账号和密码才能进入使用系统,当用户输入自己的账号和密码时,系统进行验证,如果正确,进入系统;如果错误,则提示用户输入的信息不正确,重新输入信息.该界面还为新用户设置了专门的注册组件,通过点击注册按钮直接进入新用户的注册界面.在登陆的时候,密码框采用密文形式输入,保护用户登陆的安全性。界面如下图所示:主要代码如下:packageservlet;importjava.io.IOException;importjava.io.PrintWriter;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importutil.Validate;importbean.InsertUpdateDelBean;publicclassAmountServletextendsHttpServlet{ /** *Constructoroftheobject. */ publicAmountServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } /** *ThedoPostmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312"); Stringid=request.getParameter("id"); Stringamount=request.getParameter("amount"); Stringsql="updateuserssetamount=amount+"+amount+"whereid="+id; InsertUpdateDelBeanib=newInsertUpdateDelBean(); ib.insertANDupdateANDdel(sql); sql="insertintopayment(usersid,name,price)values("+id+",'',"+amount+")"; ib.insertANDupdateANDdel(sql); request.setAttribute("message","操作成功!"); RequestDispatcherrd=request.getRequestDispatcher("/admin/users_amount.jsp"); rd.forward(request,response); }4.4用户注册用于未注册的用户进行账号的注册,当新用户使用该系统时,在登陆界面上点击新用户注册的按钮可以进入新用户注册的界面.该界面输入新的用户名称,输入两次用户密码.如果用户名称和密码符合要求并且两次输入的密码都一致,则提示用户注册成功,如果用户名称已经被注册了或者是两次输入的密码不一致,会提示相应的错误提示信息,并且清空输入框,重新输入.在该界面上有提示返回登陆框的组件,如果登陆成功以后,则可以直接点击该组件,回到登陆界面,进行用户登陆。界面如下图所示:主要代码如下:packageservlet;importjava.io.IOException;importjava.util.ArrayList;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importutil.Validate;importbean.AllBean;importbean.InsertUpdateDelBean;importbean.SelectBean;publicclassBegindateServletextendsHttpServlet{ /** *Constructoroftheobject. */ publicBegindateServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } /** *ThedoPostmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312"); Stringusersid=request.getParameter("usersid"); Stringitem=request.getParameter("item"); Validatev=newValidate(); AllBeanab=newAllBean(); SelectBeansb=newSelectBean(); ArrayListalItem=ab.getItem(item); if(alItem.get(2)==null||alItem.get(2).equals("")){ Stringsql="select*fromuserswheredatediff(day,getdate(),begindate)<0anddatediff(day,getdate(),enddate)>0andid="+usersid; Stringargs[]={"id","name","age","sex","phone","address","yearcard","begindate","enddate","amount","loss"}; ArrayListal=sb.select(args,sql); if(al==null||al.size()==0){ request.setAttribute("message","冻结"); }else{ sql="insertintoconsume(usersid,name)values('"+usersid+"','"+alItem.get(1)+"')"; InsertUpdateDelBeanib=newInsertUpdateDelBean(); ib.insertANDupdateANDdel(sql); request.setAttribute("message","操作成功!"); }4.5收入统计该模块作为该系统的一个主要模块,其主要功能是按日,月,年进行收入开销的统计,是体现理财功能的主要模块.这个模块分为日收支统计,月收支统计,年收支统计三个部分,每个部分有相关的一些收入统计,和日常的衣食住行方面的开销统计,统计的时候必须输入所统计的日期,如果忘了输入或者输入错误的日期,则要提示错误信息.还有相应的备注信息输入框,以对自己的收支信息进行相应的补充说明.在这三种收支统计模块中,都设置有计算功能,该功能可以计算每个界面中所有收入的总和,所有支出的总和,以及计算出净收入的数目来.基本上具有完善的收入统计功能.三种按统计时间区分的模块,可以分别按不同的时间段来进行统计,而其相应的统计范围也有所调整。界面如下图所示:主要代码如下:packageutil;importjava.io.UnsupportedEncodingException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassValidate{ /** *是否为数字和英文验证 * */ publicintgetIntAndChar(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!((c>='0'&&c<='9')||(c>='a'&&c<='z')||(c>='A'&&c<='Z'))){ break; } }//判断字符是否在某个区间 if(i<str.length()){ return-1; }else{ return0; } } /** *是否为整数验证 * */ publicintgetInt(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!(c>='0'&&c<='9')){ break; } }//判断字符是否在某个区间 if(i<str.length()){ return-1; }else{ return0; } } /** *是否为非法字符验证 * */ publicbooleangetLawlessChar(Stringstr){ booleanflag=false; charc; for(inti=0;i<str.length();i++){ c=str.charAt(i); switch(c){ case'<':flag=true;break; case'>':flag=true;break; case'"':flag=true;break; case'&':flag=true;break; case'':flag=true;break; } } returnflag; }4.6收入查询功能该模块也是作为理财系统的模块,和收入统计模块一起,实现个人理财系统的重要功能:收入支出的统计.在此查询模块中,分为按日查询,按月查询,按年查询,分别对应着统计记录模块中的按日统计,按月统计,按年统计;如果要按日查询的话,就输入年,月,日的信息,点击查询按钮,如果输入信息正确,则在下面的窗体中会显示曾经统计过的相应项目的相应数据,用户可以直观的看到自己在某个日期的统计数据.在这个界面中也带有统计计算的功能,以便于用户计算;并且带有修改,删除所统计的数据的功能.其他两个,按月,按日查询也是如此.该模块和收入统计模块,也可以算是一个整体的模块.一起完成收支统计的功能。界面如下图所示:第5章系统调试与测试5.1程序调试在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。5.2程序的测试5.2.1测试的重要性及目的(1)测试的重要性软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括:①认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感;②以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定;③测试工作枯燥无味,不能引起人们的兴趣;④测试工作是艰苦而细致的工作;⑤对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。(2)测试的目的如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。①软件测试是为了发现错误而执行程序的过程;②测试是为了证明程序有错,而不是证明程序无错误;③一个好的测试用例是在于它能发现至今未发现的错误;④一个成功的测试是发现了至今未发现的错误的测试。这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。5.2.2测试的步骤与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:(1)模块测试在这个测试步骤中所发现的往往是编码和详细设计的错误。(2)系统测试在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。(3)验收测试在这个测试步骤中发现的往往是系统需求说明书中的错误。5.2.3测试的主要内容为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。(1)单元测试单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。(2)集成测试集成测试是将模块按照设计要求组装起来同时进行测试,主要目标

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论