数据库课程设计报告-个人记账系统[共11页]_第1页
数据库课程设计报告-个人记账系统[共11页]_第2页
数据库课程设计报告-个人记账系统[共11页]_第3页
数据库课程设计报告-个人记账系统[共11页]_第4页
数据库课程设计报告-个人记账系统[共11页]_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录一、课程设计目的1二、系统设计1三、数据库逻辑结构设计2四、系统效用模块图4五、源程序代码11六、课程设计总结30七、存在的问题及不足30一、 课程设计目的通过数据库课程设计,培养学生数据库设计的综合能力。从需求分析和数据库逻辑、物理设计,到效用分析和应用程序的最终实现,让学生亲自动手参与一个具有一定规模的数据库应用系统的设计和开发,真正理解和掌握数据库设计和开发的思路和方法,并更好的理解和消化课本所学的知识,为今后的实际应用打下良好的基础。二、 系统设计本课程设计(个人记账系统)是用VB+SQL设计完成的。在本系统里可以对家庭人员基本信息以及家庭账目的收入支出进行简单维护。主要效用包括

2、对家庭人员信息以及家庭收支的添加、修改、删除、查找、统计等效用。三、数据库逻辑结构设计1.SQL数据库设计表格设计:userinfo表,记录用户信息familyinfo表,记录家庭人员信息 income表,记录收入方面信息 pay表,记录支出方面信息 account表,汇总收支信息 allaccount表,计算总收支及结余存储过程定义countall存储过程,统计account表中的收支信息,并对收支金额进行求和,算出结余插入到allaccount表中。触发器:familyinfo表上定义update触发器完成对income和pay上收支人员的一致性更新。income表上定义insert,de

3、lete及update触发器,完成对于account表上的各个数据的一致性更新。pay表上定义insert,delete及update触发器,完成对于account表上的各个数据的一致性更新。account表上定义insert,delete及update触发器,调用countall存储过程完成对于allacount表上数据的统计更新。四、系统效用模块图1、数据源连接2、界面设计登陆界面:注册界面:收入管理界面:界面中分为三个部分,第一部分收入信息,第二部分显示当前总收支及与结余,并随着用户添加修改删除的操作及时更新,第三部分是操作信息,包括查询、添加、修改、删除。住处管理界面:界面中分为三个部

4、分,第一部分收入信息,第二部分显示当前总收支及与结余,并随着用户添加修改删除的操作及时更新,第三部分是操作信息,包括查询、添加、修改、删除。收支界面显示:家庭人员信息显示:五、附:源程序代码 SQL代码触发器 pay表上de_pay create trigger de_payon payfor deleteasdeclare new_time char(20)declare new_item char(20)declare new_mon intdeclare new_rela char(20)declare new_expl char(200)select new_time=支出时间 fro

5、m deletedselect new_item=支出项目 from deletedselect new_mon=支出金额 from deletedselect new_rela=支出人员 from deletedselect new_expl=支出说明 from deleteddelete from account where 录入时间=new_time and 收支金额=new_mon and 收支项目=new_item and 收支人员=new_rela and 收支说明=new_explout_trcreate trigger out_tron payfor insertasdecla

6、re new_time char(20)declare new_item char(20)declare new_mon intdeclare new_rela char(20)declare new_expl char(200)select new_time=支出时间 from insertedselect new_item=支出项目 from insertedselect new_mon=支出金额 from insertedselect new_rela=支出人员 from insertedselect new_expl=支出说明 from insertedinsert into acco

7、unt(录入时间,收支类型,收支金额,收支项目,收支人员,收支说明)values(new_time,支出,new_mon,new_item,new_rela,new_expl) up_paycreate trigger up_payon payfor updateasdeclare new_time char(20)declare new_item char(20)declare new_mon intdeclare new_rela char(20)declare new_expl char(200)declare old_time char(20)declare old_item char

8、(20)declare old_mon intdeclare old_rela char(20)declare old_expl char(200)select old_time=支出时间 from deletedselect old_item=支出项目 from deletedselect old_mon=支出金额 from deletedselect old_rela=支出人员 from deletedselect old_expl=支出说明 from deletedselect new_time=支出时间 from insertedselect new_item=支出项目 from in

9、sertedselect new_mon=支出金额 from insertedselect new_rela=支出人员 from insertedselect new_expl=支出说明 from insertedupdate account set 录入时间=new_time where 录入时间=old_timeupdate account set 收支金额=new_mon where 收支金额=old_monupdate account set 收支项目=new_item where 收支项目=old_itemupdate account set 收支人员=new_rela where

10、收支人员=old_relaupdate account set 收支说明=new_expl where 收支说明=old_explincome 表上create trigger de_incomeon incomefor deleteasdeclare new_time char(20)declare new_item char(20)declare new_mon intdeclare new_rela char(20)declare new_expl char(200)select new_time=收入日期 from deletedselect new_item=收入项目 from de

11、letedselect new_mon=收入金额 from deletedselect new_rela=收入人员 from deletedselect new_expl=收入说明 from deleteddelete from account where 录入时间=new_time and 收支金额=new_mon and 收支项目=new_item and 收支人员=new_rela and 收支说明=new_explcreate trigger in_tron incomefor insertasdeclare new_time char(20)declare new_item char

12、(20)declare new_mon intdeclare new_rela char(20)declare new_expl char(200)select new_time=收入日期 from insertedselect new_item=收入项目 from insertedselect new_mon=收入金额 from insertedselect new_rela=收入人员 from insertedselect new_expl=收入说明 from insertedinsert into account(录入时间,收支类型,收支金额,收支项目,收支人员,收支说明)values(

13、new_time,收入,new_mon,new_item,new_rela,new_expl) create trigger up_incomeon incomefor updateasdeclare new_time char(20)declare new_item char(20)declare new_mon intdeclare new_rela char(20)declare new_expl char(200)declare old_time char(20)declare old_item char(20)declare old_mon intdeclare old_rela c

14、har(20)declare old_expl char(200)select old_time=收入日期 from deletedselect old_item=收入项目 from deletedselect old_mon=收入金额 from deletedselect old_rela=收入人员 from deletedselect old_expl=收入说明 from deletedselect new_time=收入日期 from insertedselect new_item=收入项目 from insertedselect new_mon=收入金额 from insertedse

15、lect new_rela=收入人员 from insertedselect new_expl=收入说明 from insertedupdate account set 录入时间=new_time where 录入时间=old_timeupdate account set 收支金额=new_mon where 收支金额=old_monupdate account set 收支项目=new_item where 收支项目=old_itemupdate account set 收支人员=new_rela where 收支人员=old_relaupdate account set 收支说明=new_

16、expl where 收支说明=old_explfamilyinfo表上create trigger up_familyon dbo.familyinfofor updateasdeclare new_rela char(20)declare old_rela char(20)select new_rela=家庭人员 from insertedselect old_rela=家庭人员 from deletedupdate income set 收入人员=new_rela where 收入人员=old_relaupdate pay set 支出人员=new_rela where 支出人员=old

17、_relaaccount表上create trigger de_accounton accountfor deleteasexec countallcreate trigger in_accounton accountfor insert asexec countallcreate trigger up_accounton accountfor updateasexec countall存储过程CREATE proc countallasdeclare sum_income intdeclare sum_pay intdeclare sum_count intdeclare old_incom

18、e intdeclare old_pay intdeclare old_sum intselect old_income=总收入,old_pay=总支出,old_sum=结余 from allaccountselect sum_income=sum(收支金额) from account where 收支类型=收入select sum_pay=sum(收支金额) from account where 收支类型=支出set sum_count=sum_income-sum_payupdate allaccount set 总收入=sum_income where 总收入=old_incomeupd

19、ate allaccount set 总支出=sum_pay where 总支出=old_payupdate allaccount set 结余=sum_count where 结余=old_sumVB代码模块Public cn As ADODB.ConnectionPublic rs As ADODB.Recordset菜单Private Sub Command1_Click()菜单.Hide收入管理.ShowEnd SubPrivate Sub Command2_Click()菜单.Hide支出管理.ShowEnd SubPrivate Sub Command3_Click()菜单.Hid

20、e收支显示.ShowEnd SubPrivate Sub Command4_Click()菜单.Hide登录.ShowEnd SubPrivate Sub Command5_Click()If MsgBox(你确定要退出吗?, vbOKCancel, 提示) = vbOK Then EndEnd IfEnd SubPrivate Sub Command6_Click()菜单.Hide家庭人员.ShowEnd Sub登录Private Sub Command1_Click()Set cn = New ADODB.ConnectionSet rs = New ADODB.Recordsetcn.O

21、pen dsn=keep_accountrs.Open select * from userinfo where username= & Text1 & & and password= & Text2 & , cn, adOpenStatic, adLockOptimisticIf rs.RecordCount 0 Then 菜单.Show 登录.HideElse MsgBox 密码错误或用户名不存在!请重新输入。 a = a + 1 密码没输入一次a的数值就增加1 Text1.Text = Text2.Text = If a 2 Then 三次输入错误,程序强制退出 MsgBox 三次输入错

22、误,强制退出! End End IfEnd IfEnd SubPrivate Sub Command2_Click()登录.Hide注册.ShowEnd SubPrivate Sub Command3_Click()If MsgBox(你确定要退出吗?, vbOKCancel, 提示) = vbOK Then EndEnd IfEnd Sub家庭人员Public Sub export()Text1.Text = rs.Fields(家庭人员)Text2.Text = rs.Fields(年龄)Text3.Text = rs.Fields(政治面貌)Text4.Text = rs.Fields(

23、职业)Text5.Text = rs.Fields(说明)End SubPublic Sub import()rs.Fields(家庭人员) = Text1.Textrs.Fields(年龄) = Text2.Textrs.Fields(政治面貌) = Text3.Textrs.Fields(职业) = Text4.Textrs.Fields(说明) = Text5.TextEnd SubPublic Sub clear()Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = End SubPrivate Sub Co

24、mmand1_Click()On Error GoTo flagrs.MoveFirstCall exportExit Subflag: MsgBox 数据库空或当前已是第一条!End SubPrivate Sub Command10_Click()If MsgBox(你确定要退出吗?, vbOKCancel, 提示) = vbOK Then EndEnd IfEnd SubPrivate Sub Command2_Click()On Error GoTo flagrs.MovePreviousIf rs.BOF Then MsgBox 当前已是第一条记录!, , 提示 rs.MoveFirstElse Call exportEnd IfExit Subflag: MsgBox 数据库无记录或当前已是第一条!End SubPrivate Sub Command3_Click()On Error GoTo flagrs.MoveNextIf rs.EOF Then MsgBox 当前已是最后一条记录!, , 提示 rs.MoveLastElse Call exportEnd IfExit Subflag: MsgBox 数据

温馨提示

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

评论

0/150

提交评论