个人账本管理系统设计报告.docx
- 文档编号:17046601
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:17
- 大小:721.70KB
个人账本管理系统设计报告.docx
《个人账本管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《个人账本管理系统设计报告.docx(17页珍藏版)》请在冰点文库上搜索。
个人账本管理系统设计报告
摘要
针对现在高校很多学生都进行记账的现状,采用Java和SQLSERVER2000工具,设计并开发了个人帐本管理系统,该系统能帮助用户进行日常理财。
用户通过使用该系统,可以方便的进行日常的收入支出统计和查询。
该系统界面友好,功能完善,简单实用。
关键字:
信息系统,学生管理,个人帐本,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环境下完成的,界面是用JAVASWING编写的,用SQLSERVER2000实现JAVA语言与数据库的连接,最后完成整个系统的开发。
主要的程序界面如下:
3.1启动界面(JSplashWindow)
本系统建立一个启动界面程序,运行效果如图3—1所示。
当程序运行时,启动界面显示一幅图片,进度条开始走动,关闭该窗口,进入登录界面.
图3—1启动界面
启动界面没有标题栏,可以通过继承JWindow来实现.窗口上用JLabel来显示图像;用JProgressBar建立进度条,实现进度条的走动。
代码:
progress=newJProgressBar(1,100);
progress。
setStringPainted(true);progress.setBorderPainted(false);
progress。
setString("Progressisnowloading。
。
。
");
publicvoidrun(){
show();
try{
for(inti=0;i<100;i++){
Thread。
sleep(100);
progress.setValue(progress。
getValue()+1);
}
}catch(Exceptionex){
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”);
Connectionconn=DriverManager.getConnection(”jdbc:
odbc:
money");
Statementstat=conn。
createStatement();
stat.executeUpdate("insertinto支出单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()))
{
payModifyb=newpayModify("支出修改");
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(Exceptione1){}
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(”deletefrom支出单where编号='"+body[row][0]+”'");
3.9支出查询界面(paySearch)
此界面可以进行查询和计算功能。
此窗口的类名为“paySearch",窗体布局设置为默认面板BorderLayout。
在此窗体上添加标签JLabel,3个文本框。
添加JTable.在t1,t2中输入日期,按确定按钮,在表中显示该时间段内的信息。
按总支出按钮,显示总额。
实现输入日期显示相关信息的SQL语句如下:
rs=stat。
executeQuery("SELECT*FROM支出单where日期betweendatevalue('"+t1.getText()+”’)anddatevalue('"+t2。
getText()+"’)");
for(inti=0;i<=rs。
getRow();i++){
if(rs。
next()){
body[i][0]=rs。
getString("编号”);
body[i][1]=rs。
getString(”日期”);
body[i][2]=rs.getString("物品");
body[i][3]=rs。
getString("类型”);
body[i][4]=rs.getString(”金额");
body[i][5]=rs。
getString("备注”);
}
}
rs。
last();
计算总额的SQL语句如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 账本 管理 系统 设计 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)