毕业论文写作范文

药房管理系统

【摘要】信息管理系统是一门新兴的,集管理科学、信息科学、系统科学及计算机

科学为一体的综合性学科,研究的是信息管理活动的全过程,具备数据处理、计划、控制、预测和辅助决策功能。为了使独立的中小型药房或门诊药库的管理者能够更好地进行管理,选择一款合适的信息管理系统软件是极为必要的。本文论述了药房管理系统的设计思想,主要实现功能及数据库的结构,并给出部分模块的实现代码。最后总结我在毕业设计过程中的体会。

【关键词】药房管理,信息管理,数据库,代码实现。

1 绪论

1.1 研究课题的背景

信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。而信息管理系统正是一门新兴的、集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是信息管理活动的全过程,它具备数据处理、计划、控制、预测和辅助决策功能,具体作用如下5点内容:

(1)用统一标准处理和提供信息,排除使用前后矛盾的不完整的数据。 (2)完整、及时提供在管理及决策中需要的数据。 (3)利用指定的数据关系分析数据,客观预测未来。

(4)向各级管理机构提供不同详细程度的报告,缩短分析和解释的时间。 (5)用最低的费用最短的时间提供尽可能精确、可靠的信息,以便使决策者选择最佳的实施方案,以提高企业的经济效益。

在社会经济高速发展的今天,大部分大型企事业单位包括医院,基本上都采用了相关的信息管理系统对其各项事务进行科学化、标准化的管理,但是在我进行选题和调研时,我发现目前在医药系统的同类信息管理系统中,并没有一款较为合适地、专门针对中小型药房或门诊药库管理的软件。为了使独立的中小型药房或门诊药库的管理者能够更方便地、动态地管理标准化信息,我选定此次研究的课题为:《中小型药房管理系统》。并在和指导老师多次交流后,确定了实现方案的要点和工作计划。本系统的主要功能有:

用户管理,药品管理,库存管理,系统管理四大功能。 1.2 研究思路和工作计划

正如研究任何其它软件项目一样,我做的毕业设计也经历了从选题,调研,熟悉开发环境,实验关键技术,查找类似的相关系统的资料;系统概要设计,数据结构设计,功能模块开发,功能模块测试,系统调试和系统试运行和修改。

在各阶段的时间安排上,选题和调研用了两天时间;查找类似的相关系统的资料用了两天时间;系统需求分析并完成相关文档用了四天时间;数据结构设计用了一天时间;系统概要设计至详细设计并完成相关用了五天时间;软件结构设计和窗体美化用了三天时间;熟悉开发环境,实验关键技术用了两天时间;功能模块开发和功能模块测试用了两周时间;系统调试和系统试运行和修改用了一周时间;最后,完成用户使用手册用了一天时间。完成上述全部工作大约用了一个半月时间。

2 系统功能需求描述

为方便药房管理人员方便有效地对药品信息和库存等进行相关操作,需开发一个药房管理系统,包括录入和修改药品信息、药品查询、设置药品库存上下限、删除药品信息并删除相关库存信息、出入库操作、查看系统数据、查看操作日志、数据维护等内容。要求系统能有效、快速、稳定、可靠和无误的完成上述操作。并要求系统界面要简单明了,易于操作。

药房管理系统对于中小型药房、药店、门诊药库管理者实现药品信息、库存操作等动态管理有着极其重要的作用,但归结起来,其设计内容并不是非常复杂。总的来说,其内部功能主要为实现C++设计语言与数据库的结合,以及部分函数的调用;外部功能主要有实现注册用户管理,药品信息管理,库存管理,系统管理四大功能。

经过了反复地论证,最终确定了药房管理系统的菜单功能,软件逻辑模型,及各项外部功能模块。

2.1 菜单功能

2.2 软件逻辑模型

2.3 各外部功能模块描述 2.3.1 用户登陆

用户登陆模块主要功能为验证用户身份,确保系统数据的安全,因此必须实现:(1)正确进行用户身份验证;(2)具有一定的系统保护功能,拒绝非法用户登陆。 2.3.2 用户管理

用户管理模块又分为:用户注册,修改密码,取回密码,删除用户四个子模块。要在正常登陆系统的情况下实现:(1)注册新的用户;(2)验证用户身份,为合法用户提供修改密码、取回密码、删除用户的功能;(3)拒绝非法用户的操作。

2.3.3 药品管理

药品管理模块又分为:药品总览,信息录入,药品查询,其他操作四个子模块。要在正常登陆系统的情况下实现:(1)允许用户随时查看全部药品信息记录;(2)录入新的药品信息,并生成相关库存记录和操作信息记录,确保数据规范性;(3)准确、快速地完成药品信息查询,将结果及时正确地反馈给用户;(4)准确完成修改或删除药品信息记录等其他操作。 2.3.4 库存管理

库存管理模块又分为:库存总览,库存查询,入库出库,上限下限四个子模块。由于药品库存量归类于系统内部数据,不允许用户手工随意更改,故本模块与要在正常登陆系统的情况下实现:(1)允许用户随时查看所有库存信息记录;(2)准确、快速地完成库存信息查询,将结果及时正确地反馈给用户;(3)准确、快速地完成药品出入库操作,将结果及时正确地反馈给用户,并生成相关的操作信息记录,确保数据规范性;(4)准确完成库存上限和下限的设置,确保数据规范性。 2.3.5 系统管理

系统管理模块又分为:用户列表,操作日志,数据维护三个子模块。由于这个模块涉及系统内部数据的操作,因此需要具有一定的系统保护功能,必须在正常登陆的情况下实现:(1)允许用户查看系统注册用户,但不允许进行修改操作;(2)允许用户查看药品出入库操作日志,并提供准确快速的查询引擎,将结果及时正确地反馈给用户,但不允许进行修改操作;(3)由超级管理员提供超级管理员密码,批量地对系统数据进行清除等维护工作;(4)对系统提供保护,在非法操作次数达到极限后,暂停使用数据维护功能。

3 其他主要需求描述

3.1 性能需求 3.1.1 精度需求

在数据库中提取数据时,要求数据记录定位准确;添加数据时,要求输入准确。 3.1.2时间特性需求

更新处理时间:随着药房管理系统的不断完善,本软件的响应时间更快。 3.1.3 灵活性

当需求发生某些变化时,药房管理系统的操作方式、数据结构、运行环境基本不变,

若变化只是将对应的数据库文件内的记录改变。 3.1.4 数据管理能力需求

药房管理系统约需要管理4个数据表,药房管理系统约用6.11M空间。 3.1.5 故障处理需求 本软件无故障。 3.2 属性 3.2.1 可用性

本药房管理系统使用C++语言,在BCB 6.0平台下开发,逻辑清晰,无故障。 3.2.2 安全性

本药房管理系统所需的数据、信息均放在数据库中,不容易被破坏,万一受到破坏也不会影响源程序。 3.2.3 可维护性

本药房管理系统采用C++语言编写,所需的数据均放在数据库中,易于恢复。 3.2.4 可转移、可转换性

可转移的环境是windows系统的各个版本,不需要修改任何部件和部位,转换的方

法是直接拷贝或安装程序。 3.3 其它需求 3.3.1 数据结构

用户在使用方面的要求:a.界面友好;b.操作方便;c.对硬件的要求低。 开发者要求:a.可扩充性;b.可维护性;c.易于更新。 3.3.2 数据库

实现数据共享、交互使用,完成软件的高度独立性。 3.3.3 操作

a.初始化操作简单快捷;b.数据处理的支持功能比较强。 3.3.4 场合的适用性

本软件通过C++语言编写,完成各模块功能;采用模块的设计思想,并将主模块划分为几个独立的功能模块,但它们之间又相互联系,因此各子模块也可在不同的环境下单独运行。

4 数据库设计说明

由于本系统软件结构小,所需处理的数据也比较少,因此采用Access数据库建表,数据库名为:yfgl.mdb,由下述四张数据表组成:

用户信息表:userinfo.db 药品信息表:yaopininfo.db 库存信息表:kucuninfo.db 操作日志表:caozuoinfo.db

4.1 用户信息表 userinfo.db

字段 1 2 3 4

字段名 编号 username password saveword

类型 (系统自动编号)

文本 文本 文本

长度 12 12 12

4.2 药品信息表 yaopininfo.db

字段 1 2 3 4 5 6 7 8 9 10 11 12 13

字段名 ID 名称 规格 整量单位 散量单位 整散比 入库单价 出库单价 批发价 分类 有效期 拼音码 库存

类型 文本 文本 文本 文本 文本 文本 文本 文本 文本 文本 文本 文本 文本

长度 10 50 10 10 10 10 10 10 10 10 8 5 10

4.3 库存信息表 kucuninfo.db

字段 1 2 3 4

字段名 ID 库存 上限 下限

类型 文本 文本 文本 文本

长度 10 10 10 10

4.4 操作日志表 caozuoinfo.db

字段 1 2 3 4 5 6

字段名 编号 ID username type shuliang date

类型

(系统自动编号)

文本 文本 文本 文本 文本

长度 10 12 8 10 20

5 系统主要界面和常用面板、窗口设计说明

5.1 系统主界面

为求界面简单明了、操作简便快捷,系统主界面中重点显示药品信息列表,成功登陆系统后,登陆面板将出现“欢迎光临”界面,下方的快捷按钮面板也变为可用状态,当点击快捷按钮时,将激活相关的操作面板或窗口。 5.2 用户管理窗口

点击系统主界面上的“用户管理”将出现下拉菜单,根据选择将弹出相关窗口界面,可对注册用户信息进行管理;在“用户管理”窗口可点选左侧面板的操作项进行相关操作。

5.3 药品录入面板

点击

即可激活此面板。用户填写完毕并点击“确定”或“下一条”按钮

时,系统将首先检查数据的完整性和规范性,如果无误则调用数据库进行相关操作并反馈用户。若药品编号为数字,当用户需要批量录入新药品时,可以点击“下一条”按钮提交数据,系统会按由小到大的顺序自动生成新的药品编号。点击“重置”按钮可以清空文本框的内容。

5.4 药品信息查询面板

点击

即可激活此面板。此查询引擎支持模糊查询和精确查询,用户可以

根据查询的条件点选多项选择框,并输入过滤条件,点击“确定”按钮即可进行搜索,如搜索到相关信息,则在列表中显示。点击“重置”按钮可以取消多选框选项并清空文本框的内容。

5.4 药品信息修改面板

在药品信息表中选中要修改的药品记录,点击

即可激活此面板。药品编号

及库存量属于系统内部数据,因此无法在此面板中进行修改。修改文本框中的内容后,点击“确定修改”按钮,系统将检查数据的完整性和规范性,如果无误则调用数据库进行相关操作并反馈用户。点击“取消操作”按钮将返回系统主界面。

5.5 库存总览面板

点击

即可激活此面板,列表中显示药品编号,库存量,上限和下限。根

据查询的条件点选单项选择按钮,并输入过滤条件,点击“查询”按钮即可进行搜索,相关结果将显示在左侧列表中。在左侧列表中选择要操作的库存记录,填写上限或下限数量后,点击“设置”按钮,系统将检查数据的规范性,如果无误则调用数据库进行相关操作并反馈用户。如文本框中未填写上限(下限)数量,则默认为对该药品不设置库存上限(下限),原有的上限(下限)内容将被清空。 5.6 药品出入库操作窗口:

根据用户在药品信息列表、药品查询结果列表或库存表中选择的记录,点击

即可激活此窗口。点击窗口左侧面板中的单选按钮,可以切换

入库操作和出库操作。在列表中选定要操作的药品记录(文本框中将提示记录编号),填写操作数量后点击“确定”按钮,系统将检查数据的规范性,如无误则调用数据库进行相关操作并反馈用户。点击“重置”按钮可清空操作数量。点击“返回”按钮将返回系统主界面。

5.7 用户列表

在系统管理窗口点击“用户列表”按钮,即可查看系统当前所有的注册用户列表。

5.8 操作日志

在系统管理界面点击“操作日志”按钮,即可查看药品出入库操作记录。在下方文本框中输入药品编号,点击任意一个查询按钮,系统将搜索相关药品的相应操作记录。点击“显示日志”按钮可查看所有操作记录。

5.9 数据维护

在系统管理界面点击“数据维护”按钮,即可激活系统数据维护面板。在上方文本框中输入超级用户密码,根据需要点选多项选择框并点击“确定”按钮,系统将首先检查用户的操作权限和操作合法性,然后进行相关操作,或提示拒绝操作。如连续三次没有提供正确的超级用户密码, “数据维护”功能会暂时被系统停用。

6 系统各主要模块功能部分编码设计

6.1数据库连接

在本系统中,只使用了一组ADO控件连接数据源。为保证程序的可移植性,要求能够动态连接数据库。以下是动态连接数据库的连接字符串的代码实现:

AnsiString strDBName,strPath; strDBName =

strPath += strDBName; strPath +=

Query1->Active = false;

Query1->ConnectionString = strPath;

Query1->Active = true;

同样地,Conn1也需要通过ExtractFilePath()函数获取数据库当前路径来设置它的ConnectionString。

6.2 药品录入

为了实现代码的重复使用,我将这个模块的代码写在一个自定义函数yaopinLuru()中。以下是代码的实现:

if(iflag != 1) //如果药品信息无误则在数据库中插入新记录 { strInsert =

} …… //此段代码为设置相应的SQL语句 strSql=

6.3 药品查询

药品查询引擎提供了多项条件查询和单项条件查询,为此,在连接数据库搜索相关记录之前,必须判断用户的查询过滤条件,以确定SQL语句的传递。以下是代码的实现: if(isign == 2 && aa != 1)//用户选择多项查询

{

if(flag1 == 1 && flag2 == 1) //查询条件为ID和名称

} { } if(flag1 == 1 && flag3 == 1) //查询条件为ID和分类 { } if(flag2 == 1 && flag3 == 1) //查询条件为名称和分类 { } if(flag1 == 1 && flag2 == 1 && flag3 == 1) //查询条件为ID、名称和分类 { } AnsiString str; str =

else //用户选择单项查询

{

if(flag1 == 1 && aa != 1) { } if(flag2 == 1 && aa != 1) { strSql =

} } …… //此段代码为设置相应的SQL语句 if(flag3 == 1 && aa != 1) { } …… //此段代码为设置相应的SQL语句

6.4 药品修改

本模块经过判断数据的规范性后,使用update的方法来更新数据库内容,以下是代码的实现:

AnsiString strSql; strSql =

6.5 出入库操作

系统通过判断单项选择按钮的选中状态来确定当前操作为入库操作或出库操作,以下是代码的实现:

if(SnRadioButton2->Checked == true) //入库操作

{

…… if(iflag != 1)

} { } kucun = kucun + num; strSql =

if(SnRadioButton1->Checked == true) //出库操作

{

}

…… if(iflag != 1) { } kucun = kucun - num; strSql =

6.6 数据维护

在数据维护模块中,系统根据用户是否提供了正确的超级管理员密码来判断其是否具有操作的权限。以下是清除系统注册用户的代码实现:

BaseForm->Query1->First(); for(int i = 0;i Query1->RecordCount;i++) { } strSql =

7 系统测试

软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键。其目的是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。但是,任何项目的开发都要受到期限、费用、人力和机时等条件的限制,穷举测试是不可行的。为了节省时间和资源,提高测试效率,就必须精心设计测试用例,使得采用这些测试数据能够达到最佳的测试效果。

对于本软件的测试,我选择的是黑盒测试法中的等价类划分测试。在本系统中,所输入的数据必须遵循一定的规范性。如:用户名和密码的长度为6到12个字符,在测试时就输入一个小于6或大于12个字符的数据就可以达到目的。金额或数量方面只能输入数字,输入非数字字符(小数点除外)将会提示出错。

8 总结

在社会经济高速发展、信息一体化的今天,实现电子化的企业信息管理可以代替手工操作,确保数据的规范性、完整性和安全性。

本系统开发的目的就是希望能够被广泛应用在各个中小型药房、药店、门诊或诊所的独立药库,使其管理者能够脱离手工操作,在一个界面友好、操作简单的平台上动态地管理各种标准化的相关信息。

在经历了一系列系统开发的步骤后,我所选定的课题——《中小型药房管理系统》终于完成了,并且基本上实现了在需求分析阶段确定的各项功能,以及详细设计阶段确定的软件模型。其中,我最深刻的体会有两点:一、技术方面如编码设计,可以有很多实现的方法,在系统开发中应该力求编码的简洁和可读性的统一,为此,必须有针对性地练习,以提高自己编写代码的能力;二、无论技术如何纯熟,没有扎实的理论知识作为基础,想要开发出合理、合格的系统也是十分困难的。

致 谢

在毕业设计过程中,非常感谢黄富革老师和罗运贞老师在理论和实践方面的指导,同时还要感谢热心与我讨论技术实现方法,给我提供帮助的同学。在这里,对所有这些人都表示衷心的感激,谢谢!

参考文献

[1] 刘光.《C++Builder程序设计导学》.清华大学出版社.

.[2] 汪作文.《软件工程》重庆大学出版社.

[3] 微软公司.《SQL server 2000标准教程》中国劳动社会保障出版社. .

药房管理系统

【摘要】信息管理系统是一门新兴的,集管理科学、信息科学、系统科学及计算机

科学为一体的综合性学科,研究的是信息管理活动的全过程,具备数据处理、计划、控制、预测和辅助决策功能。为了使独立的中小型药房或门诊药库的管理者能够更好地进行管理,选择一款合适的信息管理系统软件是极为必要的。本文论述了药房管理系统的设计思想,主要实现功能及数据库的结构,并给出部分模块的实现代码。最后总结我在毕业设计过程中的体会。

【关键词】药房管理,信息管理,数据库,代码实现。

1 绪论

1.1 研究课题的背景

信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。而信息管理系统正是一门新兴的、集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是信息管理活动的全过程,它具备数据处理、计划、控制、预测和辅助决策功能,具体作用如下5点内容:

(1)用统一标准处理和提供信息,排除使用前后矛盾的不完整的数据。 (2)完整、及时提供在管理及决策中需要的数据。 (3)利用指定的数据关系分析数据,客观预测未来。

(4)向各级管理机构提供不同详细程度的报告,缩短分析和解释的时间。 (5)用最低的费用最短的时间提供尽可能精确、可靠的信息,以便使决策者选择最佳的实施方案,以提高企业的经济效益。

在社会经济高速发展的今天,大部分大型企事业单位包括医院,基本上都采用了相关的信息管理系统对其各项事务进行科学化、标准化的管理,但是在我进行选题和调研时,我发现目前在医药系统的同类信息管理系统中,并没有一款较为合适地、专门针对中小型药房或门诊药库管理的软件。为了使独立的中小型药房或门诊药库的管理者能够更方便地、动态地管理标准化信息,我选定此次研究的课题为:《中小型药房管理系统》。并在和指导老师多次交流后,确定了实现方案的要点和工作计划。本系统的主要功能有:

用户管理,药品管理,库存管理,系统管理四大功能。 1.2 研究思路和工作计划

正如研究任何其它软件项目一样,我做的毕业设计也经历了从选题,调研,熟悉开发环境,实验关键技术,查找类似的相关系统的资料;系统概要设计,数据结构设计,功能模块开发,功能模块测试,系统调试和系统试运行和修改。

在各阶段的时间安排上,选题和调研用了两天时间;查找类似的相关系统的资料用了两天时间;系统需求分析并完成相关文档用了四天时间;数据结构设计用了一天时间;系统概要设计至详细设计并完成相关用了五天时间;软件结构设计和窗体美化用了三天时间;熟悉开发环境,实验关键技术用了两天时间;功能模块开发和功能模块测试用了两周时间;系统调试和系统试运行和修改用了一周时间;最后,完成用户使用手册用了一天时间。完成上述全部工作大约用了一个半月时间。

2 系统功能需求描述

为方便药房管理人员方便有效地对药品信息和库存等进行相关操作,需开发一个药房管理系统,包括录入和修改药品信息、药品查询、设置药品库存上下限、删除药品信息并删除相关库存信息、出入库操作、查看系统数据、查看操作日志、数据维护等内容。要求系统能有效、快速、稳定、可靠和无误的完成上述操作。并要求系统界面要简单明了,易于操作。

药房管理系统对于中小型药房、药店、门诊药库管理者实现药品信息、库存操作等动态管理有着极其重要的作用,但归结起来,其设计内容并不是非常复杂。总的来说,其内部功能主要为实现C++设计语言与数据库的结合,以及部分函数的调用;外部功能主要有实现注册用户管理,药品信息管理,库存管理,系统管理四大功能。

经过了反复地论证,最终确定了药房管理系统的菜单功能,软件逻辑模型,及各项外部功能模块。

2.1 菜单功能

2.2 软件逻辑模型

2.3 各外部功能模块描述 2.3.1 用户登陆

用户登陆模块主要功能为验证用户身份,确保系统数据的安全,因此必须实现:(1)正确进行用户身份验证;(2)具有一定的系统保护功能,拒绝非法用户登陆。 2.3.2 用户管理

用户管理模块又分为:用户注册,修改密码,取回密码,删除用户四个子模块。要在正常登陆系统的情况下实现:(1)注册新的用户;(2)验证用户身份,为合法用户提供修改密码、取回密码、删除用户的功能;(3)拒绝非法用户的操作。

2.3.3 药品管理

药品管理模块又分为:药品总览,信息录入,药品查询,其他操作四个子模块。要在正常登陆系统的情况下实现:(1)允许用户随时查看全部药品信息记录;(2)录入新的药品信息,并生成相关库存记录和操作信息记录,确保数据规范性;(3)准确、快速地完成药品信息查询,将结果及时正确地反馈给用户;(4)准确完成修改或删除药品信息记录等其他操作。 2.3.4 库存管理

库存管理模块又分为:库存总览,库存查询,入库出库,上限下限四个子模块。由于药品库存量归类于系统内部数据,不允许用户手工随意更改,故本模块与要在正常登陆系统的情况下实现:(1)允许用户随时查看所有库存信息记录;(2)准确、快速地完成库存信息查询,将结果及时正确地反馈给用户;(3)准确、快速地完成药品出入库操作,将结果及时正确地反馈给用户,并生成相关的操作信息记录,确保数据规范性;(4)准确完成库存上限和下限的设置,确保数据规范性。 2.3.5 系统管理

系统管理模块又分为:用户列表,操作日志,数据维护三个子模块。由于这个模块涉及系统内部数据的操作,因此需要具有一定的系统保护功能,必须在正常登陆的情况下实现:(1)允许用户查看系统注册用户,但不允许进行修改操作;(2)允许用户查看药品出入库操作日志,并提供准确快速的查询引擎,将结果及时正确地反馈给用户,但不允许进行修改操作;(3)由超级管理员提供超级管理员密码,批量地对系统数据进行清除等维护工作;(4)对系统提供保护,在非法操作次数达到极限后,暂停使用数据维护功能。

3 其他主要需求描述

3.1 性能需求 3.1.1 精度需求

在数据库中提取数据时,要求数据记录定位准确;添加数据时,要求输入准确。 3.1.2时间特性需求

更新处理时间:随着药房管理系统的不断完善,本软件的响应时间更快。 3.1.3 灵活性

当需求发生某些变化时,药房管理系统的操作方式、数据结构、运行环境基本不变,

若变化只是将对应的数据库文件内的记录改变。 3.1.4 数据管理能力需求

药房管理系统约需要管理4个数据表,药房管理系统约用6.11M空间。 3.1.5 故障处理需求 本软件无故障。 3.2 属性 3.2.1 可用性

本药房管理系统使用C++语言,在BCB 6.0平台下开发,逻辑清晰,无故障。 3.2.2 安全性

本药房管理系统所需的数据、信息均放在数据库中,不容易被破坏,万一受到破坏也不会影响源程序。 3.2.3 可维护性

本药房管理系统采用C++语言编写,所需的数据均放在数据库中,易于恢复。 3.2.4 可转移、可转换性

可转移的环境是windows系统的各个版本,不需要修改任何部件和部位,转换的方

法是直接拷贝或安装程序。 3.3 其它需求 3.3.1 数据结构

用户在使用方面的要求:a.界面友好;b.操作方便;c.对硬件的要求低。 开发者要求:a.可扩充性;b.可维护性;c.易于更新。 3.3.2 数据库

实现数据共享、交互使用,完成软件的高度独立性。 3.3.3 操作

a.初始化操作简单快捷;b.数据处理的支持功能比较强。 3.3.4 场合的适用性

本软件通过C++语言编写,完成各模块功能;采用模块的设计思想,并将主模块划分为几个独立的功能模块,但它们之间又相互联系,因此各子模块也可在不同的环境下单独运行。

4 数据库设计说明

由于本系统软件结构小,所需处理的数据也比较少,因此采用Access数据库建表,数据库名为:yfgl.mdb,由下述四张数据表组成:

用户信息表:userinfo.db 药品信息表:yaopininfo.db 库存信息表:kucuninfo.db 操作日志表:caozuoinfo.db

4.1 用户信息表 userinfo.db

字段 1 2 3 4

字段名 编号 username password saveword

类型 (系统自动编号)

文本 文本 文本

长度 12 12 12

4.2 药品信息表 yaopininfo.db

字段 1 2 3 4 5 6 7 8 9 10 11 12 13

字段名 ID 名称 规格 整量单位 散量单位 整散比 入库单价 出库单价 批发价 分类 有效期 拼音码 库存

类型 文本 文本 文本 文本 文本 文本 文本 文本 文本 文本 文本 文本 文本

长度 10 50 10 10 10 10 10 10 10 10 8 5 10

4.3 库存信息表 kucuninfo.db

字段 1 2 3 4

字段名 ID 库存 上限 下限

类型 文本 文本 文本 文本

长度 10 10 10 10

4.4 操作日志表 caozuoinfo.db

字段 1 2 3 4 5 6

字段名 编号 ID username type shuliang date

类型

(系统自动编号)

文本 文本 文本 文本 文本

长度 10 12 8 10 20

5 系统主要界面和常用面板、窗口设计说明

5.1 系统主界面

为求界面简单明了、操作简便快捷,系统主界面中重点显示药品信息列表,成功登陆系统后,登陆面板将出现“欢迎光临”界面,下方的快捷按钮面板也变为可用状态,当点击快捷按钮时,将激活相关的操作面板或窗口。 5.2 用户管理窗口

点击系统主界面上的“用户管理”将出现下拉菜单,根据选择将弹出相关窗口界面,可对注册用户信息进行管理;在“用户管理”窗口可点选左侧面板的操作项进行相关操作。

5.3 药品录入面板

点击

即可激活此面板。用户填写完毕并点击“确定”或“下一条”按钮

时,系统将首先检查数据的完整性和规范性,如果无误则调用数据库进行相关操作并反馈用户。若药品编号为数字,当用户需要批量录入新药品时,可以点击“下一条”按钮提交数据,系统会按由小到大的顺序自动生成新的药品编号。点击“重置”按钮可以清空文本框的内容。

5.4 药品信息查询面板

点击

即可激活此面板。此查询引擎支持模糊查询和精确查询,用户可以

根据查询的条件点选多项选择框,并输入过滤条件,点击“确定”按钮即可进行搜索,如搜索到相关信息,则在列表中显示。点击“重置”按钮可以取消多选框选项并清空文本框的内容。

5.4 药品信息修改面板

在药品信息表中选中要修改的药品记录,点击

即可激活此面板。药品编号

及库存量属于系统内部数据,因此无法在此面板中进行修改。修改文本框中的内容后,点击“确定修改”按钮,系统将检查数据的完整性和规范性,如果无误则调用数据库进行相关操作并反馈用户。点击“取消操作”按钮将返回系统主界面。

5.5 库存总览面板

点击

即可激活此面板,列表中显示药品编号,库存量,上限和下限。根

据查询的条件点选单项选择按钮,并输入过滤条件,点击“查询”按钮即可进行搜索,相关结果将显示在左侧列表中。在左侧列表中选择要操作的库存记录,填写上限或下限数量后,点击“设置”按钮,系统将检查数据的规范性,如果无误则调用数据库进行相关操作并反馈用户。如文本框中未填写上限(下限)数量,则默认为对该药品不设置库存上限(下限),原有的上限(下限)内容将被清空。 5.6 药品出入库操作窗口:

根据用户在药品信息列表、药品查询结果列表或库存表中选择的记录,点击

即可激活此窗口。点击窗口左侧面板中的单选按钮,可以切换

入库操作和出库操作。在列表中选定要操作的药品记录(文本框中将提示记录编号),填写操作数量后点击“确定”按钮,系统将检查数据的规范性,如无误则调用数据库进行相关操作并反馈用户。点击“重置”按钮可清空操作数量。点击“返回”按钮将返回系统主界面。

5.7 用户列表

在系统管理窗口点击“用户列表”按钮,即可查看系统当前所有的注册用户列表。

5.8 操作日志

在系统管理界面点击“操作日志”按钮,即可查看药品出入库操作记录。在下方文本框中输入药品编号,点击任意一个查询按钮,系统将搜索相关药品的相应操作记录。点击“显示日志”按钮可查看所有操作记录。

5.9 数据维护

在系统管理界面点击“数据维护”按钮,即可激活系统数据维护面板。在上方文本框中输入超级用户密码,根据需要点选多项选择框并点击“确定”按钮,系统将首先检查用户的操作权限和操作合法性,然后进行相关操作,或提示拒绝操作。如连续三次没有提供正确的超级用户密码, “数据维护”功能会暂时被系统停用。

6 系统各主要模块功能部分编码设计

6.1数据库连接

在本系统中,只使用了一组ADO控件连接数据源。为保证程序的可移植性,要求能够动态连接数据库。以下是动态连接数据库的连接字符串的代码实现:

AnsiString strDBName,strPath; strDBName =

strPath += strDBName; strPath +=

Query1->Active = false;

Query1->ConnectionString = strPath;

Query1->Active = true;

同样地,Conn1也需要通过ExtractFilePath()函数获取数据库当前路径来设置它的ConnectionString。

6.2 药品录入

为了实现代码的重复使用,我将这个模块的代码写在一个自定义函数yaopinLuru()中。以下是代码的实现:

if(iflag != 1) //如果药品信息无误则在数据库中插入新记录 { strInsert =

} …… //此段代码为设置相应的SQL语句 strSql=

6.3 药品查询

药品查询引擎提供了多项条件查询和单项条件查询,为此,在连接数据库搜索相关记录之前,必须判断用户的查询过滤条件,以确定SQL语句的传递。以下是代码的实现: if(isign == 2 && aa != 1)//用户选择多项查询

{

if(flag1 == 1 && flag2 == 1) //查询条件为ID和名称

} { } if(flag1 == 1 && flag3 == 1) //查询条件为ID和分类 { } if(flag2 == 1 && flag3 == 1) //查询条件为名称和分类 { } if(flag1 == 1 && flag2 == 1 && flag3 == 1) //查询条件为ID、名称和分类 { } AnsiString str; str =

else //用户选择单项查询

{

if(flag1 == 1 && aa != 1) { } if(flag2 == 1 && aa != 1) { strSql =

} } …… //此段代码为设置相应的SQL语句 if(flag3 == 1 && aa != 1) { } …… //此段代码为设置相应的SQL语句

6.4 药品修改

本模块经过判断数据的规范性后,使用update的方法来更新数据库内容,以下是代码的实现:

AnsiString strSql; strSql =

6.5 出入库操作

系统通过判断单项选择按钮的选中状态来确定当前操作为入库操作或出库操作,以下是代码的实现:

if(SnRadioButton2->Checked == true) //入库操作

{

…… if(iflag != 1)

} { } kucun = kucun + num; strSql =

if(SnRadioButton1->Checked == true) //出库操作

{

}

…… if(iflag != 1) { } kucun = kucun - num; strSql =

6.6 数据维护

在数据维护模块中,系统根据用户是否提供了正确的超级管理员密码来判断其是否具有操作的权限。以下是清除系统注册用户的代码实现:

BaseForm->Query1->First(); for(int i = 0;i Query1->RecordCount;i++) { } strSql =

7 系统测试

软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键。其目的是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。但是,任何项目的开发都要受到期限、费用、人力和机时等条件的限制,穷举测试是不可行的。为了节省时间和资源,提高测试效率,就必须精心设计测试用例,使得采用这些测试数据能够达到最佳的测试效果。

对于本软件的测试,我选择的是黑盒测试法中的等价类划分测试。在本系统中,所输入的数据必须遵循一定的规范性。如:用户名和密码的长度为6到12个字符,在测试时就输入一个小于6或大于12个字符的数据就可以达到目的。金额或数量方面只能输入数字,输入非数字字符(小数点除外)将会提示出错。

8 总结

在社会经济高速发展、信息一体化的今天,实现电子化的企业信息管理可以代替手工操作,确保数据的规范性、完整性和安全性。

本系统开发的目的就是希望能够被广泛应用在各个中小型药房、药店、门诊或诊所的独立药库,使其管理者能够脱离手工操作,在一个界面友好、操作简单的平台上动态地管理各种标准化的相关信息。

在经历了一系列系统开发的步骤后,我所选定的课题——《中小型药房管理系统》终于完成了,并且基本上实现了在需求分析阶段确定的各项功能,以及详细设计阶段确定的软件模型。其中,我最深刻的体会有两点:一、技术方面如编码设计,可以有很多实现的方法,在系统开发中应该力求编码的简洁和可读性的统一,为此,必须有针对性地练习,以提高自己编写代码的能力;二、无论技术如何纯熟,没有扎实的理论知识作为基础,想要开发出合理、合格的系统也是十分困难的。

致 谢

在毕业设计过程中,非常感谢黄富革老师和罗运贞老师在理论和实践方面的指导,同时还要感谢热心与我讨论技术实现方法,给我提供帮助的同学。在这里,对所有这些人都表示衷心的感激,谢谢!

参考文献

[1] 刘光.《C++Builder程序设计导学》.清华大学出版社.

.[2] 汪作文.《软件工程》重庆大学出版社.

[3] 微软公司.《SQL server 2000标准教程》中国劳动社会保障出版社. .


相关内容

  • 应用文学习计划范文3篇
  • 应用文学习计划范文3篇 培养学生制定切实可行的学习计划并按计划完成学习任务的能力,对帮助学生合理利用时间.提高学习效益大有益处.本文是小编为大家整理的应用文的学习计划范文,仅供参考. 应用文学习计划范文篇一: 自xx年上半学期学习应用文写作半年来,在老师的指导和帮助下,已初步对常用应用文有一定的了解 ...

  • 写作文书范文集
  • 关闭 口袋小管家:想永久保存这文章吗,+创建一个口袋 随时把喜欢的文章保存下来. 写作文书范文集 分类: 未分类 | 转自 王黄是一家 | 被918人转藏 | 2009-06-04 11:50:38 口袋提示:如何一键收藏网页的正文? 行政公文_中华范文http://www.zuoweno.cn/: ...

  • 论文摘要范文论文摘要的写作方法和范文
  • 论文摘要范文论文摘要的写作方法和范文 论文摘要在论文中占据重要的作用,是开启全篇论述,概述论文内容的关键,因此,代写毕业论文或论文发表应尤其重视论文摘要的规范书写格式. 1.摘要中应排除本学科领域已成为常识的内容;切忌把应在引言中出现的内容写入摘要,一般也不要对论文内容做诠释和评论(尤其是自我评价) ...

  • 如何学习写英语作文
  • 如何学习写英语作文 对于大多数同学来说,学习英语基本上是"考试驱动"的,所以对于作文,向来就不是很重视.原因很简单,从中学学习英语开始,作文虽然在考试中也占据一席之地,但是实际的重要程度和学生在作文考试中的区分度都不是很高.而且,国内的英语考试对学生写作的要求已经低到了令人发指的 ...

  • 网络市场营销论文
  • 网络市场营销论文 [写作论文前必看--品学论文网老师总结的论文写作经验] 1.论文写作万不可抄袭.大家着手准备论文时,首先就是寻找参考资料和范文,借助搜索引擎的强大,我们能够在网上搜索到非常多的参考文献和资料,但是来品学论文网的同学们通常遇到的问题就是对参考文献和范文不能合理利用,想偷工减料,直接借 ...

  • 议论文的结构与议论文写作技巧
  • 议论文的结构与议论 文写作技巧 根据笔者近两年参加高考作文阅卷的体会,发现这样两个有意思的现象:一是绝大多数考生写的是议论文,二是绝大多数的议论文不像议论文.主要表现是:1.议论文结构不合体.如开头不提出论点,中间只写几个论据,而不分析,更没有分 论点:甚至在列举论据时,还出现了大量的语言描写和心理 ...

  • 毕业论文答辩自述范文
  • 各位评委老师,同学们: 上午好!我是苏州科技学院中文系03汉师(1)班的学生.我毕业论文的题目是<试论凌叔华笔下的女性意识>,我的指导老师是何清老师.我当时之所以选择研究凌叔华的女性意识是因为:在五四时期的作家中,凌叔华是给了我别样感受的一个女作家.她的小说中很少有惊心动魄的事物,也看不 ...

  • 杂志社见刊编辑推荐环境工程职称论文范文
  • 杂志社见刊编辑推荐环境工程职称论文范文 [摘 要 ]基于对我校环境工程专业本科毕业论文的统计结果和原因分析,笔者提出应从指导教师选择.青年教师培训.学生管理.论文写作和材料收集等方面发挥指导教师的指导和对学生的监督管理作用,提高毕业论文整体质量. 毕业设计是环境工程专业最重要的一个综合性实践教学环节 ...

  • 毕业实习报告写作指导
  • 高职学生在学业的最后一个学期需参加毕业实习并撰写毕业实习报告(以下简称报告)。报告是对该阶段进行总结与说明的书面材料,是反映学生毕业实习完成情况的一个主要内容,也是对毕业生的又一次培养和训练。1.毕业实习报告的基本要求通过毕业实习报告可以大致反映学生能否运用3年所学得的基础知识来分析和解决本专业领域 ...

  • 雅思写作范文-高中毕业后的选择_雅思写作
  • 智课网IELTS 备考资料 雅思写作范文:高中毕业后的选择_雅思写作 重点单词 查看全部解释 gorge [gɔ:dʒ] 想一想再看 n. 峡谷,狭窄入口,饱食,咽喉,大量的食物 联想记忆 X 单词gorge 联想记忆: gorge=throat (n 咽喉)-峡谷 privilege ['priv ...