基于Delphi+SQL Server 的家庭理财系统数据库课程设计.docx
- 文档编号:8931900
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:65
- 大小:1.62MB
基于Delphi+SQL Server 的家庭理财系统数据库课程设计.docx
《基于Delphi+SQL Server 的家庭理财系统数据库课程设计.docx》由会员分享,可在线阅读,更多相关《基于Delphi+SQL Server 的家庭理财系统数据库课程设计.docx(65页珍藏版)》请在冰豆网上搜索。
基于Delphi+SQLServer的家庭理财系统数据库课程设计
第一章实验设计课题与要求
实验设计课题:
家庭理财系统
1.设计要求:
本系统要求对家庭的收入情况,预计支出情况,实际支出情况,投资情况,消费情况和存款情况进行系统性的分析、设计,并形成系统设计说明书。
同时用Delphi或者VB来实现该系统。
目的是通过收支系统的分析,使各家庭对自己的家庭财务有一个全面的了解和分析,以便能做到节约开支,细水长流,同时进行必要的投资。
2.编程语言为Delphi或VB语言;
3.系统具备功能:
(1)、提供便捷、美观及丰富的界面以便能录入各类信息数据;
(2)、动态查询各类信息;
(3)、能用图形、报表和表格三种形式对收支情况进行分析和统计;
(4)、能打印各类统计信息;
(5)、应用程序采用多文档界面的风格;
(6)、尽量用菜单;
(7)、界面的风格要多样化,但必须满足用户的要求;
(8)、打印源程序、主要界面和报表;
4.关键技术:
(1)、系统的调查和分析方法;
(2)、E-R图、数据流图、数据字典、规范化理论;
(3)、系统设计说明书;
(4)、数据库的设计方法;
(5)、Delphi中的SQL语言;
(6)、Delphi的IDE集成开发环境;
(7)、Pascal语言;
(8)、数据库应用程序的设计;
5.参考资料:
(1)、Delphi6..以上版本的参考书;
(2)、《数据库系统概论》第三版,萨师煊、王珊主编,高等教育出版社
第二章系统的调查与分析
2.1课题背景
近年来,计算机技术飞速发展几乎超出了人们的想象,硬件的更新换代速度更是以级数进行。
计算机在处理对象、处理方法上都发生了很大的变化。
作为计算机科学的重要分支——数据库技术,也被越来越多的应用领域采用来存储和处理他们的信息来源。
计算机已经不再仅仅是科学研究的工具,它越来越多地影响到了我们生活的诸多方面,更多的应用软件出现在了我们的身边,给人们生活的方方面面都带来了极大地便利。
近年来随着国内外社会经济和科学技术的不断改革和发展,各种各样的开销与收入也越来越多,很多人对于日常账目的管理感到越来越力不从心,收支管理已刻不容缓,在大多数家庭里,由于计算机知识的缺乏,人们还采用手写记账的方法,这种管理方法存在很多缺陷,如:
效率低、保密性差,另外时间一长,将产生大量的冗余文件和数据,这对于查找、更新和维护工作都带来了很大的困难。
家庭理财系统就是通过计算机对人们日常的收支进行管理,具有相关的收支情况查询和录入,以及有关数据的打印输出,有计算机统计可使人们从繁重的计算中解脱出来,通过一些简单的输入操作,及时、准确的获取需要的信息。
理财系统在强调管理,强调信息,强调经济效益的现代社会中越来越普及,越来越重要,而理财一直运用于企业单位,是一个企业的竞争力,市场力和凝聚力的体现,可以说,没有一个符合企业状况的理财系统,这样的企业就没有良好的发展前景。
现在,收支管理不再仅仅是企业所要具备的,小到一个家庭,也是必不可少的。
本人的这个家庭理财系统就是为家庭而设计的,通过这个程序,我们可以便捷的记录每年每月每日的日常开销和收入,我们只需要点击鼠标,就可以计算出收支的平衡情况,为家庭的理财提供帮助,有利于收支的良心发展。
2.2可行性分析
目的:
可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。
2.2.1经济可行性
计算机的价格已经十分的低廉,性能却有了长足的进步。
而本系统的开发,为家庭的工作效率带来了一个质的飞跃,为此主要表现在有以下几个方面:
第一,本系统的运行可以代替人工进行许多繁杂的劳动;
第二,本系统的运行可以节省许多资源;
第三,本系统的运行可以大大的提高家庭的工作效率;
第四,本系统可以使敏感文档更加安全,等等
所以,本系统在经济上是可行的。
2.2.2技术可行性和运行可行性
为了有助于更好的系统的开发,我自己对社会普通家庭的收入情况进行了初步的了解。
现在普通家庭的固定收入在几千元左右,每月在衣食住行各个方面至少要1000元左右的开销,加上各种固定的各项费用,方方面面很复杂,很难清楚明了的记录下来,一般是手工记账,这样很麻烦也算不清楚,每个月都要花费大量的时间在算钱上,而由于一些比较缺乏电脑方面的知识,所以,电脑对他们来说只是一个摆设,但只要安装家庭理财系统,他们将只要点击鼠标就可以十分便捷的对家庭的收支情况进行统计和计算。
本系统的开发利用SQlServer2000作为本系统的数据库,它是一个支持多用户的新型数据库,适用于各种大中小规模的数据量的需求。
使用Delphi作为被系统的开发环境,Delphi拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。
Delphi提供了500多个可使用的构件,利用这些部件,开发人员可以快速的构造出应用系统。
开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。
它作为一种现代化的编程语言,提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供了保障。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。
本系统为一个小型的家庭理财系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上师可行的。
第三章数据库分析与建立
3.1数据需求
根据系统的要求,首先将要记录的信息分类,要记录的信息如下:
(1)、成员表:
成员、密码、权限、生日、称呼、备注;
(2)、收支表:
类型、年份、日期、金额、项目、成员、备注;
(3)、借贷表:
类型、日期、金额、项目、成员、备注;
(4)、银行表:
类型、日期、金额、项目、成员、备注;
根据这些需求,本系统需要4个表:
“成员表”用于用户登录,成员添加、“收支表”“借贷表”“银行表”用于用户对日常现金、借贷、存折的收支进行管理。
3.2数据字典
3.2.1成员表的数据流
列名
数据类型
长度
允许空
主键
成员
Char
10
否
是
密码
Varchar
10
否
否
权限
Char
10
否
否
生日
Char
8
是
否
称呼
Char
10
是
否
备注
Text
16
是
否
3.2.2收支表的数据流
列名
数据类型
长度
允许空
标识
主键
ID
Int
4
否
是,自动增长
是
类型
Char
10
是
否
否
年份
Char
10
是
否
否
日期
Char
10
是
否
否
金额
Float
8
是
否
否
项目
Char
10
是
否
否
成员
Char
10
是
否
否
备注
Text
16
是
否
否
3.2.3借贷表的数据流
列名
数据类型
长度
允许空
标识
主键
ID
Int
4
否
是,自动增长
是
类型
Char
10
是
否
否
日期
Char
10
是
否
否
金额
Float
8
是
否
否
项目
Char
10
是
否
否
成员
Char
10
是
否
否
备注
Text
16
是
否
否
3.2.4银行表的数据流
列名
数据类型
长度
允许空
标识
主键
ID
Int
4
否
是,自动增长
是
类型
Char
10
是
否
否
日期
Char
10
是
否
否
卡号
Char
10
是
否
否
金额
Float
8
是
否
否
项目
Char
10
是
否
否
成员
Char
10
是
否
否
备注
Text
16
是
否
否
3.3系统E-R图
成员
备注
称呼
生日
权限
密码
成员
银行存取
收支
类型
日期
金额
项目
成员
备注
备注
成员
项目
金额
卡号
日期
类型
备注
成员
项目
金额
日期
年份
类型
借贷
3.4数据流图
用户登录
存取查询与统计
借贷查询与统计
收支查询与统计
存取信息添加与删除
借贷信息添加与删除
收支信息添加与删除
删除成员
查询成员
添加成员
报表打印与预览
日常查询
日常管理
存取报表
借贷报表
收支报表
修改密码
成员管理
家庭理财
理财报表
3.5数据库建立
直接打开MSSQL工具“企业管理器”,新建一个数据库名为“家庭理财系统”,然后在建好的数据库中根据需要新建表:
成员表、收支表、借贷表、银行表,依据数据字典中各个表的要求设计表。
第四章系统的设计与实现
4.1系统与数据库的链接
使用ADOConnection控件与SQL中的“家庭理财系统”数据库就行链接,双击该控件如下图所示进行链接:
4.2系统界面的设计与实现
4.2.1远程连接登录界面的设计
本系统既可以用于本地连接,也可以用于在局域网内进行连接,一下设计是局域网连接界面,只要输入服务器的IP地址和端口地址以及在数据库中的用户名密码即可登录本系统。
此界面使用ADOConnection进行操作与服务器数据库进行远程连接,依次从Edit组件读取数据,由程序进行操作ADOConnection的属性,远程链接登录界面如下:
4.2.2登陆界面的设计
在进入系统之前,必须要有符合本系统的用户以及没个用户对应的密码,如果没输入用户名或者密码,点击登录将会提示用户名或密码不能为空。
如果用户名错误和用户的密码以及权限不符合将会提示用户名错误或密码错误,请重新输入。
具体界面如图4.2.1所以。
本系统默认用户名:
admini和密码:
admin,以及权限administer,用户可以在首次登录之后在系统里更改密码。
用户名与密码以及权限都正确后点击“登录”按钮将会进入主界面,点击“退出”将会退出整个系统。
procedureTForm1.Button1Click(Sender:
TObject);
begin
if(edit1.text='')
or(edit2.text='')then
begin
showmessage('用户名或密码不能为空');
end
else
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select*from成员表where成员='''+edit1.Text+'''and权限='''+combobox1.text+'''');
adoquery1.Open;
ifadoquery1.Fields[0].value<>nullthen
begin
ifadoquery1.FieldByName('密码').asstring=trim(edit2.text)then
begin
if(edit1.Text='admin')then
begin
self.Hide;
form2.show;
end
else
begin
self.Hide;
form2.Show;
form2.N4.Visible:
=false;
form2.N5.Visible:
=false;
form2.N6.Visible:
=false;
form2.N7.Visible:
=false;
end
end
else
begin
showmessage('密码错误,请重新输入');
edit2.Clear;
edit2.SetFocus;
end;
end
else
begin
showmessage('用户名错误,请重新输入');
edit1.clear;
edit2.clear;
edit1.setfocus;
end;
end;
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
application.Terminate;
end;
procedureTForm1.ComboBox1KeyPress(Sender:
TObject;varKey:
Char);
begin
ifKEY=#13then
Button1.OnClick(Button1);
end;
end.
图4.2.1
4.2.3主界面的设计
主界面是用户登录后进入的可以选择系统功能操作的界面,为实现提供便捷美观及丰富的界面以便能录入各类数据,以及界面的风格要多样化,但必须满足用户的要求的标准,对主界面的设计采用MDI多文档界面风格,主界面由主菜单实现,方便用户对系统功能进行选择,主菜单包括系统设置(注销登录、退出系统)、家庭理财(收支、借贷、银行存取)、理财报表(收支报表、借贷报表、存取报表)、选项(成员管理、修改密码)和系统工具(计算器)以及帮助。
主界面主页有统计信息,用户可以查询每年的总收入、总支出与总余额,系统会统计数据库信息表里面的收入总和、支出总和以及总余额,方便用户对年总收支的掌握以及对总余额的知晓。
主界面具体如图4.2.2所示。
图4.2.2系统主界面
4.2.4家庭理财界面的设计
通过点击选择理财界面左侧导航栏进行相关信息操作,左侧导航栏包括日常收支、债权债务、银行存取,用户可以选择对收支信息、借贷信息和存取信息的添加、修改、删除,实现对收支理财的管理。
导航栏还包括日常查询功能,用户可以查询收支明细、借贷明细和银行存取明细。
点击返回主界面则会退出理财界面返回系统主界面。
理财界面具体如图4.2.3.1
日常管理:
用户可以选择下拉框中的类型(如收入、支出、借入、借出、存入、取出)、日期、成员和录入金额数目、项目(如金额的来源、去处)、备注,实现对日常收支、借贷、银行存取信息的添加管理,表中可以实现数据的添加。
收支管理界面如图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.1理财界面
图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.5理财报表与报表打印的设计
根据对数据库中表内信息以及关系的分析,本系统采用Qreport报表设计方案,主表是收支信息表、接待信息表和银行存取信息表,管理员可以查询出所有成员的收支信息、借贷信息和银行存取信息。
通过Datasourse以及ADODataset报表与打印预览链接。
收支报表打印界面如图4.2.5.1所示,收支报表打印预览如图4.2.5.2所示,借贷报表打印界面如图4.2.5.3所示,银行存取报表打印界面如图4.2.5.4所示。
打印按钮与打印预览程序代码如下:
procedureTForm4.Button2Click(Sender:
TObject);//打印预览
begin
form12.ADODataSet1.Open;
form12.QuickRep1.Preview;
end;
procedureTForm4.Button1Click(Sender:
TObject);//打印
begin
form12.ADODataSet1.Open;
form12.QuickRep1.Print;
end;
图4.2.5.1收支报表打印界面
图4.2.5.2收支报表打印预览界面
图4.2.5.3借贷报表打印界面
图4.2.5.4银行存取报表打印界面
4.2.6选项界面的设计(包括成员管理和密码修改)
管理员可以实现对家庭成员信息的添加、查询、删除以及修改自身密码,其中普通用户只可以修改自己的密码。
成员管理界面如图4.2.6.1所示,修改密码界面如图4.2.6.2所示。
图4.2.6.1成员管理界面(上)图4.2.6.2修改密码界面(下)
4.2.7系统工具计算器
本系统自带一个简易的计算器,由Delphi编程语言编写,可以进行简单的加减乘除,缺点就是每次计算后都必须进行清楚操作,用户在使用这一点务必注意,以免出现错误的结果。
计算器界面如图4.2.7.1所示。
图4.2.7.1计算器
4.2.8系统帮助
本界面主要简介本系统的功能与作用,以及介绍本系统的前台和后台开发工具,目的就是为了使用户一目了然的明白这个系统是干什么的。
上面有本人的邮箱关于系统的任何问题可以联系我。
界面如图4.2.8.1所示。
图4.2.8.1系统帮助
第五章设计心得与体会
通过做课程设计,有几点感想,归纳如下:
1.扎实的理论基础。
如果不掌握好扎实的理论基础,很难写出高水平的程序,而这一点又是我们所缺乏的;
2.不能钻牛角尖。
当遇到障碍的时候,暂时远离电脑,当重新开始的时候,也许会发现那些障碍现在竟然可以迎刃而解;
3.多与别人交流。
三人行必有我师,我们始终都不能够脱离了集体,一定要多与别人交流,交流中会发现许多我们值得学习的地方;
4.良好的编程风格。
注意养成良好的习惯,代码的缩进编排,变量的命名规则要保持一致。
如果注释与代码不一致,那就更加糟糕;
5.数据库讲求的是整体,只有在整体的情况下完善局部,才能做出一个好的数据库。
还有就是图形设计分析因为建表时候的考虑不周而使得上手很难,最后时间用于做图形统计分析很少,导致这一功能没有完成,这是一个很大的缺陷!
这个问题直到现在我都无法解决,希望老师可以给些指点。
参考文献:
1.《数据库系统概论》第三版,萨师煊、王珊主编,高等教育出版社,2000
2.《Delphi技术方案宝典》第一版,明日科技主编,人民邮电出版社,2008
3.《Delphi开发经验技巧宝典》第一版,明日科技主编,人民邮电出版社,2007
附录:
源代码清单
unitUnit1;//登录界面代码
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,jpeg,ExtCtrls,StdCtrls,DB,ADODB;
type
TForm1=class(TForm)
Edit1:
TEdit;
Edit2:
TEdit;
Button1:
TButton;
Button2:
TButton;
Image1:
TImage;
Label2:
TLabel;
Label1:
TLabel;
Label3:
TLabel;
Label4:
TLabel;
ADOConnection1:
TADOConnection;
ADOQuery1:
TADOQuery;
Label5:
TLabel;
ComboBox1:
TComboBox;
procedureButton1Click(Sender:
TObject);
procedureButton2Click(Sender:
TObject);
procedureComboBox1KeyPress(Sender:
TObject;varKey:
Char);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:
TForm1;
implementation
usesUnit2;
{$R*.dfm}
procedureTForm1.Button1Click(Sender:
TObject);
begin
if(edit1.text='')
or(edit2.text='')then
begin
showmessage('用户名或密码不能为空');
end
else
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select*from成员表where成员='''+edit1.Text+'''and权限='''+combobox1.text+'''');
adoquery1.Open;
ifadoquery1.Fields[0].value<>nullthen
begin
ifadoquery1.FieldByName('密码').asstring=trim(edit2.text)then
begin
if(edit1.Text='admin')then
begin
self.Hide;
form2.show;
end
else
begin
self.Hide;
form2.Show;
form2.N4.Visible:
=false;
form2.N5.Visible:
=false;
form2.N6.Visible:
=false;
form2.N7.Visible:
=false;
end
end
else
begin
showmessage('密码错误,请重新输入');
edit2.Clear;
edit2.SetFocus;
end;
end
else
begin
showmessage('用户名错误,请重新输入');
edit1.clear;
edit2.clear;
edit1.setfocus;
end;
end;
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
application.Terminate;
end;
procedureTForm1.ComboBox1KeyPress(Sender:
TObject;varKey:
Char);
begin
ifKEY=#13then
Button1.OnClick(Button1);
end;
end.
unitUnit2;//主界面代码
interface
uses
Windows,M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Delphi+SQL Server 的家庭理财系统数据库课程设计 基于 Delphi SQL 家庭理财 系统 数据库 课程设计