个人财务管理系统_第1页
个人财务管理系统_第2页
个人财务管理系统_第3页
个人财务管理系统_第4页
个人财务管理系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

目 录1 前言12 需求分析12.1 课程设计目的12.2 课程设计任务12.3 设计环境22.4 开发语言23 分析和设计23.1 界面设计23.2 系统E-R模型53.3 表空间及表的设计53.4 视图设计63.5 存储过程、函数、序列的设计63.6 触发器设计73.7 角色、用户、权限设计84 课程设计总结9致 谢10附 录111 前言俗话说“你不理财,财不理你”,只有通过合理的理财,才能够有效的管理你的个人资产,使它得到的合理运用。个人理财软件不仅可以帮你记帐,更多的是可以实时掌握你的收入与支出,掌握资金的变动情况,同时还可以统计出资金的主要流向,从而更合理的分配资金,提高理财的效率。本次课程设计的任务就是综合运用所学的Oracle数据库知识设计一个简单的个人理财软件个人记账系统。2 需求分析2.1 课程设计目的通过专业课程设计,即大型数据库系统课程设计,有助于培养学生综合运用数据库相关知识解决实际问题的能力。本设计要求对实际问题进行需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。同时要求对数据库的运营、管理及使用上进行必要的规划和实现。2.2 课程设计任务针对财务管理信息系统的需求,设计一个数据库系统。具体内容如下:(1) 根据需求,建立ER模型。通过ER图表示。(2) 在此基础上,设计物理表结构,编写创建数据库表的语句。较高要求为在设计创建数据表语句的同时考虑性能上的要求,采用相关的磁盘存储技术。(3) 从实际查询应用出发,为一些主要的应用模块设计至少3个参数化视图。(4) 针对常用的业务,创建包,同时实现一个函数放入包中。(5) 从数据检验的角度出发,为相关的表建立至少1个触发器。(6) 从数据更新或修改的角度出发,设计至少1个存储过程。(7) 从安全的角度出发,规划系统的角色、用户、权限,并通过相关的SQL实现。(8) 预计每个表的大致容量和增长速度。指定备份的方案,写出相关的备份命令。(9) 以上所有命令及脚本均需测试,在设计报告中说明其功能并记录其输出。2.3 设计环境(1)WINDOWS 2000/2003/XP系统(2)Oracle数据库管理系统(3)Java开发及运行环境2.4 开发语言PL/SQL语言JAVA3 分析和设计3.1 界面设计界面设计工作使用eclipse完成,其中使用了JDatePicker日期控件。1. 主界面设计2.收入界面设计2. 支出界面设计4.查询界面设计3.2 系统E-R模型3.3 表空间及表的设计1 .创建收入表 CREATETABLEBANK_INCOME ( IN_IDNUMBERNOTNULLENABLE, IN_NAMEVARCHAR2(50BYTE)NOTNULLENABLE, IN_DATEVARCHAR2(50BYTE)NOTNULLENABLE, IN_MONEYNUMBER(10,0)NOTNULLENABLE, IN_COMMENTVARCHAR2(500BYTE)NOTNULLENABLE, CONSTRAINTBANK_INCOME_PKPRIMARYKEY(IN_ID); 收入表BANK_INCOME表结构2.创建支出表CREATETABLEBAN_OUT(OUT_IDNUMBERNOTNULL,OUT_NAMEVARCHAR2(50)NOTNULL,OUT_DATEVARCHAR2(50)NOTNULL,OUT_MONEYNUMBER(10,2)NOTNULL,OUT_COMMENTVARCHAR2(500)NOTNULL,CONSTRAINTBAN_OUT_PKPRIMARYKEY(OUT_ID)ENABLE );支出表bank_out表结构3.4 视图设计1收入视图(Bank_income_view)设计Create or replace view Bank_income_viewAsSelect in_id,in_name,in_date,in_money,in_commentFrom bank_income;2.支出视图(Bank_out_view)设计Create or replace view Bank_out_viewAsSelect out_id,out_name,out_date,out_money,out_commentFrom bank_out;3.5 存储过程、函数、序列的设计1.存储过程设计2.函数设计创建收入ID序列CREATESEQUENCESCOTT.SEQ_INCOME_IDMINVALUE1MAXVALUEINCREMENTBY1STARTWITH1CACHE20NOORDERNOCYCLE; 创建支出ID序列 CREATESEQUENCESCOTT.SEQ_OUT_IDMINVALUE1MAXVALUEINCREMENTBY1STARTWITH1CACHE20NOORDERNOCYCLE;3.6 触发器设计1.创建检测收入ID序列的触发器CREATETRIGGERTRI_AUTO_INCOME_IDBEFOREINSERTONBANK_INCOMEFOREACHROWBEGINSELECTSEQ_INCOME_ID.NEXTVALINTO:NEW.IN_IDFROMDUAL;END;2.创建检测支出ID序列的触发器CREATEORREPLACETRIGGERTRI_AUTO_OUTCOME_IDBEFOREINSERTONBANK_OUTFOREACHROWBEGINSELECTSEQ_OUT_ID.NEXTVALINTO:NEW.OUT_IDFROMDUAL;END;3.7 角色、用户、权限设计数据库ORCL中新建一个scott用户,在cmd中进行解锁,并赋予权限。所用语句如下:创建scott用户,口令为scott:createuserscottidentifiedbyscottdefaulttablespaceusersquota10Monusersaccountlock;解锁scott用户:alteruserscottaccountunlock;赋予scott用户权限:grantcreatesession,createtable,createview,createsequence,createtriggertoscott;4 课程设计总结通过这次的课程设计实验,我发现自己对数据库课程的兴趣有了很大提高,而且对课本的知识更加的了解并有了一定的掌握,通过实验我懂得了如何创建索引、视图、存储过程以及触发器。几天的数据库课程设计很快就结束了,在这短暂的几天的的时间里,发现自己学会了很多课外的东西,特别是和同学们一起讨论分析,以及复习了我们所学过的相关数据库知识,进一步了解了数据库的实践应用过程,增强了课外的动手实践能力。数据库设计主要讨论数据库设计的方法和步骤应注意的事项。概念结构设计采用的是实体属性分析法。实体属性分析法是从总体的概念入手,从分析一个单位的事务活动开始,首先识别需求分析中所提供的实体及实体间的联系,建立一个初步的数据模型框架,然后在逐步的求精的方法加上必需的描述属性,形成一个完整的局部模型,称为用户视图,最后在加上这些视图集成一个统一的数据模式,称为用户视图的集成,这种统一的数据模式(即全局信息结构)通常用E-R图表示。逻辑结构设计的任务是将概念结构设计的E-R图,转化为与选用的DBMS所支持的数据模型相符的逻辑结构,形成逻辑模型。总而言之,这次的课程设计我学到了很多有用很有实践意义的课外知识并体会了一个真理:实践是检验真理的唯一标准!在这里感谢老师和同学的帮助!参考文献1 张福祥. C语言程序设计M. 辽宁大学出版社,2008.12 张福祥,王萌C语言程序设计习题解答与实验实训M沈阳:辽宁大学出版社,20083 牛莉,刘远军等计算机等级考试辅导教程M北京:中国铁道出版社,2008致 谢经过两周的不懈努力,很高兴能完成一个oracle程序。从中体会到以及学习到很多关于oracle的知识,是我更加了解了oracle,并更加熟练了oracle。 在此次设计中我也遇到了很多的问题,都是经过查看老师所给的关于课程设计书和图书馆借的书才明白所用函数的用法,更重要的是上课时老师的细心教学,使我们学会了许多关于oracle的基础知识,为本次的课程设计打好了很好的基础。从而使我能够顺利完成这次课程设计。 在本次做课程设计过程中,要感谢申寿云老师的悉心关照,一直陪伴我们,并为大家讲解不懂的地方,很是辛苦,也很是忙碌。有时我会突然对某个函数有了编写的灵感,然后就会去问一下老师是否可行,有时都到了很晚的时候了,老师还会细心的跟我讲解,这让我很是感动。也要感谢和我一起做这个课题的同学们,因为我们会经常互相讨论不懂的地方,互相学习。正是有了他们的帮助我才能成功的完成此次课程设计。虽然只有短短的几周时间,但是通过课程设计让我锻炼了动手能力和思考能力,再次向老师致以深深的谢意!附录主要代码:1.连接数据库代码:package com.sxt.bank.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;/* * 数据库工具类 * author Administrator * */public class DBUtil /* * 专用于取得数据库的连接 * return */public static Connection getConn()Connection conn=null;try /加载驱动Class.forName(oracle.jdbc.driver.OracleDriver);String url=jdbc:oracle:thin:172.19.95.36:1521:orcl;/取得连接conn=DriverManager.getConnection(url, scott, tiger); catch (Exception e) e.printStackTrace();return conn;/* * 专用于关闭连接 * param conn * param stat */public static void closeConn(Connection conn,Statement stat)try stat.close();conn.close(); catch (Exception e2) e2.printStackTrace();2.收入数据处理代码:package com.sxt.bank.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import com.sxt.bank.entity.InCome;/* * 数据处理 * author Administrator * */public class IncomeDao /* * 用于保存收入项到数据库 * param income */public void saveIncome(InCome income)Connection conn=null;PreparedStatement stat=null;try conn=DBUtil.getConn();/得到预编译执行器stat=conn.prepareStatement(insert into bank_income(in_name,in_date,in_money,in_comment) values(?,?,?,?);/设置参数/stat.setInt(1,2);stat.setString(1, income.getInName();stat.setString(2, income.getInDate();stat.setFloat(3, income.getMoney();stat.setString(4, income.getComment();/执行stat.execute(); catch (Exception e) e.printStackTrace();finallyDBUtil.closeConn(conn, stat);3.支出数据处理代码:package com.sxt.bank.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import com.sxt.bank.entity.Out;/* * 支出的数据处理 * author Administrator * */public class OutDao /* * 用于保存支出项到数据库 * param income */public void saveOutcome(Out out)Connection conn=null;PreparedStatement stat=null;try /加载驱动Class.forName(oracle.jdbc.driver.OracleDriver);String url=jdbc:oracle:thin:172.19.95.36:1521:orcl;/取得连接conn=DriverManager.getConnection(url, scott, tiger);/得到预编译执行器stat=conn.prepareStatement(insert into bank_out(out_name,out_date,out_money,out_comment) values(?,?,?,?);/设置参数stat.setString(1,out.getOutName();stat.setString(2, out.getOutDate();stat.setFloat(3, out.getMoney();stat.setString(4, out.getComment();/执行stat.execute(); catch (Exception e) e.printStackTrace();finallytry stat.close();conn.close(); catch (Exception e2) e2.printStackTrace();4.查询代码:package com.sxt.bank.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import com.sxt.bank.entity.InCome;import com.sxt.bank.entity.Out;/* * 收入支出查询 * author Administrator * */public class QueryDao /* * 取得数据的记录,并封装成集合 * return */public ArrayList getInList()Connection conn=null;PreparedStatement stat=null;ResultSet rs=null;/新建一个集合用来装outArrayList inList=new ArrayList();try /得到连接conn=DBUtil.getConn();/SQL语句执行器stat=conn.prepareStatement(select * from bank_income);/执行SQL查询,得到结果集rs=stat.executeQuery();while(rs.next() /从记录中取值 参数类型 字段名String inName=rs.getString(in_name);String inDate=rs.getString(in_date);float money=rs.getFloat(in_money);String comment=rs.getString(in_comment);/封装成对象InCome in=new InCome(inName, inDate, money, comment);/将对象装载到集合中inList.add(in)

温馨提示

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

评论

0/150

提交评论