JavaEE课程设计个人账务统计.docx

上传人:b****3 文档编号:4865688 上传时间:2022-12-11 格式:DOCX 页数:26 大小:510.83KB
下载 相关 举报
JavaEE课程设计个人账务统计.docx_第1页
第1页 / 共26页
JavaEE课程设计个人账务统计.docx_第2页
第2页 / 共26页
JavaEE课程设计个人账务统计.docx_第3页
第3页 / 共26页
JavaEE课程设计个人账务统计.docx_第4页
第4页 / 共26页
JavaEE课程设计个人账务统计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

JavaEE课程设计个人账务统计.docx

《JavaEE课程设计个人账务统计.docx》由会员分享,可在线阅读,更多相关《JavaEE课程设计个人账务统计.docx(26页珍藏版)》请在冰豆网上搜索。

JavaEE课程设计个人账务统计.docx

JavaEE课程设计个人账务统计

 

软件学院

课程设计报告书

 

课程名称JavaEE与中间件

设计题目个人账务统计系统

专业班级软件工程10-04班

学号1020010432

姓名张小龙

指导教师刘佳旭

 

2013年1月

目录

1设计时间2

2设计目的2

3设计任务2

4设计内容2

4.1需求分析2

4.1.1总体目标2

4.1.2具体目标3

4.1.3系统数据建模(ER图)4

4.1.4系统功能建模(数据流程图)4

4.1.5数据字典5

4.2总体设计7

4.3详细设计9

4.3.1模块详细设计9

4.3.2流程设计12

4.4运行与测试13

4.5主要源代码18

5总结与展望24

参考文献25

成绩评定25

1设计时间

2013年1月21日—2013年1月24日

2设计目的

JavaEE课程设计是对所学JavaEE与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。

要求同学们对课程中所学习到的知识综合运用,开发有一定规模的JavaWeb程序。

3设计任务

个人账务统计系统设计任务:

(一)必备功能说明:

⑴功能描述:

用户以合法身份登录系统后,才能进行所有操作;用户可以添加、查看和删除账务信息(账务类型(包括支出和收入两种)、数额(人民币)、日期、备注(存储说明信息,如购买了什么东西,或发了工资还是福利津贴等));用户可以统计某个时间段内的支出总货币数目和收入总货币数目。

⑵添加账务信息

⑶查看账务信息

⑷删除账务信息

⑸分别统计某个时间段内的收入和支出总额

(二)开发语言与开发环境:

MyEclipse、Java、数据库(sqlserver2000、mysql、oracle等任选一种)

4设计内容

4.1需求分析

4.1.1总体目标

本系统是针对用户要求,使用计算机对自己日常的资金的收入、支出以及相关的各种信息进行记录、修改、添加、删除、统计等操作,并实现对信息进行统计设计的一种现代化个人财务管理软件。

经过分析,本系统需要具有以下功能:

1)能够实现个人财务管理方面各项功能,能成功的对用户各种信息进行管理。

2)实现查询、统计、删除、添加数据方便,数据的稳定性和可靠性好。

3)能够实现按日期查询。

4)拥有良好的人机交互界面。

4.1.2具体目标

本系统具有以下几个功能模块:

用户登录模块、查看账务信息模块、添加账务信息模块、删除账务信息模块、统计账务信息模块。

用户登录模块为用户分配账号密码使得个人的财务信息具有隐私性,收支管理各个模块能有效的管理用户的现金,可以进行添加,查询,删除操作,统计模块使得用户能够查询用户一段时间的收支情况。

各个功能模块描述:

1)用户登录模块:

系统正常登录,并跳转到主页面。

2)查看账务信息模块:

系统正常显示所有存储的信息。

3)添加账务信息模块:

系统正常添加所输入的信息。

4)删除账务信息模块:

系统正常删除所要删除的项目。

5)统计账务信息模块:

系统正常统计所输入的时间段内的收入与支出账务。

对于个人财务管理系统,我们要求软件满足用户对个人财务的隐私性管理,确保在用户以外的其他人使用软件对其信息进行操作,所以要采用用户注册和登录制度,确保用户对自己财务信息的隐私管理。

性能需求:

稳定性:

本系统为财务管理系统,多为查询、修改、删除、添加数据等操作,要求数据的稳定性好。

可靠性:

用户财务数据多比较重要,要求系统具有数据备份,数据恢复等性能。

安全性:

系统设计个人银行账号以及密码的保存,要求系统提供加密保存等安全措施,即要求系统有较高的安全性能。

 

4.1.3系统数据建模(ER图)

图4-1系统ER图

4.1.4系统功能建模(数据流程图)

简称DFD,它用来描述目标系统的逻辑结构,它是由实体部分,处理部分,数据存储部分和数据流四部分组成。

图4-2顶层数据流程图

图4-3一层数据流程图

4.1.5数据字典

数据字典是对数据流图的解释和说明,包含的内容如下:

⑴数据元素:

表4-1数据元素表

数据元素名类型长度说明

用户名字符型50用户登录的名字

密码字符型50用户登录的密码

ID整形8账务的编号

日期日期型8账务的记录日期

类型字符型50账务的类型,分为收入与支出

数额双精度浮点数8账务的金额,单位元

备注字符型50账务的相关备注信息

⑵数据流:

表4-2数据流表

数据流名来源去向简述

用户信息用户用户信息表用户个人基本信息

账务信息用户账务信息表用户账务相关信息

 

⑶数据存储:

表4-3数据存储表

数据存储名简述组成

用户信息表用户登录的用户名和密码用户名+密码

账务信息表用户的账务信息ID+日期+类型+数额+备注

4.2总体设计

一、系统层次图

 

图4-4系统层次图

二、数据库设计

本系统包含两个数据库表,分别是t_user和ConsumeRecord。

下面是两个数据库表的设计和录入内容的截图:

1)t_user表

图4-5t_user设计截图

图4-6t_user数据录入截图

2)ConsumeRecord表

图4-7ConsumeRecord设计截图

图4-8ConsumeRecord数据录入截图

4.3详细设计

4.3.1模块详细设计

本系统具有以下几个功能模块:

用户登录模块、查看账务信息模块、添加账务信息模块、删除账务信息模块、统计账务信息模块。

用户登录模块为用户分配账号密码使得个人的财务信息具有隐私性,收支管理各个模块能有效的管理用户的现金,可以进行添加,查询,删除操作,统计模块使得用户能够查询用户一段时间的收支情况。

1)用户登录模块流程图:

 

图4-9用户登录模块流程图

2)查看账务信息模块流程图:

图4-10查看账务信息模块流程图

3)添加账务信息模块流程图:

图4-11添加账务信息模块流程图

4)删除账务信息模块流程图:

图4-12删除账务信息模块流程图

5)统计账务信息模块流程图:

图4-13统计账务信息模块流程图

4.3.2流程设计

本系统采用struts2框架,用到了和数据库有关的最基本的方法定义,包括增、删、改、查等。

主要Action类与页面的设计如下:

1)类和方法的说明:

表4-4类和方法的相关说明

包名类名/方法名功能说明

actionLifeAction.java包含所有action

actionlogin()用户登录的方法

actionsearchRecord()查看账务信息的方法

actionaddRecord()添加账务信息的方法

actiondelectRecord()删除账务信息的方法

actioncalrecord()统计账务信息的方法

daoLifeDAO.java与数据库的交互

domainConsumeRecord.java定义数据库表的建立

domainUser.java定义数据库表的建立

serviceLifeService.java面向接口的中间层次的服务类

utilDBConnection.javajava中工具辅助层

2)MVC架构

图4-14MVC架构图

3)页面设计的说明:

表4-5页面设计表

页面名功能说明

login.jsp用户登录页面

main.jsp系统主页面

left.jsp主页面左边部分

top.jsp主页面顶部设计

index.jsp主页面布局

searchRecord.jsp查看账务信息页面

addRecord.jsp添加账务信息页面

delectRecord.jsp删除账务信息页面

calRecord.jsp输入查询时间段前的统计页面

calculator,jsp计算收入与支出之后的统计页面

4.4运行与测试

一、运行

1)用户登录:

图4-15登录页面login.jsp

2)登录成功后的主页面:

 

图4-16登录成功后的主页面

 

3)查看账务信息页面:

 

图4-17查看账务信息页面

 

4)添加账务信息页面:

图4-18添加信息前的添加页面

图4-19添加成功后的页面

5)删除账务信息页面:

 

图4-20删除前的删除页面

 

图4-21删除成功后的删除页面

6)统计账务信息页面:

图4-22输入统计时间段前的统计页面

图4-23成功计算收入与支出后的统计页面

 

二、测试

此处采用的是黑盒测试法,及主要测试系统的每个功能是否能正确运作。

以下为接受测试的各个功能模块描述:

1)用户登录模块:

系统能否正常登录,并跳转到主页面。

2)查看账务信息模块:

系统能否正常显示所有存储的信息。

3)添加账务信息模块:

系统能否正常添加所输入的信息。

4)删除账务信息模块:

系统能否正常删除所要删除的项目。

5)统计账务信息模块:

系统能否正常统计所输入的时间段内的收入与支出账务。

4.5主要源代码

1.action:

packageaction;

//省略了变量定义以及set、get方法

publicStringlogin(){

user.setName(name);

user.setPassword(password);

LifeServicelifeService=newLifeService();

if(lifeService.checkUser(user)==true)

return"success";

else

return"failure";

}

publicStringsearchRecord(){

LifeServicelifeService=newLifeService();

Listlist=lifeService.getRecord();

ActionContextact=ActionContext.getContext();

Maprequest=(Map)act.get("request");

request.put("searchrecord",list);

return"searchRecord";

}

publicStringaddRecord(){

ConsumeRecordconsumeRecord=newConsumeRecord();

consumeRecord.setExtre(extre1);

consumeRecord.setCostclass(costclass1);

consumeRecord.setDate(date1);

consumeRecord.setMoney(money1);

LifeServicelifeService=newLifeService();

lifeService.getAddRecord(consumeRecord);

Listlist=lifeService.getRecord();

ActionContextact=ActionContext.getContext();

Maprequest=(Map)act.get("request");

request.put("searchrecord",list);

return"addRecords";

}

publicStringdelectRecord(){

ConsumeRecordconsumeRecord=newConsumeRecord();

consumeRecord.setId(id);

LifeServicelifeService=newLifeService();

lifeService.getDeleteRecord(consumeRecord);

Listlist=lifeService.getRecord();

ActionContextact=ActionContext.getContext();

Maprequest=(Map)act.get("request");

request.put("searchrecord",list);

return"delectRecords";

}

publicStringcalRecord(){

LifeServicelifeService=newLifeService();

ConsumeRecordconsumeRecord=newConsumeRecord();

Listlist=lifeService.getcalRecord(consumeRecord);

Listl=lifeService.getRecord();

floatcost=0,earn=0;

for(Iteratorit=list.iterator();it.hasNext();)

{

ConsumeRecordcos=(ConsumeRecord)it.next();

if(cos.getDate().getTime()>=stadate.getTime()&cos.getDate().getTime()<=enddate.getTime())

if(cos.getCostclass().equals("支出"))

cost+=cos.getMoney();

else

earn+=cos.getMoney();

}

ActionContextact=ActionContext.getContext();

Maprequest=(Map)act.get("request");

request.put("cost",cost);

request.put("earn",earn);

request.put("searchrecord",l);

return"calRecords";

}

}

2.struts.xml

xmlversion="1.0"encoding="GBK"?

>

DOCTYPEstrutsPUBLIC

"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"

"http:

//struts.apache.org/dtds/struts-2.0.dtd">

--处理中文乱码-->

--此处的class属性值不是实际的类-->

/index.jsp

/login.jsp

/searchRecord.jsp

/addRecord.jsp

/delectRecord.jsp

/calRecord.jsp

/addRecord.jsp

/delectRecord.jsp

/calculator.jsp

3.xml

xmlversion="1.0"encoding="UTF-8"?

>

xsi="http:

//www.w3.org/2001/XMLSchema-instance"xmlns="xmlns:

web="xsi:

schemaLocation="version="2.5">

struts2

org.apache.struts2.dispatcher.FilterDispatcher

struts2

/*

index.jsp

4.addRecord.jsp

formaction="add">

ID类型数额(单位:

元)日期备注

iteratorvalue="#request.searchrecord">

propertyvalue="id">

property>

propertyvalue="costclass">

property>

propertyvalue="money">

property>

propertyvalue="date">

property>

propertyvalue="extre">

property>

iterator>

<%--

radiolist="#{'1':

'收入','2':

'支出'}"label="类型"name="costclass1"listKey="value"value='1'>

radio>--%>

submitvalue="添加"/>

类型

selectlist="{'收入','支出'}"name="costclass1"value="收入">

select>

数额(单位:

元)

textfieldname="money1"/>

日期

textfieldname="date1"/>

备注

textfieldname="extre1"/>

form>

5.calculator.jsp

formaction="calculator">

ID类型数额(单位:

元)日期备注

iteratorvalue="#request.searchrecord">

propertyvalue="id">

property>

propertyvalue="costclass">

property>

propertyvalue="money">

property>

propertyvalue="date">

property>

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1