目录摘要 (1)第1章开发的背景 (2)第2章系统设计 (3)2.1系统需求分析 (3)2.2 系统功能模块 (3)2.3 系统功能设计 (4)2.4 数据库设计 (4)2.4.1数据库需求分析 (4)2.4.2数据库逻辑结构设计 (5)第3章系统的设计与实现 (6)3.1 启动界面(JSplashWindow) (6)3.2 用户选择界面(main) (7)3.3 登录界面(Login) (8)3.4 主界面(Index) (8)3.5 支出明细界面(payInfo) (10)3.6 支出添加界面(payAdd) (11)3.7 支出修改界面(paymodify) (11)3.8 支出删除界面(paydelete1) (13)3.9 支出查询界面(paySearch) (13)3.10 数据库配置 (14)第4章开发工具简介 (15)4.1 JCreator Pro (15)4.2 Microsoft Access 2003 (15)第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();try{for(int i=0;i<100;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 菜单栏组成列表名称类型文本Menu1 JMenu 查询item1 JMenuItem 收入Item2 JMenuItem 支出Menu2 JMenu 记录Item3 JMenuItem 支出明细Item4 JMenuItem 收入明细Menu3 JMenu 帮助Item5 JMenuItem 帮助面板p1的内容如表3-6所示:表3-6面板p1组成列表名称类型文本b1 RoundButton 收入明细b2 RoundButton 支出明细b9 RoundButton 收支统计b3 RoundButton 密码修改b4 RoundButton 系统退出面板p2的内容如表3-7所示:表3-7面板p2组成列表名称类型文本b5 JButton 支出查询image1 ImageIcon 无b6 JButton 支出添加image2 ImageIcon 无b7 JButton 支出修改image3 ImageIcon 无b8 JButton 支出删除image5 ImageIcon 无通过主界面来进入其他界面的方法为:调用其他类里的方法。
因为跟数据库连接的缘故,所以所调用的类的构造函数必须设置成带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.getTe xt()+"-"+t2.getText()+"-"+t3.getText()+"','"+t4.getText()+"','"+cb.getSelectedItem()+"', '"+t6.getText()+"','"+t7.getText()+"')");3.7 支出修改界面(paymodify)按修改键,输入编号可以在支出修改界面里显示出该编号的信息,此刻对应的编号和日期这二个文本框变灰,但可以修改其他任何信息,在确认无误后按确定键将修改后信息保存到数据库的支出单;按退出键可以退出该界面。