1、课 程 设 计 说 明 书课程名称: 软件工程 设计题目: 个人财务管理系统 学 院:计算机科学与信息工程学号姓名: 专业班级: 14-计科应用班 指导教师: 2016年 12月 23日课 程 设 计 任 务 书设计题目 个人财务管理系统学生姓名所在学院专业、年级、班设计要求:完成个人财务管理系统:能够实现管理个人用户账户的收入、支出、借贷等账户管理。学生应完成的工作:1. 实现个人财务管理系统的代码编写2. 书写课程设计说明书和设计文档参考文献阅读:1郑人杰,软件工程概论(第2版).机械工业出版社,20162龚炳江 文志诚,java程序设计(慕课版).人民邮电出版社3王珊 萨师煊,数据库系统
2、概论(第五版).高等教育出版社工作计划:2016/12/14:完成课题需求分析和组员分工2016/12/15:实现软件界面的设计2016/12/15-2016/12/19:实现软件功能按钮的代码填充和数据库的链接。2016/12/20:检查软件的功能和代码的完善2016/12/21-2016/12/22:根据完成的软件书写课程设计说明书和设计文档任务下达日期: 2016年 12月 12 日 任务完成日期: 2016年 12月 23 日指导教师(签名): 学生(签名): 个人财务管理系统摘 要:Windows平台上,分析设计了“个人财务管理信息系统”。系统软件和对数据库的操作和管理只需在计算机使
3、用相应的软件完成。 如今计算机已走进千家万户,极大的便利了人们的生活。传统的在纸上记录个人收入支出的方式不仅耗时耗料,同时缺乏科学有效的管理。并且存放在纸质的信息安全性不好,一旦获得该纸质信息便可获得所有记录。纸质信息的另一大坏处在于纸质一旦丢失,想要还原长时间以来的信息十分困难。人们需要一种简洁方便安全可备份以记录并管理个人收入支出信息的软件,可是市场上的财务管理软件大多数都十面向企业,或是有专门用途,面向普通用户的个人财务管理系统很难找到,在者免费的软件更是少之又少,为了满足普通用户的需求,特开发此软件。 本系统功能简单,只适合对个人财务管理要求不高的用户,可以完成收入支出金钱及物品的记录
4、与查询操纵,本系统操作简单,用户无需记录复杂的命令,打开主机面就可以很容易看出系统的功能,在者,本软件为免费产品,对于不愿花很多钱购买软件的用户来说是个很好的选择,本软件无需很高的硬件配置,一般的配置均可运行,占用系统资源少。 本报告中首先说明了该系统的特点与业务需求,之后详细说明了系统的业务流程和系统开发流程,重点介绍了系统各模块的功能及相关功能的具体实现。该系统功能简洁完善、用户界面友好、运行稳定,可完成日常个人财务信息的管理和维护。本报告中首先说明了该系统的业务需求,之后介绍了系统的总体设计思路以及着重介绍了数据库表的设计过程及说明可供研究此系统的人员提供参考关键词:java、个人财务管
5、理、eclipse目 录1. 设计背景11.1背景11.2可行性分析12. 设计方案12.1用户需求12.2功能模块设计23. 方案实施33.1功能模块编写33.2细节调整以及链接74. 结果与结论74.1运行结果74.2结论85. 收获与致谢96. 参考文献9 7. 附件91. 设计背景1.1背景随着计算机技术飞速发展及其应用领域的扩大,特别是计算机软件和硬件的飞速发展,极大地便利了人们的生活和传统的经营和管理模式。软件应用的突出表现能够为客户提供更为方便、快捷、安全、科学的服务,人们开始意识到科技改变方法的手段。发现通过编写功能强大的软件以实现并替代传统的经营和管理模式能有效降低各领域管理
6、方面的运营成本。于软件市场和需求不断扩大,这也是一个又一个软件管理系统相继出现的原因。越来越多的面向多领域的功能强大的管理软件在市面上喷涌出现。在掌握了部分软件知识后,我们也尝试着运用知识实现一款个人财务管理系统。1.2可行性分析当接受一个软件开发任务,就进入软件生命的第一个阶段,即进行可行性的研究。并不是所有问题都具有简单的解决办法,许多问题不能在预定的规模之内解决。由于该系统是有个人运用编译软件实现的简洁、方便。只要有相应的运行软件即可使用。所以不存在经济成本的问题,在讨论了将需求模拆分后认为该这些模块是能够在知识范围内实现的。2.设计方案2.1用户需求本系统是针对用户要求:a. 账户管理
7、:管理用户的账户信息。接受用户账户信息的提交,进行处理后用表单的形式进行显示。b.收支管理:处理用户的收入和支出的信息,进行处理后用表单的形式进行显示,同时提供时间段的收支情况查询功能。c.借贷管理:用户提交借贷信息,进行处理后显示借贷的详细信息,同时提供时间段的借贷情况的查询。d.统计功能:统计功能提供用户财务信息的查询和统计的功能,可以统计账户信息,收支信息,借贷信息,并以时间段作为标准,显示统计结果。e.基础设置:通过基础设置,进行整个系统的初始化设置,包括添加各个管理项目的属性分类。经过分析,本系统需要具有以下功能:1、 能够实现个人财务管理方面各项功能,能成功的对用户各种信息进行管理
8、。2、 实现查询、修改、删除、添加数据方便,数据的稳定性和可靠性好。3、拥简洁明了的人机交互界面。2.2功能模块设计下文针对用户需求对具体模块功能的内容进行阐述交互界面(软件主页):软件主页的风格是标准的Windows窗口界面风格,由于是个人用户使用,将具体的收支管理、借贷管理、统计功能、基础设置功能模块以水平排版的方式罗列在主页。账户管理模块:当用户点击该功能模块后。实现对软件账户的管理。若当前已有用户在使用会显示当前账号用户的信息。收支管理模块:当用户点击该功能模块后,有三个可编辑文本框和一个查询按钮。可实现对现有账户的资金的支出、收入以及日期的管理和编辑。当用户输入相应的数据时,个人账户
9、的资金对做相应并显示当前的账户详情。同时将该变化同步到数据库。点击查询按钮可根据日期显示出该日期下个人资金的所有变动情况借贷管理:当用户点击该功能模块后,有三个可编辑文本框和一个查询按钮。可实现对现有账户的资金的借出、归还情况以及日期的管理和编辑。当用户输入相应的数据时,个人账户的资金对做相应变化点击查询还可根据日前显示该日期下的账户详情。同时将该变化同步到数据库。统计管理:在该模块下会提供近期将数据库的变化对用户财务信息统计以日期为分组将具体内容显示在文本显示框内,包括账户信息,收支信息,借贷信息,并以时间段作为分组,显示统计结果。基础设置:该模块要实现对当前用户账户信息的以及所对应的数据库
10、表的初始化。3. 方案实施3.1功能模块编写交互界面:采用标准的Windows经典的界面风格,根据模块设计将所需要的按扭以水平排列的风格布置到主页和模块页如下:模块页账户管理模块:首先在已经建好数据库表有基础数据基础上,获取用户在收入编辑框和支出编辑框的输入的数据,做相应的加减处理并根据输入的时间保存到数据库,部分代码如下。JFrame jiedai = new JFrame(借贷管理);jiedai.setBounds(400, 200, 700, 500);jiedai.setLayout(new FlowLayout();jiedai.dispose();JLabel zujie = n
11、ew 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(查询);Button baocun = new Button(保存);Button tuichu = new Button(退出);jiedai.add(
12、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 = z
13、ujie_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 = (Statem
14、ent) 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(););此部分代码为保存按钮的工作代码。主要就是连接数据库和把修改的数据存进数据库。chaxun.addActionListener(new ActionListener()/
15、查询按钮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
16、(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 = state
17、ment.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); catch (SQLException e1) / TODO 自动生成的 catch 块e1.printStackTrace(););此部分代码为查询按钮的工作方式。主要新创建一个窗口然后连接数据库,之后根据输入的日期查询数据库内容。借贷模块与收支模块基本相同
18、。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);zz
19、hi += 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();此部分代码为统计模块功能代码。主
20、要就是连接数据库之后把其中说有数据成行打印出来然后再把每项数据汇总输出。3.2细节调整以及链接模块功能代码实现后,根据每个功能模块之间会涉及到会影响到整体数据的代码部分的代码做同一化处理和区分标记,使得每个模块的数据能够清晰的梳理在整体代码中。同时将所有涉及变化的数据以及数据库的同步工作做好。使得整体的代码有条理便于管理。4. 结果与结论4.1运行结果4.2结论软件系统是一个多个体相互关联的繁杂的整体。对于功能更为全面、结构更为多样的软件来说更是如此。若只是想要实现软件的本身需要具备的功能而不考虑整体的数据结构、命名管理、板块链接、算法效率。这样缺乏系统的梳理和细节条理化的一次性代码堆是不具备
21、解决实际问题的能力和使用资格的。我们通过这次的课题对上述观点深有体会。也试着通过所学的软件工程的知识尽量避免上述问题的出现,同时也感到了自身专业能力的不足,意识到自己还需要长久的努力和学习。希望在不就的将来能够对软件系统有更为深刻的理解和掌握。5. 收获与致谢在这次的案例中我们收获了许多许多,很高兴能够运用近期所学而做出一个实在的小软件。虽然在实现的过程中有过许多的意见不一、代码部分也有很多的不足和不成熟。但是这也给予了我们学习的动力和发展进步的空间。感谢专业老师在平日里细心的授予。使得我们在遇到实现软件的过程中所出现的问题时能够有相应的处理方法。同时也感谢小组成员今日的共同努力以及在讨论过程
22、中的包容和理解。6. 参考文献1郑人杰,软件工程概论(第2版).机械工业出版社,20162龚炳江 文志诚,java程序设计(慕课版).人民邮电出版社3王珊 萨师煊,数据库系统概论(第五版).高等教育出版社7. 附件无9指导教师评语:1、课程设计报告:a、内容: 不完整 完整 详细 b、方案设计: 较差 合理 非常合理c、实现: 未实现 部分实现 全部实现 d、文档格式: 不规范 基本规范 规范 2、出勤: 全勤 缺勤 次3、答辩: a、未能完全理解题目,答辩情况较差 b、部分理解题目,部分问题回答正确 c、理解题目较清楚,问题回答基本正确 d、理解题目透彻,问题回答流利 课程设计报告成绩: ,
23、占总成绩比例: 50% 课程设计其它环节成绩:环节名称: 出勤 ,成绩: ,占总成绩比例: 20% 环节名称: 答辩 ,成绩: ,占总成绩比例: 30% 总 成 绩: 指导教师签字:年 月 日目 录第一章 总 论1一、项目提要1二、可行性研究报告编制依据2三、综合评价和论证结论3四、存在问题与建议4第二章 项目背景及必要性5一、项目建设背景5二、项目区农业产业化经营发展现状11三、项目建设的必要性及目的意义12第三章 建设条件15一、项目区概况15二、项目实施的有利条件17第四章 建设单位基本情况19一、建设单位概况19二、研发能力20三、财务状况20第五章 市场分析与销售方案21一、市场分析
24、21二、产品生产及销售方案22三、销售策略及营销模式22四、销售队伍和销售网络建设23第六章 项目建设方案24一、建设任务和规模24二、项目规划和布局24三、生产技术方案与工艺流程25四、项目建设标准和具体建设内容26五、项目实施进度安排27第七章 投资估算和资金筹措28一、投资估算依据28二、项目建设投资估算28三、资金来源29四、年度投资与资金偿还计划29第八章 财务评价30一、财务评价的原则30二、主要参数的选择30三、财务估算31四、盈利能力分析32五、不确定性分析33六、财务评价结论34第九章 环境影响评价35一、环境影响35二、环境保护与治理措施35三、环保部门意见36第十章 农业产业化经营与农民增收效果评价37一、产业化经营37二、农民增收38三、其它社会影响38第十一章 项目组织与管理40一、组织机构与职能划分40二、项目经营管理模式42三、技术培训42四、劳动保护与安全卫生43第十二章 可行性研究结论与建议46一、可行性研究结论46二、建议47