还剩33页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
目录TOC\o1-3\h\z\u1项目概述
11.1系统概述
11.2项目目标
11.3项目范围
11.4业务流程图
21.5现系统存在的问题及薄弱环节分析22问题定义33可行性研究34需求分析
44.1总体目标
44.2具体目标
54.3系统功能建模
54.
3.1系统数据流程图
54.
3.2数据字典
74.4系统数据模型95概要设计
115.1总体系结构设计
115.2接口设计
125.
2.1外部接口
125.
2.2内部接口
125.3代码设计
125.
3.1代码设计
125.4数据库设计
125.
4.1关系模式设计
125.
4.2数据字典
135.5家庭理财系统输入、输出设计
155.
5.1输入设计
155.
5.2输出设计15输出内容输出到各个对应数据窗口
155.6运行设计
155.
6.1运行环境
155.
6.3运行控制
165.
6.4运行时间
165.7出错处理设计
165.
7.1出错输出信息
165.
7.2出错处理对策
165.8安全保密设计
165.
8.1登录用户的安全性
165.9维护设计166详细设计
176.1登陆模块
176.
1.1模块定义
176.
1.2算法
176.
1.3算法描述
176.2存储查询模块
186.
2.1模块定义
186.
2.2算法
186.
2.3算法描述
186.3界面设计
186.
3.1登录窗口界面
186.
3.2系统登窗口主界面
186.
3.3“正常收入”窗口界面
196.
3.4“正常支出”窗口界面197编码
207.1概述开发工具及编程脚本
207.2编码设计
207.
2.1主函数模块
207.
2.2数据连接读取模块
237.
2.3登陆模块248课程设计小结269参考文献2610附录27附录1程序清单27附录
1.2显示模块程序清单28附录
1.3帮助模块程序清单30附录
1.4学生模块程序清单311项目概述
1.1系统概述家庭财务的中心内容账务管理人们几乎每一天都会经过许多次货币活动其中包括了买入卖出实物,娱乐消费,起居饮食消费,还有发放工资,收缴保费等如果能把各类不同的活动进行分类,建立不同的账户,分别对活动进行管理,那么无论现在还是将来,你的账务就会清楚明白了每天,我们对自己账务的操作有如下几类添加新的数据项,比如今天我卖出了多少股票,生活中,我们就要对自己还有多少钱,今天所得的利润进行统计现在我们把这些工作放到程序里去实现,就是这样的操作某账户今天是添加还是减少,比如对RMB的操作就是减少,如果与这个操作相关的账户是现金,然后根据货币兑换率提供的值计算现金账户今天该录入的数值再如变卖所有古董的收藏,再存入银行,在软件的实现就为把古董的变卖值转入存款账户日常生活中,当我们要对一周来,外汇交易的情况进行了解,就非常困难,而观察外汇一个月里的利率走势就更加是问题做到程序里,把它存放到一个数据表里就可以了归结后,账户的操作一般如下新添,删除,增加,减少,查找,转账,统计
1.2项目目标现代社会家庭的理财观念进一步提高,理财手段变得更加丰富随着生活水平和文化水平的提高,家庭购买电脑的能力和应用电脑的能力开始提高电脑及其应用的普及化,人们应用电脑进行家庭财务管理的观念增强,因此,开发一个通用性家庭理财软件已经成为社会需求本系统是一个家庭通用型理财软件,系统目标是把适合家庭化管理的各种理财手段及家庭日常收支管理实现计算机化管理,使对家庭及家庭成员的收支活动更好地进行记录并加以统计分析成为可能,也使家庭理财变得方便,快捷,全面
1.3项目范围现在,人们的生活水平和文化素质普遍提高,并且开始注重生活质量随着市场经济的快速发展,观念的不断更新,个人理财意识普遍增强,特别是家庭理财意识得到很大发展,在意识上,一方面,人们对家庭和个人的各方面消费有想进行统计和分析的愿望,以便更好地做好家庭收支计划,和家庭财务管理另一方面,各种理财手段不断丰富,如何把各种理财手段统一起来,并且能更加方便的操作成为要求在物质基础上,计算机的应用开始普及,人们购置计算机和使用计算机的能力增强,人均计算机拥有量将快速提高这些条件说明,人们有购买一个家庭化财务软件的要求,在一个可接受的价格范围内,将购买这种软件使用这种软件学要家庭有一定的经济基础,所以这种软件适用于家庭收入在中下层或中下层以上的家庭
1.4业务流程图现行系统的业务流程图是分析和描述现行系统业务的重要工具之一其主要作用是用业务流程图描述现系统各项业务处理过程,并结合业务流程图详细、准确地说明业务处理过程中数据的收集、输入、传递、存储、加工的方法、算法、输出的数量及形式等图1系统业务流程图
1.5现系统存在的问题及薄弱环节分析现在的家庭,不少的的账目都是随手拿来张纸记录,就算是用记事本来记录也会因为各种原因出现字迹混淆的现象,长时间后再查阅,会发现不知道当时记了什么,随手用纸张来记录,不易于管理,东一张西一张容易造成遗漏、丢失数据等现象导致统计数据错误,去银行存取后的打印单不能及时的记录管理,会泄漏帐号和现有金额,形成安全隐患,不经过记录,卡折同时使用也会使得账目不清楚对家里资产的预估形成误差,有时候支出收入过多,大量数据的计算,错误常会伴随而来,使得账目错误,导致投资理财的失误2问题定义信息作为生产力中最活跃的因素,很早就在人类经济生活中发挥着不可替代的作用,但把信息纳入企业经营管理系统中高效处理和应用是在计算机发明以后的50年代末目前人们所提到的管理信息系统,通常是指以计算机为工具,对管理信息进行收集、存贮、检索、加工和传递,使其应用于组织机构及企业管理领域的“人-机系统”,该系统是70年代初“后工业经济”时代的产物,在企业管理信息系统在其发展的初期,是单一的人-机系统,系统功能简单,效率低,对管理的作用有限进入20世纪80年代末,随着计算机网络和通信技术的大力发展,企业管理信息系统进入网络化的发展时期世界发达国家已建立起了完善的先进的管理信息系统体系,在其社会经济发展领域中发挥着巨大的作用我国的管理信息系统大发展是在80年代末90年代初,国家相继建立起了“金卡”、“金关”、金桥“工程,多数企事业单位建立了局域网和广域网管理信息系统随着世界经济和我国经济逐步向知识经济迈进,无论是基于工业经济的管理信息系统,还是面向少数专家和管理人员的专家系统ES或决策支持系统DSS,其处理对象和服务对象,自身的系统结构,处理能力,都有了进一步的发展正确的理财观念非常重要,科学理财方式选择将成为决定个人贫富差距的关键性因素 真正的理财是因人而异,因“财”制宜的理财方式的选择也因人而异在国内,有些人自己亲自进行股票、债券买卖,只有少部分人请理财机构带为理财而在国外大部分人是请经验丰富的理财专家或顾问来替他们理财、节支开源因为投资市场的变化和理财工具的复杂,使得理财专业知识和技能的要求也越来越高,更多人理智地选择了专家理财的核心是投资收益的最大化和个人资产分配合理化的集合理财服务通过充分利用各种理财工具(如现金、银行存款、股票、债券、基金、期货、房产、保险等),帮助您达到合理分配的目的、满足您对理财安全性、收益性等多样化要求开发一个理财软件迎合了现代的家庭发展趋势,对居民合理分配家庭财产起到重要意义设计系统的必要性和可行性3可行性研究衡量是否具备使用新系统所需的条件,一般可从软硬件的性能要求、环境条件、技术人员水平和数量等方面去考虑和分析,其中开发人员的技术水平应首先考虑近期内可以培养和发展的技术人员近些年计算机技术飞速发展,硬件条件可以说是日新月异,其发展速度已令人惊讶的成倍比例发展软件方面同样进展神速,无论任何系统都难不到如今的计算机本系统就是由VB与access数据库相结合而设计出来的以下为本系统开发需求本系统开发需求的软件有
(1)WindowsXP操作系统
(2)ECLIPSE
(3)ACCESS数据库本系统开发需求的硬件有CPU为400MHZ以上;硬盘数据量最小配置为20G;计算机内存要求为128M以上;对于个人理财管理信息系统应着重分析其经济效益,整合现有资源提高工作效率经济上的可行性首先要估算新系统的开发费用和运行、维护费用,再与所估计的将获得的效益进行比较,看是否有利开发、运行和维护费用主要包括购买和安装设备的费用计算机硬件、系统软件、机房、电源、空调等;软件开发费用系统开发人员、操作人员和维护人员的工资、培训费用等;消耗品费用系统开发所用材料、系统正常运行所用消耗品,例如水、电费,打印纸、软盘、色带等开支;其它费用系统的效益可以从经济效益和社会效益两方面考虑,本系统在经济上是可行的4需求分析软件需求分析的目标是深入描述软件的功能和性能确定软件的约束和软件同其它系统元素的接口细节定义软件的其它有效性需求需求分析阶段研究的对象是软件项目的用户需求一方面,必须全面理解用户的各项要求,但又不能全盘接受所有的要求,另一方面,要准确地表达被接受的用户要求
4.1总体目标家庭财务管理主要由日常记账管理和应用各种理财手段进行理财实现家庭资金的最大增值记账按范围和使用方式可分为现金记账,定期存款记账,活期记账,股票交易记账,债权债务记账它们分别对应于现金账户,定期存款账户,活期账户,股票交易账户,实物资产账户,债权债务账户,保险账户现金账户可为不同家庭成员建立自己的账户,也可一人建立几个账户,以便把自己的现金按类归划,按用途有效的进行消费计划和统计活期账户对应于各家庭成员的银行活期账户股票交易账户对应所开的股票交易账户,股票记账可以对近期的股票活动详细信息进行查询,浏览,并对盈利情况统计股票账户和一资金转账账户相连,可以进入日常收支统计数据中
4.2具体目标
(1)要收入、支出更加全面可从多方面增加收入支出的情况,包括一般收入、借款所的、它人还钱、及股票所的支出同样如此
(2)灵活设置系统包括成员、消费名称、收入来源、银行名称
(3)增加存储功能可根模拟银行,从而得知怎样才能更好的增加收入,包括现金存储、存款支出、存储查询、存款支出查询
(4)各费用的统计包括日常支出、股票收益、综合统计等
4.3系统功能建模系统功能建模所采用的工具是数据流程图和数据字典用于表达系统内部的运动以及对数据的描述和定义
4.
3.1系统数据流程图数据流程图简称DFD,它用来描述目标系统的逻辑结构,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况,因为DFD是逻辑系统的图形表示,即使不是计算机技术人员也容易理解,所以是极好的通行工具此外,设计数据流程图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它是软件设计的很好的出发点,它是由实体处理数据存储和数据流回部分组成数据流程图的设计原则
(1)明确系统界面;
(2)自顶向下逐层扩展;
(3)合理布局,数据流图各种符号要布局合理、分布均匀、整齐、清晰,使读者一目了然;
(4)数据流图只反映数据流向、数据加工和逻辑意义上的数据存储,不反映任何数据处理的技术过程、处理方式和时间顺序,也不反映各部分相互联系的判断与控制条件等技术问题;
(5)数据流程图绘制过程,就是系统的逻辑模型的形成过程,必须始终与用户密切接触,详细讨论,不断修改图2家庭理财信息系统一层数据流图图3二层数据流图1图4二层数据流图2图5二层数据流图3图7二层数据流图
54.
3.2数据字典2数据存储数据存储是数据结构停留或保存的地方一般而言,应包括如下内容{数据存储名,说明,编号,输入的数据流,输出的数据流,组成(数据结构),数据量,存取频度,存取方式}3数据流数据流是数据结构在系统内传输的路径对数据流的描述通常包括如下内容{数据流名,说明,编号,数据流来源,数据流去向,组成(数据结构)}4数据处理处理过程的具体处理逻辑通常在详细设计过程中用判定表或判定树来描述在数据字典中,只无原则描述处理过程的说明性信息,通常包括以下内容{处理过程名,说明,输入数据流,输出数据流,处理}
4.4系统数据模型建立系统数据模型的主要工具是实体—关联图,即E-R图E-R图的图形符号约定如下矩形,表示实体集;椭圆,表示属性;菱形,表示联系集;线段,将属性连接到实体或将实体集连接到联系集;双椭圆,示多值属性;虚椭圆,示派生属性;系统E-R图如图所示由需求分析得到本系统的E-R图,如下图所示图8一般收入E-R图图9家庭成员E-R图图10借入收入E-R图图11取款E-R图图12日常支出E-R图5概要设计
5.1总体系结构设计图13家庭理财信息系统结构图
5.2接口设计
5.
2.1外部接口1用户界面在用户界面部分,根据需求分析结果,用户需要一个友善界面在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息在界面设计部分,本系统按照Microsoft公司的用户界面设计标准,为用户提供友好、方便、直观、简洁的操作环境本系统采用了窗口继承的方式,使窗口有统一的界面风格和操作风格同时,对错误信息、提示信息进行标准话,尽量做到清晰明了2软件接口ODBC提供的对access的接口,进行对数据库的所有访问3硬件接口在输入方面,对于键盘、鼠标的输入、对输入进行处理
5.
2.2内部接口系统在功能模块的设计上,以“高内聚、低耦合”为设计目标内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递具体参数的结构将在下面数据结构设计的内容中说明接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输
5.3代码设计
5.
3.1代码设计
①表示种类,代码为大写英语字母,如电器为“DQ”
②表示大小,代码为大写英语字母,如大电器为“B”
③表示在以上分类基础上的编号,从00000-
999995.4数据库设计数据库建设是硬件,软件和干件的结合;数据库设计应该和应用系统设计相结合概念模型设计
5.
4.1关系模式设计人员表(成员编号,成员姓名,成员密码)收入来源表(编码,收入来源)一般收入表(收入人,收入金额收入来源收入日期说明)借入收入表(借款人,贷款人,借款日期,借入金额,借款时间,说明)股票收入表(股票名称,总金额,首数,卖出日期,卖出时间,买出人,说明)存入银行表(存款人,存款金额,银行,日期,说明)借出支出表(借出人,借款人,借出日期,借款金额,借出时间,说明)日常支出表(消费人,消费日期,消费时间,消费名称,消费用途,总价格,说明)股票支出表(股票名称,购买日期,购买时间,购买人,总金额,首数,说明)存款支出表(支款人,支款金额,银行,日期,说明)
5.
4.2数据字典数据字典是物理数据库的具体体现表3用户数据表列含义列标志类型长度是否主健完整性约束成员编号Char2是数字字符成员姓名Char10否字符型数据成员密码Char10否字符型数据表4收入来源表列含义列标志类型长度是否主健完整性约束编码Char6是数字字符收入来源Char10否字符型数据表5一般收入表列含义列标志类型长度是否主健完整性约束收入人Char10是数字字符收入金额Char10否字符型数据收入来源Char10否字符型数据收入日期Datetime否=系统日期说明Char50否字符型数据表6股票收入表列含义列标志类型长度是否主健完整性约束股票名称Char10是数字字符买出人Char10数字字符总金额Char10否字符型数据首数Char10否字符型数据卖出时间Char10否字符型数据卖出日期Datetime否=系统日期说明Char50否字符型数据表7存入银行表列含义列标志类型长度是否主健完整性约束存款人Char10是数字字符存款金额Char10否字符型数据银行Char10否字符型数据日期Datetime否=系统日期说明Char50否字符型数据表8借出支出表列含义列标志类型长度是否主健完整性约束借出人Char10是数字字符借款金额Char10否字符型数据借款人Char10否字符型数据借出时间Char10否字符型数据借出日期Datetime否=系统日期说明Char60否字符型数据表9日常支出表列含义列标志类型长度是否主健完整性约束还贷人Char10是数字字符还贷日期Datetime否=系统日期还贷时间Char10否字符型数据还送给Char10否字符型数据还贷金额Char10否字符型数据说明Char50否字符型数据表10股票支出表列含义列标志类型长度是否主健完整性约束股票名称Char10是数字字符购买人Char10否数字字符总金额Char10否字符型数据首数Char10否字符型数据购买时间Char10否字符型数据购买日期Datetime否=系统日期说明Char50否字符型数据表11存款支出表列含义列标志类型长度是否主健完整性约束支款人Char10是数字字符支款金额Char10否字符型数据银行Char10否字符型数据日期Datetime否=系统日期说明Char50否字符型数据
5.5家庭理财系统输入、输出设计
5.
5.1输入设计输入设计指将系统外的数据以一定格式送入计算机,输入设计的一条重要原则是确保系统输入的信息准确无误表12输入设计输入名称一般收入输入设备和介质键盘输入源所用用户输入时间和频率随机输入信息量收入人,收入金额收入来源收入日期说明共享范围本系统使用
5.
5.2输出设计输出内容输出到各个对应数据窗口
5.6运行设计
5.
6.1运行环境该系统为客户端/服务器模式,客户端可安装在个人计算机上,运行于Windows98以上的操作系统下,服务器端DBMS选用SQLSERVER进行管理
5.
6.2运行模块的组合客户机程序在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行格式化在接收数据模块得到充分的数据时,并等待接收服务器返回的信息接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出
5.
6.3运行控制运行控制严格按照各模块间函数调用关系来实现服务器在接收到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认
5.
6.4运行时间使用高性能的服务器,如酷睿双核处理器,将缩短数据库反应时间
5.7出错处理设计
5.
7.1出错输出信息程序在运行时主要会出现两种错误
1、由于输入信息,或无法满足要求时产生的错误,称为软错误出错信息必须给出相应的出错原因,例“用户名不存在!”“密码不正确!”等
5.
7.2出错处理对策在客户机和服务器上安装不间断电源以防止停电或电压不稳造成的数据丢失的损失假如断电后,对服务器影响较大,在断电后恢复的过程中可采用access的日志文件,对其进行ROLLBACK处理,对数据进行恢复在硬件方面,选择较可靠、稳定的服务器机种,保证系统运行时的可靠性
5.8安全保密设计
5.
8.1登录用户的安全性系统设计了登录界面,每个合法用户都有一个编号、用户名及密码,该密码都用户个人维护,从而实现对用户的身份验证
5.9维护设计该系统后台采用Microsoft公司access服务器,对数据的管理可以自动进行数据可以手动或者自动备份,对破损数据可以及时恢复对数据库的使用角色、维护、安全性等可以设定6详细设计详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序详细设计阶段的任务不是具体编写程序,以后程序员将根据这个蓝图写出实际的程序代码因此,详细设计的结果基本上决定了最终程序代码的质量
6.1登陆模块
6.
1.1模块定义用户注册及登陆模块
(1)模块编号S1
(2)模块名称用户登陆
(3)模块功能用户登陆,登陆时用户添写用户编号和密码请求登陆,系统会从数据库中进行检索,如果有匹配的信息,则表示登陆成功,否则登陆失败,提示重新登陆
6.
1.2算法
(1)如果数据库中没有与输入用户编码相对应的数据,则视为“用户不存在”
(2)如果用户输入的密码和数据库中内容不一致,则视为“密码错误”
6.
1.3算法描述图14登录算法流程图
6.2存储查询模块
6.
2.1模块定义存储查询模块
(1)模块编号S2
(2)模块名称存储
(3)模块功能对银行存储进行管理,并可以查询存款的多少
6.
2.2算法
(1)如果数据库中没有与输入合理日期,则视为“输入无效”
(2)如果用户输入的名字和数据库中内容不一致,则视为“用户不存在”
6.
2.3算法描述图15查询算法流程图
6.3界面设计
6.
3.1登录窗口界面图16用户登录界面
6.
3.2系统登窗口主界面图17系统主界面
6.
3.3“正常收入”窗口界面图18“正常收入”界面
6.
3.4“正常支出”窗口界面图19“正常支出”界面7编码
7.1概述开发工具及编程脚本本系统的前台应用程序开发采用Eclipse应用开发工具使用java语言开发Eclipse是一个开放源代码的、基于Java的可扩展开发平台就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)使用ACCESS数据库系统进行数据的处理1数据定义用于创建,删除,修改数据库中的各类对象,如CREATE,DROP,ALTER2数据查询对数据库查询检索,命令具有SELECT3数据更新插入,更新,删除数据库,如INSERT,UPDATE,DELETE4数据控制数据控制管理,如表加锁,受权,回收授权,提交事物,回滚事物
7.2编码设计
7.
2.1主函数模块importjava.util.*;importjavax.swing.*;importjava.awt.event.*;importjava.awt.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.text.*;publicclassMoneymanagerimplementsActionListener{publicstaticMoneymanagerm=newMoneymanager;JFramef=newJFrame家庭理财系统;String[]Names={序号收入支出时间备注};JTabletable=newJTablenewShow.playerInfoNames;JScrollPanes=newJScrollPanetable;staticJPanelp=newJPanel;staticJButtonbt1=newJButton修改密码;staticJButtonbt2=newJButton修改数据;staticJButtonbt3=newJButton删除数据;staticJButtonbt4=newJButton财务统计;staticJButtonbt5=newJButton添加记录;staticJButtonbt6=newJButton帮助;staticJButtonbt7=newJButton数据清空;staticJLabellb1=newJLabel收入 元;staticJLabellb2=newJLabel支出 元;staticJLabellb3=newJLabel时间;staticJLabellb4=newJLabel备注;staticJLabellb5=newJLabel康良成高航作品07/06/2010;staticJLabellb6=newJLabel0;staticJTextFieldtxt1=newJTextField0;staticJTextFieldtxt2=newJTextField0;staticJTextFieldtxt3=newJTextFieldm.gettime;staticJTextFieldtxt4=newJTextField;publicstaticString[][]a=newString
[10000]
[5];publicstaticInteger[][]b=newInteger
[10000]
[5];publicvoidMoneymanagerWindow{f.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;f.setBounds10050849600;//主窗口大小f.setLayoutnull;f.setResizablefalse;p.adds;f.addp;table.setPreferredScrollableViewportSizenewDimension770370;table.setAutoResizeModeJTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS;p.setBounds20105800410;bt
1.setBounds5520040;f.addbt1;bt
1.addActionListenerthis;bt
2.setBounds215520040;f.addbt2;bt
2.addActionListenerthis;bt
3.setBounds425520040;f.addbt3;bt
3.addActionListenerthis;bt
4.setBounds635520040;f.addbt4;bt
4.addActionListenerthis;bt
5.setBounds7206010040;f.addbt5;bt
5.addActionListenerthis;bt
6.setBounds4052020040;f.addbt6;bt
6.addActionListenerthis;bt
7.setBounds26052020040;f.addbt7;bt
7.addActionListenerthis;lb
1.setBounds206020040;f.addlb1;lb
1.setFontnewFontSerifFont.BOLD18;lb
2.setBounds1706020040;f.addlb2;lb
2.setFontnewFontSerifFont.BOLD18;lb
3.setBounds3156020040;f.addlb3;lb
3.setFontnewFontSerifFont.BOLD18;lb
4.setBounds4706020040;f.addlb4;lb
4.setFontnewFontSerifFont.BOLD18;lb
5.setBounds50052025040;f.addlb5;lb
5.setFontnewFontSerifFont.BOLD20;//lb
6.setBounds71052225040;f.addlb6;//lb
6.setFontnewFontSerifFont.BOLD18;txt
1.setBounds60705520;f.addtxt1;txt
2.setBounds210705520;f.addtxt2;txt
3.setBounds3557010020;f.addtxt3;txt
4.setBounds5107020020;f.addtxt4;f.setVisibletrue;}publicvoidactionPerformedActionEvente{ife.getSource==bt1{newChangepw;}elseife.getSource==bt2{newChangeData;//newShow.getplayerInfo;m.f5;//table.updateUI;}elseife.getSource==bt3{newDelData;//table.updateUI;}elseife.getSource==bt4{newTongji;//table.updateUI;}elseife.getSource==bt5{newAddData;m.f5;//table.setValueAthuihjnmb32;//m.f5;}//newTable.table.updateUI;elseife.getSource==bt6{newHelp;//m.f5;}elseife.getSource==bt7{Stringj=JOptionPane.showInputDialog请输入密码:;ifnewGetOldPW.getpw.equalsj{newFormartData;}elseJOptionPane.showMessageDialognull密码错误!!,清空失败!!;//m.f5;}}publicStringgettime{Datenow=newDate;DateFormatd=DateFormat.getDateInstance;returnd.formatnow;}publicvoidf5{try{Class.forNamesun.jdbc.odbc.JdbcOdbcDriver;//加载access数据库驱动}catchClassNotFoundExceptione1{e
1.printStackTrace;}c.close;s.close;}catchSQLExceptione1{e
1.getStackTrace;}}publicstaticvoidmainStringargs[]{newEnter;}}
7.
2.2数据连接读取模块importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;classGetOldPW{Stringoldpw;Stringoldpw0;publicStringgetpw{try{Class.forNamesun.jdbc.odbc.JdbcOdbcDriver;//安装驱动}catchjava.lang.ClassNotFoundExceptione{System.out.printlnforname: +e.getMessage;}try{Connectionc=DriverManager.getConnectionjdbc:odbc:STU;//连接数据库Statements=c.createStatement;ResultSetrs=s.executeQueryselect*frompw;whilers.next{oldpw=rs.getStringpassword;}s.close;c.close;}catchSQLExceptione{System.out.printlnSQLException:+e.getMessage;}returnoldpw;}publicStringgetkk{try{Class.forNamesun.jdbc.odbc.JdbcOdbcDriver;//安装驱动}catchjava.lang.ClassNotFoundExceptione{System.out.printlnforname: +e.getMessage;}try{Connectionc=DriverManager.getConnectionjdbc:odbc:STU;//连接数据库Statements=c.createStatement;ResultSetrs=s.executeQueryselect*fromkk;whilers.next{oldpw0=rs.getStringusername;}s.close;c.close;}catchSQLExceptione{System.out.printlnSQLException:+e.getMessage;}returnoldpw0;}}
7.
2.3登陆模块importjava.awt.Color;importjava.awt.event.*;importjavax.swing.*;publicclassEnterextendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;staticJFramef1=newJFrame家庭理财系统;staticJButtonbt1=newJButton登入;staticJButtonbt2=newJButton退出;staticJLabellb2=newJLabel提示用户名:康良成密码123;staticJLabellb0=newJLabel用户名;staticJLabellb1=newJLabel密码:;staticJTextFieldkk=newJTextField;staticJPasswordFieldpw=newJPasswordField;publicEnter{f
1.setDefaultCloseOperationJFrame.DISPOSE_ON_CLOSE;f
1.setBackgroundColor.red;f
1.setLayoutnull;f
1.setBounds300200300200;f
1.setResizablefalse;bt
1.setBounds601006030;bt
2.setBounds1601006030;lb
0.setBounds203020020;lb
2.setBounds201020020;lb
1.setBounds306020020;kk.setBounds603015025;pw.setBounds606015025;f
1.addbt1;bt
1.addActionListenerthis;f
1.addbt2;bt
2.addActionListenerthis;f
1.addlb0;f
1.addlb2;f
1.addlb1;f
1.addkk;f
1.addpw;f
1.setVisibletrue;}publicvoidactionPerformedActionEvente{Stringabcd;a=newStringpw.getPassword;c=newStringkk.getText;b=newGetOldPW.getpw;d=newGetOldPW.getkk;ife.getSource==bt1{ifa.equalsb{f
1.setVisiblefalse;Moneymanager.m.MoneymanagerWindow;//newMoneymanager.MoneymanagerWindow;}else{pw.cut;//错误声音提示JOptionPane.showMessageDialognull密码错啦!!;}ifc.equalsd{f
1.setVisiblefalse;Moneymanager.m.MoneymanagerWindow;//newMoneymanager.MoneymanagerWindow;}else{kk.cut;//错误声音提示JOptionPane.showMessageDialognull用户名不存在!;}}elseife.getSource==bt2{System.exit0;}8课程设计小结在为期三周的课程设计中,我基本上完成了家庭理财管理系统的设计我熟悉了一个管理系统的设计步骤,每个阶段应该完成的任务,但我觉得还有很多要学习的地方关于本系统,虽然对家庭理财管理进行了系统的创建,但不可忽略的是这个系统并不是完美无缺,还存在着许多不完善的地方,其实我们要在以后的实践中去检验它的可用性,特别要考虑它的实时性和安全性,这才是我们最值得考虑的问题一个系统好不好,要经过反复的使用才能知道,不是光是理论中分析和设计出来的在系统的设计过程中当然也出现了各种各样的问题,特别是关于系统的可移植性,有许多不足之处这时我们主要任务就是应该多查阅相关资料,反复的熟练应用,才能把系统设计的巧,设计的好,小组成员之间的交流也十分重要经过这次的课程设计,我的感想很多首先要对软件工程的思想及步骤有很一定的了解,同时需要将学到的软件工程的思想运用到此次设计中来以前一直以为只要程序做好了就行,有了代码系统就完善了,可这种思想却是错误的软件工程的思想在做一个系统的时候尤为重要,一个好的文档在一个系统中占有举足轻重的地位有了一个好的文档,系统就很容易被用户读懂在调试程序的时候遇到了一些困难,但都通过查阅资料和小组讨论解决了此次课程设计主要就是完成报告册,最终也按照软件工程的步骤完成了此项任务9参考文献
[1]张海潘软件工程导论(第五版)[M].清华大学出版社.2008
[2]耿祥义Java2实用教程(第三版)[M].北京清华大学出版社.2006
[3]解圣庆徐兴敏Access2003数据库教程[M].北京清华大学出版社.200610附录附录1程序清单附录
1.1系统登陆模块程序清单importjava.awt.Color;importjava.awt.event.*;importjavax.swing.*;publicclassEnterextendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;staticJFramef1=newJFrame家庭理财系统;staticJButtonbt1=newJButton登入;staticJButtonbt2=newJButton退出;staticJLabellb2=newJLabel提示用户名:康良成密码123;staticJLabellb0=newJLabel用户名;staticJLabellb1=newJLabel密码:;staticJTextFieldkk=newJTextField;staticJPasswordFieldpw=newJPasswordField;publicEnter{f
1.setDefaultCloseOperationJFrame.DISPOSE_ON_CLOSE;f
1.setBackgroundColor.red;f
1.setLayoutnull;f
1.setBounds300200300200;f
1.setResizablefalse;bt
1.setBounds601006030;bt
2.setBounds1601006030;lb
0.setBounds203020020;lb
2.setBounds201020020;lb
1.setBounds306020020;kk.setBounds603015025;pw.setBounds606015025;f
1.addbt1;bt
1.addActionListenerthis;f
1.addbt2;bt
2.addActionListenerthis;f
1.addlb0;f
1.addlb2;f
1.addlb1;f
1.addkk;f
1.addpw;f
1.setVisibletrue;}publicvoidactionPerformedActionEvente{Stringabcd;a=newStringpw.getPassword;c=newStringkk.getText;b=newGetOldPW.getpw;d=newGetOldPW.getkk;ife.getSource==bt1{ifa.equalsb{f
1.setVisiblefalse;Moneymanager.m.MoneymanagerWindow;//newMoneymanager.MoneymanagerWindow;}else{pw.cut;//错误声音提示JOptionPane.showMessageDialognull密码错啦!!;}ifc.equalsd{f
1.setVisiblefalse;Moneymanager.m.MoneymanagerWindow;}else{kk.cut;//错误声音提示JOptionPane.showMessageDialognull用户名不存在!;}}elseife.getSource==bt2{System.exit0;}}/publicstaticvoidmainString[]args{/}}附录
1.2显示模块程序清单importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;classShow{String[][]playerInfo=newString
[10000]
[5];intxuhao=0;publicShow{this.getplayerInfo;}publicvoidgetplayerInfo{try{Class.forNamesun.jdbc.odbc.JdbcOdbcDriver;//加载access数据库驱动}catchClassNotFoundExceptione1{e
1.printStackTrace;}try{Connectionconn=DriverManager.getConnectionjdbc:odbc:STU;//建立连接这里student为数据库名Statementstmt=conn.createStatement;ResultSetrs=stmt.executeQueryselect*fromMoneymanager;//将查询得到的结果集给rsinti=0;whilers.next{playerInfo[i]
[0]=String.valueOfi+1;playerInfo[i]
[1]=String.valueOfrs.getInt收入;playerInfo[i]
[2]=String.valueOfrs.getInt支出;playerInfo[i]
[3]=rs.getString时间;playerInfo[i]
[4]=rs.getString备注;i++;}xuhao=i;conn.close;stmt.close;}catchSQLExceptione1{e
1.getStackTrace;}}publicstaticvoidmainString[]args{}}附录
1.3帮助模块程序清单importjava.awt.Color;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.*;classHelpextendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;staticJFramehp=newJFrame家庭理财系统帮助;staticJPanelhelp=newJPanel;staticJButtonbt=newJButton退出;staticJLabellb1=newJLabel帮助;staticJLabellb2=newJLabel
1、修改密码单击修改密码,则直接输入新的密码,然后确定就可以了;;staticJLabellb3=newJLabel
2、修改数据单击修改数据,然后选择要修改的对象的序号,再按需要修改;;staticJLabellb4=newJLabel
3、删除数据单击删除数据,然后选择要删除的对象的序号,直接点击删除;;staticJLabellb5=newJLabel
4、财务统计单击统计,可以按照给定的规则处理,可以按照某一时间进行统计;;staticJLabellb6=newJLabel
5、总结余——显示的是最后的总计,与现款直接对应,简单明了;;staticJLabellb7=newJLabel
6、程序的用户名康良成;初始密码为:123;;staticJLabellb8=newJLabel
7、单击添加,则可以在该行右边直接按次序输入财务信息;;staticJLabellb9=newJLabel
8、本程序为康良成和高航开发,望大家多多提些建议;publicHelp{hp.setDefaultCloseOperationJFrame.DISPOSE_ON_CLOSE;help.setLayoutnull;hp.setLayoutnull;hp.setBounds270180520300;help.setBounds00520200;hp.setResizablefalse;hp.setBackgroundColor.red;bt.setBounds15022020040;hp.addbt;bt.addActionListenerthis;lb
1.setBounds152060020;help.addlb1;lb
2.setBounds154060020;help.addlb2;lb
3.setBounds156060020;help.addlb3;lb
4.setBounds158060020;help.addlb4;lb
5.setBounds1510060020;help.addlb5;lb
6.setBounds1512060020;help.addlb6;lb
7.setBounds1514060020;help.addlb7;lb
8.setBounds1516060020;help.addlb8;lb
9.setBounds1518060020;help.addlb9;hp.addhelp;hp.setVisibletrue;help.setVisibletrue;}publicvoidactionPerformedActionEvente{hp.setVisiblefalse;}publicstaticvoidmainString[]args{//newHelp;}}附录
1.4学生模块程序清单importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;classDelData{privatestaticfinallongserialVersionUID=1L;Moneymanagerm=newMoneymanager;Stringj=JOptionPane.showInputDialog请输入需要删除的行序号:;publicIntegeri=Integer.valueOfj;publicDelData{newShow.getplayerInfo;ifinewShow.xuhao||i1{JOptionPane.showMessageDialognull没有第+i+行记录!!!!;}else{try{Class.forNamesun.jdbc.odbc.JdbcOdbcDriver;//安装驱动}catchjava.lang.ClassNotFoundExceptione{System.out.printlnforname: +e.getMessage;}try{Connectionc=DriverManager.getConnectionjdbc:odbc:STU;//连接数据库Statements=c.createStatement;PreparedStatementp1=c.prepareStatementdeletefromMoneymanagerwhere序号=;PreparedStatementp2=c.prepareStatementUPDATEMoneymanagerset序号=where序号=;p
1.setInt1i;p
1.executeUpdate;ResultSetrs=s.executeQueryselect*fromMoneymanager;intk=1;whilers.next{ifk=ik=newShow.xuhao{p
2.setInt1k;p
2.setInt2k+1;p
2.executeUpdate;}k++;}Moneymanager.m.f5;intl=0;forl=0;l4;l++Moneymanager.m.table.setValueAtk-1l;p
1.close;p
2.close;s.close;c.close;JOptionPane.showMessageDialognull删除第+i+行数据成功!!;}catchSQLExceptione{System.out.printlnSQLException:+e.getMessage;}}}publicstaticvoidmainString[]args{//newDelData;}}收入支出表收入支出帐簿用户设置信息收入支出管理备注消费表存款表信息管理统计用户D5日常支出信息表D2借入收入信息表D3返反收入信息表D4股票收入信息表D6股票支出信息表D7借出支出信息表P1家庭理财管理系统余额D1一般收入信息表F4查询条件信息F5统计条件信息F1收入信息F2支出信息F3存款信息查询结果D8还贷信息表D9存款信息表D10取款信息表F
1.4股票收入信息D2借入收入信息表D3返反收入信息表D4股票收入信息表D1一般收入信息表F
1.1一般收入信息F
1.2借入收入信息F
1.3返还收入信息P
1.1收入信息管理F
2.4还贷支出信息F
2.1日常支出信息F
2.2股票支出信息F
2.3借出支出信息P
1.2支出管理D5日常支出信息表D6股票支出信息表D7借出支出信息表D8还贷信息表F
3.1存款信息F
3.2取款信息P
1.3存取款信息管理D9存款信息表D10取款信息表D5日常支出信息表D2借入收入信息表D3返反收入信息表D4股票收入信息表D6股票支出信息表D7借出支出信息表D1一般收入信息表统计结果D8还贷信息表F5统计条件信息P
1.5统计信息管理名字用户编号别名描述用户的编号数据类型char长度2名字消费名称别名描述消费名称数据类型char长度10名字还货日期别名描述支出的还货日期日期数据类型datetime长度8名字一般收入信息表描述存储一般收入的信息编号D1组成收入人,收入金额,日期,收入来源,说明名字股票收入信息表描述存储股票收入的信息编号D4组成股票名称,总金额,首数,卖出日期,卖出时间,卖出人,说明名字日常支出表描述存储日常支出信息编号D5组成消费人,总价格,消费日期,消费时间,消费名称,消费用途,数量,说明名字借出支出信息表描述存储借出支出信息编号D7组成借出人,借款金额,借款人,借出日期,借出时间,说明名字股票支出信息表描述存储股票支出信息编号D6组成股票名称,购买日期,购买时间,购买人,总金额,首数,说明名字一般收入信息描述用户录入的一般收入信息编号F
1.1组成收入人,收入金额,日期,收入来源,说明名字收入信息描述用户录入收入信息编号F1组成F
1.1F
1.2F
1.3F
1.4名字返回收入信息描述用户录入的返回收入信息编号F
1.3组成返还日期,借款人,收款人,返还时间,说明,返还金额名字借入收入信息描述用户录入的借入收入信息编号F
1.2组成借款人,代款人,借入金额,借款日期,借款时间,说明名字支出信息描述用户的支出信息编号F2组成F
2.1F
2.2F
2.3F
2.4名字日常支出信息描述用户录入的日常支出信息编号F
2.1组成消费人,总价格,消费日期,消费时间,消费名称,消费用途,数量,说明名字股票支出信息描述用户录入的购买股票的支出信息编号F
2.2组成股票名称,购买日期,购买时间,购买人,总金额,首数,说明名字借出支出信息描述用户录入的借出支出信息编号F
2.3组成借出人,借款金额,借款人,借出日期,借出时间,说明名字查询条件信息描述用户选择的查询信息编号F4组成名字收入信息管理描述对收入的各项信息进行录入编号P
1.1输入/输出数据流D1,D2,D3,D4,名字家庭理财管理系统描述实现整个系统的功能编号P1输入/输出D1,D2,D3,D4,D5,D6,D7,D8,D9,D10名字支出信息管理描述对家庭支出的信息进行录入编号P
1.2输入/输出数据流D5,D6,D7,D8名字存储信息管理描述对家庭存款及取款的信息进行录入编号P
1.3输入/输出数据流D9,D10名字查询信息管理描述对家庭收支的信息进行查询并显示结果编号P
1.4输入/输出数据流D1,D2,D3,D4,D5,D6,D7,D8一般收入收入人收入金额日期收入来源备注家庭成员成员编号成员名称成员权限借入收入借款人货款人借入金额借款时间说明借款日期取款支款人支款金额日期银行说明日常支出总价格消费日期消费时间消用途备注消费名称消费人数量家庭理财系统收入管理一般收入信息借入收入信息返还收入信息股票收入信息支出管理日常支出信息支出信息借出支出信息还贷支出信息存储管理现金存储信息存储支出信息存储查询设置设置成员名称设置消费名称设置收入来源设置银行名称数据统计日常支出借出返还借入还贷综合统计查询返还收入借出支出借入收入日常支出一般收入股票买入股票卖出开始用户登陆失败超过三次退出系统读取用户类型基本信息管理数据统计管理理财系统管理管理自己的用户信息eq\o\ac○1管理自己的用户信息eq\o\ac○2管理普通用户的信息用户管理模块家庭理财管理模块重试是否失败成功开始输入查询日期检索库中是否存在显示信息结束YN。