基于Web的家庭账务系统_第1页
基于Web的家庭账务系统_第2页
基于Web的家庭账务系统_第3页
基于Web的家庭账务系统_第4页
基于Web的家庭账务系统_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、重庆交通大学计算机与信息学院课程设计报告 专 业: 计算机科学与技术 课程设计名称: 数据库与WEB系统课程设计 题 目: 基于WEB的家庭账务系统 班 级: 设 计 者: 学 号: 指 导 教 师: 完 成 时 间: 2016年1月8号 教师评阅: 签名: 年 月 日实验成绩:重庆交通大学计算机与信息学院课程设计任务书课 程数据库与WEB系统课程设计班级指导教师题 目基于Web的家庭账务系统完成时间2016年1月7月主要内容要求完成以下功能模块:1 登录功能2 记账-收入3 记账-支出4 记账-转账5 明细-支出6 明细-收入7 账户管理:支付宝,一卡通,工商银行,邮政银行,现金,公交卡8

2、反馈管理设计报告要求1封面:(格式附后)2课程设计任务书3课程设计报告: 系统总体方案 设计思路和主要步骤 各功能模块和流程图 设计代码 心得体会和参考资料说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(也可用以打印),文字不少于5000 字,并装订成册。版面要求不作要求上机时间安排星期周次一二三四五六日第17周晚上晚上第18周晚上晚上指导时间地点上机时间,软件中心实验室1、 需求分析 收支管理是一个家庭日常生活中不可缺少一部分,也是财务管理的重要组成部分。它的内容对于财务管理者来说都至关重要,所以家庭财务管理系统应该能够为用户提供完整、正确和灵活的理财信息和快捷的分

3、析手段。但一直以来人们使用传统人工的方式文件和纸张记账管理模式,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 所以利用计算机实现财务信息的管理的自动化将势在必行。2、 概要设计1、 功能设计1) 登录功能:用户使用用户名和密码登录系统,当且仅当用户的用户名和密码均正确时可以进入系统,否则为非法用户,禁止进入系统。2) 记账功能:分为三部分:支出、收入和转账。用户输入金额,选择类别,账户,时间,成员并且填写备注之后,点击提交,便可成功记账。记账成功之后将数据录入数据库,方便用户查询账务信息。并且,用户在记录支出

4、,收入和转账时涉及到的账户的金额随着支出而减少,收入而增加,转账而流通。3) 账户管理功能:系统默认设置六个账户:现金、一卡通、工商银行、邮政银行、公交卡和支付宝。用户可以查询和更改账户信息。4) 明细功能:用户可以查看家庭的详细支出和收入信息,以表格的形式显示。5) 反馈功能:用户点击关于我们可以查看本系统的具体设计信息。2、 绘制流程图1) 总流程图2) 登录流程图3) 记账流程图4) 明细流程图5) 账户流程图6) 明细流程图3、 系统演示1) 登录界面2) 系统主界面3) 菜单栏界面4) 记账界面5) 账户界面6) 明细界面7) 关于我们界面4、 开发工具1) 系统开发平台:eclip

5、se-jee-mars-1-win32-x86_64。2) 数据库管理系统软件:SQL Server 2014 Management Studio。3) 运行平台:Windows XP/Windows 7/Windows 8/Windows 10。4) Java开发包:jdk1.8.0_31,jre1.8.0_31。5) Web服务器:Tomcat 8.0。5、 数据库E-R图 6、 数据库概念设计7、 数据库逻辑设计8、 数据库物理设计9、 表之间关系E-R图3、 详细设计1、 数据库类设计package com.pkh.dao;import java.io.IOException;impo

6、rt java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public cla

7、ss UserDao String url = "jdbc:sqlserver:/localhost:1433;DatabaseName=家庭财务系统" /指定URL地址 String username="sa" /指定用户名String password="123456" /指定密码private Connection con = null; /定义操作接口变量private Statement stmt = null; /定义操作接口变量private ResultSet rs = null; /定义操作接口变量/* * 通过构造

8、方法加载数据库驱动 */public UserDao() try Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); catch (Exception ex) System.out.println("数据库加载失败");/* * 创建数据库连接 * return */public boolean Connection() try con = DriverManager.getConnection(url, username, password); catch (SQLExcepti

9、on e) System.out.println(e.getMessage();System.out.println("creatConnectionError!");return true;/* * 对数据库的查询操作 * param sql * return * throws SQLException */public ResultSet selectStatic(String sql) throws SQLException ResultSet rs=null;if (con = null) Connection();try stmt = con.createStat

10、ement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);rs = stmt.executeQuery(sql); catch (SQLException e) e.printStackTrace();return rs;/* * * return */public boolean executeUpdate(String sql) if (con = null) Connection();try stmt = con.createStatement();int iCount = stmt.executeUpdate(s

11、ql);System.out.println("操作成功,所影响的记录数为" + String.valueOf(iCount); catch (SQLException e) System.out.println(e.getMessage();return false;closeConnection();return true;/* * 关闭数据库的操作 */public void closeConnection() if (con != null && stmt != null && rs != null) try rs.close();s

12、tmt.close();con.close(); catch (SQLException e) e.printStackTrace();System.out.println("Failed to close connection!"); finally con = null;2、 主页设计<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC

13、 "-/W3C/DTD HTML 4.01 Transitional/EN" "/TR/html4/loose.dtd"><html><head lang="en"> <meta charset="UTF-8"> <title>家庭账务系统</title></head><!-框架,划分浏览器窗口-><!-框架集-><frameset rows="100,*"

14、 border="0"> <!-框架,一个框架中显示一个网页-> <frame src="top.jsp" id="topFrame" name="topFrme" scrolling="no" noresize="yes"> <frameset cols="180,*"> <frame src="left.jsp" id="leftFrame" name="

15、leftFrame"/> <frame id="mainFrame" name="mainFrame"/> </frameset></frameset><noframes> </body> 浏览器版本过低,不支持框架! </body></noframes></html>3、 主页Top<html><head lang="en"> <meta charset="UTF-8"&g

16、t; <title></title> <style> body margin: 0px; background-color: #caffff; body,th,td font-size: 12px; font-family: "微软雅黑", "黑体", "新宋体", "Arial Unicode MS" .logo float: left;/*浮动,左,1、将行内元素变为级块元素(设置边界,填充才会有效。有自己的定位,边界,填充)2、浮动的元素可以自动填充网页的空白处*/ mar

17、gin: 25px 0px 0px 50px; .title float:left; margin: 55px 0px 0px 10px; font-size: 25px; font-weight: bold; letter-spacing: 5px;/*字符间距*/ color: #25d8ff; .close float:right; margin-top: 20px; margin-right: 60px; text-decoration:none;/*去除下划线*/ color: red; .username float:right; margin-top: 70px; margin-

18、right: -30px; color: #25d8ff; </style></head><body> <!-图像-> <img src="images/logo.png"width="80" height="80" class="logo"/> <span class="title">家庭账务系统</span> <!-超链接,链接到其他网页-> <!- 在顶层显示(最外面)-> <

19、a href="login.jsp" class="close" target="_top">退出</a> <!-一种行内元素,一般用于文本修饰,无任何样式,需要自定义样式,需要给文本加样式时,就用span括起来-> <span class="username">用户:贾少伟</span><style></style></body></html>4、 主页Left<html><head>&l

20、t;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>家庭账务系统导航菜单</title><STYLE type=text/css>BODY BACKGROUND: #e8ffff;MARGIN: 0px;FONT: 12pt 微软雅黑TABLE BORDER-RIGHT: 0px;BORDER-TOP: 0px;BORDER-LEFT: 0px;BORDER-BOTTOM: 0pxTD FONT: 12px 微软雅黑

21、img BORDER-RIGHT: 0px;BORDER-TOP: 0px;VERTICAL-ALIGN: bottom;BORDER-LEFT: 0px;BORDER-BOTTOM: 0pxA FONT: 12px 微软雅黑;COLOR: #215dc6;TEXT-DECORATION: noneA:hover COLOR: #428eff.sec_menu BACKGROUND: #e8ffff;OVERFLOW: hidden;.list_title .list_title SPAN FONT-WEIGHT: bold;LEFT: 8px;COLOR: #215dc6;POSITION:

22、 relative;TOP: 2px;visibility: visible;.list_title2 .list_title2 SPAN FONT-WEIGHT: bold;LEFT: 8px;COLOR: #428eff;POSITION: relative;TOP: 2px</STYLE><script language="javascript">/展开菜单项function show(obj, maxg, obj2) if (obj.style.pixelHeight < maxg) obj.style.pixelHeight += m

23、axg / 10;obj2.background = "images/title_hide.gif" /改变菜单标题的背景if (obj.style.pixelHeight = maxg / 10) obj.style.display = 'block' /设置指定菜单项显示myObj = obj;mymaxg = maxg;myObj2 = obj2;setTimeout('show(myObj,mymaxg,myObj2)', '5'); /每隔一段时间调用一次show函数,用于实现渐渐展开效果/收缩菜单项function

24、 hide(obj, maxg, obj2) if (obj.style.pixelHeight > 0) if (obj.style.pixelHeight = maxg / 5) obj.style.display = 'none' /设置指定菜单项隐藏obj.style.pixelHeight -= maxg / 5;obj2.background = "images/title_show.gif" /改变菜单标题的背景myObj = obj;mymaxg = maxgmyObj2 = obj2;setTimeout('hide(myOb

25、j,mymaxg,myObj2)', '5'); /每隔一段时间调用一次hide函数,用于实现渐渐收缩效果 else if (whichContinue) whichContinue.click();/单击菜单标题时,控制菜单项的展开和收缩function change(obj, maxg, obj2) if (obj.style.pixelHeight) hide(obj, maxg, obj2); /收缩菜单项nopen = ''whichcontinue = '' else if (nopen) /收缩已经展开的菜单项whichCo

26、ntinue = obj2;nopen.click(); else show(obj, maxg, obj2); /展开菜单项nopen = obj2;whichContinue = ''</script></head><body leftmargin="0" topmargin="0" bgcolor="#FF9800"><table cellSpacing="0" cellPadding="0" width="100%&qu

27、ot; align="left"border="0" bgcolor="#e8ffff"><tr><td vAlign=top><table cellSpacing="0" cellPadding="0"width="158" align="center"><tr style="CURSOR: hand"><td vAlign=bottom height=42><i

28、mg height=30src="images/title.gif" width="158"></td></tr></table> <script language="javascript">var nopen = ""var whichContinue = ""</script><table width="158" align="center" cellPadding="0

29、" cellSpacing="0"><tr style="CURSOR: hand"><td class="list_title" id="list7"onmouseover="this.typename='list_title2'"onclick="change(menu7,80,list7);"onmouseout="this.typename='list_title'"backgrou

30、nd="images/title_show.gif" height="25"><span>记账</span></td></tr><tr><td valign="middle"><div class="sec_menu" id="menu7"style="DISPLAY: none; width: 158px; height: 0px"><table width="152&

31、quot; align="center" cellPadding="0" cellSpacing=2background="images/bg.gif" style="padding-left: 5px"><tr><td height="25"><a href="支出.jsp" target="mainFrame">支出</a></td></tr><tr><td

32、 height="25"><a href="收入.jsp" target="mainFrame">收入</a></td></tr><tr><td height="25"><a href="转账.jsp" target="mainFrame">转账</a></td></tr></table></div></td><

33、;/tr></table><table cellSpacing="0" cellPadding="0" width="158" align="center"><tr style="CURSOR: hand"><td class="list_title" id="list2"onmouseover="this.typename='list_title2'"onclick=&q

34、uot;change(menu2,160,list2);"onmouseout="this.typename='list_title'"background="images/title_show.gif" height="25"><span>账户</span></td></tr><tr><td align="center"><div class="sec_menu" id="m

35、enu2"style="DISPLAY: none; width: 158px; height: 0px"><table cellSpacing=2 cellPadding="0" width="152" align="center"background="images/bg.gif" style="padding-left: 5px"><tr><td height="25"><a href=&qu

36、ot;xianjin.jsp" target="mainFrame">现金</a></td></tr><tr><td height="25"><a href="一卡通.jsp" target="mainFrame">一卡通</a></td></tr><tr><td height="25"><a href="工商银行.jsp"

37、 target="mainFrame">工商银行</a></td></tr><tr><td height="25"><a href="邮政银行.jsp" target="mainFrame">邮政银行</a></td></tr><tr><td height="25"><a href="公交卡.jsp" target="mai

38、nFrame">公交卡</a></td></tr><tr><td height="25"><a href="支付宝.jsp" target="mainFrame">支付宝</a></td></tr></table></div></td></tr></table><table cellSpacing="0" cellPadding

39、="0" width="158" align="center"><tr style="CURSOR: hand"><td class="list_title" id="list4"onmouseover="this.typename='list_title2'"onclick="change(menu4,50,list4); "onmouseout="this.typename='

40、;list_title'"background="images/title_show.gif" height="25"><span>明细</span></td></tr><tr><td valign="middle"><div class="sec_menu" id="menu4"style="DISPLAY: none; width: 158px; height: 0px"

41、><table cellSpacing="0" cellPadding="0" width="152"align="center" background="images/bg.gif"style="padding-left: 5px"><tr><td height="25"><a href="detail.jsp" target="mainFrame">支出明细&

42、lt;/a></td></tr><tr><td height="25"><a href="shouru.jsp" target="mainFrame">收入明细</a></td></tr></table></div></td></tr></table><table cellSpacing="0" cellPadding="0" w

43、idth="158" align="center"><tr style="CURSOR: hand"><td class="list_title" id="list57"onmouseover="this.typename='list_title2'"onclick="change(menu57,30,list57);"onmouseout="this.typename='list_title

44、9;"background="images/title_show.gif" height="25"><span>反馈管理</span></td></tr><tr><td valign="middle"><div class="sec_menu" id="menu57"style="DISPLAY: none; width: 158px; height: 0px"><tab

45、le width="152" align="center" cellPadding="0"cellSpacing="0" background="images/bg.gif"><tr><td height="30" style="padding-left: 5px"><ahref="about.html" target="mainFrame">关于我们</a>&l

46、t;/td></tr></table></div></td></tr><tr><td height="40" valign="middle"><div class="sec_menu"id="menu8" style="width: 158px; height: 40px"><img src="images/bottom.png" width="158&quo

47、t; height="30"></div></td></tr></table></body></html>5、 登录设计<script> /* * 跳转到添加界面 */ function add() /使用location地址对象(宿主对象中的Bom对象)链接到新网页 window.location="index.jsp" </script></head><body><div id="container"

48、><form id="form1" name="form1" method="post" ><!- 边框 单元格填充 单元格间距 -><table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2" class="login-title">家庭账务系统</td></tr>&l

49、t;tr><td class="login-lable">用户名:</td><td><input type="text" id="userName" name="userName"class="login-textfield" placeholder="请输入用户名!" autofocus required /></td></tr><tr><td class="login

50、-lable">密&nbsp;码:</td><td><input type="password" id="password" name="password"class="login-textfield" placeholder="请输入密码!" required /></td></tr><tr><td colspan="2"></td></tr>

51、<tr><td colspan="2" class="login-btn"><input type="submit" value="登 录" class="btn btn-submit" /> <% String name,password; request.setCharacterEncoding("GBK"); password=request.getParameter("password"); name=re

52、quest.getParameter("userName"); String SQL="Select * From kehu where username='"+name+"' and password='"+password+"'" ResultSet Rs = selectall.selectStatic(SQL); String str=null; while(Rs.next() str= Rs.getString("userName"); if(str!=

53、null) System.out.println("kkkkkkkkkkk"); response.sendRedirect("index.jsp"); %><input type="reset"value="取 消" class="btn btn-reset" /></td></tr></table></form></div></body>6、 记账-收入<body><div id=&q

54、uot;container"> <form id="form1" name="form1" method="post" > <!- 边框 单元格填充 单元格间距 -> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" class="login-title">家庭账务系统

55、-收入</td> </tr> <tr> <td class="login-lable">金额:</td> <td><input type="text" id="money" name="money" class="login-textfield" placeholder="请输入金额!" autofocus required/></td> </tr> <tr>

56、; <td class="login-lable">类别:</td> <td> <select id="name" name="name" class="login-textfield" autofocus required> <option value="none" style="display: none;">请选择</option> <option value="报销款"&

57、gt;报销款</option> <option value="分红">分红</option> <option value="福利补贴">福利补贴</option> <option value="工程款">工程款</option> <option value="工资薪水">工资薪水</option> <option value="公积金">公积金</option> &

58、lt;option value="股票">股票</option> <option value="红包">红包</option> <option value="基金">基金</option> <option value="兼职外快">兼职外快</option> <option value="奖金">奖金</option> <option value="奖学金"

59、>奖学金</option> <option value="礼金">礼金</option> <option value="利息">利息</option> <option value="漏记款">漏记款</option> <option value="赔付款">赔付款</option> <option value="生活费">生活费</option> <op

60、tion value="销售款">销售款</option> <option value="应收款">应收款</option> <option value="营业收入">营业收入</option> <option value="余额宝">余额宝</option> <option value="助学金">助学金</option> <option value="租金">租金</option> </select> </td> </tr> <tr> <td class="login-lable">账户:</td> <td> <select id="accounts" name="accounts"

温馨提示

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

评论

0/150

提交评论