当前位置:文档之家› 数据库应用课程设计论文

数据库应用课程设计论文

华北科技学院课程设计说明书班级: 计算B092 姓名: 赵礼阳(4201)设计题目: 小样个人理财设计时间: 2011.1.2 至指导教师: 谭立云评语:____________________________________________________________________________________________________________________________________________________________________________________________________评阅成绩: 评阅教师:_____设计任务和技术要求:设计个人理财管理系统,并实现前台C++和后台SQL数据库的链接,可以从前台的MFC 界面访问数据库中的每个表,在前台的界面中实现个人理财信息的增加,删除和修改。

个人理财信息的查询。

并把增删改后的数据放在后台的数据库中。

实现以个人或者时间为单位,按时间或者姓名查找后的财务信息,在前台访问后台数据库的信息,输出访问数据库后符合要求的财务信息在前台MFC界面输出。

内容摘要:为了完成整个系统的设计,首先是对整个系统的总体设计,整个系统要完成的工作如上所述,完成整个系统的设计需要完成三个部分的工作,首先是数据库的设计,数据库的设计需要分析数据库的功能需求分析,画出E-R图,编写数据字典,完成数据库的表的设计,为数据库添加对象。

其次是MFC的界面设计,界面设计需要分析所要完成的用户功能,设计相应的界面,实现各个界面之间额链接和视图。

最后需要链接数据库和MFC,使所要查询的数据来自数据库,并且对数据所做的增删改工作保存在数据库中。

并演示所有的功能。

目录1.总体设计1.1总体设计的框架图1.2框架图的阐述:第一个界面是系统登录界面,在这个界面,用户需要输入账号和密码,并且账号和密码都正确才能成功进入该系统,进入系统后,就是用户输入输出界面。

用户输入输出界面一共分为两个输入输出窗口,上面是数据库内部数据的输出窗口,下方是查询记录后数据输出窗口,右上方一共包含四个单击事件按钮,分别是:添加,删除,修改,保存。

单击添加按钮,软件自动跳转到另一个界面,也就是财务信息的输入界面(或者录入界面),界面中一个包含七个录入信息时间标题,分别是,日期,姓名,地址,工资,证券,保险,开支(分别代表消费日期,消费人姓名,消费地址,工资收入,证券收益,保险开支,生活开支,下面就以上面简称代替,后文就不一一做出解释了)。

工资、证券、保险、开支等都是float类型的,姓名,日期,地址等都是string类型的。

添加完成后点击确定按钮,软件自动回到输入输出界面,并且录入信息显示在上方输出列表中,并且输入的数据自动保存到后台数据库中,以便以后查询修改使用。

单击删除按钮,软件自动跳出下一界面(删除添加记录界面),在这个界面,用户只需要输入你想要删除人的姓名,然后再单击确定,系统数据库中符合要求的记录自动删除结束,并且回到上一界面,在上方输入窗口中也不再显示刚才删除的记录。

单击修改按钮,软件跳转到和添加记录是同样的界面,但是这个和添加记录是的操作不经相同,用户如果想要修改数据库中某个数据,用户必须准确输入某个数据在数据库中的时间、日期和姓名,这是为了验证修改信息,防止数据库中数据和前台保持一致,避免照成不一致性。

保存按钮,是把数据保存到软件指定的一个test文件中,这个和数据库关系不大,也可以不需要。

第二个选项是查询信息选项,在查询信息选项中有四个操作按键,一个是用户自定义选择查询项目(这里包括按姓名查找和按时间查找),另一个是与上面用户选择的查询条件是保持一致的输入窗体,如果按照时间查找,用户就在下面输入要查询的相应时间,若用户选择按姓名查找,用户就需要输入相应的查询者姓名,然后单击下面的查询按键,若数据库中存在用户要查询到的记录,则记录就自动从到右边的输出窗口显示出来,要是数据库中没有相应记录,则体统会提示没有要查询的记录。

最后一个就是删除查询记录按钮,这里就不仔细说明,操作方式和上面删除按钮是一样的。

以上操作数据的链接的实现是通过ODBC 实现,从前台访问数据库。

2.数据库设计2.1功能需求分析根据以上的整体分析,对数据库建立了一张表,名字是ZLY ,这里表的名字都是自己建立的,名字随便取,什么名字都不是最重要的。

在ZLY 表中存放所有的财务信息。

数据库中表格如下:ZLY(财务信息表)(日期riqi ,姓名name ,地址dizhi ,工资gongzi ,证券zhengquan ,保险baoxian ,开支kaizhi )2.2 E —R 图设计2.3数据字典2.3.1 ZLY 表 2.4建立数据库CREATE DATABASE ZLYON PRIMARY ( NAME='ZLY_data',FILENAME='E:\XMY\小蚂蚁成绩管理系统\ZLY.mdf',SIZE=5, MAXSIZE=100, FILEGROWTH=10%)LOG ON( NAME='ZLY_log1',FILENAME='E:\ XMY\小蚂蚁成绩管理系统\ZLYlog.ldf',SIZE=5, MAXSIZE=20, FILEGROWTH=20%),(NAME='ZLY_log2',FILENAME='E:\ XMY\小蚂蚁成绩管理系统\ZLYlog2.ldf',SIZE=5, MAXSIZE=20, FILEGROWTH=20%)ALTER DATABASE ZLYMODIFY FILE( NAME= 'ZLY_data',SIZE=10)ALTER DATABASE ZLYMODIFY FILE( NAME= 'ZLY_data',MAXSIZE=UNLIMITED)USE ZLYGOcreate table ZLY(riqi char(10) primary key,name char(30) not null,dizhi char(10) Not null,gongzi char(10) Not null,zhengquan char(10) Not null,baoxian char(10) Not null,kaizhi char(10) Not null,zongji char(10) Not null,)建立完所有的表格以后,为每个表格添加对象,利用企业管理器进行添加对象,在数据库中的表格下打开ZL Y表格,添加对象,结果为:ZLY表的返回结果数据库对象添加完毕以后,就完成了数据库的建立,数据库建立完成以后需要利用MFC 进行编程,用MFC编辑界面对数据库进行访问。

3.MFC界面设计3.1.主界面的设计上边已经分析,在主界面上有两个信息区域分别为录入信息区域,财务信息查询区域,其中录入信息区域包括日期、姓名、地址、工资、证券、保险、开支、总计等录入的选项。

查询信息区域包括时间和姓名的查询的选项。

在打开的C++工程中建立对话框并添加控件运行的结果如图1。

图1登陆界面设计这样就完成了登陆界面的窗体设计,登录窗体必须要匹配密码账号才能登陆进入系统。

当用户已登录系统后,软件马上后台连接到数据库,代码如下:UpdateData(true);CString sql,startdate,enddate;if(!m_database.IsOpen())if(!m_database.Open(_T("zhao")))MessageBox("failed~!!!!");3.1响应主界面中相应按钮的对话框的设计在登陆界面中,单击确定控制按钮,软件界面自动转到主菜单界面,链接代码如下:Ca m;m.DoModal();要是在界面中,单击或者双击某个控件按钮需要跳转到另外一个界面,都需要类似的话来执行系统的操作,Ca为类名,并且还需要头文件:#include "Ca.h"这样就完成了按钮与对话框之间的链接。

主界面上的每个控制按钮与相应对话框之间的链接都是通过这种方式实现的。

实现链接以后主要是设计以后的每个对话框执行相应的信息显示和操作功能。

3.2响应对话框的具体设计,要实现数据库中个人理财信息的录入和输出显示,而且要有查询增加修改删除等功能的实现,那就需要对该对话框添加控件,效果图如下:图2主界面设计图3信息录入界面设计如上图,如果用户是添加理财信息,输入玩理财信息后,则单击确认添加,若退出添加,则单击取消回到之前的主界面,取消按钮时为后面的修改设置的。

图3信息录入界面设计上图为删除理财信息窗体,在窗体中只有一个信息录入,也就是只要输入姓名,如果数据库中有此姓名的数据信息,则单击确认后系统就自动删除与该姓名匹配的所有理财信息,与此同时主窗体中不在有该人的理财记录,数据库中也不再存在该人的记录。

本来想设计按时间删除,但是不能再这样一个窗体中实现,比如同一天有几个人的记录同时存在,要是按姓名删除就比较麻烦,如果按时间删除,就比较方便,也更节约时间,设置的方式和姓名的设置方式是一样的。

以下代码这是实现按姓名删除,要是想按时间删除,在姓名的地方改成时间的类名就可以了,当然别的地方略微有点不同,这儿就不做具体讲解了。

if(!UpdateData())return;TRY{CString sql;//打开记录集,获取最大的家乡ID值. //插入新的家乡信息记录.sql.Format("delete from ZLY where( name='"+m_name+"' )");try{if(m_name.IsEmpty()){MessageBox("输入有误!");return;}m_database.ExecuteSQL(sql);///删除数据库里面的数据信息MessageBox("删除成功!");}catch(CDBException e){MessageBox("错误!");}}CATCH(CDBException,ex){AfxMessageBox (ex->m_strError);AfxMessageBox (ex->m_strStateNativeOrigin); }AND_CATCH(CException,e){TCHAR szError[100];e->GetErrorMessage(szError,100);AfxMessageBox (szError);}END_CATCH图4修改理财信息录入界面设计前面已经讲解过了,单击修改按钮,跳转到上面的界面的代码编写和前面的Ca m; m.DoModal();方法一样,只是名字不一样,头文件不一样,后面就不做一一解释了。

相关主题