1、JavaEE课程设计个人账务统计软 件 学 院课程设计报告书课程名称 Java EE 与中间件 设计题目 个人账务统计系统 专业班级 软件工程10-04班 学 号 1020010432 姓 名 张小龙 指导教师 刘佳旭 2013年 1 月目 录1 设计时间 22 设计目的 23设计任务 24 设计内容 24.1需求分析 24.1.1总体目标 24.1.2具体目标 34.1.3系统数据建模(ER图) 44.1.4系统功能建模(数据流程图) 44.1.5数据字典 54.2总体设计 74.3详细设计 94.3.1模块详细设计 94.3.2流程设计 124.4运行与测试 134.5主要源代码 185
2、总结与展望 24参考文献 25成绩评定 251 设计时间 2013年1月21日2013年1月24日2 设计目的JavaEE课程设计是对所学JavaEE与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求同学们对课程中所学习到的知识综合运用,开发有一定规模的Java Web程序。3设计任务 个人账务统计系统设计任务: (一)必备功能说明: 功能描述:用户以合法身份登录系统后,才能进行所有操作;用户可以添加、查看和删除账务信息(账务类型(包括支出和收入两种)、数额(人民币)、日期、备注(存储说明信息,如购买了什么东西,或发了工资还是福利津贴等);用户可以统计某
3、个时间段内的支出总货币数目和收入总货币数目。 添加账务信息 查看账务信息 删除账务信息 分别统计某个时间段内的收入和支出总额 (二)开发语言与开发环境: MyEclipse、Java、数据库(sqlserver2000、mysql、oracle等任选一种)4 设计内容4.1需求分析4.1.1总体目标本系统是针对用户要求,使用计算机对自己日常的资金的收入、支出以及相关的各种信息进行记录、修改、添加、删除、统计等操作,并实现对信息进行统计设计的一种现代化个人财务管理软件。经过分析,本系统需要具有以下功能:1)能够实现个人财务管理方面各项功能,能成功的对用户各种信息进行管理。2)实现查询、统计、删除
4、、添加数据方便,数据的稳定性和可靠性好。3)能够实现按日期查询。4)拥有良好的人机交互界面。4.1.2具体目标本系统具有以下几个功能模块:用户登录模块、查看账务信息模块、添加账务信息模块、删除账务信息模块、统计账务信息模块。用户登录模块为用户分配账号密码使得个人的财务信息具有隐私性,收支管理各个模块能有效的管理用户的现金,可以进行添加,查询,删除操作,统计模块使得用户能够查询用户一段时间的收支情况。各个功能模块描述:1) 用户登录模块:系统正常登录,并跳转到主页面。2) 查看账务信息模块:系统正常显示所有存储的信息。3) 添加账务信息模块:系统正常添加所输入的信息。4) 删除账务信息模块:系统
5、正常删除所要删除的项目。5) 统计账务信息模块:系统正常统计所输入的时间段内的收入与支出账务。对于个人财务管理系统,我们要求软件满足用户对个人财务的隐私性管理,确保在用户以外的其他人使用软件对其信息进行操作,所以要采用用户注册和登录制度,确保用户对自己财务信息的隐私管理。性能需求:稳定性:本系统为财务管理系统,多为查询、修改、删除、添加数据等操作,要求数据的稳定性好。可靠性:用户财务数据多比较重要,要求系统具有数据备份,数据恢复等性能。安全性:系统设计个人银行账号以及密码的保存,要求系统提供加密保存等安全措施,即要求系统有较高的安全性能。4.1.3系统数据建模(ER图)图4-1 系统ER图4.
6、1.4系统功能建模(数据流程图)简称DFD,它用来描述目标系统的逻辑结构,它是由实体部分,处理部分,数据存储部分和数据流四部分组成。图4-2 顶层数据流程图图4-3 一层数据流程图4.1.5数据字典数据字典是对数据流图的解释和说明,包含的内容如下:数据元素: 表4-1 数据元素表 数据元素名 类型 长度 说明用户名 字符型 50 用户登录的名字 密码 字符型 50 用户登录的密码 ID 整形 8 账务的编号 日期 日期型 8 账务的记录日期 类型 字符型 50 账务的类型,分为收入与支出 数额 双精度浮点数 8 账务的金额,单位元 备注 字符型 50 账务的相关备注信息数据流:表4-2 数据流
7、表 数据流名 来源 去向 简述用户信息 用户 用户信息表 用户个人基本信息账务信息 用户 账务信息表 用户账务相关信息数据存储:表4-3 数据存储表 数据存储名 简述 组成 用户信息表 用户登录的用户名和密码 用户名+密码 账务信息表 用户的账务信息 ID+日期+类型+数额+备注4.2总体设计 一、系统层次图图4-4 系统层次图 二、数据库设计本系统包含两个数据库表,分别是t_user 和ConsumeRecord。下面是两个数据库表的设计和录入内容的截图:1) t_user表图4-5 t_user设计截图图4-6 t_user 数据录入截图2) ConsumeRecord表图4-7 Cons
8、umeRecord设计截图图4-8 ConsumeRecord数据录入截图4.3详细设计4.3.1模块详细设计本系统具有以下几个功能模块:用户登录模块、查看账务信息模块、添加账务信息模块、删除账务信息模块、统计账务信息模块。用户登录模块为用户分配账号密码使得个人的财务信息具有隐私性,收支管理各个模块能有效的管理用户的现金,可以进行添加,查询,删除操作,统计模块使得用户能够查询用户一段时间的收支情况。1) 用户登录模块流程图: 图4-9用户登录模块流程图2)查看账务信息模块流程图:图4-10查看账务信息模块流程图3)添加账务信息模块流程图: 图4-11添加账务信息模块流程图4)删除账务信息模块流
9、程图:图4-12删除账务信息模块流程图5)统计账务信息模块流程图: 图4-13统计账务信息模块流程图4.3.2流程设计 本系统采用struts2框架,用到了和数据库有关的最基本的方法定义,包括增、删、改、查等。主要Action类与页面的设计如下:1)类和方法的说明:表4-4 类和方法的相关说明 包名 类名/方法名 功能说明 action LifeAction.java 包含所有action action login() 用户登录的方法 action searchRecord( ) 查看账务信息的方法 action addRecord ( ) 添加账务信息的方法 action delectRec
10、ord( ) 删除账务信息的方法 action calrecord( ) 统计账务信息的方法 dao LifeDAO.java 与数据库的交互 domain ConsumeRecord.java 定义数据库表的建立 domain User.java 定义数据库表的建立 service LifeService.java 面向接口的中间层次的服务类 util DBConnection.java java中工具辅助层2)MVC架构图4-14 MVC架构图3)页面设计的说明:表4-5 页面设计表 页面名 功能说明 login.jsp 用户登录页面 main.jsp 系统主页面 left.jsp 主页面
11、左边部分 top.jsp 主页面顶部设计 index.jsp 主页面布局 searchRecord.jsp 查看账务信息页面 addRecord.jsp 添加账务信息页面 delectRecord.jsp 删除账务信息页面 calRecord.jsp 输入查询时间段前的统计页面 calculator,jsp 计算收入与支出之后的统计页面4.4运行与测试 一、运行1)用户登录:图4-15登录页面login.jsp2)登录成功后的主页面:图4-16 登录成功后的主页面3)查看账务信息页面:图4-17查看账务信息页面4)添加账务信息页面:图4-18 添加信息前的添加页面图4-19 添加成功后的页面5
12、)删除账务信息页面:图4-20 删除前的删除页面图4-21 删除成功后的删除页面6)统计账务信息页面:图4-22 输入统计时间段前的统计页面图4-23 成功计算收入与支出后的统计页面二、测试此处采用的是黑盒测试法,及主要测试系统的每个功能是否能正确运作。以下为接受测试的各个功能模块描述:1) 用户登录模块:系统能否正常登录,并跳转到主页面。2) 查看账务信息模块:系统能否正常显示所有存储的信息。3) 添加账务信息模块:系统能否正常添加所输入的信息。4) 删除账务信息模块:系统能否正常删除所要删除的项目。5) 统计账务信息模块:系统能否正常统计所输入的时间段内的收入与支出账务。4.5主要源代码1
13、action:package action;/省略了变量定义以及set、get方法public String login() user.setName(name); user.setPassword(password); LifeService lifeService=new LifeService(); if(lifeService.checkUser(user)=true) return success; else return failure;public String searchRecord() LifeService lifeService=new LifeService(); L
14、ist list=lifeService.getRecord(); ActionContext act=ActionContext.getContext(); Map request=(Map)act.get(request); request.put(searchrecord, list); return searchRecord;public String addRecord() ConsumeRecord consumeRecord=new ConsumeRecord(); consumeRecord.setExtre(extre1); consumeRecord.setCostclas
15、s(costclass1); consumeRecord.setDate(date1); consumeRecord.setMoney(money1); LifeService lifeService=new LifeService(); lifeService.getAddRecord( consumeRecord); List list=lifeService.getRecord(); ActionContext act=ActionContext.getContext(); Map request=(Map)act.get(request); request.put(searchreco
16、rd, list); return addRecords; public String delectRecord() ConsumeRecord consumeRecord=new ConsumeRecord(); consumeRecord.setId(id); LifeService lifeService=new LifeService(); lifeService.getDeleteRecord(consumeRecord); List list=lifeService.getRecord(); ActionContext act=ActionContext.getContext();
17、 Map request=(Map)act.get(request); request.put(searchrecord, list); return delectRecords;public String calRecord() LifeService lifeService=new LifeService(); ConsumeRecord consumeRecord=new ConsumeRecord(); List list=lifeService.getcalRecord(consumeRecord); List l=lifeService.getRecord(); float cos
18、t=0,earn=0; for(Iterator it=list.iterator();it.hasNext(); ) ConsumeRecord cos=(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(); ActionContext act=ActionCon
19、text.getContext(); Map request=(Map)act.get(request); request.put(cost, cost); request.put(earn, earn); request.put(searchrecord, l); return calRecords;2.struts.xml /index.jsp /login.jsp /searchRecord.jsp /addRecord.jsp /delectRecord.jsp /calRecord.jsp /addRecord.jsp /delectRecord.jsp /calculator.jsp 3.xml struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* index.jsp 4.addRecord.jsp ID类型数额(单位:元)日期备注 %- -% 类型 数额(单位:元) 日期 备注 5.calculator.jsp ID类型数额(单位:元)日期备注
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1