1014604884VB课程设计实验报告大学生日常支出管理系统

上传人:仙*** 文档编号:29385977 上传时间:2021-10-07 格式:DOC 页数:10 大小:1.65MB
收藏 版权申诉 举报 下载
1014604884VB课程设计实验报告大学生日常支出管理系统_第1页
第1页 / 共10页
1014604884VB课程设计实验报告大学生日常支出管理系统_第2页
第2页 / 共10页
1014604884VB课程设计实验报告大学生日常支出管理系统_第3页
第3页 / 共10页
资源描述:

《1014604884VB课程设计实验报告大学生日常支出管理系统》由会员分享,可在线阅读,更多相关《1014604884VB课程设计实验报告大学生日常支出管理系统(10页珍藏版)》请在装配图网上搜索。

1、VB程序设计试验报告实验题目:大学生日常支出管理系统姓 名: 学 号: 09114115 指导老师: VB课程设计报告 大学生日常支出管理系统一、 功能描述大学生日常支出管理系统:实现对大学生在校期间的日常支出管理,包括日常收入与支出明细,及按月,按年的收入与支出汇总等。本程序包含账目总览,记账,查询功能。账目总览:总体查询本月平均开销,余额,及每天平均开销。记账:记录每笔收入、支出,以及借贷情况。查询功能:可以按开销方式查询花费金额,和收入方式查询收入状况。二、 详细设计构成模块:1、 登录界面 输入密码,判断是否正确,并判断是否允许登录2、 账目总览 总览本月开销情况。3、 记账本 记录具

2、体账目信息,借贷款情况。4、 查询账目 分类查询本月开销及借贷情况。5、 用户设置 设置用户登录密码,确保账户管理的保密性。设计思想: 实现财务管理系统主要是数据库的操作。本系统数据用数据库存储,在程序中用Data和Adodc控件实现对数据的读取。在数据的输出上,采用DataGrid输出总体数据,用Label和Text控件输出单条记录。用户登录界面,在用户正确输入密码之前,Toolbar控件设为不可用,用户无法操作。当密码正确时Toolbar控件Enable属性为True,用户可操作,同时密码框和登录按钮消失,仅留下背景界面。为保证用户使用时的隐私性,在用户设置中可以自由修改密码。修改时先由数

3、据库中读取旧密码,与用户输入的密码对比,不相同则禁止用户修改。当密码正确时,再判断两次输入的新密码是否相同,不相同则禁止修改。主窗体采用MDI窗体,但每次只允许一个窗体打开。为了保证效果,在每个窗体的Form_Resize()过程中写入语句“Me.WindowState = 2”,以保证每次打开都是最大化显示。当用户单击Toolbar上的按钮触发打开相应窗口时,都会先关闭其他窗口,使MDI窗体中始终都只有一个窗体处于打开状态,使得程序窗口不至混乱。在借贷功能上,为防止用户误输入,在还款日期的输入上,先检测日期是否大于当前日期,如不大于,则提示用户重新输入。具体设计登录窗口Private Sub

4、 Command1_Click()Data1.RefreshIf txt_pass = Data1.Recordset.Fields(0).Value Then 判断密码是否正确MsgBox 欢迎回来!, vbOKOnly, 登陆成功!mdi_main.Toolbar.Enabled = True 工具栏可用txt_pass.Visible = False 隐藏登录按钮Command1.Visible = FalseElseMsgBox 密码错误!, vbOKOnly, 错误End IfEnd Sub账目总览:Dim str_jd As StringDim str_sz As StringPr

5、ivate Sub sz() 定义显示收支的过程Dim int_count As IntegerDim int_income As IntegerDim int_pay As IntegerDim int_charge As IntegerDim int_ave As IntegerDim int_avew As IntegerDim dat_dateF As DateDim dat_dateL As Datedatearry = Split(Date, -) 把日期拆分成年月日dat_dateF = CDate(datearry(0) & - & datearry(1) & - & 1) 设

6、定本月第一天的日期dat_dateL = CDate(datearry(0) & - & datearry(1) + 1 & - & 1) - 1 设定本月最后一天的日期If Data_come.Recordset.RecordCount = 0 Then 如果记录数为0则收入为0 int_come = 0Else For int_count = 0 To Data_come.Recordset.RecordCount - 1 做循环读入数据 int_income = int_income + Data_come.Recordset.Fields(0) Data_come.Recordset.

7、MoveNext Next int_count Data_come.Recordset.MoveFirstEnd IfIf Data_pay.Recordset.RecordCount = 0 Then 如果记录是为0则支出为0 int_pay = 0Else For int_count = 0 To Data_pay.Recordset.RecordCount - 1 循环读入数据 int_pay = int_pay + Data_pay.Recordset.Fields(0) Data_pay.Recordset.MoveNext Next int_count Data_pay.Recor

8、dset.MoveFirstEnd Ifint_charge = int_income - int_pay 计算余额int_ave = int_pay / (Date - dat_dateF)int_avew = int_charge / (dat_dateL - Date)str_sz = 今天是 & Date & vbCrLf & vbCrLf & 本月总收入 & int_income & 元 + vbCrLf & 本月总支出 & int_pay & 元 & vbCrLf & 本月剩余资金 & int_charge & 元str_sz = str_sz & vbCrLf & vbCrLf

9、& 本月已过 & Date - dat_dateF & 天 & vbCrLf & 平均每天消费 & int_ave & vbCrLf & vbCrLf & 本月还剩 & dat_dateL - Date & 天str_sz = str_sz & vbCrLf & 预计每天可消费 & int_avew & 元End SubPrivate Sub jd()Dim int_count As IntegerDim int_lend As IntegerDim int_borrow As IntegerDim dat_dateF As DateDim dat_dateL As Datedatearry

10、= Split(Date, -)dat_dateF = CDate(datearry(0) & - & datearry(1) & - & 1)dat_dateL = CDate(datearry(0) & - & datearry(1) + 1 & - & 1) - 1If Data_lend.Recordset.RecordCount = 0 Then int_lend = 0Else For int_count = 0 To Data_lend.Recordset.RecordCount - 1 int_lend = int_lend + Data_lend.Recordset.Fiel

11、ds(0) Data_lend.Recordset.MoveNext Next int_count Data_lend.Recordset.MoveFirstEnd IfIf Data_borrow.Recordset.RecordCount = 0 Then int_borrow = 0Else For int_count = 0 To Data_borrow.Recordset.RecordCount - 1 int_borrow = int_borrow + Data_borrow.Recordset.Fields(0) Data_borrow.Recordset.MoveNext Ne

12、xt int_count Data_borrow.Recordset.MoveFirstEnd Ifstr_jd = 今天是 & Date & vbCrLf & vbCrLf & 本月借入 & int_lend & 元 + vbCrLf & 本月贷出 & int_borrow & 元End SubPrivate Sub cmd_jd_Click()lbl_title.Caption = 本月基本借贷情况如下txt_show = str_jd 输出数据End SubPrivate Sub cmd_sz_Click()lbl_title.Caption = 本月基本收支情况如下txt_show =

13、 str_sz 输出数据End SubPrivate Sub Form_Resize()Me.WindowState = 2sz 加载过程jdEnd Sub记账本:Private Sub cmd_adddc_Click()Dim str_date As Stringstr_date = txt_Byear & - & txt_Bmonth & - & txt_BdayIf txt_Bmoney = Or txt_Bpeople = Or str_date lbl_date.Caption Or Val(txt_Bmoney) = 0 Then 判断数据的合理性 MsgBox 请正确输入信息!E

14、lse Data_borrow.Refresh Data_borrow.Recordset.AddNew Data_borrow.Recordset.Fields(0) = Val(txt_Bmoney) 更新数据 Data_borrow.Recordset.Fields(1) = txt_Bpeople Data_borrow.Recordset.Fields(2) = str_date Data_borrow.Recordset.Fields(3) = lbl_date Data_borrow.Recordset.Update txt_Bmoney = 清空文本框 txt_Bpeople

15、= txt_Byear = txt_Bmonth = txt_Bday = End IfEnd SubPrivate Sub cmd_addjr_Click()Dim str_date As Stringstr_date = txt_year & - & txt_month & - & txt_dayIf txt_money = Or txt_people = Or str_date lbl_date.Caption Or Val(txt_money) = 0 Then 判断数据的合理性 MsgBox 请正确输入信息!Else Data_lend.Refresh Data_lend.Recor

16、dset.AddNew Data_lend.Recordset.Fields(0) = Val(txt_money) Data_lend.Recordset.Fields(1) = txt_people Data_lend.Recordset.Fields(2) = str_date Data_lend.Recordset.Fields(3) = lbl_date.Caption Data_lend.Recordset.Update txt_money = txt_people = txt_year = txt_month = txt_day = End IfData_lend.Records

17、et.MoveLastEnd SubPrivate Sub cmd_addsr_Click()If txt_income = Or Combo_come.Text = Or Val(txt_income) = 0 Then 判断数据的合理性 MsgBox 请检查数据的完整性!Else Data_come.Refresh Data_come.Recordset.AddNew 更新数据 Data_come.Recordset.Fields(0) = Val(txt_income) Data_come.Recordset.Fields(1) = Combo_come.Text Data_come.R

18、ecordset.Fields(2) = lbl_date.Caption Data_come.Recordset.Updatetxt_income = 清空文本框Data_come.Recordset.MoveLastEnd IfEnd SubPrivate Sub cmd_addzc_Click()If txt_pay = Or Combo_pay.Text = Or Val(txt_pay) = 0 Then 判断数据的合理性 MsgBox 请检查数据的完整性!Else Data_pay.Refresh Data_pay.Recordset.AddNew 更新数据 Data_pay.Re

19、cordset.Fields(0) = Val(txt_pay) Data_pay.Recordset.Fields(1) = Combo_pay.Text Data_pay.Recordset.Fields(2) = lbl_date Data_pay.Recordset.Update txt_pay = 清空文本框Data_pay.Recordset.MoveLastEnd IfEnd SubPrivate Sub cmd_delborrow_Click()If Data_borrow.Recordset.RecordCount 0 Then 判断记录数是否为0 Data_borrow.R

20、ecordset.Delete 删除数据 Data_borrow.RefreshElse MsgBox 无记录!End IfEnd SubPrivate Sub cmd_delincome_Click()If Data_come.Recordset.RecordCount 0 Then 判断记录数是否为0 Data_come.Recordset.Delete 删除数据 Data_come.RefreshElse MsgBox 无记录! End IfEnd SubPrivate Sub cmd_dellend_Click()If Data_lend.Recordset.RecordCount 0

21、 Then Data_lend.Recordset.Delete Data_lend.RefreshElse MsgBox 无记录! End IfEnd SubPrivate Sub cmd_delpay_Click()If Data_pay.Recordset.RecordCount 0 Then Data_pay.Recordset.Delete Data_pay.RefreshElse MsgBox 无记录! End IfEnd SubPrivate Sub Form_Load()lbl_date.Caption = DateEnd Sub账目查询:Private Sub Command

22、1_Click()Dim int_comeall As IntegerDim int_count As IntegerDim str_dateF As StringDim str_dateL As Stringdatearry = Split(Date, -) 分割日期dat_dateF = datearry(0) & - & datearry(1) & - & 1 计算本月第一天dat_dateL = datearry(0) & - & datearry(1) + 1 & - & 1 计算本月最后一天condition = 收入.来源= + Combo_come.Text + and 收入.

23、日期 = + dat_dateF + and 收入.日期= + dat_dateF + and 支出.日期 + dat_dateL + 设定搜索条件Adodc_pay.RecordSource = select * from 支出 where + conditionAdodc_pay.RefreshFor int_count = 0 To Adodc_pay.Recordset.RecordCount - 1 int_payall = int_payall + Adodc_pay.Recordset.Fields(0) 计算收入总和Next int_countlbl_showpay.Capti

24、on = int_payallEnd SubPrivate Sub Command3_Click()Dim int_count As IntegerDim int_lend As IntegerFor int_count = 0 To Adodc_lend.Recordset.RecordCount - 1 计算借入总额 int_lend = int_lend + Adodc_lend.Recordset.Fields(0)Next int_countLabel5.Caption = 总借入 & int_lend & 元End SubPrivate Sub Command4_Click()Di

25、m int_count As IntegerDim int_borrow As IntegerFor int_count = 0 To Adodc_borrow.Recordset.RecordCount - 1 int_borrow = int_borrow + Adodc_borrow.Recordset.Fields(0) 计算贷出总额Next int_countLabel6.Caption = 总贷出 & int_borrow & 元End Sub用户设置:Private Sub cmd_ok_Click()Data1.RefreshIf txt_oldpass = Data1.Rec

26、ordset.Fields(0).Value ThenIf Text2 = Text3 ThenData1.Recordset.EditData1.Recordset.Fields(0).Value = Text2.TextData1.Recordset.UpdateMsgBox 更改成功!, vbOKOnly, 密码修改txt_oldpass.Text = Text2.Text = Text3.Text = ElseMsgBox 两次密码不相同!End IfElseMsgBox 旧密码错误!, vbOKOnly, 密码错误End IfEnd Sub三、 效果及存在问题1、 程序运行效果登录界

27、面:账目总览:记账本:收支界面借贷界面用户设置:2、 程序设计出现的问题在最初设计时,没有考虑到多窗口切换的问题,使用多个独立窗口,增加了程序的复杂程度,出现了很多重复代码。使用MDI窗体可以解决这个问题在最初使用Data和 ADO控件时,发现无法更新数据。后用Refresh语句解决了这一问题。在对于日期的判断上,因为不能预先在代码中设计每月天数,用Split函数把日期分割成年月日,再进行比较和计算。在使用Label和Text控件读取数据库信息时,直接用SourceField读取,可以节省代码。四、 心得1、 通过本次课程设计,对面向对象的编程机制有了更深的了解。2、 初步掌握了Data 和Adodc控件的使用方法。3、 熟悉其他控件的使用方法。4、 熟悉了数据库的建立和使用,对连接数据库有了更深的认识。5、 对SQL语句的运用的熟练。6、 掌握了VB的三种结构的程序设计的思想。- 9 - 09114115 孟凡超

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!