个人财务管理系统课程设计说明书大学论文

更新时间:2023-04-28 16:50:19 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计说明书

课程名称:软件工程

设计题目:个人财务管理系统

学院:计算机科学与信息工程

学号姓名:

14031010257 吴伟

14031010105 阮珂

14031010114 赵秉轩

14031010226 冯壮壮

专业班级:14-计科应用班

指导教师:高原

2016年12月23日

课程设计任务书

个人财务管理系统

摘要:Windows平台上,分析设计了“个人财务管理信息系统”。系统软件和对数据库的操作和管理只需在计算机使用相应的软件完成。

如今计算机已走进千家万户,极大的便利了人们的生活。传统的在纸上记录个人收入支出的方式不仅耗时耗料,同时缺乏科学有效的管理。并且存放在纸质的信息安全性不好,一旦获得该纸质信息便可获得所有记录。纸质信息的另一大坏处在于纸质一旦丢失,想要还原长时间以来的信息十分困难。人们需要一种简洁方便安全可备份以记录并管理个人收入支出信息的软件,可是市场上的财务管理软件大多数都十面向企业,或是有专门用途,面向普通用户的个人财务管理系统很难找到,在者免费的软件更是少之又少,为了满足普通用户的需求,特开发此软件。

本系统功能简单,只适合对个人财务管理要求不高的用户,可以完成收入支出金钱及物品的记录与查询操纵,本系统操作简单,用户无需记录复杂的命令,打开主机面就可以很容易看出系统的功能,在者,本软件为免费产品,对于不愿花很多钱购买软件的用户来说是个很好的选择,本软件无需很高的硬件配置,一般的配置均可运行,占用系统资源少。

本报告中首先说明了该系统的特点与业务需求,之后详细说明了系统的业务流程和系统开发流程,重点介绍了系统各模块的功能及相关功能的具体实现。该系统功能简洁完善、用户界面友好、运行稳定,可完成日常个人财务信息的管理和维护。

本报告中首先说明了该系统的业务需求,之后介绍了系统的总体设计思路以及着重介绍了数据库表的设计过程及说明可供研究此系统的人员提供参考

关键词:java、个人财务管理、eclipse

目录

1. 设计背景 (1)

1.1背景 (1)

1.2可行性分析 (1)

2. 设计方案 (1)

2.1用户需求 (1)

2.2功能模块设计 (2)

3. 方案实施 (3)

3.1功能模块编写 (3)

3.2细节调整以及链接 (7)

4. 结果与结论 (7)

4.1运行结果 (7)

4.2结论 (8)

5. 收获与致谢 (9)

6. 参考文献 (9)

7. 附件 (9)

1. 设计背景

1.1背景

随着计算机技术飞速发展及其应用领域的扩大,特别是计算机软件和硬件的飞速发展,极大地便利了人们的生活和传统的经营和管理模式。软件应用的突出表现能够为客户提供更为方便、快捷、安全、科学的服务,人们开始意识到科技改变方法的手段。发现通过编写功能强大的软件以实现并替代传统的经营和管理模式能有效降低各领域管理方面的运营成本。于软件市场和需求不断扩大,这也是一个又一个软件管理系统相继出现的原因。越来越多的面向多领域的功能强大的管理软件在市面上喷涌出现。在掌握了部分软件知识后,我们也尝试着运用知识实现一款个人财务管理系统。

1.2可行性分析

当接受一个软件开发任务,就进入软件生命的第一个阶段,即进行可行性的研究。并不是所有问题都具有简单的解决办法,许多问题不能在预定的规模之内解决。由于该系统是有个人运用编译软件实现的简洁、方便。只要有相应的运行软件即可使用。所以不存在经济成本的问题,在讨论了将需求模拆分后认为该这些模块是能够在知识范围内实现的。

2.设计方案

2.1用户需求

本系统是针对用户要求:a. 账户管理:管理用户的账户信息。接受用户账户信息的提交,进行处理后用表单的形式进行显示。

b.收支管理:处理用户的收入和支出的信息,进行处理后用表单的形式进行显示,同时提供时间段的收支情况查询功能。

c.借贷管理:用户提交借贷信息,进行处理后显示借贷的详细信息,同时提供时间段的借贷情况的查询。

d.统计功能:统计功能提供用户财务信息的查询和统计的功能,可以统计账户信息,收支信息,借贷信息,并以时间段作为标准,显示统计结果。

e.基础设置:通过基础设置,进行整个系统的初始化设置,包括添加各个管理项目

1

的属性分类。

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

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

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

3、拥简洁明了的人机交互界面。

2.2功能模块设计

下文针对用户需求对具体模块功能的内容进行阐述

交互界面(软件主页):软件主页的风格是标准的Windows窗口界面风格,由于是个人用户使用,将具体的收支管理、借贷管理、统计功能、基础设置功能模块以水平排版的方式罗列在主页。

账户管理模块:当用户点击该功能模块后。实现对软件账户的管理。若当前已有用户在使用会显示当前账号用户的信息。

收支管理模块:当用户点击该功能模块后,有三个可编辑文本框和一个查询按钮。可实现对现有账户的资金的支出、收入以及日期的管理和编辑。当用户输入相应的数据时,个人账户的资金对做相应并显示当前的账户详情。同时将该变化同步到数据库。点击查询按钮可根据日期显示出该日期下个人资金的所有变动情况

借贷管理:当用户点击该功能模块后,有三个可编辑文本框和一个查询按钮。可实现对现有账户的资金的借出、归还情况以及日期的管理和编辑。当用户输入相应的数据时,个人账户的资金对做相应变化点击查询还可根据日前显示该日期下的账户详情。同时将该变化同步到数据库。

统计管理:在该模块下会提供近期将数据库的变化对用户财务信息统计以日期为分组将具体内容显示在文本显示框内,包括账户信息,收支信息,借贷信息,并以时间段作为分组,显示统计结果。

基础设置:该模块要实现对当前用户账户信息的以及所对应的数据库表的初始化。

2

3. 方案实施

3.1功能模块编写

交互界面:采用标准的Windows经典的界面风格,根据模块设计将所需要的按扭以水平排列的风格布置到主页和模块页如下:

模块页

账户管理模块:首先在已经建好数据库表有基础数据基础上,获取用户在收入编辑框和支出编辑框的输入的数据,做相应的加减处理并根据输入的时间保存到数据库,部分代码如下。

JFrame jiedai = new JFrame("借贷管理");

jiedai.setBounds(400, 200, 700, 500);

jiedai.setLayout(new FlowLayout());

jiedai.dispose();

JLabel zujie = new JLabel("租借");

JLabel guihuan = new JLabel("归还");

JLabel shijian = new JLabel("时间");

TextField zujie_1 = new TextField(20);

TextField guihuan_1 = new TextField(20);

TextField shijian_1 = new TextField(20);

Button chaxun = new Button("查询");

3

Button baocun = new Button("保存");

Button tuichu = new Button("退出");

jiedai.add(zujie);

jiedai.add(zujie_1);

jiedai.add(guihuan);

jiedai.add(guihuan_1);

jiedai.add(shijian);

jiedai.add(shijian_1);

jiedai.add(chaxun);

jiedai.add(baocun);

jiedai.add(tuichu);

此部分代码为页面设计,只是简单的工具添加在窗口上。

baocun.addActionListener(new ActionListener()//保存按钮

{

public void actionPerformed(ActionEvent e)

{

String sjie = zujie_1.getText();

String shuan = guihuan_1.getText();

String riqi = shijian_1.getText();

if (sjie == "")

{

sjie = "0";

}

if (shuan == "0")

{

shuan = "0";

}

int jie = Integer.valueOf(sjie).intValue();

int huan = Integer.valueOf(shuan).intValue();

Connection conn = GetConnection.getConnection();

try {

Statement statement = (Statement)

conn.createStatement();

boolean rs = statement.execute("insert into xiaoming

(shouru,zhichu,zujie,guihuan,riqi)values(0,0,"+jie+","+huan+","+riqi+ ");");

} catch (SQLException e1) {

// TODO自动生成的 catch 块

e1.printStackTrace();

}

4

}

});

此部分代码为保存按钮的工作代码。主要就是连接数据库和把修改的数据存进数据库。chaxun.addActionListener(new ActionListener()//查询按钮

{

public void actionPerformed(ActionEvent e)

{

JFrame f = new JFrame("借贷查询");

f.setBounds(400, 200, 700, 500);

f.setLayout(new FlowLayout());

f.dispose();

JLabel shijian = new JLabel("请输入要查询的日期");

TextField shijian_1 = new TextField(20);

Button cha = new Button("查询");

JTextArea jieguo = new JTextArea(20, 40);

f.add(shijian);

f.add(shijian_1);

f.add(cha);

f.add(jieguo);

cha.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String sriqi = shijian_1.getText();

Connection conn =

GetConnection.getConnection();

try {

Statement statement = (Statement) conn.createStatement();

ResultSet rs =

statement.executeQuery("select * from xiaoming where riqi =

'"+sriqi+"'");

while(rs.next())

{

int jie = rs.getInt("zujie");

int huan = rs.getInt("guihuan");

jieguo.append("收入:"+jie+" 支出

"+huan+"\n");

5

}

} catch (SQLException e1) {

// TODO自动生成的 catch 块

e1.printStackTrace();

}

}

});

此部分代码为查询按钮的工作方式。主要新创建一个窗口然后连接数据库,之后根据输入的日期查询数据库内容。

借贷模块与收支模块基本相同。

Connection conn = GetConnection.getConnection();

try {

Statement statement = (Statement) conn.createStatement();

ResultSet rs = statement.executeQuery("select * from xiaoming");

while(rs.next())

{

int shou = rs.getInt("shouru");

zshou += shou;

int zhi = rs.getInt("zhichu");

zzhi += zhi;

int jie = rs.getInt("shouru");

zzhi += zhi;

int huan = rs.getInt("guihuan");

zhuan += huan;

String shijian = rs.getString("riqi");

jieguo.append("收入:"+shou+" 支出:"+zhi+" 租借:"+jie+" 归还:"+huan+" 日期:"+shijian+"\n");

}

jieguo.append("\n总收入:"+zshou+" 总支出:"+zzhi+" 总租借:"+zjie+" 总归还:"+zhuan);

} catch (SQLException e1) {

// TODO自动生成的 catch 块

e1.printStackTrace();

}

此部分代码为统计模块功能代码。主要就是连接数据库之后把其中说有数据成行打印出来然后再把每项数据汇总输出。

6

3.2细节调整以及链接

模块功能代码实现后,根据每个功能模块之间会涉及到会影响到整体数据的代码部分的代码做同一化处理和区分标记,使得每个模块的数据能够清晰的梳理在整体代码中。同时将所有涉及变化的数据以及数据库的同步工作做好。使得整体的代码有条理便于管理。

4. 结果与结论

4.1运行结果

7

4.2结论

软件系统是一个多个体相互关联的繁杂的整体。对于功能更为全面、结构更为多样的软件来说更是如此。若只是想要实现软件的本身需要具备的功能而不考虑整体的数据结构、命名管理、板块链接、算法效率。这样缺乏系统的梳理和细节条理化的一次性代

8

码堆是不具备解决实际问题的能力和使用资格的。我们通过这次的课题对上述观点深有体会。也试着通过所学的软件工程的知识尽量避免上述问题的出现,同时也感到了自身专业能力的不足,意识到自己还需要长久的努力和学习。希望在不就的将来能够对软件系统有更为深刻的理解和掌握。

5. 收获与致谢

在这次的案例中我们收获了许多许多,很高兴能够运用近期所学而做出一个实在的小软件。虽然在实现的过程中有过许多的意见不一、代码部分也有很多的不足和不成熟。但是这也给予了我们学习的动力和发展进步的空间。感谢专业老师在平日里细心的授予。使得我们在遇到实现软件的过程中所出现的问题时能够有相应的处理方法。同时也感谢小组成员今日的共同努力以及在讨论过程中的包容和理解。

6. 参考文献

[1]郑人杰,软件工程概论(第2版).机械工业出版社,2016

[2]龚炳江文志诚,java程序设计(慕课版).人民邮电出版社

[3]王珊萨师煊,数据库系统概论(第五版).高等教育出版社

7. 附件

9

本文来源:https://www.bwwdw.com/article/oc6q.html

Top