统具体的实施方案;然后进行结构设计,确定软件结构。
3.1.3概要设计的原则
①将软件划分成若干独立成分的依据。
②如何表示不同的成分内的功能细节和数据结构。
③如何统一衡量软件设计的技术质量。
3.1.4系统功能分析
根据学校的教务人员提供的学生档案管理的信息,预测开发的管理系统的达到的功能如下:
1、用户登录
2、单人资料管理
3、模糊查询
4、多人资料浏览
5、数据备份
6、退出系统
根据以上分析,该系统考虑将整个系统分解成如图3-1模块结构图:
图3-1模块结构图
并且在系统的开发过程中,我尽量注意模块的高内聚、低耦合,使得系统的整体性能提高,并且也有利于投入使用后的系统维护。
3.2详细设计
3.2.1详细设计的任务
详细设计就是要在概要设计的结果的基础上,考虑"怎样实现"这个软件系统,直到对系统中的每个模块给出足够详细的过程性描述。主要任务如下:①为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;②确定每一模块使用的数据结构;③确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。④要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。
3.2.2详细设计的方法
程序流程图、N-S图、PAD图、IPO图
本系统在开发过程中所采用的详细设计方法为IPO图:
1、信息维护模块IPO图:
2、查询模块IPO图:
3、用户管理模块IPO图:
第四章数据库设计
4.1数据库Access简介
数据库的概念
数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。
新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。
1.标识需要的数据;
2.收集被标识的字段到表中;
3.标识主关键字字段;
4.绘制一个简单的数据图表;
5.规范数据;
6.标识指定字段的信息;
7.创建物理表。
修改已建的数据库
数据库的修改分为:添加、编辑和删除记录。这三种操作均可由VisualBasic创建的程序来完成,下面的章节将详细描述实现的具体方法。
实现数据库之间的联系
数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。
4.2数据库需求分析
根据本人通讯录管理的实际情况,分析得到如下的E-R图。
passwordtable表:
table3表:
4.3数据库需求分析
详细数据库结构如下。
passwordtable表:
table3表:
测试用例详见表
第五章详细设计
5.1系统登录模块
1.流程图
2.界面:
界面包括的控件有标签、文本框、组合框、命令按钮等控件。
3.实现过程:
第一步将所需的控件放到窗体的相应位置;方法:首先在"工具箱"中选中所需的控件图标,然后在表单的恰当位置上单击鼠标并拖动鼠标,即可把由所选取的控件生成的对象添加到窗体上。如下图:
第二步,选择窗体或控件进行属性设置,如图为"确定"按钮的属性设置界面:
第三步双击相应的控件,在控件的相应过程中编写代码:
如此窗体上"确定"与"取消"按钮的代码如下:
PrivateSubcmdOK_Click()
'检查正确的密码
Dimpa,pt,pa1,pt1AsString
DimiAsInteger
ret.MoveFirst
ret.Find"name='"&Combo1.Text&"'"
pt=ret("password")
pa=pt
IftxtPassword=paThen
'frmSplash.show
LoginSucceeded=True
Me.Hide
frmMain.Show
UnloadMe
Else
MsgBox"无效的密码,请重试!",,"登录"
LOGINNO=LOGINNO+1
IfLOGINNO>2Then
MsgBox"对不起,您不能使用该系统!",64,"登录失败"
UnloadMe
UnloadfrmLogin
ExitSub
EndIf
txtPassword.SetFocus
SendKeys"{Home}+{End}"
EndIf
EndSub
PrivateSubcmdCancel_Click()
'设置全局变量为false
'不提示失败的登录
LoginSucceeded=False
Me.Hide
UnloadMe
EndSub
此程序段中,"IF"语句的作用是判断用户输入的用户名与密码和数据库的是否相同,如果相同,则执行Me.Hide(隐藏当前的窗体)和frmMain.Show(调出系统主界面),如果密码输入错误,则提示:
使用户重新输入密码。
Unloadme语句的作用是下载窗体。
此窗体上combo控件的主要作用是从用户表中获得用户名,其列表项主要通过窗体加载时获得。程序如下:
PrivateSubForm_Load()
'固定窗体在屏幕中央
left=(Screen.Width-Width)\2
top=(Screen.Height-Height)\2
ResumeNext
ret.MoveFirst
DoWhileNotret.EOF
Combo1.AddItemret("name")
ret.MoveNext
Loop
ret.MoveFirst
Combo1.ListIndex=0
EndSub
其中数据库的连接是通过模块moudel1.bas实现的,代码如下:
DeclareSubRtlMoveMemoryLib"kernel32"(lpvDestAsAny,lpvSourceAsAny,ByValcbCopyAsLong)
PublicconAsNewADODB.Connection
PublicretAsNewADODB.Recordset
DeclareFunctionGetComputerNameLib"kernel32"Alias"GetComputerNameA"(ByVallpBufferAsString,nSizeAsLong)AsLong
FunctionsGetComputerName()AsString
DimsBufferAsString
DimlBufSizeAsLong
DimlStatusAsLong
lBufSize=255
sBuffer=String$(lBufSize,"")
lStatus=GetComputerName(sBuffer,lBufSize)
sGetComputerName=""
IflStatus<>0Then
sGetComputerName=left(sBuffer,lBufSize)
EndIf
EndFunction
Submain()
Dimsql1AsString
sql1=App.Path
Ifright(sql1,1)<>"/"Then
sql1=sql1+"/"
EndIf
sql1="Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource="&sql1&"\userdatabase\tsl.mdb"
con.Opensql1
sql1="select*frompasswordtable"
ret.Opensql1,con,adOpenStatic,adLockOptimistic
Ifret.RecordCount=0Then
frmLogin1.Show
Else
frmLogin.Show
EndIf
EndSub
5.2主界面
主界面是用菜单形式和框架表现的,如图:
菜单的制作过程如下:
首先通过"工具"菜单中的"菜单编辑器"调出菜单编辑器,然后进行菜单的设置,如下图:
此过程中要注意各菜单的名称唯一,另外还要注意菜单的级别。
最后设置如下的代码(只要单击菜单即可设置各菜单代码),部分代码如下图:
PrivateSubmnuall_Click()
SSTab1.Tab=2
EndSub
PrivateSubmnuBack_Click()
Data1.Recordset.Close
Data2.Recordset.Close
UnloadfrmAbout
UnloadfrmHelp
UnloadfrmLogin
UnloadfrmL
上一篇:
VB小型超市管理系统全套设计+毕业论文2(论文和程序)
下一篇:
哈弗F7 VS名爵HS,谁更懂得年轻人的心?