当前位置:文档之家› 家庭记账管理系统数据库课程设计报告

家庭记账管理系统数据库课程设计报告

《数据库原理及应用》课程设计报告题目家庭记账管理系统学生姓名学号 4专业班级网络工程指导老师设计日期 2014年6月25日指导老师评阅意见:评阅成绩:签名:一、课题任务课题目的:家庭记账也是一门科学,必须按照科学的方式来进行,才能有效果。

家庭记账的原理与企业记账类似,有两个基本要素,一是分账户,要有账户的概念,分账户可以是按成员、按银行、按现金等,不能把所有收支统计在一起,要分账户来记。

二是分类目,收支必须分类,分类必须科学合理,精确简洁,类目相当于会计中的科目。

由此可见,家庭记账也需要系统性的管理。

家庭记账数据库管理系统是为了让用户更简便的进行日常及记账。

课题意义:1、在进行前台设计时,我们运用的是本学期所学的Java语言,Java语言是一门很灵活也很方便的语言,尽管老师平时在课堂上传授了很多Java语言的基础知识,但,要掌握一门语言,课堂上的输入远远不够,因此,通过此次课程设计,可以加深对java 的运用能力。

2、数据库是一门很有学问的计算机基础学科,他对于我们以后在计算机方面的发展有着承前启后的作用,我们都知道,大学的学习更多的是实际操作。

虽然数据库是门理论性很强的学科。

但,只有将所学的东西运用于实践,用自己所学的知识制作出用户有用的产品才是最能激励自己的。

也只有在事件中才能补充自己知识的缺陷,此次课程设计就是让我们更熟悉设计数据库的过程并更灵活的运用起来。

3、家庭记账是每个用户都要做的是,一个方便的高效可靠的记账系统可以让用户们的记账更简便。

课题要求:本系统要求对家庭的收入情况,教育支出情况,非教育支出情况进行系统的分析设计,并形成系统的说明书同时用Eclipse来实现该系统。

目的是通过系统分析,使各个家庭对自己的家庭财务有一个全面的了解和分析,以便能做到节约开支,细水长流,同时进行必要的投资。

4、可行性分析:可行性研究的目的是用最小的代价在尽可能短的时间内解决问题。

经济可行性:计算机的价格已经非常低廉,性能却有了长足的进步。

二本系统的开发,为家庭的工作效率带来了一个本质的飞跃为此主要表现在以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大提高家庭的工作效率,等等。

所以本系统在经济上是可行的。

技术可行性和运行可行性:为了有助于更好的系统的开发,我自己对社会普通家庭的收入情况有了初步的了解。

现在普通家庭的固定收入在几千元左右,每月在各个方面至少要1000元左右的开销,加上固定的各项费用,方方面面很复杂,很难清楚明了的记录下来,一般是手工记账,这样很麻烦也算不清楚,每个月都要花大量的时间在算钱上,而由于一些比较缺乏电脑方面的知识,所以,电脑对他们来说只是一个摆设但只要安装家庭理财系统,他们将只要点击鼠标就可以对家庭的收支情况进行系统和计算。

本系统开发利用SQL Server2005作为本系统的数据库,他是一个支持多用户的新型数据库,适用于各种大中小规模的数据需求。

使用Eclipse作为被系统开发环境,Eclipse拥有一个可视化的集成开发环境,采用面向对象的编程语言Java的开发结构框架。

Eclipse 提供了500多个可使用构件,利用这些部件,开发人员可以快速的构造出应用系统。

开发人员也可以根据自己需要修改部件或用本身编写的部件。

他作为一种现代化的编程语言,提供完善的指令控制语句、类与对象的支持及丰富数据类型给开发高兴能提供了保障。

综上所述,本系统的设计与开发在技术和硬件设备上的条件都是满足的,因此,它在技术上是可行的。

本系统为一个小型的家庭理财系统,所耗费的资源非常小,学校的电脑无论是在硬件和软件都能满足条件,因此,本系统在运行上是可行的。

子课题任务名称:Java语言支持的界面设计,数据库的建立,数据库与Java的连接。

二、需求分析(含业务流程图,数据流程图,E-R图等)业务流程图E-R图数据流图三、概要设计(模块划分等)系统功能模块本系统分为五大功能模块:收入登记,非教育支出登记,教育支出登记,支出总查询,退出系统收入登记功能:点击收入登记可进入收入登记界面,再根据需要点击添加记录或删除记录功能键进行添加或删除。

最后点击刷新,即可看到操作之后的界面。

最后点击退出,即完成了收入登记操作。

非教育支出登记功能:点击非教育支出登记可进入非教育支出登记界面,再根据需要点击添加记录或删除记录点击添加或删除。

最后点击刷新,即可看到操作后的界面。

最后点击退出,即完成了非教育登记操作。

教育登记操作:点击教育支出登记可进入教育支出登记界面,再根据需要点击添加记录或删除记录点击添加或删除。

最后点击刷新,即可看到操作后的界面。

最后点击退出,即完成了教育登记操作。

支出总查询:点击支出总查询,则可看到支出总查询界面,从上面可看到近期的支出情况,在右下角会有一个余额的显示。

如果需要删除则可点击删除界面。

操作完毕点击退出。

退出系统:上述操作都完成则可点击退出系统键退出系统。

四、详细设计1、数据库的设计底层数据表的结构如图一:图一.数据表的结构数据表的截图如图二:图二.数据表数据库与java连接的代码如下:package com.wenlixueyuan;import java.sql.*;public class Database {Connection conn = null;ResultSet rs = null;Statement stmt = null;PreparedStatement pstmt = null;public RecordItem[] AccessData() throws Exception {Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );String url = "jdbc:odbc:FA";conn = DriverManager.getConnection( url, "root", "admin" );stmt= conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABL E );String SQL = "select * from pf";rs = stmt.executeQuery( SQL );RecordItem[] item = new RecordItem[ 100 ];for ( int j = 0; j < 100; j++ )item[ j ] = new RecordItem();int i = 0;while ( rs.next() && ( i < 100 ) ) {item[ i ].SetEmployeeID( rs.getString( "经手人" ) );item[ i ].SetEmployeeName( rs.getString( "日期" ) );item[ i ].SetOnWorkTime( rs.getString( "收入" ) );item[ i ].SetOffWorkTime( rs.getString( "非教育支出" ) );item[ i ].SetLeaveWorkTime( rs.getString( "教育支出" ) );item[ i ].SetDescribe( rs.getString( "备注" ) );i++;}RecordItem[] result = new RecordItem[ i ];for ( int j = 0; j < i; j++ ) {result[ j ] = new RecordItem();result[ j ] = item[ j ];}rs.close();stmt.close();conn.close();return result;}public void StoreData( RecordItem item ) throws Exception {Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );String url = "jdbc:odbc:FA";conn = DriverManager.getConnection( url, "root", "admin" );stmt = conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE );String SQL1 = "select * from pf where 经手人 = '" +item.GetEmployeeID() + "'";rs = stmt.executeQuery( SQL1 ); //查找是否存在该员工的记录System.out.println(rs.next());pstmt = conn.prepareStatement("insert into pf values(?,?,?,?,?,?)");pstmt.setString(1, item.GetEmployeeID());pstmt.setString(2, item.GetEmployeeName());pstmt.setString(3, item.GetOnWorkTime());pstmt.setString(4, item.GetOffWorkTime());pstmt.setString(5, item.GetLeaveWorkTime());pstmt.setString(6, item.GetDescribe());pstmt.execute();}rs.close();stmt.close();pstmt.close();conn.close();} //删除相应工号的员工记录public void DeleteData( String strEmployeeID ) throws Exception {Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );String url = "jdbc:odbc:FA";conn = DriverManager.getConnection( url, "root", "admin" );stmt = conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE );String SQL = "delete from pf where 经手人='" + strEmployeeID + "'";stmt.execute( SQL ); //查找是否存在该员工的记录}}3.前台的设计关于前台的设计我们采用的是java语言当中的application小窗口图形界面的一个输入和输出,具体的设计见调试分析。

相关主题