数据库应用课程设计论文_第1页
数据库应用课程设计论文_第2页
数据库应用课程设计论文_第3页
数据库应用课程设计论文_第4页
数据库应用课程设计论文_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华 北 科 技 学 院课程设计说明书班级: 计算b092 姓名: 赵礼阳(200909014201)设计题目: 小样个人理财 设计时间: 2011.1.2 至 2011.1.13 指导教师: 谭立云 评 语:_评阅成绩: 评阅教师: 设计任务和技术要求:设计个人理财管理系统,并实现前台c+和后台sql数据库的链接,可以从前台的mfc界面访问数据库中的每个表,在前台的界面中实现个人理财信息的增加,删除和修改。个人理财信息的查询。并把增删改后的数据放在后台的数据库中。实现以个人或者时间为单位,按时间或者姓名查找后的财务信息,在前台访问后台数据库的信息,输出访问数据库后符合要求的财务信息在前台mfc

2、界面输出。 内容摘要:为了完成整个系统的设计,首先是对整个系统的总体设计,整个系统要完成的工作如上所述,完成整个系统的设计需要完成三个部分的工作,首先是数据库的设计,数据库的设计需要分析数据库的功能需求分析,画出e-r图,编写数据字典,完成数据库的表的设计,为数据库添加对象。其次是mfc的界面设计,界面设计需要分析所要完成的用户功能,设计相应的界面,实现各个界面之间额链接和视图。最后需要链接数据库和mfc,使所要查询的数据来自数据库,并且对数据所做的增删改工作保存在数据库中。并演示所有的功能。目录1.总体设计1.1总体设计的框架图1.2框架图的阐述:第一个界面是系统登录界面,在这个界面,用户需

3、要输入账号和密码,并且账号和密码都正确才能成功进入该系统,进入系统后,就是用户输入输出界面。用户输入输出界面一共分为两个输入输出窗口,上面是数据库内部数据的输出窗口,下方是查询记录后数据输出窗口,右上方一共包含四个单击事件按钮,分别是:添加,删除,修改,保存。单击添加按钮,软件自动跳转到另一个界面,也就是财务信息的输入界面(或者录入界面),界面中一个包含七个录入信息时间标题,分别是,日期,姓名,地址,工资,证券,保险,开支(分别代表消费日期,消费人姓名,消费地址,工资收入,证券收益,保险开支,生活开支,下面就以上面简称代替,后文就不一一做出解释了)。工资、证券、保险、开支等都是float类型的

4、,姓名,日期,地址等都是string类型的。添加完成后点击确定按钮,软件自动回到输入输出界面,并且录入信息显示在上方输出列表中,并且输入的数据自动保存到后台数据库中,以便以后查询修改使用。单击删除按钮,软件自动跳出下一界面(删除添加记录界面),在这个界面,用户只需要输入你想要删除人的姓名,然后再单击确定,系统数据库中符合要求的记录自动删除结束,并且回到上一界面,在上方输入窗口中也不再显示刚才删除的记录。单击修改按钮,软件跳转到和添加记录是同样的界面,但是这个和添加记录是的操作不经相同,用户如果想要修改数据库中某个数据,用户必须准确输入某个数据在数据库中的时间、日期和姓名,这是为了验证修改信息,

5、防止数据库中数据和前台保持一致,避免照成不一致性。保存按钮,是把数据保存到软件指定的一个test文件中,这个和数据库关系不大,也可以不需要。第二个选项是查询信息选项,在查询信息选项中有四个操作按键,一个是用户自定义选择查询项目(这里包括按姓名查找和按时间查找),另一个是与上面用户选择的查询条件是保持一致的输入窗体,如果按照时间查找,用户就在下面输入要查询的相应时间,若用户选择按姓名查找,用户就需要输入相应的查询者姓名,然后单击下面的查询按键,若数据库中存在用户要查询到的记录,则记录就自动从到右边的输出窗口显示出来,要是数据库中没有相应记录,则体统会提示没有要查询的记录。最后一个就是删除查询记录

6、按钮,这里就不仔细说明,操作方式和上面删除按钮是一样的。以上操作数据的链接的实现是通过odbc实现,从前台访问数据库。2数据库设计2.1功能需求分析根据以上的整体分析,对数据库建立了一张表,名字是zly,这里表的名字都是自己建立的,名字随便取,什么名字都不是最重要的。在zly表中存放所有的财务信息。数据库中表格如下:zly(财务信息表)(日期riqi,姓名name,地址dizhi,工资gongzi,证券zhengquan,保险baoxian,开支kaizhi)2.2 er图设计工资 地址 姓名 日期 证券 zly 保险 开支 总计 2.3数据字典2.3.1 zly表解释类型宽度能否为空riqi

7、日期char10可以name姓名char30可以dizhi地址char10可以gongzi工资收入char10可以zhengquan证券收入char10可以baoxian保险支出char10可以kaizhi生活开支char10可以zongji总计char10可以2.4建立数据库2.4.1建立数据库的代码为:create database zly on primary ( name='zly_data', filename='e:xmy小蚂蚁成绩管理系统zly.mdf', size=5, maxsize=100, filegrowth=10%) log on (

8、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 zly modify file ( name= 'zly_data', size=10) alter database

9、zly modify file ( name= 'zly_data', maxsize=unlimited) use zly gocreate 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,)

10、2.4.2为表格添加对象建立完所有的表格以后,为每个表格添加对象,利用企业管理器进行添加对象,在数据库中的表格下打开zly表格,添加对象,结果为:zly表的返回结果riqiriqidizhigongzizhengquanbaoxiankaizhizongji2001-01-01赵礼阳 重庆9999.00 9999.00 999.00999.00 2002-09-23张成林万州 1321.00 241.00 2412.00 24124.002009-08-12苗超 邯郸123124.00241241.0012412.00231.00数据库对象添加完毕以后,就完成了数据库的建立,数据库建立完成以后

11、需要利用mfc进行编程,用mfc编辑界面对数据库进行访问。3mfc界面设计3.1.主界面的设计上边已经分析,在主界面上有两个信息区域分别为录入信息区域,财务信息查询区域,其中录入信息区域包括日期、姓名、地址、工资、证券、保险、开支、总计等录入的选项。查询信息区域包括时间和姓名的查询的选项。在打开的c+工程中建立对话框并添加控件运行的结果如图1。图1登陆界面设计这样就完成了登陆界面的窗体设计,登录窗体必须要匹配密码账号才能登陆进入系统。当用户已登录系统后,软件马上后台连接到数据库,代码如下:updatedata(true);cstring sql,startdate,enddate;if(!m_

12、database.isopen()if(!m_database.open(_t("zhao")messagebox("failed!");3.1响应主界面中相应按钮的对话框的设计在登陆界面中,单击确定控制按钮,软件界面自动转到主菜单界面,链接代码如下:ca m;m.domodal();要是在界面中,单击或者双击某个控件按钮需要跳转到另外一个界面,都需要类似的话来执行系统的操作,ca为类名,并且还需要头文件:#include "ca.h"这样就完成了按钮与对话框之间的链接。主界面上的每个控制按钮与相应对话框之间的链接都是通过这种方式实现

13、的。实现链接以后主要是设计以后的每个对话框执行相应的信息显示和操作功能。3.2响应对话框的具体设计3.2.1在主界面班级按钮下的对话框,要实现数据库中个人理财信息的录入和输出显示,而且要有查询增加修改删除等功能的实现,那就需要对该对话框添加控件,效果图如下:图2主界面设计图3信息录入界面设计如上图,如果用户是添加理财信息,输入玩理财信息后,则单击确认添加,若退出添加,则单击取消回到之前的主界面,取消按钮时为后面的修改设置的。图3信息录入界面设计 上图为删除理财信息窗体,在窗体中只有一个信息录入,也就是只要输入姓名,如果数据库中有此姓名的数据信息,则单击确认后系统就自动删除与该姓名匹配的所有理财

14、信息,与此同时主窗体中不在有该人的理财记录,数据库中也不再存在该人的记录。本来想设计按时间删除,但是不能再这样一个窗体中实现,比如同一天有几个人的记录同时存在,要是按姓名删除就比较麻烦,如果按时间删除,就比较方便,也更节约时间,设置的方式和姓名的设置方式是一样的。以下代码这是实现按姓名删除,要是想按时间删除,在姓名的地方改成时间的类名就可以了,当然别的地方略微有点不同,这儿就不做具体讲解了。if(!updatedata()return;trycstring sql;/打开记录集,获取最大的家乡id值. /插入新的家乡信息记录. sql.format("delete from zly

15、where( name='"+m_name+"' )"); tryif(m_name.isempty() messagebox("输入有误!");return; m_database.executesql(sql);/删除数据库里面的数据信息messagebox("删除成功!");catch(cdbexception e)messagebox("错误!");catch(cdbexception,ex)afxmessagebox (ex->m_strerror);afxmessageb

16、ox (ex->m_strstatenativeorigin); and_catch(cexception,e)tchar szerror100;e->geterrormessage(szerror,100);afxmessagebox (szerror);end_catch 图4修改理财信息录入界面设计前面已经讲解过了,单击修改按钮,跳转到上面的界面的代码编写和前面的ca m; m.domodal();方法一样,只是名字不一样,头文件不一样,后面就不做一一解释了。用户若要修改数据库中某一数据,根据数据库的类名定义,用户只需要正确输入日期就行了,别的信息可以可以随便添加,添加之后的

17、也就是用户改动之后的结果,换句话说也就是用户除了消费时间不能更改,剩下的别的理财信息都可以随意更改。保存按钮意义不大,可有可无!3.2.2主界面下方输出窗体的各项功能与按钮下的相应对话框。图5查询界面设计如上图所示,用户可以更具自己的情况,选择适合自己的查询条件,软件包含了姓名和日期两个查询条件供使用者选择,用户选择姓名查询条件,则在下面的编辑框中输入要查询人的姓名,单击查询,若数据库中有此人的财务记录,通过数据库中算法的调用,会把查询到的记录在左边的输出菜单中输出,若没有此人的记录,系统则会弹出小窗口提示,没有此人记录等提示语言。以下是查询功能的算法主要代码:updatedata(true)

18、;int ncurltem;if(m_way="日期")for(ncurltem=0;(m_list1.getitemtext(ncurltem,0)!=m_var)&&(m_list1.getitemtext(ncurltem,1)!="");ncurltem+)if(m_list1.getitemtext(ncurltem,1)="")messagebox("无该学生");return;else int h=0; h=m_list2.insertitem(h,m_list1.getitemtex

19、t(ncurltem,0); m_list2.setitemtext(h,1,m_list1.getitemtext(ncurltem,1); m_list2.setitemtext(h,2,m_list1.getitemtext(ncurltem,2); m_list2.setitemtext(h,3,m_list1.getitemtext(ncurltem,3); m_list2.setitemtext(h,4,m_list1.getitemtext(ncurltem,4); m_list2.setitemtext(h,5,m_list1.getitemtext(ncurltem,5);

20、m_list2.setitemtext(h,6,m_list1.getitemtext(ncurltem,6); m_list2.setitemtext(h,7,m_list1.getitemtext(ncurltem,7);if(m_way="姓名")for(ncurltem=0;(m_list1.getitemtext(ncurltem,1)!=m_var)&&(m_list1.getitemtext(ncurltem,1)!="");ncurltem+)if(m_list1.getitemtext(ncurltem,1)="

21、;")messagebox("无该学生");return;else int h=0; h=m_list2.insertitem(h,m_list1.getitemtext(ncurltem,0); m_list2.setitemtext(h,1,m_list1.getitemtext(ncurltem,1); m_list2.setitemtext(h,2,m_list1.getitemtext(ncurltem,2); m_list2.setitemtext(h,3,m_list1.getitemtext(ncurltem,3); m_list2.setitemtext(h,4,m_list1.getitemtext(ncurltem,4);m_list2.setitemtext(h,5,m_list1.getitemtext(ncurltem,5);m_list2.setitemtext(h,6,m_list1.getitemtext(ncurltem,6);m_list2.setitemtext(h,7,m_list1.getitemtext(ncurltem,7);图6查询界面设计上图为删除查询记录,当用户查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论