VB课程设计报告

2022-06-18

VB课程设计报告

  学号:913103860633

  随着社会生活步调的不断加快,人们越来越繁忙。也因此各项收入和支出名目繁多,如果不善于管理常会出现入不敷出,工资感觉没怎么用到月底就已经全光了。所以对自己在日常生活中的收入和支出进行记录和管理是十分必要的。这也正是设计这个程序的初衷,给人们的生活带来便利。

  一题目介绍

  个人收支管理是一款简单家庭理财软件,主要为用户提供每日的收支记录和查询服务,还能统计总收入和总支出。

  功能要求

  (1) 运行程序,首先进入的是登录窗口,因收支涉及个人隐私,因此该程序要求密码验

  证。如果密码输入连续三次错误,程序自动退出。程序的初始密码为空,即不必输入密码,直接单击“确定”按钮进入。

  (2) 当用户输入正确密码后,则进入程序界面。

  (3) 单击“参数设置”按钮,进入“参数设置”窗口。该窗口有三个选项卡。

  1 “收入类别””和“支出类别”选项卡主要对日常收支进行分类,可对类别进行添加,修改,删除等处理,并将处理后的类别信息保存到文件夹中以供本程序的其他窗口使用。这两个选项卡的初始状态为:“添加”和“返回”按钮可用,另外两个按钮不可用,同时文本框亦不能进行文字输入。单击“添加”按钮后,文本框才能编辑,并清空原有的内容。在文本框中输入新类别后选择“确定”即可添加。单击列表框中的某一项时,其内容显示在文本框中,同时“删除”和“修改”按钮才可用。单击“修改”按钮后,在文本框中进行修改,“确定”后修改操作完成。单击“删除”按钮时,从列表框中删除所选类别。

  2 通过“密码修改”选项卡可以修改密码。若“新密码”和“再输入一次”中的输入密码不一致,则会提示用户重新输入。

  (4) 单击程序主界面上的“日常流水账”按钮,进入日常收支的原始资料输入窗口。该

  窗口主要由“收入记账”和“支出记账”两个选项卡组成。考虑到流水账的内容可能较多,因此进入该窗体时,窗口底部的列表中只显示已收入的本月的收支情况。“收入类别”和“支出类别”使用了组合框,其中显示了“参数设置”窗体所设置的收入和支出类别,用户只须从中选择即可。添加新的收支信息时,先在“日期”,“金额”,“收入类型”和“备注”中输入或选择适当内容,然后单击“保存”按钮

  即可,窗口底部列表框中显示已输入的信息。单击“取消”按钮则会清空文本框中的内容。添加完毕,单击“流水账”窗口右上角的“返回”按钮可返回主界面。

  (5) 从主界面上选择“查询统计”,进入“查询统计”窗口。该窗口由三张选项卡组成,

  既可以单独统计收入或支出的情况,也可以查询某一段时间内总的收入和支出情况。“收入查询”和“支出查询”根据实际需要共设置两种查询方式:一种是查询某个时间段内的总收入和支出,另一种是查询某一时间段内某一收入和支出类别的收支情况。通过“请选择查询方式”中的两个单选框来选择这两种模式。“收入支出对比”选项卡显示某一时间段内总的收入和支出情况。

  二,课程设计的详细说明

  本程序由一个标准模块和五个窗体模块frmland 、frmmain 、frmbill、 frmquery、 frmset构成。同时有三个文本文件分别用于保存收入类型(Inputtype.txt)、支出类型(Outputtype.txt)和收支账目(Balance.txt),一个文件(Balance.pas)保存加密后的密码。

  Frmland为启动窗体,供用户输入密码并检验,如果正确就显示主窗体进入程序,如果三次输入均不正确就关闭程序。

  Frmmain为主窗体,用于各个窗体的连接和退出程序,它有四个按钮单击后分别显示窗体frmbill、窗体 frmquery、窗体 frmset。

  窗体frmbill供用户输入每日的收支帐目,即收支类型、收支时间、金额和备注。每次加载窗体frmbill时从Inputtype.txt读出收入类型,从Outputtype.txt读出支出类型给控件初始化,便于用户选择相应的类型输入日常流水账。为实现数据逐条读写采用do loop循环 EOF()文件函数和input语句。利用If语句判断data的int1取值,确定数据是收入还是支出,利用month()函数获得帐目时间time1的月份,只将本月的帐目显示在列表框里。

  窗体 frmquery供用户进行查询,它提供三个选项卡,分别支持收入查询,支出查询和收支对比查询。用户还可以对查询方式进行选择:按时间或按类型 ,为提供这2个选择,运行时对框架控件的Visible 属性进行设置。

  窗体 frmset 可以由用户自己添加收入支出类型和修改密码,设置后将写入文件保存。收入支出类型经修改后利用For循环遍历列表框中的条目,将每一条写进Inputtype.txt或Outputtype.txt。

  密码的加密按如下变换(0—A,1—B,??9—J )。将密码的每一个数字加上65后按Ascaii码转换为相应的字母。用到Mid() ,Asc (),Len()函数和For循环。 标准模块用来声明自定义数据类型 data ,它有5个元素

  int1 As Integer (取2个值,1表示收入,0表示支出)

  time1 As Date (储存收支时间)

  moneytype As String(储存收支类型)

  money As String(储存金额)

  addition As String(储存备注)

  标准模块中声明全局变量 password 和 password2 分别保存原始数字密码和经过加密后的密码。

  三、截图

  四、调试程序的过程

  问题一:调试时找不到文件路径,在查阅了几本参考书后,见书中用了App.path函数来打开文件读入或读出。于是我按照书上的例子,在程序中用App.path函数找到了文件。 问题二:调试时数据从文件中读入时,出现“输入超出文件尾”。发现程序没有什么错误,在打开文本文件Balance.txt时发现光标与文本之隔着几行空白,当删除后,程序运行良好。说明光标的最后位置应紧邻上次输入的内容。

  问题二:我一开始试图用write #1 ,newdata语句一次性写入自定义类型的所有元素,但是VB只支持随机读取文件使用它,对于文本文件,处理自定义数据类型并不方便。改写为write #1, newdata.int1 , newdata.time1, newdata.moneytype, newdata.money , newdata.addition后才实现写入功能。

  问题三:当用户输入的数据类型与我设置的变量类型不统一时,会出现许多错误,为了方便用户,必须添加显式转换语句避免错误

  五、课程设计总结

  这次课程设计虽然课题只有三颗星,但由于基础薄弱还是费了不少功夫。我从中体会到了许多。比如一项任务开始前要有一个整体规划,将各个模块和它们的功能想清楚,然后才能具体动手,此外还要步步优化,慢慢调试才能最终完成程序设计,不能急功近利,也不能粗心大意。编写程序的过程让我意识到的图书馆的巨大作用,不是课堂所学都能有所用,也不是所用要用的都学习过,学会自学,学会使用图书馆是那么重要。还有要有知难而上的勇气和必胜的信念,遇到调试错误不能灰心失望,要找到原因,积极改正。

  • 相关推荐

【VB课程设计报告】相关文章:

VB教学反思五篇06-25

VB开发专业求职信范文05-01

VB开发专业求职信范文05-01

VB开发专业求职信范文05-01

VB开发专业求职信范文05-01

VB开发专业求职信范文05-01

VB开发专业求职信范文05-01

VB开发专业求职信范文05-01

VB开发专业求职信范文05-01

VB开发专业求职信范文05-01