基于JAVA实现的个人理财系统_第1页
基于JAVA实现的个人理财系统_第2页
基于JAVA实现的个人理财系统_第3页
基于JAVA实现的个人理财系统_第4页
基于JAVA实现的个人理财系统_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

基于JAVA实现的个人理财系统目录TOC\o"1-2"\h\z\u摘要 2Abstract 3引言 3\h41绪论 51.1前期调研 51.2计算机技术综述 51.3开发背景与主要内容 72系统技术开发 82.1可行性分析 82.2面对对象的程序设计介绍 92.3SQL语言介绍 102.4JDBC数据访问技术 112.5数据库系统概述 PAGEREF_Toc224214273\h122.6系统开发理论介绍 132.7开发环境 143系统设计 163.1系统结构设计 163.2数据库设计 174系统实现 194.1界面设计 194.2主要代码的编写 205系统测试和优化 245.1测试目的 PAGEREF_Toc224214283\h245.2测试方法 245.3测试步骤 246讨论 26HYPERLINK\l"_Toc224214288"6.1源代码的控制 266.2变量命名的约定 276.3JAVA对字符串操作总结 276.4对错误的处理 30结论 32致谢 34参考文献 PAGEREF_Toc224214294\h34摘要理财系统是一个企业不可缺少的部分,企业很早就实施了理财的集中管理,而家庭或大学生使用的小型理财系统却只是凤毛麟角。然而,理财系统不仅仅对企业,而且对学生个人都有十分重要的意义。论文系统地分析了软件开发的背景及过程,首先介绍了软件的开发环境,其次介绍了本软件的详细设计过程:数据库的设计以及具体界面的设计和功能,最后对在本软件开发过程中的问题进行了总结。利用面向对象的编程方法(OOP)和ADO数据库访问技术,其开发主要包括后台数据库的建立、维护以及前端应用程序开发,通过JAVA和数据库相结合,实现了大学生理财的自动化和信息化。系统主要包括以下几个模块:用户密码登陆,原始数据的汇入、修改、删除等,从而实现对大学生个人的收入与支出进行有效、系统的管理,并使之更全面和灵活。通过论文,可以了解到“有‘理’真好——大学生理财软件”的规划、设计过程,掌握系统的功能。关键词:大学生;理财;数据库;面向对象的编程方法AbstractThesystemoffinancingisveryimportanttobusinessenterprise,anditisanindispensabilitypart.Thebusinessenterpriseispreviouslyandalreadyfocalizationintheexecutionfinancialmanagement.However,thefinancingsystemisnotonlytobusinessenterprise,andtostudentsorfamiliesallcontainveryimportantmeaning.Thisthesissystematicallyanalyzesthebackgroundandprocessofsoftware’sexploitation.Firstlyittellsustheexploitativeenvironmentofsoftware.Secondlyitshowstheprocessofdesigningthesoftwareindetail,suchasthedesignofdatabaseandtheachievement,aswellasthedesignandfunctionsoftheconcreteinterface.Finallyitconcludestheproblemsthatoccurintheexploitativeprocessofthissoftware.Adoptingthewayofobjectorientedprogram(OOP)andADOdatabaseinterviewtechnique,whoseexploitationmainlyincludestheestablishmentandmaintenanceofbackgrounddatabaseandtheprocessofforepartapplication,usingthewayJAVAthatachieveautomatizationandinformationtechnologyofthesystemoffinancinginstudents.Thesystemmainlyconsistsofthefollowingmodules:Customerpassworddebarkation,Investigatingdatabaseandtheconfluenceofinitialdataandsoon,whichmaketheavailabilityofthecashinstudentsintoearningandpayout,Investigationandmanagementofthesystemmoreperfectandflexible.Accordingtoreadthethesis,youcanrealizetheprogram“TheStudents’FinancingSystem“theapproachofdesignandcontrolthefunctionofsystem.KeyWords:UniversityStudents;Financing;DATABASE;ObjectOrientedProgram引言美国著名经济学家詹姆斯菲尔德对于美国大学生理财规划,提出了专门的“1+1+1”模式:学会贷款——用明天的钱圆今天的梦,学会兼职——让“增值”为以后的超前消费埋下伏笔,学会投资——为今后的个人理财“投石问路”。现在很多大学生对自己的消费不以为然,有钱的时候就大手大脚,等到没有钱的时候就和家里伸手,所以使得很多大学生养成了不好的习惯,就此我们小组对于这一项目展开调查和研究了这个软件,有助于我们在平时的消费中养成良好的消费习惯。在我们的调查中发现很多大学生的花销主要集中在通讯,娱乐等方面。另外参考了李永华等对武汉高校大学生消费情况的调查表明,大学生在经济消费水平上存在着巨大差距,其中年消费最高的达到18500元,而年消费最低的只有2100元。武汉市大学生每年消费均值略高于8300元,其中包括学费均值3000元左右,住宿非均值500元左右。大学生的月食品支出在230元左右,它与生活费月支出(480元)比率是47.9%,这可视为大学生的“恩格尔系数”,与1999年武汉市人均消费支出和食物支出相比,呈现出整体上消费水平比较高的趋势。据百度网站查询的资料表明,暂时没有一个成熟、具指导性、针对大学生的理财软件。大学生是拥有一定的消费能力,除了家庭资金供给外,一部分大学生还有兼职收入、奖学金收入和投资收入,而且重要的一点是大学生将是未来4-5年后社会的主体消费及创造社会财富的群体,本软件是根据大学生消费理念设计的,据我们调查所做的调查,有将近70%的大学生会考虑使用理财软件,因此,在理财软件方面是具有一定的潜力市场。我们小组采用java来实现软件的开发,主要利用面向对象的编程(OOP)的方法来完成程序的开发。1绪论近年来,计算机技术飞速发展几乎超出了人们的想象,硬件的更新换代速度更是以级数进行。计算机在处理对象、处理方法上都发生了很大的变化。作为计算机科学的重要分支——数据库技术,也被越来越多的应用领域采用来存储和处理他们的信息资源。计算机已经不再仅仅是科学研究的工具,它越来越多地影响到了我们生活的诸多方面,更多的应用软件出现在了我们的身边,给人们生活的方方面面都带来了极大的便利。近年来随着国内外社会经济和科学技术的不断改革和发展,2004中国大学生消费与生活形态研究报告指出:“当代大学生不仅消费能力在提高,而且在消费结构方面呈现多元化的趋势。”各种各样的开销与收入也越来越多,很多大学生对于日常账目的管理感到越来越力不从心,收支管理已刻不容缓。大学生们需要一款适合他们使用的理财软件。1.1前期调研为了解大学生对于理财管理系统是否有需求,我们针对大学生理财方面提出了17条问题。我们采用的是通过QQ和E-mail进行随机电子问卷调查方式,发出问卷50份,收回的有效问卷是36份。调研范围为:全国各大高校在校大学生,地区主要集中在沈阳、大连,也包括广州、佛山、上海、郑州、长沙、济南、香港等城市。调查表明,有83.33%的大学生每月没有盈余,甚至是超支。对于问卷第16题“若有一款大学生理财软件,你是否会考虑使用呢?”,回答“会”的人共有25人。说明有69.44%的人会使用适合他们使用的理财软件。通过前期调研,不难发现大学生们急需一个成熟、具指导性、针对大学生的理财软件进行合理的理财分析。1.2计算机技术综述在计算机硬件和软件技术不断创新和进步的背景下,计算机技术在20世纪有许多重大突破,它涉及到人们生活的方方面面,主要可以归结为以下四个方面:第一,处理对象的变化。在计算机应用初期,计算机的处理主要是数值和简单的符号。随着计算机速度和存储容量的增大,今天的计算机已经能够处理声、图、文和语言等多种信息,除二维、静止图像外,还可以处理三维运动的图像等等。也就是说,人类使用的任何信息形式现在计算机都可以处理了。这不仅使计算机的用途大大地扩展,而且使今天的用户能够从计算机的屏幕上看到图文并茂,有声有色的画面。从而使计算机从专业人员圈子中走出来,走向普通用户,走向平民百姓。第二,处理方法或建模方法的进步。传统计算机的应用只限制在数学模型为基础的数值计算上。不管是科学计算,数据处理还是计算机自动化,这些都离不开数值计算,因此让计算机做任何事情之前,首先需要建立数学模型:算数的、代数的、微积分的、等等,没有数学模型计算机无从进行计算,这些使所有传统算法的基础,到了20世纪中叶,由于人工智能的出现以及它所取得的成就,计算机应用开始突破这一限制——计算机能够进行符号计算,记忆逻辑和知识为基础的符号推理。这些突破极大地扩展了计算机的应用范围,使那些无法用数学表达的问题,只要人们有足够的经验知识,计算机就可能根据这些知识进行模拟,达到问题求解的目的,实现所谓人工智能,人们希望那些目前大家了解还不深,或者还不清楚的问题,计算机也能帮助解决,软计算就是这个背景下提出的。二十世纪的七八十年代,提出的模糊计算,神经网络计算以及进化计算等,都是希望计算机能够进一步处理模糊概念、模糊推理等类问题,是计算机在先前经验只是较弱的情况下,也能帮助人们处理疑难问题、软计算或计算智能给人们带来希望,因此成为近来研究的热点。第三,处理方式的变化。在处理方式上人们也经历了三个阶段。在早期的主机时代,人们采用的是集中交互处理的模式。这两种方式都是以各人单独工作为中心的,现在我们进入了计算机网络时代,人们的工作方式发生了很大转变,走向分布协同工作的时代。总之,以上这些变化会影响到21世纪计算机应用技术的发展和变化。第四,硬件技术的提高。伴随着时代的发展,由最初的电子管计算机发展到即将到来的量子计算机,计算速度也发展到了最初计算机的数万倍以上。在外型上,从桌上型、笔记型(Notebook)到掌上型计算机(Palm),不管是功能上的提升或可携带性的特色,都显示出未来计算机将以轻薄短小,容易携带为主。随着计算机进一步的小型化,人工智能将越来越强地集成到我们的环境中。便携设备将像装饰品一样穿在衣服里。个人计算机也不断向着普及的方向发展,各种计算机外设的品质不断提高、丰富,极大地方便了人们的工作和生活。数据库技术的发展已经经历了很长的一段时间,从层次型数据库,网状数据库直到今天的关系型数据库以及面向对象的数据库。目前流行的数据库管理系统(DBMS)有多种,其中大型数据库管理系统有Oracle,SQLServer等,小型数据库管理系统有FoxPro,Access等,它们已能满足人们对数据库应用的基本要求。今天,网络技术的发展对数据库技术提出了新的要求。人们希望能访问存储在不同网格,不同节点上的数据而不需要了解数据存储的细节,并且能够在系统局部故障的情况下保证数据无损。这就形成了人们对分布式数据库管理系统的部分要求——数据的位置透明性和安全性。本理财系统采用的开发平台是Microsoft®WindowsXP。与其它操作系统相比,WindowsXP更稳定,有较好的网络功能。数据库设计与维护采用的是Mysql,软件的数据库访问及软件开发工具采用的是Eclipse,它面向对象的编程方式(OOP)使程序设计过程大大简化,对数据库的访问更灵活。相对于其他开发环境,Eclipse使开发人员的工作更快、成本更低、周期更短、质量更高、功能更强。Eclipse为应用开发环境提供了全面综合性的支持:事件驱动的应用程序;功能强大的编程语言和函数;面向对象的编程;开放的数据库连接系统。1.3开发背景与主要内容结合大学生理财现状,大学生缺乏理财观念开发这个应用系统的目标是为了代替人工进行许多繁杂的劳动,节省许多资源,提高大学生理财的工作效率。它主要实现的功能如下:功能一:验证用户和密码的正确性再登入,以及修改密码和退出系统;功能二:保存每次输入的收支记录,并提供查询;功能三:对大学生收入/支出进行管理,实现费用的增加,修改,删除;功能四:整个收支记录按需求进行分类查询。2系统技术开发2.1可行性分析可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。2.1.1经济可行性计算机的价格已经十分低廉,性能也有了长足的进步。而本系统的开发,为大学生理财的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高大学生理财的工作效率;等等。所以,本系统在经济上是可行的。2.1.2技术可行性和运行可行性本理财系统采用的开发平台是Microsoft®WindowsXP。与其它操作系统相比,WindowsXP更稳定,有较好的网络功能。使用Eclipse作为系统开发的开发环境,它面向对象的编程方式(OOP)使程序设计过程大大简化,对数据库的访问更灵活。提供完善的指令控制语句、类与对象的支持及丰富的数据类型,全面综合性的支持:事件驱动的应用程序;功能强大的编程语言和函数;面向对象的编程;开放的数据库连接系统。给开发高性能系统提供了保障,为开发满足客户要求的系统保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。相对于其他开发环境,Java使开发人员的工作更快、成本更低、周期更短、质量更高、功能更强。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。本系统为一个小型的理财系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。2.2面对对象的程序设计介绍传统的结构化程序设计(StructuredProgramming)是一种强调功能抽象化和模块化的编程方法,它把解决问题的过程看作是一个处理单位。这就是说结构化程序设计中,模块是对功能的抽象,而每一个模块都是一个处理单位,并有输入和输出。而面向对象的程序设计(ObjectOrientedProgramming,OOP)是一种以对象为基础,以事件来驱动对象执行的程序设计技术。OOP把计算过程看作为对象的分类过程加上其状态变化的过程,也就是将一个应用程序逐步划分成相互关联的多个对象,并且建立起与这些对象相互关联的事件过程,通过对象对所发生的事件产生响应,并执行相应的事件过程以引发对象状态的改变,从而最终达到完成计算的目的。与结构化程序设计不同,面向对象的程序设计综合了功能的抽象和数据的抽象,它把解决问题的过程看作是一个对象分类演绎的过程。在OOP中,对象(Object)是一个包括数据和方法(操作)的并被封装起来的整体,它是对数据和功能的抽象和统一,而对象就包含了模块的概念。面向对象设计是一种全新的程序设计方法,它从根本上改变了传统的程序设计模式。其基本思想是:通过建立与具体实际应用相对应的对象,并通过这些对象的组合来创建具体的应用程序。这种设计方法给程序设计带来了许多良好特性,一般说来有以下几点:(1)模块性:对象是一个功能和数据独立的单元,它们之间只能通过对象认可的方式来进行通信,并可以较为自由地为其他对象所调用。(2)封装性:这一特性为信息的隐藏提供了具体的实现手段,用户不必清楚对象内部的细节,只需了解其功能即可。(3)继承性:这一特性为代码的共享提供了一种非常有效的方法,从而可以避免重复的代码设计,实现对象的可重用性。这一特性也是面向对象程序设计技术最本质的特征。(4)可靠性:对象实现了抽象和封装,从而使得其中出现的错误限制在对象的内部,因而不会向外部传播,同时也易于检查和维护。(5)可扩充性:面向对象系统可以通过继承机制不断扩充其对象的功能,而不会影响原系统的运行。(6)连续性:虽然面向对象的程序设计语言在编程模式上相差很大,但它并没有摒弃传统的做法,它不仅采用了传统程序设计语言的语言元素,而且利用它们来模拟建立对象,从而使得一个熟悉传统程序设计语言的编程者能够很快掌握面向对象设计的规律。2.3SQL语言介绍SQL(StructuredQueryLanguage,结构化查询语言)是由Boyce和Chamberlin在1974年提出的,由于它功能丰富,使用灵活、语言简洁易学等特点,在计算机工业界和计算机用户中倍受欢迎,快得到应用和推广。许多关系数据库系统DB2、Oracle、SQLServer2000、Sybase等都实现了SQL语言。1986年10月,美国国家标准局(ANSI)的数据库委员会批准了SQL作为关系数据库语言的美国标准。1987年6月,国际标准化组织(ISO)将其采纳为国际标准,也称为“SQL86”SQL数据库的体系结构基本上了三级模式结构。如图2.1。图2.1SQL数据库的体系结构SQL数据库的体系结构具有如下特点:(1)一个数据库(Database)是表和约束的集合;(2)一个表(Table)由行(Row)构成,每行是列(Column)的集合;(3)一张表既可以是基本表,也可以是一个视图;(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表,一个表可以带若干索引,索引文件也存放在存储文件中;(5)SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在各种宿主语言中,宿主语言有VB、VC、VC#、VB.Net、Delphi、PowerBuildings等高级语言;SQL语言也能作为独立用户接口,供交互环境下的终端用户使用。2.4JDBC数据访问技术JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。有了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可为外部客户提供获取信息更新的更好方法。2.5数据库系统概述(1)数据(Data)数据是数据库中存储的对象。数据在大多数人头脑中的第一反映就是数字。其实数字只是最简单的一种数据,是数据的一种传统和狭义的理解。广义的理解,数据的种类很多,文字,图形,图像,声音等都是数据,可以对数据做以下定义:描述事物的符号记录称为数据。(2)数据库(Database)数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。数据库是指长期存在计算机内的,有组织的,可共享的数据集合。数据库中的数据按一定的数据模型组织,描述和存储,具有较高的数据独立性和易扩展性,并可以为各种用户共享。(3)数据库管理系统(DatabaseManagementSystem,简称DBMS)数据库管理系统是位于用户和操作系统之间的一层数据管理软件。它主要有以下几个方面的功能:①数据定义功能DBMS提供数据定义语言,用户通过它可以方便的对数据库中的数据对象进行定义。②数据操纵功能DBMS还提供数据操纵语言,用户可以使用这语言操纵数据实现对数据库的基本操作。如查询,插入,删除和修改等。③数据库的运行管理数据库在建立,运行和维护时由数据库管理系统统一管理,统一控制,以保证数据的安全性,完整性,多用户对数据的并发使用乃发生故障后的系统恢复。④数据库的建立和维护功能它包括数据库初始的输入,转换功能,数据库的转存,恢复功能,数据库的重组织功能和性能监视。这些功能通常是由一些实用的程序完成的。2.6eclipse开发工具Eclipse是一个开放源代码的、与NetBeans、SunONEStudio和BorlandJbuilder类似的一种基于Java的整合型可扩展开发平台,也是目前最著名的开源项目之一,IBM在最近几年里也一直在大力支持该项目的发展,目标是将其做成用以替代IBMVisualAgeforJava(简称IVJ)的下一代IDE开发环境,并于2001年11月宣布投入4千万美元资金到该项目的研发。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。其未来的目标不仅仅是成为专门开发Java程序的IDE环境,根据Eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。目前,Eclipse已经开始提供C语言开发的功能插件。更难能可贵的是,Eclipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。也就是说未来只要有人需要,就会有建立在Eclipse之上的COBOL,Perl,Python等语言的开发插件出现。同时可以通过开发新的插件扩展现有插件的功能,比如本系列文章为了进行手机应用程序的开发就是通过J2ME插件的扩展来加以实现的。可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是Eclipse的潜力所在。Eclipse的主要组成Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。EclipseSDK(软件开发者包)是EclipsePlatform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到EclipsePlatform中的工具。EclipseSDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以CPL发布,第三方组件有各自自身的许可协议。2.7系统开发理论介绍2.7.1系统规划阶段系统规划阶段的任务是对各大学生理财的环境、目标及现行系统的状况进行初步调查,根据大学生理财目标和发展战略,确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。根据需要与可能,给出拟建系统的备选方案。对这些方案进行可行性分析,写出可行性分析报告。可行性分析报告审议通过后,将新系统建设方案及实施计划编写成系统设计任务书。2.7.2系统分析阶段系统分析阶段的任务是根据系统设计任务书所确定的范围,对现行系统进行详细调查,描述现行系统的业务流程,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型。这个阶段又称为逻辑设计阶段,他是整个系统建设的关键阶段,也是信息系统建设与一般工程项目的重要区别所在。该阶段的工作成果体现在系统说明书中,这是系统建设的必备文件。它既是给用户看的,也是下一阶段的工作依据。因此,系统说明书既要通俗,又要准确。用户通过说明书可以了解未来系统的功能,判断是不是其所要求的系统。系统说明书一旦讨论通过,就是系统设计的依据,也是将来验收系统的依据。2.7.3系统设计阶段简单地讲,系统分析阶段的任务是回答系统“做什么”的问题,而系统设计阶段要回答的问题是“怎么做”。该阶段的任务是根据系统说明书中规定的功能要求,考虑实际条件,具体设计实现逻辑模型的技术方案,也即设计新系统的物理模型。这个阶段又称为物理设计阶段,可分为总体设计和详细设计两个阶段。这个阶段的技术文档是“系统设计说明书”。2.7.4系统实施阶段系统实施阶段是将设计的系统付诸实施的阶段。这一阶段的任务包括计算机等设备的购置、安装和调试,程序的编写和调试,人员培训,数据文件转换,系统调试与转换等。这个阶段的特点是几个互相联系、互相制约的任务同时展开,必须精心安排、合理组织。系统实施是按实施计划分阶段完成的,每个阶段应写出实施进度报告。系统测试之后写出系统测试分析报告。2.7.5系统运行和维护阶段系统投入运行后,需要经常进行维护和评价,记录系统运行的情况,根据一定的规格对系统进行必要的修改,评价系统的工作质量和经济效益。2.8开发环境①硬件环境CPU:赛扬2.4GHz,内存:1GB,硬盘:120GB②操作系统Microsoft®WindowsXPProfessionalServicePack2③软件环境开发工具:Eclipse3系统设计3.1系统需求分析1、性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:(1)系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息的处理。由于系统的查询功能对于整个系统的功能和性能完成很重要。从系统的多个数据来源来看,学生信息查询、实验信息查询、预约结果查询、实验成绩查询及预约实验、撤消预约,其准确性很大程度上决定了系统的成败。因此,在系统开发过程中,系统采用优化的SQL语句及安全扩展存储过程来保证系统的准确性和及时性。(2)系统的开放性和系统的可扩充性系统在开发过程中,应该充分考虑以后的可扩充性。例如实验信息属性添加、修改,用户查询的需求及管理工作的分级管理,信息输出打印报表等模块也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。(3)系统的易用性和易维护性系统是直接面对使用人员的,而有些使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。系统中涉及到的数据是高校实验室相当重要的信息,因此系统为不同角色的用户提供了方便的管理后台进行数据管理,特别为系统管理员提供了数据备份,日常安全管理,防止系统意外崩溃等功能。(4)系统的响应速度系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存储过程,大大提高系统响应时间和速度。系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。严格保证操作人员不会因为速度问题而影响工作效率。系统的数据需求包括如下几点:(1)数据录入和处理的准确性和实时性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。因此,本系统设计时对数据输入进行了合法性较验,确保数据的准确性。在系统中,数据的输入及处理往往是大量的,因此系统拥有批处理能力,以保证迅速的处理数据。(2)数据的一致性与完整性由于系统的数据是共享和关联的,所以如何保证这些数据的一致性,是系统必须解决的问题。为解决这一问题,系统创建了表间关系,并定义了触发器、完整性约束,严格约束数据的更新与删除,减少数据冗余,增强数据一致性及完整性。(3)数据的共享与独立性整个系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的健壮性3.2系统结构设计为了真正达到我们方便顾客,做到简洁方便易于使用,我们把我们的软件界面设计为三大功能区:主功能区、副功能区和操作区。图3.1理财系统结构功能设计图3.2用户验证与操作流向设计图3.3理财系统工作原理设计3.3数据库设计数据库是系统信息的有效中心,一个优秀的数据库设计应考虑到系统工程的功能,系统的执行速度,以及是否可能引起系统工作的异常等。数据库的设计合理与否不仅直接影响到程序设计的质量,而且影响到系统的实现。3.3.1数据库结构设计(1)用户表:说明本系统的用户和密码的存储情况,有主键,自动增加,用户不能为空;表3.1用户名表字段名称数据类型主键是否为空UName文本否否PWord文本否是ID自动增加是否Active整型否是(2)收入表:说明本系统收入信息存储数据的格式,其中把收入编号设为本记录的主键,日期要为日期数据类型,这些基本的信息都不能为空,除了备注以外;表3.2收入信息表字段名称数据类型主键是否为空收入编号文本是否用户名称文本否否收入类型文本否否日期日期/时间否否金额数字否否备注备注否是(3)支出表:说明本系统支出信息存储数据的格式,其中把支出编号设为本记录的主键,日期要为日期数据类型,这些基本的信息都不能为空,除了备注以外;表3.3收入信息表字段名称数据类型主键是否为空支出编号文本是否用户名称文本否否支出类型1文本否否支出类型2文本否否日期日期/时间否否金额数字否否备注备注否是(4)收入类型表:说明本系统收入类型,作为收入表的“收入类型”字段的外码参照。表3.4收入类型表字段名称数据类型主键是否为空收入类型文本否否(5)支出类型表:说明本系统支出类型,作为支出表的“支出类型”字段的外码参照。表3.5支出类型表字段名称数据类型主键是否为空说明支出类型1文本否否支出大类支出类型2文本否否支出分类4系统实现4.1界面设计(1)在进入系统之后,必须要有符合本系统的用户以及每个用户对应的密码。如果没输入用户名,点击确定将会提示请输入用户名。如果用户名错误和用户的密码不符合也将会有错误提示。具体界面如图4.1所示。4.1系统登陆界面(2)用户和密码正确后,统的主界面将会显示当前用户的账户信息。在这个界面里将实现本系统所有的功能,用户一看便会使用,如图4.2所示。4.2主要代码的编写4.2.1数据库模块代码实现publicclassMyDBConnection{privateConnectionmyConnection;publicMyDBConnection(){}publicerrorTypeinit(){try{Class.forName("com.mysql.jdbc.Driver");myConnection=DriverManager.getConnection("jdbc:mysql://localhost:3306/iwallet?characterEncoding=utf8","root","123456");returnerrorType.SUCCESS;}catch(Exceptione){System.out.println("Failedtogetconnection");e.printStackTrace();returnerrorType.DATABASE_ERROR;}}publicConnectiongetMyConnection(){returnmyConnection;}publicvoidclose(ResultSetrs){if(rs!=null){try{rs.close();}catch(Exceptione){}}}publicvoidclose(java.sql.Statementstmt){if(stmt!=null){try{stmt.close();}catch(Exceptione){}}}publicvoiddestroy(){if(myConnection!=null){try{myConnection.close();}catch(Exceptione){}}}}4.2.2packagecontroller;importjava.sql.*;importgui.*;importcontroller.IConstant.errorType;importdatabase.DataQuery;publicclassLoginController{publicLoginController(){}publicerrorTypelogin(Stringname,Stringpassword){ResultSetrs;DataQuerydq=newDataQuery();rs=dq.getUserByName(name);errorTyper=verify(rs,password);if(r==errorType.SUCCESS){Stringoldname=IWalletApp.getApplication().getUser().getName();if(oldname!=null){r=dq.setUserActive(oldname,false);if(r!=errorType.SUCCESS)returnr;}r=dq.setUserActive(name,true);if(r!=errorType.SUCCESS)returnr;IWalletApp.getApplication().getUser().alterUser(name);returnerrorType.SUCCESS;}elsereturnr;}privateerrorTypeverify(ResultSetrs,Stringpassword){try{if(!rs.next())returnerrorType.NAME_NOT_EXIST_ERROR;//nameerrorif(rs.getInt("Password")==password.hashCode()){if(!rs.getBoolean("Active"))returnerrorType.SUCCESS;elsereturnerrorType.ALREADY_LOGIN_ERROR;//yonghuyidenglu}else{returnerrorType.PASSWORD_WRONG_ERROR;//passwordwroong}}catch(SQLExceptionex){//sqlerrorreturnerrorType.SQL_ERROR;}}}4.2.3/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/packagecontroller;importjava.sql.*;importgui.*;importcontroller.IConstant.errorType;importdatabase.DataQuery;importmodel.User;/****@authors*/classRegisterController{publicRegisterController(){}publicerrorTyperegister(Stringname,Stringpassword){ResultSetrs;errorTyper;try{DataQuerydq=newDataQuery();rs=dq.getUserByName(name);if(rs.next()==false){Stringoldname=IWalletApp.getApplication().getUser().getName();if(oldname!=null){r=dq.setUserActive(oldname,false);if(r!=errorType.SUCCESS)returnr;}r=dq.insertUser(name,password);if(r!=errorType.SUCCESS)returnr;IWalletApp.getApplication().getUser().alterUser(name);returnerrorType.SUCCESS;}else{returnerrorType.DUPLICATED_NAME_ERROR;}}catch(SQLExceptione){System.out.println(e);e.printStackTrace();}returnerrorType.SQL_ERROR;}}4.2.4/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/packagecontroller;importcontroller.IConstant.errorType;importdatabase.DataQuery;importgui.IWalletApp;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.Calendar;importjava.util.Date;importjava.util.Vector;importjava.util.logging.Level;importjava.util.logging.Logger;/****@authors*/classGetChartItemController{publicGetChartItemController(){}errorTypegetChartItem(DatesDate,DateeDate,intaccountID,intchartType){if(sDate.after(eDate)){returnerrorType.WRONG_DATE_SECTION_ERROR;}CalendarsCal=Calendar.getInstance();sCal.setTime(sDate);CalendareCal=Calendar.getInstance();eCal.setTime(eDate);ResultSetrs;DataQuerydq=newDataQuery();if(chartType==0){intyear=sCal.get(Calendar.YEAR);intmonth=sCal.get(Calendar.MONTH)+1;Vector<Double>MonthIncome=newVector<Double>();Vector<Double>MonthOutgo=newVector<Double>();do{try{rs=dq.getSumByIDMonth(year,month,accountID);doubleincome=0,outgo=0;if(rs.next())income=rs.getDouble("total");if(rs.next())outgo=-rs.getDouble("total");if(income>0){MonthIncome.add(income);MonthOutgo.add(outgo);}else{MonthIncome.add(0.0);MonthOutgo.add(-income);}}catch(SQLExceptionex){Logger.getLogger(GetChartItemController.class.getName()).log(Level.SEVERE,null,ex);returnerrorType.SQL_ERROR;}month++;if(month==13){year++;month=1;}}while(year<eCal.get(Calendar.YEAR)||(year==eCal.get(Calendar.YEAR)&&month<=eCal.get(Calendar.MONTH)+1));IWalletApp.get

温馨提示

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

评论

0/150

提交评论