家庭理财系统的设计与实现Word文档格式.docx
《家庭理财系统的设计与实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《家庭理财系统的设计与实现Word文档格式.docx(60页珍藏版)》请在冰豆网上搜索。
![家庭理财系统的设计与实现Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/29/c41e37ae-73f2-433e-8eb0-1da0762e52f5/c41e37ae-73f2-433e-8eb0-1da0762e52f51.gif)
同时用DELPHI或VB来实现该系统,。
目的是通过收支系统的分析,使各家庭对自己的家庭财务有一个全面的了解和分析,以便能作到节约开支,细水长流,同时进行必要的投资。
2、编程语言为DELPHI或VB语言。
3、系统功能具备:
()、提供便捷、美观及丰富的界面以便能录入各类数据。
(2)、动态查询各类信息。
(3)、能用图形、报表和表格三种形式对收支情况进行分析和统计。
(4)、能打印各类统计信息。
(5)、应用程序采用多文挡界面的风格。
(6)、尽量用菜单。
(7)、界面的风格要多样化,但必须满足用户的要求。
(8)、打印源程序、主要界面和报表。
4、关键技术:
()、系统的调查和分析方法。
(2)、ER图、数据流图、数据字典、标准化理论。
(3)、系统设计说明书。
(4)、数据库的设计方法。
(5)、Delphi中的SQL语言。
(6)、DELPHI的IDE集成开发环境。
(7)、PASCAL语言。
(8)、数据库应用程序的设计。
5、参考资料:
()、Delphi6.0以上本的参考书。
(2)、《数据库系统概论》,萨师煊、王珊主编,高等教育出社,
2000,2月,第三。
第二章:
系统的调查与分析
2.课题背景
近来,计算机技术飞速开展几乎超出了人们的想象,硬件的更新换代速度更是以级数进行。
计算机在处理对象、处理方法上都发生了很大的变化。
作为计算机科学的重要分支——数据库技术,也被越来越多的应用领域采用来存储和处理他们的信息资源。
计算机已经不再仅仅是科学研究的工具,它越来越多地影响到了我们生活的诸多方面,更多的应用软件出现在了我们的身边,给人们生活的方方面面都带来了极大的便利。
近来随着国内外社会经济和科学技术的不断改革和开展,各种各样的开销与收入也越来越多,很多人对于日常帐目的管理感到越来越力不从心,收支管理已刻不容缓,在大多数家庭里,由于计算机知识的缺乏,人们还采用手写记帐的方法,这种管理方法存在跟多缺陷,如:
效率低、保密性差,另外时间一长,将产生大量的冗余文件和数据,这对于查找、更新和维护工作都带来了很大的困难。
家庭理财系统就是通过计算机对人们日常的收支进行管理,具有相关的收支情况查询和录入,以及有关数据的打印输出,有计算机统计可使人们从繁重的劳动中解脱出来,通过一些简单的输入操作,及时、准确地获得需要的信息。
理财系统在强调管理,强调信息,强调经济效益的现代社会中越来越普及,越来越重要。
而理财一直运用于企业单位,是表达一个企业的竞争力,市场力和凝聚力的方面,可以说,没有一个符合企业状况的理财系统,这样的企业就没有良好的开展前景。
现在,收支管理不再仅仅是企业所要具备的,小到一个家庭,也是必不可少的。
本人的这个家庭理财系统就是为家庭而设计的,通过这个程序,我们可以便捷的记录每每月每天的日常开销和收入,我们只需要点击鼠标,就可以计算出收支的平衡情况,为家庭的理财提供帮助,有利于收支的良性开展。
2.2可行性分析
目的:
可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。
2.2.经济可行性
计算机的价格已经十分低廉,性能却有了长足的进步。
而本系统的开发,为家庭的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:
第一,本系统的运行可以代替人工进行许多繁杂的劳动;
第二,本系统的运行可以节省许多资源;
第三,本系统的运行可以大大的提高家庭的工作效率;
第四,本系统可以使敏感文档更加平安,等等。
所以,本系统在经济上是可行的。
2.2.2技术可行性和运行可行性
为了有助于更好地进行系统的开发,我对自己社会普通家庭的收入情况进行了初步的了解,现在普通家庭的固定收入在几千圆左右,每月在衣食住行各个方面至少要000圆左右的开销,加上各种固定的各项费用,方方面面很复杂,很难清楚明了地记录下来,一般是采用手工记帐,这样很麻烦,也算不清楚帐,每个月都要花大量的时间在算钱上。
而由于一些比较缺乏电脑方面的知识,所以,电脑对他们来说只是摆设,但只要安装家庭理财系统,他们将只需要点击鼠标就可以十分便捷地对家庭的收支情况进行统计和计算。
本系统的开发我利用SQLServer2000作为本系统的数据库,它是一个支持多用户的新型数据库,适用于各种大中小规模的数据量需求。
使用DELPHI做为本系统的开发环境,DELPHI拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。
Delphi它提供了500多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。
开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。
它作为一种现代化的编程语言,提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供了保障。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。
本系统为一个小型的家庭理财系统,所消耗的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。
第三章:
数据库分析与建立
3.数据需求
根据系统的需求,首先将要记录的信息分类,要记录的信息如下:
()、用户表:
用户名、密码;
(2)、成员表:
成员、生日、称呼、备注;
(3)、收支表:
类型、日期、金额、工程、成员、备注;
(4)、借贷表:
(5)、银行表:
类型、日期、卡号、金额、工程、成员、备注;
根据这些需求,本系统需要5个表:
“用户表”用于用户登录、“成员表”用于用户添加家庭成员、“收支表”“借贷表”“银行表”用于用户对日常现金、存折的收支进行管理。
3.2数据字典
3.2.用户表的数据流
列名
数据类型
长度
允许空
标识
主键
ID
int
4
否
是,自动增长
是
用户名
char
密码
varchar
3.2.2成员表的数据流
成员
Char
生日
Datetime
8
称呼
备注
text
6
3.2.3收支表的数据流
Int
类型
日期
金额
Float
工程
3.2.4借贷表的数据流
3.2.5银行表的数据流
卡号
3.3系统ER图
3.4数据流图
3.5数据库建立
直接翻开MSSQL工具“企业管理器”,新建一个数据库名为“家庭理财系统”,而后在建好的数据库中根据需要新建表:
用户表、成员表、收支表、借贷表、银行表,依据数据字典中各个表的要求设计表。
第四章:
系统的设计与实现
4.系统与数据库的链接
使用ADOConnection控件与SQL中的“家庭理财系统”数据库进行链接,双击该控件如以以下图所示进行链接:
4.2系统界面的设计与实现
4.2.登录界面的设计
在进入系统之前,必须要有符合本系统的用户以及每个用户对应的密码。
如果没输入用户名或密码,点击登入将会提示用户名或密码不能为空。
如果用户名错误和用户的密码不符合将会提示用户名错误或密码错误,请重新输入。
具体界面如图4.2.所示。
本系统默认用户名:
admin和密码:
admin,用户可以在首次登录之后在系统里面更改密码。
用户名与密码都正确后点击“登录”按钮将会进入系统主界面,点击“退出”将会退出整个系统。
procedureTForm0.RzBitBtnClick(Sender:
TObject);
begin
if(edit.Text='
'
)
or(edit2.Text='
)then
showmessage('
用户名或密码不能为空!
);
end
else
adoquery.Close;
adoquery.SQl.Clear;
adoquery.sql.Add('
select*from用户表where用户名='
+edit.Text+'
adoquery.Open;
ifadoquery.Fields[0].Value<
>
nullthen
begin
ifadoquery.FieldByName('
密码'
).AsString=Trim(Edit2.Text)then
self.Hide;
Main.Show;
else
密码错误,请重新输入'
Edit2.Clear;
Edit2.SetFocus;
end;
用户名错误,请重新输入'
Edit.Clear;
Edit.setFocus;
end;
图4.2.登录界面
4.2.2主界面的设计
主界面是用户登录后进入的可以选择系统功能操作的界面,为实现提供便捷、美观及丰富的界面以便能录入各类数据,以及界面的风格要多样化,但必须满足用户的要求的标准,对主界面的设计采用MDI多文档界面风格,主界面包含主菜单和工具栏,方便用户对系统功能进行选择,主菜单包括系统设置(关于、退出系统)、家庭理财、理财报表(收支报表、借贷报表、存取报表)、选项(成员管理、修改密码)和系统工具(计算器)。
工具栏主要包括一些用户常用的功能。
方便用户快捷的选择系统功能。
主界面主页有统计总表,用户可以查询每的总收入、总支出与总余额,系统会统计数据库信息表里面的收入总和、支出总和以及总余额,方便用户对总收支的掌握以及对总余额的知晓。
主界面具体如图4.2.2所示。
主界面下方能显示当前用户、当前具体时间等。
图4.2.2系统主界面
4.2.3家庭理财界面的设计
通过点击选择理财界面左侧导航栏进行相关信息操作,左侧导航栏包括日常收支、债权债务(即日常借贷)、银行存取,用户可以选择对收支信息、借贷信息和存取信息的添加、修改、删除,实现对收支理财的管理。
导航栏还包括日常查询功能,用户可以查询收支明细、借贷明细和银行存取明细。
点击工具栏上的返回主页则会推出理财界面返回系统主界面。
理财界面具体如图4.2.3.所示。
图4.2.3.理财界面
日常管理:
用户通过选择下拉框中的类型(如收入、支出、借入、借出、存入、取出)、日期、成员,和录入金额数目、工程(如金额的来源、去处等)、备注,实现对日常收支、借贷、银行存取信息的添加管理,表中可以实现对数据的删除、修改。
收支管理界面如图4.2.3.2所示,借贷管理界面如图4.2.3.3所示,银行存取界面如图4.2.3.4所示。
日常查询:
用户可以根据类型、日期范围、具体某天动态的查询收支信息、借贷信息、银行存取信息,而根据查询结果会给出相应的金额统计结果(如某段时间或某天的收入、支出总和),实现用户根据动态查询结果得出金额统计,从而能对收支信息、借贷信息以及存取信息能有比较具体形象的了解,方便用户对家庭财务有个快捷具体的了解。
收支明细界面如图4.2.3.5所示,借贷明细界面如图4.2.3.6所示,银行存取明细界面如图4.2.3.7所示。
图4.2.3.2收支管理界面
图4.2.3.3借贷管理界面
图4.2.3.4银行存取管理界面
图4.2.3.5收支明细界面
图4.2.3.6借贷明细界面
图4.2.3.7银行存取明细界面
4.2.4理财报表与报表打印的设计
根据对数据库中表内信息以及关系的分析,本系统采用Qreport主从报表设计方案,主表是成员信息表,从表是收支信息表、借贷信息表或银行存取信息表。
根据不同成员可查看相对应的收支信息、借贷信息或存取信息。
通过Datasource以及ADODataset报表与打印预览链接。
收支报表打印界面如图4.2.4.所示,收支报表打印预览如图4.2.4.2所示,借贷报表打印界面如图4.2.4.3所示,银行存取报表打印界面如图4.2.4.4所示。
打印按钮与打印预览程序代码如下:
procedureTForm4.RzBitBtnClick(Sender:
//打印
Form3.QuickRep.Print;
procedureTForm4.RzBitBtn2Click(Sender:
//打印预览
Form3.QuickRep.Preview;
图4.2.4.收支报表打印界面
图4.2.4.2收支报表打印预览界面
图4.2.4.3借贷报表打印界面
图4.2.4.4银行存取报表打印界面
选项界面的设计(包括成员管理和密码修改)
用户可以实现对家庭成员信息的添加、查询、修改、删除以及修改自身密码等。
成员管理.所示,修改密码界面如图4.2.5.2所示。
图4.2.5.成员管理界面(上)图4.2.5.2修改密码界面(下)
第五章:
设计心得与体会
通过做课程设计,有几点感想,归纳如下:
.扎实的理论基础。
如果不掌握它们,很难写出高水平的程序。
而这一点又是我们所缺乏的。
2.不钻牛角尖。
当遇到障碍的时候,暂时远离电脑,当重新开始的时候,也许会发现那些难题现在竟然可以迎刃而解。
3.多与别人交流。
三人行必有我师。
4.良好的编程风格。
注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。
如果注释和代码不一致,那就更加糟糕。
5.数据库讲求的是整体,只有在整体的情况下完善局部,才能做出一个好的数据库。
还有就是图形统计分析因为建表时的考虑不周使得上手很难,最后时间用于做图形统计分析很少,导致这一功能没有完成,这是一个很大的缺陷!
这个问题在我完成了设计之后都无法解决。
希望老师能给些指点。
参考文献:
、《数据库系统概论》,萨师煊、王珊主编,高等教育出社,
2、《Delphi技术方案宝典》,明日科技梁冰、李钟慰、吕双主编,人民邮电出社,月第。
3、《Delphi开发经验技巧宝典》,明日科技编著,人民邮电出社,20**月第。
源代码清单
unitUnit0;
//登录界面代码
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,RzButton,StdCtrls,jpeg,ExtCtrls,DB,ADODB;
type
TForm0=class(TForm)
Panel:
TPanel;
Image:
TImage;
Label:
TLabel;
Label2:
Label3:
Edit:
TEdit;
Edit2:
RzBitBtn:
TRzBitBtn;
RzBitBtn2:
ADOConnection:
TADOConnection;
ADOQuery:
TADOQuery;
procedureRzBitBtnClick(Sender:
procedureRzBitBtn2Click(Sender:
private
{Privatedeclarations}
public
{Publicdeclarations}
var
Form0:
TForm0;
implementation
usesunit2;
{$R*.dfm}
if(edit.Text='
or(edit2.Text='
adoquery.Close;
adoquery.SQl.Clear;
adoquery.sql.Add('
adoquery.Open;
ifadoquery.Fields[0].Value<
self.Hide;
Main.Show;
procedureTForm0.RzBitBtn2Click(Sender:
Application.Terminate;
end.
unitUnit2;
//主界面代码
Dialogs,Menus,ToolWin,ComCtrls,RzPanel,RzButton,ExtCtrls,ImgList,
DB,ADODB,RzStatus,jpeg,StdCtrls,Mask,RzEdit,RzSpnEdt,RzLabel,
Grids,RzGrids;
TMain=class(TForm)
MainMenu:
TMainMenu;
N:
TMenuItem;
N2:
N3:
N5:
N6:
N7:
ImageList:
TImageList;
RzToolbar:
TRzToolbar;
RzToolButton:
TRzToolButton;
RzSpacer:
TRzSpacer;
RzToolButton2:
RzSpacer2:
RzToolButton3:
RzSpacer3:
RzToolButton4:
RzSpacer4:
RzToolButton5:
N8:
N9:
N0:
N4:
RzSpacer5