javaEE-课程设计-个人财务管理系统
软件学院
课程设计报告书
课程名称JavaEE 课程设计
设计题目个人财务系统
专业班级软件工程
学号xxxxxxxxx07
姓名xxxxx
指导教师姜彦吉
2011 年12 月
1 设计时间
2011年12月12日——12月16日
2 设计目的
JavaEE课程设计是对所学JavaEE与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求同学们对课程中所学习到的知识综合运用,开发有一定规模的Java Web程序。
3设计任务
设计个人帐务管理系统,要求用户以合法的身份登录后可以对系统进行操作,用户可以查看,添加,删除和计算某段时间内帐务的收入和支出信息等。帐务信息包括收入和支出两种,还有日期和备注。
4 设计内容
4.1 设计题目
个人财务管理系统
4.1.1系统功能要求
用只有拥有合法身份才能登录系统,用以合法身份登录后可以产看帐务信息、添加帐务信息、删除帐务信息、分别统计某个时间段内的收入和支出总额。
4.1.2 数据库存储要求
数据的存储要求:收入数额,支出数额,备注,日期
4.1.3数据库的设计
表—1(数据存储要求)
列名称数据类型长度id bigint 8 incomemoney money 8 costmoney money 8 record varchar 50 time varchar 8
图—1(数据库存储数据)
4.1.4系统构造关系
登陆窗口
no
密
yes
图—2(jsp 页面构造)
图—3(Java 类功能调用) 4.2 Jsp 页面设计
4.2.1登录界面
保存 查询
删除 计算
操作界面 Jsp 页面传调用参数
保存方查询方删除方计算方保存方
查询方删除方
计算方
图—4(登录界面)
代码如下:
4.2.2登录成功界面
图—5(登录成功查询界面)
代码如下:
<%
String username=(String)session.getAttribute("name");
if(username!=null){%>
<%} %>
删除帐目信息请如下:
4.2.3查询结果界面
图—6(查询结果界面)
4.3Java方法设计
4.3.1Servlet类
控制增删改操作的servlet类代码设计如下:
public class AccountController extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int arg=Integer.parseInt(request.getParameter("arg"));
switch(arg)
{
case 1:this.findAllAccount(request,response);
break;
case 2:this.saveAllAccount(request,response);
break;
case 3:this.deleteSomeAccount(request,response);
break;
case 4:this.caculateAccount(request,response);
break;
}
}
protected void caculateAccount(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
int a=0;
int b=0;
a=Integer.parseInt(request.getParameter("id"));
b=Integer.parseInt(request.getParameter("id"));
AccountDao accountDao=new AccountDao();
List list2=accountDao.caculateAccount(a,b);
request.setAttribute("result",list2);
RequestDispatcher rdt1=request.getRequestDispatcher("/Result1.jsp");
rdt1.forward(request, response);
}
public void findAllAccount(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
AccountDao accountDao=new AccountDao();
List list=accountDao.findAllAccount();
request.setAttribute("accounts", list);
RequestDispatcher rdt=request.getRequestDispatcher("/Result.jsp");
rdt.forward(request, response);
}
public void saveAllAccount(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
request.setCharacterEncoding("gbk");
double incomemoney=0.0;
double costmoney=0.0;
incomemoney=Double.parseDouble(request.getParameter("incomemoney"));
costmoney=Double.parseDouble(request.getParameter("costmoney"));
String record=(String)request.getParameter("record");
String time=(String)request.getParameter("time");
MyAccount myAccount=new MyAccount();
myAccount.setIncomemoney(incomemoney);
myAccount.setCostmoney(costmoney);
myAccount.setRecord(record);
myAccount.setTime(time);
AccountDao accountDao=new AccountDao();
try {
accountDao.saveAllAccount(myAccount);
}
catch(Exception e) {
e.printStackTrace();
}
this.findAllAccount(request,response);
}
public void deleteSomeAccount(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
request.setCharacterEncoding("gbk");
String time=request.getParameter("time");
MyAccount myAccount=new MyAccount();
myAccount.setTime(time);
AccountDao accountDao=new AccountDao();
try {
accountDao.deleteSomeAccount(myAccount);
}
catch(Exception e) {
e.printStackTrace();
}
this.findAllAccount(request, response);
}
}
密码验证的Servlet类的代码如下:
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username=req.getParameter("username");
String password=req.getParameter("password");
User user=new User();
user.setUsername(username);
user.setPassword(password);
HttpSession session=req.getSession();
String forward="";
if(UserService.CheckLogin(user))
{
forward="/Search.jsp";
session.setAttribute("name", username);
}
else
{
forward="/error.jsp";
}
RequestDispatcher rd=req.getRequestDispatcher(forward);
rd.forward(req,resp);
}
}
4.3.2Dao类
密码验证的Dao类代码设计如下:
public class UserService {
public static boolean CheckLogin(User user)
{
if(user.getUsername().equals("lb")&&user.getPassword().equals("123"))
{
return true;
}
return false;
}
}
帐务添加查询计算的Dao类代码设计如下:
public class AccountDao {
private Connection conn;
public List findAllAccount()
{ conn=DBCon.getConnection();
String listSQL="select * from myaccount";
List list=new ArrayList();
try{
PreparedStatement psmt=conn.prepareStatement(listSQL);
ResultSet rs=psmt.executeQuery();
while(rs.next())
{
MyAccount account=new MyAccount();
account.setId(rs.getInt(1));
account.setIncomemoney(rs.getDouble(2));
account.setCostmoney(rs.getDouble(3));
account.setRecord(rs.getString(4));
account.setTime(rs.getString(5));
list.add(account);
}
https://www.wendangku.net/doc/b018591021.html,mit();
return list;
}
catch(Exception e){
e.printStackTrace();
}
finally
{
if(conn!=null)
{
try{
conn.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
}
return list;
}
public boolean saveAllAccount(MyAccount account)throws Exception {
conn=DBCon.getConnection();
String listSQL="insert into myaccount values(?,?,?,?)";
PreparedStatement psmt=conn.prepareStatement(listSQL);
try{
psmt.setDouble(1, account.getIncomemoney());
psmt.setDouble(2, account.getCostmoney());
psmt.setString(3, account.getRecord());
psmt.setString(4, account.getTime());
psmt.executeUpdate();
https://www.wendangku.net/doc/b018591021.html,mit();
return true;
}
catch(SQLException e){
conn.rollback();
e.printStackTrace();
}
return false;
}
public boolean deleteSomeAccount(MyAccount account)throws Exception
{
conn=DBCon.getConnection();
String listSQL="delete from myaccount where time=? ";
PreparedStatement psmt=conn.prepareStatement(listSQL);
try {
psmt.setString(1, account.getTime());
psmt.executeUpdate();
https://www.wendangku.net/doc/b018591021.html,mit();
return true;
}
catch(SQLException e) {
conn.rollback();
e.printStackTrace();
}
return false;
}
public List caculateAccount(int x,int y)
{
conn=DBCon.getConnection();
double incometotal=0.0;
double costtotal=0.0;
int i=0;
List list2=new ArrayList();
try{
MyAccount account=new MyAccount();
for( i=x;i<=y;i++)
{
String listSQL1="selct incomemoney from myaccount where id=i";
PreparedStatement psmt1=conn.prepareStatement(listSQL1);
ResultSet rs1=psmt1.executeQuery();
psmt1.execute();
incometotal=incometotal+rs1.getDouble(2);
String listSQL2="select costmoney from myaccount where id=i";
PreparedStatement psmt2=conn.prepareStatement(listSQL2);
ResultSet rs2=psmt2.executeQuery();
psmt2.execute();
costtotal=costtotal+rs2.getDouble(3);
}
https://www.wendangku.net/doc/b018591021.html,mit();
account.setIncomemoney(incometotal);
account.setCostmoney(costtotal);
list2.add(account);
return list2;
}
catch(SQLException e) {
e.printStackTrace();
}
return list2; }
}
4.3.3数据库连接类
数据库连接代码如下:
public class DBCon {
public static Connection getConnection()
{
String
url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=myaccountbase";
String user="sa";
String psw="sa";
Connection conn=null;
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(ClassNotFoundException e){
e.printStackTrace();
}
try{
conn=DriverManager.getConnection(url, user, psw);
conn.setAutoCommit(false);
return conn;
}
catch(SQLException e){
e.printStackTrace();
}
return null;}
}
5 总结与展望
通过本次课程设计自己JavaWeb编程加深了理解,对MVC模型的工作原理和工作过程有了更深刻的理解,对struts2模型及其工作过程也有了比从前更深的认识,对于如何配置web.xml和struts.xml文件也加深了记忆,Filterdispatcher过滤器的作用自己也进一步加深了印象。最重要的是自己在这次课程设计中培养了自己独立觉问题的能力和解决问题的耐心。比如自己在计算收入和支出帐务的和的时候,刚开始自己所写的算法之不能正确的计算出结果,总是在返回的物理视图显示0.0 0.0,在运行期间控制没有显示任何错误,原来自己在初始化的时候给incometotal和costtotal都初始化为0.0而自己的方法在执行查询语句后得到一个Resultset结果集自己在累加计算收入和支出的综合的时候,自己在if语句的调减中rs.next()取非,导致没有进行累加计算,结果如论如何都返回0.0和0.0这两个结果。只要把去非的!去掉即可得到正确的
计算结果并返回给物理视图。
参考文献
[1] 范立峰,林果园.JavaWeb程序设计教程.第1版, 北京:人民邮电出版社,2010
成绩评定
成绩教师签字
目录
1 设计时间 (1)
2 设计目的 (1)
3设计任务 (1)
4 设计内容 (1)
4.1 设计题目 (1)
4.1.1系统功能要求 (1)
4.1.2 数据库存储要求 (1)
4.1.3数据库的设计 (2)
4.1.4系统构造关系 (2)
4.2 Jsp 页面设计 (3)
4.2.1登录界面 (3)
4.2.2登录成功界面 (4)
4.2.3查询结果界面 (6)
4.3.1Servlet类 (6)
4.3.2Dao类 (10)
4.3.3数据库连接类 (14)
5 总结与展望 (15)
参考文献 (16)
成绩评定 (17)
第七章财务管理系统设计与实现 §7.1 财务管理系统业务简介 一、财务管理业务概述 企业财务管理是基于企业再生产过程中客观存在的财务活动和财务关系而产生的,根据企业再生产过程中的资金运动,工业企业财务管理的内容包括:固定资金管理、流动资金管理、专用资金管理、产品成本管理、销售收入管理、企业纯收入和财务支出管理等。其中固定资金管理是指垫支在劳动资料上的资金(包括:厂房、机器设备等固定资产);流动资金是指垫支在劳动对象上的资金(包括:原材料、燃料、在产品、产成品、银行存款及各种结算项目);专用资金是指具有专门用途的资金(包括:生产发展基金、更新改造基金、新产品试制基金、大修理基金等);成本管理将在下一章中详细介绍。 二、财务管理工作的具体内容 1.凭证 凭证的制作和管理是财务工作的一项重要内容,所有的财务活动都要通过制作凭证才能记入相应的帐目。当经济活动发生后,财务人员要收集业务的原始凭证(发票、入出库单等),并根据业务活动涉及的财务科目填写相应的凭证分录,制成记帐凭证。在一段时间后要将凭证归类装订成册以备检查。财务涉及的凭证一般包括:收款凭证、付款凭证和转帐凭证。 2.记帐 在凭证制作完成后,由会计人员对凭证进行审核,检查凭证制作是否正确,然后再根据凭证涉及的科目登记相应的明细分类帐和总帐。 3.银行帐 企业银行帐因为牵涉到流动资金的管理,所以管理起来较为严格,需要计算每天的收入、支出并结出余额。另外银行帐管理还包括银行对帐业务。企业的开户银行为企业设立一本收入、支出明细帐,而企业本身也有银行存款收入、支出的日记帐,这两本张之间就存在着一个对帐问题。银行定期给企业发出银行对帐单,企业根据对帐单上银行帐的收入、支出记录和自己记的银行日记帐记录进行核对,将对上的记录销掉,查找出哪些记录是银行未作登帐的(银行未达帐),哪些记录是企业未登帐的(企业未达帐),并制作出未达帐调节表。 4.往来帐 往来帐是指企业与往来户(客户、供应商)之间发生的应收款、预收款、应付款、预付款业务。往来业务量对企业来说一般是比较多的。要管理好每一个往来户的每一笔往来款,首先要对往来户单独设立帐户,将每一笔应收、应付款详细记录清楚;当收款或付款时,将收到或付出的款项逐笔分配到应收或应付款记录中进行勾对,销掉应收或应付款记录。这是一项比较复杂而繁琐的工作。 5.报表及财务分析 企业每个核算期末都要制作报表,上报上级单位和财政税务部门。各类财务报表从不同角度反映企业的经营和财务状况,报表主要有:资产负债表、利润表和财务状况变动表。 财务工作还能及时为企业领导提供相关的财务数据信息,如:资金使用情况,企业赢利
《JavaEE》课程设计报告 题目名称:基于struts2、Spring、Hibernate 构建一个网上投票系统 指导教师:_______ _________ _______ 专业班级:__ ____ ______ _ 组长:________ _____ ______ 成员:__ 娄宇杨浩亮张益民林强 __ __ 电子邮件:____ 15224891@https://www.wendangku.net/doc/b018591021.html,_ ______ _ 设计时间: 2011 年 11 月 16 日至 2011 年 12 月 21 日 成绩:______
目录 基于struts2、Spring、Hibernate构建一个网上投票系统 (3) 一、问题描述及设计思路 (3) 1.1 需求分析 (3) 1.2业务分析 (3) 1.3投票用例 (5) 二、详细设计过程 (8) 2.1 创建Struts2应用 (8) 2.2 添加Hibernate (8) 2.3 添加Spring应用 (9) 2.4 领域模型层设计 (9) 三、结论和体会 (13) 3.1 结论 (13) 3.2 体会 (13) 四、附录 (14) 附录A 其它图表 (14) 附录B 主要程序代码 (15) 五、参考文献 (21)
基于struts2、Spring、Hibernate构建一个 网上投票系统 一、问题描述及设计思路 对于开发一个投票管理系统来说,应该实现什么功能,如何实现这个功能都是开发人员必须了解的问题。将这个系统的需求、业务流程以及用例进行细致的分析、讲解。 1.1 需求分析 随着网络应用的日益普及,投票的形式也发生了很大的变化。目前在很多的场合,投票已经开始由原始方式转变为网上投票。由于具有方便、快捷、成本低、调查范围广等优点,网上投票已经被广泛的应用。如何管理好网上投票信息内容也变得十分的重要,我们所设计开发的投票管理系统,正是基于这种需求诞生的。 本投票管理系统分为用户提供网上投票和投票信息管理两大类功能。通过投票管理功能可以完成增加新投票、修改原有投票信息、查找投票等功能。本系统的界面友好、操作简便,适用于任何网站进行投票调查。 本系统的基本功能如下所述。 ●使用本系统的网上投票功能,用户只要登录指定的网页,就可以进行投票操作,并 可以得到投票结果信息。 ●使用本网站的登录功能,管理员可以登录系统,然后对相关的信息进行管理。 ●使用本系统的创建投票功能,管理员可以创建一个新的投票功能。。 ●使用本系统的管理投票功能,管理员可以对系统已经存在的投票进行更新,包括增 加投票子选项、删除投票子选项、修改投票类型、更改投票状态。 ●使用本系统的查找投票功能,管理员可以通过输入部分或者全部的投票主题查找对 应的投票信息。 ●使用本系统的管理员管理功能,管理员可以修改本人的密码或者创建一个新的管理 员。 ●使用本系统的注销功能,管理员可以安全的退出本系统。 1.2业务分析 投票管理系统由前台和后台两部分组成:前台显示投票并可以执行投票操作,后台是对投票信息和管理员信息进行管理。下面分别从使用前台和使用后台两个角度来分析本系统的业务流程。 1.2.1显示投票 用户进入投票页面如图,进行投票操作。
软件学院 课程设计报告书 课程名称JavaEE 课程设计______________________ 设计题目个人财务系统____________________ 专业班级软件工程 _______________________ 学号xxxxxxxxx07 __________________________ 姓名XXXXX_______________________________ 指导教师姜彦吉 ________________________
2011年12 月
4.1.4系统构造关系 图一2 (jsp页面构造)
4.2 Jsp 页面设计 421登录界面 图一4 (登录界面) 代码如下: vform action= "servlet/LoginServlet" method= "post" >
图一5 (登录成功查询界面) 代码如下: <% String username=(String)session.getAttribute (”name"); if (username!= null ){%>