课程设计作业.docx
- 文档编号:23200785
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:49
- 大小:1.32MB
课程设计作业.docx
《课程设计作业.docx》由会员分享,可在线阅读,更多相关《课程设计作业.docx(49页珍藏版)》请在冰豆网上搜索。
课程设计作业
山东理工大学商学院
课程设计
第一章系统规划书
1.1主要任务
1.2关键词
1.3参考文献
第二章系统分析
2.1可行性分析
2.2系统化分析
第三章系统设计
3.1概要设计
3.1.1概要设计的过程
3.1.2概要设计的原则
3.1.3系统功能分析
3.2数据库设计
3.2.1数据库Access简介
3.2.2数据库需求分析
3.2.3表的详细结构说明
3.2.4测试用例
3.3详细设计
3.3.1系统登录模块的设计与实现
3.3.2主界面的设计与实现
3.3.3现金的收支与维护模块的设计与实现
3.3.4现金收支查询模块的设计与实现
3.3.5收入/支出项目维护模块的设计与实现
3.3.6信用卡收支与维护管理模块的设计与实现
3.3.7信用卡收支查询模块的设计与实现:
3.3.8密码管理模块的设计与实现
4系统说明书
4.1使用说明
4.2运行环境
4.3运行结果
第一章系统规划书
1.1主要任务
设计一套个人理财系统,帮助达到个人财产合理分配的目的、满足对理财安全性、收益性等多样化要求。
通过计算机管理个人财产,实现无纸化理财,通过查询分析,统计出各项数据,分析出生活中的浪费和节约的地方,通过强大的查询和索检高效的索检出数据,提高办事效率。
帮助达到个人财产合理分配的目的、满足对理财安全性、收益性等多样化要求。
1.2关键词
管理信息系统个人理财系统系统分析系统设计
1.3参考文献
《管理信息系统》黄梯云主编高等教育出版社
第二章系统分析
2.1可行性分析
个人理财管理系统是每一个个人管理个人财务收入和支出的不可缺少的一个管理信息系统,它的内容对于个人的管理者来说是至关重要的,所以个人理财管理系统应该能够为每一个个人的管理者提供充足的信息和快捷的查询手段,大的方便个人的管理者的合理理财。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对个人财务进行管理,具有着手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高个人财务管理的效率,也是个人理财的科学化、正规化管理,与先进科学技术接轨的重要条件。
正确的理财观念非常重要,科学理财方式选择将成为决定个人贫富差距的关键性因素。
真正的理财是因人而异,因“财”制宜的。
理财方式的选择也因人而异。
在国内,有些人自己亲自进行股票、债券买卖,只有少部分人请理财机构带为理财。
而在国外大部分人是请经验丰富的理财专家或顾问来替他们理财、节支开源。
因为投资市场的变化和理财工具的复杂,使得理财专业知识和技能的要求也越来越高,更多人理智地选择了专家。
个人理财的核心是投资收益的最大化和个人资产分配合理化的集合。
理财服务通过充分利用各种理财工具(如现金、银行存款、股票、债券、基金、期货、房产、保险等),帮助您达到合理分配的目的、满足您对理财安全性、收益性等多样化要求。
开发一个个人理财软件迎合了现代的家庭发展趋势,对居民合理分配家庭财产起到重要意义
经过分析,我们使用MICROSOFT公司的VISUALBASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
本文采用“自上而下地总体规划,自下而上地应用开发”的策略开发一套个人理财系统,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,并附带了一些主要的窗口和程序。
本系统界面友好,操作简单,比较实用。
开发这一系统的好处大约有以下几点:
第一、可以存储个人日常财务信息。
第二、只需了解操作系统,就能实现方便快捷的个人财务管理,节省人力;
第三、可以迅速个人财务历史信息,做到收入支出心中有数。
为将来个人上网做好准备
2.2系统化分析
根据个人理财管理系统的日常工作流程与内容,预测开发的管理系统的达到的功能如下:
1、现金的收入:
录入现金的收入情况
2、现金的支出:
录入现金的支出情况
3、现金的查询:
查询收入情况、支出情况及现金的节余情况
4、信用卡的收入:
录入信息卡现金的收入情况
5、信用卡的支出:
录入信用卡现金的支出情况
6、信用卡现金的查询:
查询信用卡的收入情况、支出情况及现金的节余情况
7、收入与支出项目的维护:
维护收入项目和支出项目,方便用户的选择
8、其他功能:
密码管理等
9、退出系统
根据以上分析,该系统考虑将整个系统分解成如下图模块结构图:
第三章系统设计
3.1概要设计
3.1.1概要设计的过程
概要设计要先进行系统设计,复审系统计划与需求分析,确定系统具体的实施方案;然后进行结构设计,确定软件结构。
3.1.2概要设计的原则
①将软件划分成若干独立成分的依据。
②如何表示不同的成分内的功能细节和数据结构。
③如何统一衡量软件设计的技术质量。
3.1.3系统功能分析
根据个人理财管理系统的日常工作流程与内容,预测开发的管理系统的达到的功能如下:
1、现金的收入:
录入现金的收入情况
2、现金的支出:
录入现金的支出情况
3、现金的查询:
查询收入情况、支出情况及现金的节余情况
4、信用卡的收入:
录入信息卡现金的收入情况
5、信用卡的支出:
录入信用卡现金的支出情况
6、信用卡现金的查询:
查询信用卡的收入情况、支出情况及现金的节余情况
7、收入与支出项目的维护:
维护收入项目和支出项目,方便用户的选择
8、其他功能:
密码管理等
9、退出系统
根据以上分析,该系统考虑将整个系统分解成如图3-1模块结构图:
图3-1模块结构图
并且在系统的开发过程中,尽量注意模块的高内聚、低耦合,使得系统的整体性能提高,并且也有利于投入使用后的系统维护。
3.2数据库设计
3.2.1数据库Access简介
数据库的概念
数据库是一种存储数据并对数据进行操作的工具。
数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。
计算机的数据库可以分为两类:
非关系数据库(flat-file)和关系数据库(relational)。
关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。
新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。
创建一个数据库结构的过程被认为是数据模型设计。
1.标识需要的数据;
2.收集被标识的字段到表中;
3.标识主关键字字段;
4.绘制一个简单的数据图表;
5.规范数据;
6.标识指定字段的信息;
7.创建物理表。
修改已建的数据库
数据库的修改分为:
添加、编辑和删除记录。
这三种操作均可由VisualBasic创建的程序来完成,下面的章节将详细描述实现的具体方法。
实现数据库之间的联系
数据库之间的关系指明两个库之间共享一个共同的关键字值。
一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。
一个更高级的连接形式称为自连接。
这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。
数据库中有三种不同类型的关键字:
主关键字、组合关键字和外关键字。
在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。
3.2.2数据库需求分析
根据普通大众个人理财信息管理的实际情况,分析得到如下的数据库结构。
现金日常收支表:
信用卡日常收支表:
收入/支出项目表:
用户管理表:
3.2.3表的详细结构说明
现金日常收支表的详细信息:
信用卡收支表的详细结构说明:
收入项目表的详细结构为:
支出项目表的详细结构为:
用户管理表的详细结构为:
3.2.4测试用例
现金日常收支表的测试用例:
信用卡收地表的测试用例:
3.3详细设计
3.3.1系统登录模块的设计与实现
1.流程图
2.界面:
界面包括的控件有标签、文本框、命令按钮等控件。
3.实现过程:
第一步将所需的控件放到窗体的相应位置;方法:
首先在“工具箱”中选中所需的控件图标,然后在表单的恰当位置上单击鼠标并拖动鼠标,即可把由所选取的控件生成的对象添加到窗体上。
如下图:
第二步,选择窗体或控件进行属性设置,如图为窗体的属性设置界面:
第三步双击相应的控件,在控件的相应过程中编写代码:
如此窗体上“进入”与“退出”按钮的代码如下:
此程序段中,“IF”语句的作用是判断用户输入的用户名与密码和数据库的是否相同,如果相同,则执行Form1.hide(隐藏当前的窗体)和Form4.show(调出系统主界面),如果用户名或密码输入错误,则提示:
使用户重新输入用户名或密码。
Unloadme语句的作用是下载窗体。
此窗体上另外还有Data1、Text3二个控件在程序运行时是看不到的,它们的作用是使VB与Access数据库相连,然后判断用户输入的用户名与密码是否与数据库中的一致,如果一致,则允许用户进入系统。
此三个控件的创建方法如下:
首先,将Data、Text控件拖放到窗体上,其次,设置它们的属性:
(1)Data1控件的属性设置如下图:
数据库中的表名
数据库的名称
此两个属性的作用是保证Data控件与数据库相连。
运行时是否隐藏
Visible属性是使此控件运行时在窗体上不显示。
(2)Text3控件的属性设置如下:
此数据控件绑定到何字段
此数据控件绑定到何数据库
Visible属性的设置同Data1控件。
3.3.2主界面的设计与实现
主界面是用菜单形式表现的,如图:
菜单的制作过程如下:
首先通过“工具”菜单中的“菜单编辑器”调出菜单编辑器,然后进行菜单的设置,如下图:
调节菜单的级别
此过程中要注意各菜单的名称唯一,另外还要注意菜单的级别。
最后设置如下的代码(只要单击菜单即可设置各菜单代码),代码如下图:
自上而下分别为:
退出、收入维护、收支查询、收支维护、信用卡查询、信用卡收支维护、用户管理、支出维护菜单的代码,主要是通过Show方法调用相应的窗体。
3.3.3现金的收支与维护模块的设计与实现
1、流程图:
2、运行界面:
1.实现过程:
第一步将所需的控件放到窗体的相应位置;方法:
首先在“工具箱”中选中所需的控件图标,然后在表单的恰当位置上单击鼠标并拖动鼠标,即可把由所选取的控件生成的对象添加到窗体上。
如下图:
第二步,选择窗体或控件进行属性设置,如图为日期文本框控件的属性设置界面:
数据源
对应的字段
其它属性和控件的设置方法类似。
第三步双击相应的控件,在控件的相应过程中编写代码:
的代码为:
PrivateSubCommand1_Click()
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=True
Command5.Enabled=True
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
Text1.Enabled=True
Text2.Enabled=True
DataCombo1.Enabled=True
Text1.SetFocus
EndSub
的代码为:
PrivateSubCommand2_Click()
IfMsgBox("确认删除当前记录吗?
",vbYesNo,"确认窗口")=vbYesThen
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=True
Command5.Enabled=False
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
IfAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveLast
EndIf
EndIf
EndSub
的代码为:
PrivateSubCommand3_Click()
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=True
Command5.Enabled=True
Text1.Enabled=True
Text2.Enabled=True
DataCombo1.Enabled=True
DataCombo2.Enabled=True
Text1.SetFocus
EndSub
的代码为:
PrivateSubCommand4_Click()
Adodc1.Recordset.UpdateBatch
Adodc1.Recordset.Requery
DataGrid1.Refresh
Text1.Enabled=False
Text2.Enabled=False
DataCombo1.Enabled=False
DataCombo2.Enabled=False
Command1.Enabled=True
Command2.Enabled=True
Command3.Enabled=True
Command4.Enabled=False
Command5.Enabled=False
EndSub
的代码为:
PrivateSubCommand5_Click()
Adodc1.Recordset.CancelBatch
Adodc1.Recordset.Requery
DataGrid1.Refresh
Text1.Enabled=False
Text2.Enabled=False
DataCombo1.Enabled=False
DataCombo2.Enabled=False
Command1.Enabled=True
Command2.Enabled=True
Command3.Enabled=True
Command4.Enabled=False
Command5.Enabled=False
EndSub
的代码为:
PrivateSubCommand6_Click()
UnloadMe
Form4.Show
EndSub
单选按钮组的代码为:
PrivateSubOption1_Click(indexAsInteger)
Ifindex=0Then
DataCombo1.Enabled=True
DataCombo2.Enabled=False
DataCombo2.Text=""
Else
DataCombo2.Enabled=True
DataCombo1.Enabled=False
DataCombo1.Text=""
EndIf
EndSub
此窗体上用了3个Adodc控件,Adodc1用来连接日常收支表,Adodc2用来连接收入项目表,Adodc3用来连接支出项目表。
使用方法是首先通过Adodc控件与数据库相连,然后将各数据项与数据字段相连。
Adodc1控件的属性为:
数据库中的何表
连接数据库
如日期Text2的控件的主要属性设置如下:
对应表中的字段
数据来源
其他Text的设置同。
3.3.4现金收支查询模块的设计与实现
1.流程图:
2.运行界面:
3.实现过程:
界面的设计过程与学生档案管理模块类似,这边不再重复。
下面把此界面的主要代码作一介绍:
按钮的代码如下:
PrivateSubCommand1_Click()
DimstrQueryAsString
Command1.Enabled=False
Command2.Enabled=True
Command3.Enabled=True
d1=Trim(Text1.Text)
d2=Trim(Text2.Text)
Adodc1.CommandType=adCmdText
IfOption1.Value=TrueThen
strQuery="select*from日常收支wherelen(收入项目)and日期>='"&d1&"'And日期<='"&d2&"'"
EndIf
IfOption2.Value=TrueThen
strQuery="select*from日常收支wherelen(支出项目)and日期>='"&d1&"'And日期<='"&d2&"'"
EndIf
IfOption1.Value=FalseAndOption2.Value=FalseThen
strQuery="select*from日常收支where日期>='"&d1&"'And日期<='"&d2&"'"
EndIf
Adodc1.RecordSource=strQuery
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount=0Then
MsgBox"不存在此时间段的收支记录!
"
EndIf
EndSub
此过程主要是借助于SQL(结构化查询语言)语句来进行查询,并通过Option按钮组判断用户选择的查询方式。
然后通过Adodc1.RecordSource=strQuery来进行数据源更新。
如果找不到要找数据,则提示退出。
表格用来存放查询的结果。
表格的主要属性为:
表格的标题
数据源
“现金余额”的代码为:
PrivateSubCommand4_Click()
c=Adodc1.Recordset.RecordCount
Adodc1.Recordset.MoveFirst
Forn=1Toc
IfLen(Adodc1.Recordset("收入项目"))Then
a=a+Adodc1.Recordset("金额")
Else
b=b+Adodc1.Recordset("金额")
EndIf
Adodc1.Recordset.MoveNext
Next
MsgBox"收入为:
"&a&"支出为:
"&b&Chr(13)+"现金余额为:
"&Str(a-b),,"系统统计"
EndSub
统计满足条件的收入数、支出数、现金余额数,结果界面为:
3.3.5收入/支出项目维护模块的设计与实现
1.流程图:
2.运行界面:
3.实现过程:
界面的设计方法同上,在这不再重复。
现将控件的相应代码说明如下:
收入项目的
代码分别如下:
支出项目的
代码同上。
3.3.6信用卡收支与维护管理模块的设计与实现
1.流程图:
2.运行界面:
3.实现过程:
第一步将所需的控件放到窗体的相应位置;方法:
首先在“工具箱”中选中所需的控件图标,然后在表单的恰当位置上单击鼠标并拖动鼠标,即可把由所选取的控件生成的对象添加到窗体上。
如下图:
第二步,选择窗体或控件进行属性设置,如图为窗体的属性设置界面:
窗体的标题
窗体显示的位置
其它属性和控件的设置方法类似。
第三步双击相应的控件,在控件的相应过程中编写代码:
4个按钮的代码为:
PrivateSubCommand10_Click()
Adodc1.Recordset.MoveFirst
EndSub
PrivateSubCommand9_Click()
Adodc1.Recordset.MovePrevious
IfAdodc1.Recordset.BOFThen
MsgBox"已到库头!
"
Adodc1.Recordset.MoveFirst
EndIf
EndSub
PrivateSubCommand8_Click()
Adodc1.Recordset.MoveNext
IfAdodc1.Recordset.EOFThen
MsgBox"已到库尾!
"
Adodc1.Recordset.MoveLast
EndIf
EndSub
PrivateSubCommand7_Click()
Adodc1.Recordset.MoveLast
EndSub
的代码为:
PrivateSubCommand1_Click()
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=True
Command5.Enabled=True
Adodc1.Recordset.AddNew
Text1.Enabled=True
Text2.Enabled=True
Text3.Enabled=True
DataCombo1.Enabled=True
Text1.SetFocus
EndSub
删除的代码为:
PrivateSubCommand2_Click()
IfMsgBox("确认删除当前记录吗?
",vbYesNo,"确认窗口")=vbYesThen
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=True
Command5.Enabled=False
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
IfAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveLast
EndIf
EndIf
EndSub
的代码为:
PrivateSubCommand3_Click()
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=True
Command5.Enabled=True
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 作业