算法设计与分析详细设计说明书.doc

上传人:wj 文档编号:4897155 上传时间:2023-05-07 格式:DOC 页数:29 大小:1.73MB
下载 相关 举报
算法设计与分析详细设计说明书.doc_第1页
第1页 / 共29页
算法设计与分析详细设计说明书.doc_第2页
第2页 / 共29页
算法设计与分析详细设计说明书.doc_第3页
第3页 / 共29页
算法设计与分析详细设计说明书.doc_第4页
第4页 / 共29页
算法设计与分析详细设计说明书.doc_第5页
第5页 / 共29页
算法设计与分析详细设计说明书.doc_第6页
第6页 / 共29页
算法设计与分析详细设计说明书.doc_第7页
第7页 / 共29页
算法设计与分析详细设计说明书.doc_第8页
第8页 / 共29页
算法设计与分析详细设计说明书.doc_第9页
第9页 / 共29页
算法设计与分析详细设计说明书.doc_第10页
第10页 / 共29页
算法设计与分析详细设计说明书.doc_第11页
第11页 / 共29页
算法设计与分析详细设计说明书.doc_第12页
第12页 / 共29页
算法设计与分析详细设计说明书.doc_第13页
第13页 / 共29页
算法设计与分析详细设计说明书.doc_第14页
第14页 / 共29页
算法设计与分析详细设计说明书.doc_第15页
第15页 / 共29页
算法设计与分析详细设计说明书.doc_第16页
第16页 / 共29页
算法设计与分析详细设计说明书.doc_第17页
第17页 / 共29页
算法设计与分析详细设计说明书.doc_第18页
第18页 / 共29页
算法设计与分析详细设计说明书.doc_第19页
第19页 / 共29页
算法设计与分析详细设计说明书.doc_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

算法设计与分析详细设计说明书.doc

《算法设计与分析详细设计说明书.doc》由会员分享,可在线阅读,更多相关《算法设计与分析详细设计说明书.doc(29页珍藏版)》请在冰点文库上搜索。

算法设计与分析详细设计说明书.doc

高校医务收费管理系统研究项目详细设计

高校医务收费管理系统研究项目详细设计

第一部分、引言

1.1编写目的

本说明在概要设计的基础上,对高校医务收费管理系统研究项目的各模块、程序、子系统分别进行了实现层面上的要求和说明。

根据概要设计说明书中的设计内容,编写详细设计说明书,为开发过程提供系统处理过程的详细说明,使系统开发各类技术人员对整个系统所需实现的功能以及系统的功能模块的划分、实现和数据库的表结构清楚的认识,为整个系统的开发、测试、评定和移交的提供基础,本报告一旦确认后将成为系统开发各类技术人员共同遵守的准则,并为以后的编程工作提供依据。

软件开发小组的产品实现成员应该阅读和参考本说明进行代码的编写、测试。

1.2背景

说明:

A、软件系统的名称:

高校医务收费管理系统研究项目

B、任务提出者:

高校医务人员

开发者:

医务收费系统开发小组

实现完成的系统将在高校医务收费的诊断室、门诊、住院部使用,所应用的网络系统是该系统的内部局域网。

C、本系统将是独立的系统,目前不与高校医务收费的财务系统和其他资料系统提供接口,所产生的输出都是独立的。

本系统将使用SQLServer2000作为数据库存储系统,SQLServer2000企业版将由高校医务收费自行购买。

1.3定义

IPO图——输入/处理/输出图,一般用来描述一个程序的功能和机制;

VB语言:

1991年,美国微软公司推出了VisualBasic(可简称VB),目前的最新版本是VB2005(VB8)中文版。

Visual意即可视的、可见的,指的是开发像windows操作系统的图形用户界面(GraphicUserInterface,GUI)的方法,它不需要编写大量代码去描述界面元素的外观和位置,只要把预先建立好的对象拖放到屏幕上相应的位置即可。

SQL全称是“结构化查询语言(StructuredQueryLanguage)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。

SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。

医务收费系统:

医务收费是帮助医务人员、医务工作人员对医务收费管理软件。

1.4参考资料

相关的文件包括:

A、《高校医务收费高校医务收费管理系统研究项目可行性研究报告》;

B、《高校医务收费高校医务收费管理系统研究项目概要设计》;

参考资料:

①杨晶《VB程序设计教程与实训》 北京-科学出版社2006

②张海潘《软件工程》  北京清华大学出版版社2003 

③李昭原《数据库原理与应用》 科学出版社2002

④徐兰芳,彭冰《数据库设计与实现》上海-上海交通大学出版社2006

⑤(美)WendyBoggs《UML与RationalRose2002从入门到精通》邱仲潘等译北京-电子工业出版社2002

⑥《金华市发达装配厂库存管理系统KCGL》的可行性分析

⑦《中华人民共和国国家标准UDC681.3》

⑧《计算机软件产品开发文件编制指南GB8567-88》

第二部分、程序系统的结构

2.1系统结构

在概要设计中,系统的在结构描述纵向上划分为三个层次,横向上划分为九个相对独立的模块,如图1和图2。

数据访问对象

ADO

连接对象

MSSQLSERVER

医生管理

药品管理

病人管理

主界面[如:

启动窗口、菜单等]

工具栏

状态栏

登录窗口

查询窗口

药品集合对象

医生集合对象

病人集合对象

医生对象描述

药品对象描述

病人对象描述

界面层

数据处理层

数据访问层

帐单对象描述

帐单管理

帐单集合对象

图1:

系统逻辑结构的纵向划分

ActiveX登录控件

ActiveX数据访问组件

9数据访问

ADO

SQLServer

5医生管理

6病人管理

7药品管理

8帐单管理

3数据查询

4主界面

2登录验证和安全

1登录子系统

图2:

系统横向模块划分

2.2UML系统建模

对于本系统,主要使用UML中的用例图、时序图和协作图来进行系统分析,帮助开发人员了解系统功能与系统流程。

2.2.1UML用例视图描述

首先确定医务收费系统中的角色。

1.角色(Actors)的确定

在医务收费系统中,可以归纳出来的主要问题是:

(1)病人要看病;

(2)挂号操作员提供挂号服务;

(3)医生提供病人看病服务;

(4)收费操作员提供门诊病人划价收费服务,并将信息输入到系统;

(5)取药员负责取药给病人;

(6)住院登记操作员提供住院登记服务,并将信息输入到系统;

(7)系统维护员提供系统相关的维护服务。

由于医生与病人打交道,给病人诊断病情、开药方等服务,并没有直接与系统发生交互,与系统的交互是通过划价收费操作员来进行的,因此可以将医生与划价收费操作员这两个对象用一个操作员的角色代替,即认为划价收费操作员在所有病人看病的过程中直接向病人提供服务,并根据服务业务流程对系统进行操作。

这样不妨碍系统的功能实现。

同样,取药操作员并没有直接和系统发生交互,可以不用一个单独的角色。

从以上的分析中,可以创建以下角色:

(1)病人;

(2)挂号操作员;

(3)收费操作员;

(4)药品管理员;

(5)系统维护员。

在RationalRose的UseCaseView中建立角色如图3所示。

图3在UseCaseView中创建角色

2.创建用例(UseCases)

医院信息系统根据业务流程可以分为以下的几个用例:

(1)病人挂号;

(2)挂号服务;

(3)病人看病;

(4)病人交费取药;

(5)病人按处方配药;

(6)收费操作员划价扣费配药;

(7)分发药品;

(8)维护基本信息;

(9)用户注册;

(10)登录验证。

在RationalRose的UseCaseView中创建用例(UseCases)如图4所示。

图4在UseCaseView中创建用例

3.创建角色(Actor)与用例(UseCase)关系图

Actor和UseCase之间存在的关联关系通常涉及到Actor和UseCase之间的通信关联关系。

(1)病人的UseCases关系图如图5所示。

病人看病

(fromUserCases)

病人交费取药

(fromUserCases)

病人挂号

(fromUserCases)

病人按处方配药

(fromUserCases)

病人

(fromActors)

图5病人的用例关系图

(2)挂号操作员的UseCases关系图如图6所示。

挂号服务

(fromUserases)

挂号操作员

(fromActors)

图6挂号操作员的用例关系图

(3)收费操作员用例的UseCases关系图如图7所示。

收费操作员划价扣费配药(fromUserCases)

收费操作员

(fromActors)

图7收费操作员用例关系图

(4)药品管理员的UseCases关系图如图8所示。

分发药品

(fromUserCases)

退货

(fromUserCases)

进货

(fromUserCases)

药品管理员

(fromActors)

图8药品管理员的用例关系图

(5)系统维护员的UseCases关系图如图9所示。

维护基本信息

(fromUserCases)

系统维护员

(fromActors)

用户注册

(fromUserCases)

登录验证

(fromUserCases)

图9系统维护员的用例关系图

系统采用VisualBasic6.0的标准EXE工程来进行开发,实现标准包括:

1:

主程序

A、工程类型:

标准EXE;

B、工程名称:

医务收费系统.vbp

C、编译生成文件:

医务收费系统.EXE

D、引用的组件:

ADO2.5

E、引用的控件:

RichEditBox——富文本框;

CommanDialogBox——共用对话框;

MSFlexGrid——网格;

frmLogin——登录组件;

MicrosoftWindowsCommanControls6.0SP4——Windows通用组件SP4;

MicrosoftWindowsCommanControls-26.0SP3——Windows通用组件第二版SP3;

2、登录控件

A、工程类型:

ActiveX控件;

B、工程名称:

frmLogin;

C、编译生成文件:

Login.OCX;

D、引用的组件:

prjDBAccess;

E、引用的控件:

3、数据访问控件:

A、工程类型:

ActiveXDLL;

B、工程名称:

prjDBAccess;

C、编译生成文件:

DBAccess.DLL;

D、引用的组件:

ADO2.5;

E、引用的控件:

第三部分、登录组件设计说明

登录组件的界面设计如图10:

图10:

登录组件界面设计

3.1程序描述

A、目的和意义:

该部分以组件的方式来提供,向数据库执行指定姓名、密码的查询验证,很多系统都具有登录验证的要求,因此,该组件具有一定的可重用性。

B、特点说明:

用户(医生)输入管理员告知的姓名和密码,启动程序后将首先显示登录组件组成的登录界面,一生输入的姓名、密码信息,通过上图11的数据流程图进行检验,并且在出现非法登录的情况下,以对话框的形式予以信息输出。

该组件非常驻内存,可重用,无覆盖要求,顺序处理登录验证,但登录事务在数据库端属于并发事务,由数据库本身进行协调。

3.2功能

输入-处理-输出采用IPO图表示如下:

输出

1、验证正确,进入系统;

2、根据不同的情况,在屏幕上给出错误提示信息;

处理

1、根据输入信息执行查询

2、根据查询结果进行核对密码和用户名是否符合;

输入

1、用户名称字符信息

2、密码字符信息

图11:

登录组件:

IPO

3.3性能

精度:

对在文本框内输入的大小写敏感,姓名和密码都区分大小写;

灵活性:

用户输入按回车键可以进行确认,按ESC键表示关闭当前窗口;

时间特性:

用户输入后的验证时间在1.5秒之内;

3.4输人项

用户输入的姓名,密码字符信息;这些信息由系统管理员管理,存储在数据库表中。

3.5输出项

输入情况

输出情况

输入正确的密码和口令

程序进入到系统的主界面

系统没有任何用户

程序直接退出

输入姓名正确,密码错误

提示信息“请输入正确的密码,请注意密码的大小写…”

输入姓名错误,密码正确或者错误

提示信息,“请输入正确的用户名,请注意用户名的大小写…”;

提示信息为信息符号,参考的输出结果如图12,在屏幕上显示一个对话框:

图12:

一个显示密码非法的对话框信息

3.6算法

本部分没有采用自定义的算法。

3.7流程逻辑

登录组件的逻辑流程如下:

Y

N

=0

密码不正确

>0

无此姓名的医生

=-1

开始

结束

显示登录窗体

输入医生姓名、登录密码

clsLogin

>3次

显示主窗口

图13:

登录组件:

数据流程图

3.8接口

接口设计包括组件提供给外部的接口和对数据访问组件的调用接口,这些接口构成了该ActiveX控件实现的内容:

A、提供给外部的接口:

属性:

UserName:

登录的用户名称,字符数据类型,可读写;

UserPWD:

登录的用户密码,字符数据类型,可读写;

方法:

Login(ByvalstrDBNameAsString,byValTableName,ByvalDBTypeASLong)AsLong

功能:

提供登录验证;

参数描述:

StrDBName——数据库的名称或者数据库物理文件位置;

TableName——存储用户信息的表名称;

DBType——数据库的类型,例如是Access数据库还是SQLServer数据库;

返回值:

0——错误的用户名称;

1——正确的用户名称和错误的密码;

2——正确的用户名称和用户密码,登录成功;

4——用户表中无任何记录;

事件:

LogError(ByvalstrErrorStringAsLong):

触发时间:

登录完成后触发;

参数描述:

strError——错误描述信息;空表示无错,登录成功;

说明:

提供事件和Login方法的返回值,便于用户在使用控件的时候,可以自定义错误信息和使用控件提供的错误信息。

B、数据访问层的接口:

属性:

DBNAME、TABLENAME、DBTYPE属性的设置;

方法:

OPENDB、QUERY

事件:

ONOPENDB、ONQUERY

以上的属性、方法,全部在控件的Login事件中调用,属性、方法和事件的参数说明,在prjDBACCESS组件设计中有详细的描述;

3.9存储分配

本程序在高级语言VisualBasic进行编码,直接的内存分配由VB运行时分配。

本组件内所依赖的变量、结构要求全部在组件元素内申明。

3.10注释设计

注释设计请参考《VisualBasic可视化程序设计》的附录部分。

本部分代码的实现,应按照该注释规范来进行。

3.11限制条件

控件所依赖的的ActriveXDLLprjDBACCESS必须存在。

该控件在使用的时候,必须经过注册,并且在运行时,客户端程序必须安装有VB运行时的动态连接库。

在运行时,所输入的用户名称不能超过32个字母或者16个汉字;所输入的用户密码也不能超过32个字母,不允许输入汉字信息。

3.12测试计划

本模块在单元测试时候使用到的测试用例包括:

ZS_MA_Login_1、ZS_MA_Login_2、ZS_MA_Login_3所规定的内容及步骤;

组合测试用例包括:

ZS_MA_Login_1、ZS_MA_Login_2、ZS_MA_Login_3、ZS_MA_ZH_1、ZS_ZH_Login_2、ZS_ZH_Login_3;所规定的内容及步骤;

系统测试用例包括:

ZS_MA_Login_1、ZS_MA_Login_2、ZS_MA_Login_3、ZS_MA_INTERFACE_1、ZS_XT_Login_1、ZS_XT_Login_2、ZS_MA_XT_3;

测试日期、测试人员安排请参考测试计划,测试用例的具体内容,请参考测试用例说明。

3.13尚未解决的问题

本组件聚集性不强,验证的模块可以改善为包括数据访问的独立代码,而不依赖于数据访问组件。

在组件的属性增加的时候,应提供属性袋、属性页面这些设置工具。

第四部分、主界面设计说明

在图14中很容易看清楚整个程序的结构,用户也可以很方便的从菜单和工具栏各小项功能模块及工具栏很快的进入各个模块。

图14主界面

窗体设计包括菜单栏设计、工具栏设计、状态条设计,下面就分别进行简单的说明。

4.1程序描述

主窗体的代码不是很复杂,主要是对各个功能的导航和显示状态条导航信息,具体有菜单点击处理程序、工具条快捷按钮处理程序、状态度显示处理程序。

程序说明:

主窗体代码;

程序模块名称:

mainform.frm;

重要控件:

Toolbar、状态栏StatusBar、图像列表Imagelist、CrystalReport控件。

(1)菜单处理代码。

由于系统涉及到权限问题,因此每次进行菜单处理程序前,应该对该用户的权限进行检查,判断该用户是否具有该项操作的权利。

4.2功能

输入-处理-输出采用IPO图表示如下:

输出

1、验证权利,进入子系统;

2、根据不同的情况,在屏幕上给出错误提示信息;

处理

根据相应的输入链接到相应的模块

输入

1、人员管理

2、收费管理

….

图15:

主界面组件:

IPO

4.3性能

精度:

通过鼠标点击或快捷键进入子模块

灵活性:

用户鼠标点击可以进行确认,按ESC键表示关闭当前窗口;

时间特性:

用户输入后的验证时间在1秒之内;

4.4输人项

通过鼠标点击或快捷键,无输入项

4.5输出项

提示信息为信息符号,参考的输出结果如图16,在屏幕上显示一个对话框:

图16:

一个显示限制权利的对话框信息

4.6算法

本部分没有采用自定义的算法。

4.7流程逻辑

登录组件的逻辑流程如下:

开始

显示主界面

点击相应栏

无权限

权限判断

=-1

进入子模块

图17:

登录组件:

数据流程图

4.8接口

接口设计包括组件提供给外部的接口和对数据访问组件的调用接口,这些接口构成了该ActiveX控件实现的内容:

'作为检查操作员使用权限的函数,该函数通过截取user_load表中的ql_flag字段来

判断该操作员所具有的权限和使用范围

'ql_flag字段的设置

PublicFunctioncheck_qx(qx_flagAsString,iAsInteger)AsBoolean

DimtempAsInteger

Ifqx_flag<>""Then

temp=Mid(qx_flag,i,1)

Iftemp=0Then

MsgBox"您无权限使用该功能!

",vbOKOnly+vbExclamation,"注意了:

)"

check_qx=False

Else

check_qx=True

EndIf

Else

MsgBox"未经管理员授权,您无权限使用所有功能!

",vbOKOnly+vbExclamation,"注意了:

)"

check_qx=False

EndIf

EndFunction

检查权限后,如果该用户拥有该项权限的话,则进入菜单处理程序:

PrivateSubsjlr_Click()

'调用函数判断是否拥有权限使用各种功能

t=check_qx(czry_flag,6)

Ift=TrueThen‘如果用户拥有该权限,则进入菜单处理程序,否则出现警告信息。

mainform.StatusBar1.Panels

(1).Text="状态:

药费输入"

frmlrsj.Show

EndIf

EndSub

(2)工具栏处理代码。

工具栏上的快捷按钮用来打开医务收费系统软件中某个特定的窗体。

通过工具栏,用户可以方便地直接打开经常使用的功能,工具栏的实现代码示例如下:

PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)

SelectCaseButton.Key‘判断所按下的工具栏按钮的名称

Case"query"‘如果是查询编辑人员

t=check_qx(czry_flag,1) ‘检查当前用户是否拥有操作权限

Ift=TrueThen

mainform.StatusBar1.Panels

(1).Text="状态:

查询编辑人员"

frmqueryperson.Show ‘显示frmqueryperson窗体

EndIf

Case"input"‘如果是数据输入

t=check_qx(czry_flag,6) ‘检查当前用户是否拥有操作权限

Ift=TrueThen

mainform.StatusBar1.Panels

(1).Text="状态:

药费输入"

frmlrsj.Show ‘显示frmlrsj窗体

EndIf

Case"drdc"‘如果是每月数据导出

t=check_qx(czry_flag,17) ‘检查当前用户是否拥有操作权限

Ift=TrueThen

mainform.StatusBar1.Panels

(1).Text="状态:

每月数据导出"

frmimport.ShowvbModal ‘显示frmimport窗体

EndIf

Case"book"‘如果是查询报表

t=check_qx(czry_flag,13) ‘检查当前用户是否拥有操作权限

Ift=TrueThen

mainform.StatusBar1.Panels

(1).Text="状态:

查询报表"

frmquerybook.Show ‘显示frmquerybook窗体

EndIf

Case"exit" ‘如果是退出

End ‘退出系统

EndSelect

EndSub

4.9存储分配

本程序在高级语言VisualBasic进行编码,直接的内存分配由VB运行时分配。

本组件内所依赖的变量、结构要求全部在组件元素内申明。

4.10注释设计

本部分代码的实现,应按照该注释规范来进行。

4.11限制条件

控件所依赖的的ActriveXDLLprjDBACCESS必须存在。

该控件在使用的时候,必须经过注册,并且在运行时,客户端程序必须安装有VB运行时的动态连接库。

在运行时,用户端的计算机必须有鼠标或触摸板等点输入设备。

4.12测试计划

本模块的输入基本有鼠标点击来完成,不需要特殊的测试用例

4.13尚未解决的问题

本模块的快捷键还不完善。

第五部分、操作人员管理设计说明

操作人员维护模块的运行界面如图18所示

图18操作人员维护界面

操作人员管理系统主要是用来管理对该软件进行操作的工作人员,同时系统所提供的用户权限设置能够提高系统的安全性,并对不同性质的人员给予不同的权限

5.1程序描述

主窗体的代码不是很复杂,界面设计主要是利用了树型控件来实现的

程序模块名称:

frmsq;

重要控件:

TreeView、图像列表Imagelist等;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2