家庭理财数据库课程设计报告文档格式.docx
- 文档编号:17087219
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:29
- 大小:1.70MB
家庭理财数据库课程设计报告文档格式.docx
《家庭理财数据库课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《家庭理财数据库课程设计报告文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
总体系统结构设计
本软件在登录后进入主界面,主界面有四个功能共用户选择,有支出管理、收入管理、余额管理和退出功能。
功能设计图如图.所示。
图系统功能结构图
第3章数据库设计与实施
数据库设计
数据库的概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
需求分析
数据字典
数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。
利用SQLServer2008建立“grlcxt”数据库,其基本表清单及表结构描述如下:
数据库中用到的表:
数据库表名
关系模式名称
备注
YHB
用户表
用户信息表
SR
收入表
收入信息表
ZC
支出表
支出信息表
YHB基本情况数据表,结构如下:
字段名
字段类型
NotNull
说明
ID
Char
Primarykey,NotNull
用户编号
Name
char
用户姓名
Sex
性别
Password
密码
bithdate
出生日期
zhy
职业
SR数据表,结构如下:
约束控制
b_Date
notnull
时间
Type
null
收入类型
Amount
money
null
收入金额
Comment
ZC情况数据表,结构如下:
Title
支出类型
支出金额
由需求分析的结果可知,本系统设计的实体包括:
(1)用户基本信息:
用户编号,用户姓名,用户密码,性别,出生日期,职业。
(2)收入基本信息:
用户编号,用户姓名,记录日期,收入类型,收入金额,备注。
(3)支出基本信息:
用户编号,用户姓名,记录日期,支出类型,支出金额,备注。
创建流程图:
依据数据字典创建数据流图:
图数据流图
创建视图:
YECX(余额查询)
总收入
来自视图zzr
总支出
来自视图zzc
余额
总收入-总支出
Yhdl(用户登录)
用户密码
Zzc(总支出)
来自ZC表
Zsr(总收入)
来自SR表
E-R图
图实体及其属性图
逻辑设计:
逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
对于个人理财系统数据库,收入支出信息表这个关系,考虑到数据库的完整性,其关系模式中对实体的定义如下:
用户表:
(用户编号,用户姓名,用户密码,性别,出生日期,职业)
收入表:
(用户编号,用户姓名,记录日期,收入类型,收入金额,备注)
支出表:
(用户编号,用户姓名,记录日期,支出类型,支出金额,备注)
物理设计:
创建索引,索引根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表。
在表中创建索引可以快速读取数据,保证数据的唯一性,实现表与表之间的参照完整性。
在SR与ZC表中分别建立时间索引。
数据库的实施
创建数据库
在创建数据库时,在SQLServer查询分析器中键入以下代码完成数据库的建立。
CREATEDATABASEgrlcxt
ON
PRIMARY
(
NAME='
grgrlcxt_DATA1'
FILENAME='
F:
\VC\'
size=20MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
),
grlcxt_DATA2'
size=5MB,
MAXSIZE=100MB,
)
LOGON
grlcxt_log1'
size=50MB,
MAXSIZE=1000MB,
)
结果如图:
图创建数据库
创建表
在创建表时在查询分析器中键入如下代码完成表的创建。
usegrlcxt
go
createtableSR
IDnchar(20)notnull,
Namenchar(15)notnull,
b_Datenchar(15)notnull,
Typenchar(15)null,
Amountmoneynull,
Commentnchar(50)null
createtableYHB
Passwordnchar(15)notnull,
Sexnchar
(2)null,
birthdaymoneynull,
zhynchar(10)null
createtableZC
图、创建表
创建视图
usegrlcxt
go
createviewzzc
as
selectSUM(Amount)as'
总支出'
fromZC,YHB
WHERE=ZC.ID
usegrlcxt
createviewzsr
总收入'
fromSR,YHB
WHERE=SR.ID
createviewYE
select总收入-总支出as'
余额'
fromzzc,zsr
createviewYHSR
select,YHB.Name,,,,
fromYHB,SR
WHERE=
createviewYHZC
fromYHB,ZC
WHERE=
结果如下图:
图视图的创建
创建索引
Usegrlcxt
createindexaa
onSR(b_Date)
createindexbb
onZC(b_Date)
图索引创建
第4章系统界面设计与实现
登录模块
每个软件的应用都需要登录,家庭理财系统的运行首先要通过登录,登录的用户名和密码都是指定好的。
当用户名和密码都输入正确时才能登录成功并跳转到主功能界面,如图和图所示。
当用户名与密码不匹配时提示错误,具体如图所示。
图用户名和密码输入正确
图成功登录并跳转到主功能界面
图用户名或密码错误登录失败
在登录界面的设计时用到的函数代码如下:
voidyhdl:
:
OnButton1()
{
UpdateData(true);
CDatabasem_database;
CLoginSet*m_recordset=newCLoginSet(&
m_database);
CStringstrSQl;
("
selectName,PasswordfromYhdlwhereName='
%s'
ANDPassword='
"
m_yhname,m_yhmm);
m_recordset->
Open(AFX_DB_USE_DEFAULT_TYPE,strSQl);
if(m_recordset->
GetRecordCount()==0)
{
AfxMessageBox("
用户名或密码错误!
"
);
}
else{
();
AfxMessageBox("
登录成功!
zjmb;
}
}
系统的详细设计
主界面设计
本软件的主要功能是对家庭个人日常的财产收入支出条目进行记录、修改、查询和删除等管理操作。
所以在软件的主界面上提示用户选择所要进行的操作。
在主界面上设计了三个按钮,分别是收入管理、支出管理、余额管理。
当点击其中一个按钮时,会跳转到相应操作的界面,跳转功能的实现是运用了DoModal()函数,同时要在头文件中包含相应跳转到页面的类的头文件。
例如跳转到收入管理界面,过程如下:
在函数voidzjm:
OnButton2()中添加代码zcglz;
();
同时在头文件中包含#include"
。
为了美观在主界面上添加了背景图片。
主界面如图所示。
图软件主界面
收入界面设计
收入管理界面的功能是针对收入进行一系列操作,如添加记录,修改记录,删除记录,查询记录,当操作成功是会有相应的正确操作提示;
如一下图片所示:
图收入界面
图成功添加记录
图时间为空添加记录失败
图修改成功
图删除成功
在查询功能中分当天查询和以前的查询
图一天内的查询结果
图退出收入管理
支出管理界面设计
图支出窗口
图添加记录失败
备注:
其他功能基本与收入管理基本相同,所以就不一一展示
余额查询界面设计
本界面操作就是查询总收入,总支出,余额。
查询记录功能如图所示。
图余额管理界面
图余额查询界面
用户注册界面的设计
每个家庭中都会有各自的家庭成员每个成员有不同的收入支出,所以本系统可以有多个用户,进行各自的操作,用户注册如下图所示。
图用户注册
用户注销界面的设计
用户注销时,同时将数据库中他的收入支出删除,用户注销如下图所示:
图用户注销
第5章总结
在这次数据库课程设计中,我的课题是《个人理财系统》,我的题目是“家庭理财系统”。
在大二第一学期我所选的也是同一个课题,记得当初的数据是保存在文本里面的,存在着读取和查找的麻烦。
在本次课程设计中,我所选的课题还是这个课题,我所想的是将自己在上学期的比较麻烦的的查找问题进行修改,让整个系统更加完善,使上学期没有实现的功能在本次课程设计中得以体现。
在本次课程是设计一个完整的数据库应用平台,将数据库作为后台,MFC开发前台操作界面,在整个程序设计过程中,我感觉耗费时间最多的就是如何编写代码使得MFC界面可以对数据库进行打开、查找、添加、删除、保存,同时这也是整个程序最重要的一部分。
在数据库创建数据时,我除了创建三个基本表,还创建了大量的视图,因为在视图中我提更大量的规则,使得MFC对数据库进行查询时,更加适合用户的使用心理。
因为课程设计是一个独立的技能训练,在系统开发过程中许多东西都是课本上没有的东西,这些没有的东西就得靠自己主动去图书馆查询图书资料,网络XX信息,还有问同学老师。
在无形中提高了自己的动手能力,锻炼了自己的独立思考的能力,使得自己更加的独立,同时也拉近了与同学之间的关系。
通过本次课程设计发现这其中需要的很多知识都是我们没有接触过的,去图书馆查资料的时候才发现我们前面所学到的仅仅是皮毛,hi啊有很多需要我们掌握的东西我们根本不知道。
同时也发现很多已经学过的东西我们没有理解到位,不能灵活运用与实际,不能很好的用来解决问题,这就需要我们不断的大量实践,通过不断的自学,不断的发现问题,思考问题,进而解决问题。
在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。
很多东西都没有那么简单,尤其是看起来简单的东西往往越麻烦,我们能做到的就是好好设计细心操作,因为在程序开发过程中,往往已经设计好的程序得到结果不是自己想要的,只好抛弃从头开始,也有是因为自己敲错了一个代码,导致程序出现问题,反反复复修改半天才发现原来就是那么一定小毛病,而就是这点小毛病花费了自己半天时间。
所以在程序开发的时候,我们要做的是好好的规划,根据需求一步步设计好程序,按照自己的设计来开发程序,同时在程序开发过程中要注重细心,稳重,出现错误也不要慌,认认真真的该,错误总会有消除的时候,不是有句话说好的软件都是一步一步修改出来的吗?
两周时间很快就过去了,本次数据库课程设计也快结束了,我们也有了各自的劳动成果,我们不仅仅是有自己的设计成果,还提高了本分设计能力。
同时也有部分不足,在以后的学习生活中一步步将这些不足解决掉。
参考文献
[1].郑阿奇,刘启芬,顾韵华.SQL
Server实用教程(第三版).北京:
电子工业出版社,2012.
[2].张荣梅.Visual
C++
程序设计案例教程[M].北京:
北京大学出版社,2009
[3]王瑞,于速.VisualC++数据库系统开发完全手册[M].北京:
人民邮电出版社,2006.
[4]朱景德,陈品华.SQLServer数据库系统技术[M].陕西:
西安电子科技大学出版社,2008.
[5]王珊,萨师煊.数据库系统概论.第四版.高等教育出版社,2006
[6]宋辉,曲向丽,宋振龙.VisiualC++实用培训教程.第一版.人民邮电出版社,2008
附录
部分源程序代码
1.登录控制:
2.收入添加记录;
voidsygl:
if(!
(_T("
grlcxt"
)))
MessageBox("
打开数据库失败。
if(!
UpdateData())
return;
TRY{
CStringsql;
("
InsertintoSR(ID,Name,b_Date,Type,Amount,Comment)VALUES('
'
)"
m_idi,m_namei,m_rq,m_lx,m_sm,m_bz);
try{
if()){
MessageBox("
日期不能为空!
return;
}
//CDatabasem_database;
(sql);
MessageBox("
添加记录成功!
}catch(CDBExceptione){
错误!
CATCH(CDBException,ex)
AfxMessageBox(ex->
m_strError);
m_strStateNativeOrigin);
AND_CATCH(CException,e)
TCHARszError[100];
e->
GetErrorMessage(szError,100);
AfxMessageBox(szError);
END_CATCH
3.收入修改记录控制:
OnButton2()
//TODO:
Addyourcontrolnotificationhandlercodehere
updateSRsetID='
Name='
b_Date='
Type='
Amount='
Comment='
whereComment='
m_idi,m_namei,m_rq,m_lx,m_sm,m_bz,m_bz);
(sql);
AfxMessageBox("
修改成功!
4.收入查询:
OnButton5()
CDatabasem_db;
if())
MessageBox("
时间不能为空!
FALSE,FALSE,"
ODBC;
FALSE);
CStringsql;
CRecordsetm_rSet(&
m_db);
select*fromGRSRwherePassword='
andb_Date='
m_mima,m_rqq);
();
(CRecordset:
dynaset,sql);
inti=0;
intm=1;
while(!
())
(i,"
CStringstrField1,strField2,strField3,strField4,strField5,strField6;
ID"
strField1);
(i,0,strField
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家庭理财 数据库 课程设计 报告