已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录摘要1第1章 开发的背景2第2章 系统设计32.1 系统需求分析32.2 系统功能模块32.3 系统功能设计42.4 数据库设计42.4.1 数据库需求分析42.4.2 数据库逻辑结构设计5第3章 系统的设计与实现63.1 启动界面(JSplashWindow)63.2 用户选择界面(main)73.3 登录界面(Login)83.4 主界面(Index)83.5 支出明细界面(payInfo)103.6 支出添加界面(payAdd)113.7 支出修改界面(paymodify)113.8 支出删除界面(paydelete1)133.9 支出查询界面(paySearch)133.10 数据库配置14第4章 开发工具简介154.1 JCreator Pro154.2 Microsoft Access 200315第5章 设计总结与体会16参考文献17摘要针对现在高校很多学生都进行记账的现状,采用Java和SQL SERVER2000工具,设计并开发了个人帐本管理系统,该系统能帮助用户进行日常理财。用户通过使用该系统,可以方便的进行日常的收入支出统计和查询。该系统界面友好,功能完善,简单实用。关键字:信息系统,学生管理,个人帐本,J2SE 。第1章 开发的背景一个有经济头脑的人,在日常生活和投资中,都会对自己的支出和开销做到心里有数,以便于制定出自己的一套理财计划,达到合理的经济统筹,有理财习惯的人可以从以往的统计中看到自己主要消费方向,看出自己的消费是否合理。之所谓巧妇难为无米之炊,如果自己想要理财,先决条件得要有 财”才行。如何才能有财呢?开源节流呀!有计划的用钱,再将节流下来的钱去用于理财,这样不就行了吗?那又怎么样来“开源”呢?记账是个好办法4,它有针对性地罗列、统计计算资源信息3。从查阅资料来看,一些比较发达国家人的生活中对理财有着很严格的计划,因此国外的理财系统总体来说比较普遍,做的也比较完善.国内的理财系统主要偏重于办公财务软件,而个人理财和家庭理财方面的比较少,因此需要开发相关的系统软件,从而达到引导理性消费,合理安排收支5。进行账目的统计,如果是手动统计的话,首先,如果每天统计的话,用于统计的账本和记录会越来越多,不利于保管,容易造成丢失;其次,随着纪录的增多,如果要查找以前的记录,会变的越来越困难。因此,需要一个功能比较完善的记账系统来代替传统的手工统计。第2章 系统设计2.1 系统需求分析本系统具有如下功能模块:1. 系统管理模块:支出信息和收入信息查询。支出信息以表格的形式展示,输入要查询的时间段,表内就会展示该时间段内的支出信息。收入信息查询与支出信息查询类似。2. 基本信息管理模块:对支出、收入信息进行管理,可以进行添加、修改和删除基本信息。3. 收支统计模块:对收支信息进行管理,可以结算所求时间段的收入和支出总额,同时可以计算出余额。4. 密码维护模块:可以对密码进行修改。2.2 系统功能模块本系统分为以下四大模块:系统管理模块、基本信息管理模块、收支统计模块、密码维护模块。功能模块划分图如图2-1所示:基本信息管理收支统计个人帐本管理系统支出信息添加支出信息删除支出信息修改收入信息添加收入信息删除收入信息修改收入信息查询支出信息查询 收支余额 支持总额 收入总额密码维护 密码修改图2-1 功能模块划分图2.3 系统功能设计各模块功能设计如下:1. 系统管理模块:支出查询功能通过表格展现某时间段内支出的物品及其类型、价格和备注,并同时可以结算出总额。收入查询功能通过表格展现某时间段内收入的金额及其来源和备注,并同时可以结算出总额。2. 基本信息管理模块:支出信息添加功能: 输入支出信息,可以实现添加此信息到相应的数据库支出单表里。支出信息修改功能:输入编号,可以显示此支出信息的明细,然后作修改操作,并保存修改后的信息到相应的数据库表里。支出信息删除功能:输入编号,可以显示该支出信息的明细,然后作删除操作,可以把数据库表中对应的该支出的记录全部删除。3. 收支统计模块:收入统计功能:输入某个时间段,可以实现把该时间段内的信息从相应数据库调出来显示在表格内,同时结算总额。支出统计功能:输入某个时间段,可以实现把该时间段内的信息从相应数据库调出来显示在表格内,同时结算总额。收支余额功能:输入某个时间段,可以实现把该时间段内的收入和支出信息从相应数据库调出来显示在两个表格内,同时结算收入总额和支出总额,同时结算出余额。4. 密码维护模块:密码修改功能:在该用户名下,输入新的密码,并把新密码保存到相应数据库内。2.4 数据库设计2.4.1 数据库需求分析 根据本系统的需求分析,需要3张表: 用户表:存放用户名及其密码信息。 支出表:存放支出的信息。 收入表:存放收入的信息。2.4.2 数据库逻辑结构设计下面是本系统设计的表及其作用:表2-1 数据表说明表名表的作用用户表存放用户名及其密码信息支出单存放支出的信息收入单存放收入的信息下面是各个表的详细结构:1. 用户信息列表,见表2-2:表2-2 用户信息列表字段名称数据类型是否为空是否主键用户名文本否是密码文本否否2. 支出信息列表,见表2-3:表2-3 支出信息列表字段名称数据类型是否为空是否主键编号文本否否日期日期/时间否否物品文本否否类型文本否否金额文本否否备注文本否否2. 收入信息列表,见表2-4:表2-4 收入信息列表字段名称数据类型是否为空是否主键编号文本否否日期日期/时间否否来源文本否否金额文本否否备注文本否否第3章 系统的设计与实现对于本系统各个功能块的实现,是通过JAVA语言在JDK6.0环境下完成的,界面是用JAVA SWING编写的,用SQL SERVER2000实现JAVA语言与数据库的连接,最后完成整个系统的开发。主要的程序界面如下:3.1 启动界面(JSplashWindow)本系统建立一个启动界面程序,运行效果如图3-1所示。当程序运行时,启动界面显示一幅图片,进度条开始走动,关闭该窗口,进入登录界面。图3-1启动界面启动界面没有标题栏,可以通过继承JWindow来实现。窗口上用JLabel来显示图像;用JProgressBar建立进度条,实现进度条的走动。代码:progress=new JProgressBar(1,100); progress.setStringPainted(true); progress.setBorderPainted(false); progress.setString(Progress is now loading.);public void run()show();tryfor(int i=0;i100;i+)Thread.sleep(100);progress.setValue(progress.getValue()+1);catch(Exception ex)ex.printStackTrace();dispose();3.2 用户选择界面(main)本系统共有3个用户权限,通过这个用户选择程序,选择相应用户,进入各自的登陆界面,运行界面如图3-2所示:图3-2 启动界面本用户选择窗口在对话框上使用卡式布局,使用JTabbedPane ,点击图片按钮,进入登陆界面3.3 登录界面(Login)登录窗口是很多应用系统中不可缺少的组成部分。通过验证用户输入的用户名和密码,决定是否允许用户进入系统,在一定程度上保证系统的安全。本系统建立一个登录窗口,运行界面如图3-3所示:图3-3 启动界面本登录窗口在对话框上使用JTextField接收用户名,使用JPasswordField接收密码。在按钮动作事件中对用户名和密码进行校验。按确定键进入主界面,按退出键退出系统。3.4 主界面(Index)主界面是负责应用程序的,由它调用其他模块。因此应该具有操作性好、界面清晰的特点,使用户能够很方便地找到所需功能。根据功能需求和总体设计的结果,主界面包括查询,记录,收入明细,支出明细,收支统计,密码修改,帮助和系统退出。可以通过点击菜单项和按钮进入相应的功能模块,此窗口的类名为“Index”,窗体布局设置为默认面板BorderLayout。在此窗体上添加菜单栏menubar,和两个面板p1,p2。在面板p1上添加圆形按钮b1,b2,b3,b4,b9,在面板p2上添加图标按钮b5,b6,b7,b8。主界面如图3-4所示:图3-4 主界面菜单栏menubar的内容如表3-5所示:表3-5 菜单栏组成列表名 称类 型文 本Menu1JMenu查询item1JMenuItem收入Item2JMenuItem支出Menu2JMenu记录Item3JMenuItem支出明细Item4JMenuItem收入明细Menu3JMenu帮助Item5JMenuItem帮助面板p1的内容如表3-6所示:表3-6面板p1组成列表名 称类 型文 本b1RoundButton收入明细b2RoundButton支出明细b9RoundButton收支统计b3RoundButton密码修改b4RoundButton系统退出面板p2的内容如表3-7所示:表3-7面板p2组成列表名 称类 型文 本b5JButton支出查询image1ImageIcon无b6JButton支出添加image2ImageIcon无b7JButton支出修改image3ImageIcon无b8JButton支出删除image5ImageIcon无通过主界面来进入其他界面的方法为:调用其他类里的方法。因为跟数据库连接的缘故,所以所调用的类的构造函数必须设置成带rs(结果返回集)参数的。3.5 支出明细界面(payInfo)此界面可以进行添加、删除、修改和刷新操作,通过点击相应按钮进入各个模块。此窗口的类名为“payInfo”, 窗体布局设置为默认面板BorderLayout。在此窗体上添加两个面板p1,p2。面板p1使用盒式布局,在面板p1上添加圆形按钮b1,b2,b3,b4,b8,在面板p2上添加JTable,显示支出信息,运行界面如图3-8所示:图3-8 支出明细界面3.6 支出添加界面(payAdd)输入要录入的支出信息,添加该支出信息到数据库的支出单里,运行界面如图3-9所示:图3-9 支出明细界面实现添加信息的SQL语句如下:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn=DriverManager.getConnection(jdbc:odbc:money); Statement stat = conn.createStatement();stat.executeUpdate(insert into 支出单 values(+t1.getText()+t2.getText()+t3.getText()+-+t5.getText()+,+t1.getText()+-+t2.getText()+-+t3.getText()+,+t4.getText()+,+cb.getSelectedItem()+,+t6.getText()+,+t7.getText()+);3.7 支出修改界面(paymodify)按修改键,输入编号可以在支出修改界面里显示出该编号的信息,此刻对应的编号和日期这二个文本框变灰,但可以修改其他任何信息,在确认无误后按确定键将修改后信息保存到数据库的支出单;按退出键可以退出该界面。运行界面如图3-10所示:图3-10支出修改界面根据用户输入的编号先从支出单选出所要显示的信息,SQL语句如下: rs.beforeFirst(); while(rs.next() if(rs.getString(编号).equals(t1.getText() payModify b=new payModify(支出修改); b.t5.setText(t1.getText(); b.t1.setText(rs.getString(日期); b.t4.setText(rs.getString(物品); b.cb.setSelectedItem(rs.getString(类型); b.t6.setText(rs.getString(金额); b.t7.setText(rs.getString(备注); if(rs.getString(编号).equals(t1.getText()=false) a1=false; if(a1=false) JOptionPane.showMessageDialog(null,无相关信息!); rs.close(); stat.close(); catch(Exception e1) this.setVisible(false);以下是将修改支出信息并保存到支出单里的SQL语句:stat.executeUpdate(UPDATE 支出单 set 物品=+t4.getText()+ where 编号=+t5.getText()+); stat.executeUpdate(UPDATE 支出单 set 类型=+cb.getSelectedItem()+ where 编号=+t5.getText()+); stat.executeUpdate(UPDATE 支出单 set 金额=+t6.getText()+ where 编号=+t5.getText()+); stat.executeUpdate(UPDATE 支出单 set 备注=+t7.getText()+ where 编号=+t5.getText()+);3.8 支出删除界面(paydelete1)在支出明细界面选择要删除的行,点击删除按钮,成功删除该信息删除记录的SQL语句如下:stat.executeUpdate(delete from 支出单 where 编号=+bodyrow0+);3.9 支出查询界面(paySearch)此界面可以进行查询和计算功能。此窗口的类名为“paySearch”,窗体布局设置为默认面板BorderLayout。在此窗体上添加标签JLabel,3个文本框。添加JTable。在t1,t2中输入日期,按确定按钮,在表中显示该时间段内的信息。按总支出按钮,显示总额。实现输入日期显示相关信息的SQL语句如下:rs=stat.executeQuery(SELECT* FROM 支出单 where 日期 between datevalue(+t1.getText()+) and datevalue(+t2.getText()+); for(int i=0;i=rs.getRow();i+) if(rs.next() bodyi0=rs.getString(编号); bodyi1=rs.getString(日期); bodyi2=rs.getString(物品); bodyi3=rs.getString(类型); bodyi4=rs.getString(金额); bodyi5=rs.getString(备注); rs.last(); 计算总额的SQL语句如下:for(int i=0;ia;i+) sum=sum+Double.parseDouble(bodyi4.toString(); 3.10 数据库配置本系统的数据库用SQL SERVER2000,建立了一个名为money的数据库,通过jdbcodbc桥实现数据库与JAVA的连接。数据库的连接方法如下:1. 加载驱动程序Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);2.连接数据库Connection conn;conn=DriverManager.getConnection(jdbc:odbc:money); 第4章 开发工具简介4.1 JCreator ProJCreator 专业版是一款适合于各个 Java 语言编程开发人员的IDE工具。 她为使用者提供了大量强劲的功能,例如: 项目管理、工程模板、代码完成、调试接口、高亮语法编辑、使用向导以及完全可自定义的用户界面。特点: 1、可无限撤销、代码缩进、自动类库方法提示、按所选智能定位查阅JavaAPI文档等功能。2、新版采用仿VS2005界面设计,体验感觉更快更好更易用。3、支持JSP、Ant、CVS。4、小巧、易用、美观,是Java初级程序员的理想IDE。4.2 Microsoft Access 2003Microsoft Office Access 2003 是一种数据库管理程序,可赋予更佳的用户体验,并且新增了导入、导出和处理 XML 数据文件等功能。由于该程序可以识别和标记常见错误,同时提供更正错误的选项,因此在 Access 2003 中工作变得更加轻松自如。另外,Access 2003 的新功能还可以帮助数据库开发人员查看有关数据库对象之间相关性的信息。第5章 设计总结与体会之前因为缺少对编程的热爱,平日里从不会自主地去学习一些编程之类的资料,也不会动手去写,以至于现在编程水平很差。后来我有了一个想法,我先“择书”挑小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青岛市中医院内镜中心技师岗位准入理论综合考试试题
- 上饶市人民医院正畸支抗控制考核
- 机床电工试题及答案
- 生产效率提升实施方案
- 基于层次分析法的工程评标应用研究
- 医耗供应链优化分析-洞察与解读
- 家政服务知识竞赛试题
- 基础会计自考试题及答案
- 智能安防与监控集成方案
- 2025年考试试卷及化工自动化控制仪表试题及解析及答案
- 2025年中考英语高频词汇分类记忆《背诵版+默写版》
- 物业服务用房移交协议
- 《浓浓重阳情 深深敬老意》课件-小学生重阳节主题教育班会版
- 中德住房储蓄合同范本
- 心理咨询法律培训课件
- 宋代诗人林升简介
- 皮炎和湿疹(皮肤性病学课件)
- 企业股东出资协议书
- 第8课 中国古代的法治与教化 教学课件-高二上学期历史统编版(2019)选择性必修1国家制度与社会治理
- 坡屋面双面模板方案
- 国开药物化学(本)形考1
评论
0/150
提交评论