软件综合课程设计家庭理财工具的设计与实现Word格式.docx

上传人:b****3 文档编号:8200091 上传时间:2023-05-10 格式:DOCX 页数:21 大小:1.31MB
下载 相关 举报
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第1页
第1页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第2页
第2页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第3页
第3页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第4页
第4页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第5页
第5页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第6页
第6页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第7页
第7页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第8页
第8页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第9页
第9页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第10页
第10页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第11页
第11页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第12页
第12页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第13页
第13页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第14页
第14页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第15页
第15页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第16页
第16页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第17页
第17页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第18页
第18页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第19页
第19页 / 共21页
软件综合课程设计家庭理财工具的设计与实现Word格式.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件综合课程设计家庭理财工具的设计与实现Word格式.docx

《软件综合课程设计家庭理财工具的设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《软件综合课程设计家庭理财工具的设计与实现Word格式.docx(21页珍藏版)》请在冰点文库上搜索。

软件综合课程设计家庭理财工具的设计与实现Word格式.docx

Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。

2系统设计

2.1系统模块设计

根据课设的内容和要求,将系统分为4个模块,分别为收支模块,资产模块,用户管理模块和数据备份模块。

用户模块的主要功能有用户信息管理,包块用户的增加,删除;

收支管理,包括收支信息的增加,修改,删除,查询功能;

资产模块的主要功能是增加,删除,修改,查询有关信息;

除此之外,还可以用数据库管理数据,可以及时备份与恢复,保证了系统的安全性。

家庭财务管理系统

资产模块

收支模块

用户模块

添加收入信息

添加支出

信息

添加删除

删除用户查询

添加用户信息

资产信息查询

查询

收支信息

数据备份模块

数据库备份

数据库恢复

图2.1系统功能模块图

2.2数据库设计

(1)用户表:

tabyonghu

以用户名为主键,同时还有密码,姓名,出生日期,住址,电话等属性。

具体属性设定如表2.1所示。

列名

数据类型

允许为空

说明

user

varchar

不允许

用户名,主键

upass

用户密码

dianhua

int

用户电话

shengri

data

用户生日

xingmin

varchat

用户姓名

zhuzhi

用户住址

sq

权限

表2.1用户表

(2)收入表:

tabshouru

以收入者为主键,且编号,收入金额,日期,存放入属性与用户表相关联。

具体属性设定如表2.2所示。

表2.2收入表

bianhao

varcha

编号

shouruzhe

收入者,主键

jine

收入金额

收入日期

cunfangru

存放入何处

beizhu

允许

备注

(3)支出表:

tabzhichu

以支出者为主键,且编号,支出金额,日期,用途属性与用户表相关联。

具体属性设定如表2.3所示。

表2.3支出表

zhichuzhe

支出者,主键

支出金额

支出日期

yongtu

用途

(4)资产表:

tabzichan

用户名为主键,银行类型,银行名称,开户人和总金额等。

具体属性设定如表2.4所示。

表2.4资产表

id

leixing

银行类型

bankname

银行名称

kaihuren

开户人

总金额

2.3函数设计

本系统所设计的函数及所用到的网络通信函数见表2.6。

表2.6函数列表

函数名称

函数原型

功能描述

main

voidmain();

系统主程序

findAll

publicList<

Object[]>

findAll();

查询功能

save

publicbooleansave(Tabusertea);

添加功能

delete

publicbooleandelete(Stringuname);

删除功能

updata

publicbooleanupdate(Tabusertea);

修改功能

backup

privatevoidbackup()

备份功能

load

publicstaticvoidload()

恢复功能

MainFrm

publicMainFrm(Tabuseruser);

主界面

LoginFrm

publicLoginFrm();

登录界面

yonghuFrm

publicyonghuFrm()

用户管理界面

shouzhiFrm

publicshouzhiFrm()

收支界面

zichanFrm

publiczichanFrm()

资产管理界面

shujukuFrm

publicshujukuFrm()

数据库管理界面

findFrm

publicfindFrm()

查询界面

2.3关键流程

2.3.1系统主流程

进入此系统时,先输入用户名和密码验证登录,验证成功后进入主界面,再选择要使用的功能,按要求输入相应的数据,之后退出;

验证失败则不能登录。

如图2.2所示。

开始

结束

输入用户名,密码

选择身份

通过验证

Y

N

图2.2系统主流程图

2.3.2登录函数功能的实现

登录系统是验证用户是否可以使用此系统,如果输入的用户名和密码正确,选择身份正确,才可以验证成功,登录此系统进行使用,否则,信息不正确或者身份不争取,都不可以进入此系统。

具体代码如下:

Stringuname=txtUname.getText();

Stringupass=txtPwd.getText();

if(uname==null||uname.trim().length()<

1){

javax.swing.JOptionPane.showMessageDialog(null,"

用户名不能为空"

);

return;

}

/////得到用户登录权限

Objectpower=cmbPower.getSelectedItem();

//封装用户数据

tabyonghuuser=newtabyonghu();

user.setUser(uname);

user.setUpass(upass);

if(power.equals("

管理员"

)){

user.setSq

(1);

}else{

user.setSq

(2);

//调用控制用户登录模块

Dengluuc=newDenglu();

uc.login(user,this);

如图2.3所示。

图2.3登录系统流程图

2.3.3收支管理及资产管理函数的实现

用户可以根据收入支出管理模块实现添加、删除、修改、查询收支项目的功能,进入此界面,按要求进行操作,对用户的收入和支出情况进行填写,以实现该模块功能。

收支模块里具体有收入记录功能和支出记录功能,两个功能大体相同。

资产管理是对家庭总资产来源进行管理记录及统计,具体功能也包括添加、删除、修改、查询各项功能。

以下只列出收入记录功能流程图。

如图2.4所示。

进入收入界面

填写完成

对添加完成的信息进行修改

删除处理

操作成功

Y

按要求添加信息

图2.4收入功能实现流程图

tabshourutea=newtabshouru();

Stringbianhao=jT1.getText();

if(bianhao==null||bianhao.trim().length()<

javax.swing.JOptionPane.showMessageDialog(null,"

编号不能为空!

"

Stringshouruzhe=jT2.getText();

if(shouruzhe==null||shouruzhe.trim().length()<

收入者不能为空!

Stringjine=jT3.getText();

if(jine==null||jine.trim().length()<

金额不能为空!

Stringdata=jT4.getText();

if(data==null||data.trim().length()<

日期不能为空!

Stringchunfangru=jT5.getText();

if(chunfangru==null||chunfangru.trim().length()<

存放处不能为空!

tea.setBianhao(bianhao);

tea.setShouruzhe(shouruzhe);

tea.setJine(jine);

tea.setData(data);

tea.setChunfangru(chunfangru);

booleanx=tdao.save(tea);

if(x){

信息保存成功!

initclassinfo();

//TODOaddyourhandlingcodehere:

introw=jTable1.getSelectedRow();

//得到表格选中列

intcol=jTable1.getSelectedColumn();

Stringshouruzhe=(String)jTable1.getValueAt(row,1);

//得到系编号

//System.out.println("

系编号:

+cid);

//按系编号删除数据

booleanx=tdao.delete(shouruzhe);

if(x==true){

删除成功"

//并显示回表格

javax.swing.table.DefaultTableModelm=(javax.swing.table.DefaultTableModel)jTable1.getModel();

//删除表格中显示的数据

m.removeRow(row);

publicbooleansave(tabshourushouruzhe){

sql="

insertintotabshouruvalues(?

?

)"

;

intx=this.saveOrUpdate(sql,shouruzhe.getBianhao(),shouruzhe.getShouruzhe(),shouruzhe.getJine(),shouruzhe.getData(),shouruzhe.getChunfangru(),shouruzhe.getBeizhu());

if(x>

0)returntrue;

returnfalse;

publicbooleandelete(Stringshouruzhe)

{

deletefromtabshouruwhereshouruzhe=?

intx=this.saveOrUpdate(sql,shouruzhe);

2.3.4收支查询和资产查询功能的实现

收入支出查询和资产查询都是对财务信息的查询,用户可以根据收入者或支出者查询收入,支出条目的具体信息;

资产查询是通过用户id查询资产管理中的具体信息。

如图2.5是显示支出查询的具体步骤。

点击查询

输入支出者

显示支出信息

图2.5查询功能实现流程图

具体代码如下:

tabshourus=newtabshouru();

Stringshouruzhe=jT1.getText();

/*if(stunum!

=null&

&

stunum.toString().length()>

0){

List<

dli=studao.findByStunum(stunum.toString());

if(dli!

dli.size()>

Object[]da=dli.get(0);

s.setObjid((String)da[2]);

}*/

收入者不能为空"

s.setShouruzhe(shouruzhe);

javax.swing.table.DefaultTableModelm=newjavax.swing.table.DefaultTableModel();

m.addColumn("

编号"

收入者"

金额"

日期"

存放入"

li=shourudao.findbyid2(s);

m.addRow(li.get(0));

//按行添加数据

jTable1.setModel(m);

findall(){

select*fromtabshouru"

returnthis.query(sql);

2.3.5数据备份恢复功能的实现

数据库管理模块对于用户非常重要,数据库备份模块可以把用户的信息在数据库里再保存一份,为以后发生特殊情况做准备,也可以说是为用户信息的安全又加了一层保险,数据库管理模块界面如图2.6所示

进行数据备份

备份成功

进行数据恢复

恢复成功

图2.6数据库备份恢复功能流程图

privatevoidbackup(){

//数据库导出

Stringuser="

root"

//数据库帐号

Stringpassword="

admin"

//登陆密码

Stringdatabase="

caiwu"

//需要备份的数据库名

Stringfilepath="

D:

\\Java\\mysql-5.6.15-winx64\\beifen.sql"

//备份的路径地址

Stringstmt1="

mysqldump"

+database+"

-u"

+user+"

-p"

+password+"

--result-file="

+filepath;

/*Stringmysql="

mysqldumptest-uroot-proot

*--result-file=d:

\\test.sql"

*/

try{Runtime.getRuntime().exec(stmt1);

System.out.println("

数据已导出到文件"

+filepath+"

中"

}

catch(IOExceptione){

e.printStackTrace();

javax.swing.JOptionPane.showMessageDialog(null,"

}

publicstaticvoidload(){

try{

StringfPath=("

Runtimert=Runtime.getRuntime();

//调用mysql的cmd:

//rt.exec("

createdatabasedemo"

Processchild=rt.exec("

mysql-uroot-padmincaiwu1"

OutputStreamout=child.getOutputStream();

//控制台的输入信息作为输出流

StringinStr;

StringBuffersb=newStringBuffer("

StringoutStr;

BufferedReaderbr=newBufferedReader(newInputStreamReader(

newFileInputStream(fPath),"

utf8"

));

while((inStr=br.readLine())!

=null){

sb.append(inStr+"

\r\n"

}

outStr=sb.toString();

OutputStreamWriterwriter=newOutputStreamWriter(out,"

writer.write(outStr);

//注:

这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免

writer.flush();

//别忘记关闭输入输出流

out.close();

br.close();

writer.close();

数据已导入"

}catch(Exceptione){

e.printStackTrace();

3调试分析

(1)SQL语句问题

●问题描述:

在写代码时,SQL语句经常会出现输写错误,有时是格式出错,有时是属性添加错误,或者是添加不全,有时返回值与我想要的结果不符合。

●问题分析:

对SQL的语句书写不熟练,格式不明确,对数据库的属性信息记得不够仔细。

●解决方法:

通过查看书本,按照书本上的格式认真书写,并对照数据库看属性信息是否有误。

(2)对象

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2