基于MFC的怡康大药房药品管理系统开发毕业论文.docx_第1页
基于MFC的怡康大药房药品管理系统开发毕业论文.docx_第2页
基于MFC的怡康大药房药品管理系统开发毕业论文.docx_第3页
基于MFC的怡康大药房药品管理系统开发毕业论文.docx_第4页
基于MFC的怡康大药房药品管理系统开发毕业论文.docx_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MFC的怡康大药房药品管理系统开发毕业论文目 录摘要IAbstractII1 绪论11.1 前言11.2 背景及意义11.3药店药品管理系统的介绍22 开发方案及相关技术简介32.1 开发工具Visual C+6.032.2 数据库平台SQL Server32.3 MFC介绍42.4 C+面向对象技术简介53 系统需求分析83.1 功能要求93.2 界面要求104 系统总体设计114.1 系统设计思想114.2 框架总体设计114.3 界面设计134.3.1 登陆界面设计134.3.2 主界面设计134.3.2 基础信息模块界面设计134.3.3 销售模块界面设计134.3.4 入库模块界面设计134.3.5 调货模块界面设计144.3.6 库存模块界面设计144.3.7 结账模块界面设计144.3.8系统管理模块界面设计144.4 数据库设计145 系统功能实现175.1 登录界面的功能实现175.1.1 实现目标175.1.2 设计步骤175.1.3 相关代码175.2 主界面的功能实现195.2.1 菜单栏实现195.2.2 工具栏实现195.2.3 为菜单和工具栏添加消息处理函数205.3 各模块的功能实现215.3.1 基础信息模块功能实现215.3.2 销售模块功能实现235.3.3 入库模块功能实现255.3.4 账务模块功能实现26结 论29致 谢30参考文献31毕业设计(论文)知识产权声明32毕业设计(论文)独创性声明331 绪论1.1 前言随着电子信息技术的飞速发展,电子商务越来越趋于成熟并渗透到商业团体的各个领域。在药品零售业,医药产品的销售竞争日益激烈,整个格局出现了很大的变化。药店的功能和经验重点发生了根本性转变,且越来越多连锁药店、大型医药超市的出现,使得规模相对偏小的药店很容易在此环境下丧失竞争力。在这样的情况之下,单一的药店在信息处理上,还继续沿用传统的管理方法,便显得很单薄无力,不利于管理服务,不利于整个药店的发展。对于一个想要发展,想要在激烈的竞争环境下立足并谋求一席市场的药店来说,开始使用一个有效的信息处理机制、销售管理系统无疑是时下最佳的选择,也是最明智的选择。这样就能使管理更高效,销售更突出。对于资源的整合也有了更高的把握度。企业迫切需要建立一种新的数据分析环境,以支持经营决策。将计算机管理信息系统应用到企业的运营中,可以简化企业在管理上的复杂性,减少企业管理的庞大开销。销售管理系统已为许多企业所采用,已得到了成功的肯定。因此,从企业和用户的角度出发,本着为企业为用户着想的原则来开发本药品管理系统。1.2 背景第1页及意义发达国家医院药品管理系统的开发实现已有三十多年的历史,至今有了长足的进步,有许多举世公认的成功的系统在医院药品有效地运转着。到1985年,美国全国医院药品数据处理工作调查表明:100张床位以上的医院药品80%实现了计算机财务收费管理,70%的医院药品可支持病人挂号登记和行政事务管理,25%的医院药品有了较完整的MIS。 上世纪五十年代,计算机就开始应用于管理中。当时只是用于处理简单的工资单。由于经济的不断发展,计算机在管理中的应用也在不断增加。据计算机应用方面发展较快的国家统计,计算机用于经济管理的约占80%;用于科技运算的占8%;用于生产过程控制的占12%。因此,经济管理是计算机应用的主要领域。销售管理是经济管理的重要组成部分,在发达国家计算机在销售管理中的应用已经达到很高的水平。上世纪七十年代,计算机在管理中的应用才在我国推广开来。早期,只有少数大型医院才会引进管理软件进行药品管理。由于当时软件,以及设备昂贵的价格使得大多数中小医药企业对于这种新型的软件销售管理模式望而却步。近年来,随着计算机技术的发展特别是应用软件的不断进步我国的企业在这方面也有了很强的意识和长足的进步。现在已经出现了大量的物美价廉的软件产品。更值得高兴的是大多数的软件开发企业本着为客户服务的原则,根据企业自身的特点专门为企业量身定做适合本企业的软件产品。大大提高了企业的工作效率和经济效益。1.3药店药品管理系统的介绍药店药品管理系统主要涉及八个板块分别是:基础信息,销售模块,入库模块,调货模块,库存模块,结账模块,财务模块,系统管理模块。权限设置分为四个等级,超级用户,管理员,标准用户和一般用户。主要功能为增添,查询,删除,修改各类药品信息、员工信息,供应商信息等。在查询的时候可以实现模糊查询,查询接过均已表单方式呈现。在进行增添的时候可以对药品编号,供应商编号等信息进行自动生成。修改信息时实现除编号等特定信息不可修改之外其他信息可自由修改。本系统还可实现计算相关账务问题,并标注结算方式,如分期,现金,支票等。对每次相关账务生成表格并进行打印操作。通过这八个个板块来实现对药店药品管理的系统化、规范化和自动化,提高药店药品管理水平。本课题的主要功能是药品管理,分为八部分:(1)基础信息模块(2)销售模块(3)入库模块 (4)调货模块 (5)库存模块 (6)结账模块 (7)财务模块 (8)系统管理模块2 开发方案及相关技术简介2 开发方案及相关技术简介2.1 开发工具Visual C+6.0Visual C+6.0由Microsoft开发, 它不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。Microsoft的主力软件产品。Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C+.NET(Visual C+7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。2.2 数据库平台SQL ServerSQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。Microsoft SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2012年3月份推出的SQL SERVER 2012。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。 SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX操作系统上的应用。5西安工业大学毕业设计(论文)SQL Server 2000 是Microsoft 公司推出的SQL Server数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。 2.3 MFC介绍MFC是微软基础类(Microsoft Foundation Classes),同VCL类似,是一种应用程序框架,随微软Visual C+开发工具发布。目前最新版本为10.0(截止2011年3月),并且发布了中文版。该类库提供一组通用的可重用的类库供开发人员使用,大部分类均从CObject 直接或间接派生,只有少部分类例外。MFC应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。MFC 提供了MFC AppWizard 自动生成框架。Windows 应用程序中,MFC 的主包含文件为Afxwin.h。此外MFC的部分类为MFC/ATL 通用,可以在Win32 应用程序中单独包含并使用这些类。MFC实际上是微软提供的,用于在C+环境下编写应用程序的一个框架和引擎。VC+是Windows下开发人员使用的专业C+ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包。MFC作为与VC+血肉相连的部分(注意C+和VC+的区别:C+是一种程序设计语言,是一种大家都承认的软件编制的通用规范;而VC+只是一个编译器,或者说是一种编译器+源程序编辑器的IDE(IDE的英文全称为“Integrated Development Environment”,即“集成开发环境”。),WSPlatForm,这跟Pascal和Delphi的关系一个道理。Pascal是Delphi的语言基础,Delphi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB的关系。Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言)。MFC同VC+集成的VCL一样是一个非外挂式的软件包类库,只不过MFC类是微软为VC+专配的。MFC是WinAPI与C+的结合。API,即微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行,比如VB、VC+、Java、Delhpi。编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在Windows的消息机制和绘图里,遵守Windows作为一个操作系统的内部实现,这其实也是一种必要。微软如果不提供API,这个世上对Windows编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾。上面说到MFC是微软对API函数的专用C+封装,这种结合一方面让用户使用微软的专业C+ SDK来进行Windows下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Windows下用C+ & MFC编制软件时的大量内节,如应用程序实现消息的处理、设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风),因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的。最后要明白MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建、销毁),而是一些在Windows(用MFC编写的程序绝大部分都在Windows中运行)中实现内部处理的类,如数据库的管理类等。学习中最应花费时间的是消息和设备环境,对C+和MFC。MFC是微软封装了的API。什么意思呢?Windows作为一个提供功能强大的应用程序接口编程的操作系统,的确方便了许多程序员,传统的win32开发(直接使用Windows的接口函数API)对于程序员来说非常的困难,因为,API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。MFC是面向对象程序设计与Application framework的完美结合,它将传统的API进行了分类封装,并且为你创建了程序的一般框架。2.4 C+面向对象技术简介C+语言简介C+由美国AT&T贝尔实验室的本贾尼斯特劳斯特卢普博士在20世纪80年代初期发明并实现(最初这种语言被称作“C with Classes”带类的C)。开始,C+是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、命名空间(name space)逐渐被加入标准。1998年国际标准组织(international standard organization, ISO)颁布了C+程序设计语言的国际标准ISO/IEC 1988-1998。C+是具有国际标准的编程语言,通常称作ANSI/ISOC+。面向对象技术(1) 类和对象的作用类是C+中十分重要的概念,它是实现面向对象程序设计的基础。类是所有面向对象的语言的共同特征,所有面向对象的语言都提供了这种类型。一个有一定规模的C+程序是由许多类所构成的。C+支持面向过程的程序设计,也支持基于对象的程序设计,又支持面向对象的程序设计。以后我们将介绍基于对象的程序设计。包括类和对象的概念、类的机制和声明、类对象的定义与使用等。这是面向对象的程序设计的基础。基于对象就是基于类。与面向过程的程序不同,基于对象的程序是以类和对象为基础的,程序的操作是围绕对象进行的。在此基础上利用了继承机制和多态性,就成为面向对象的程序设计(有时不细分基于对象程序设计和面向对象程序设计,而把二者合称为面向对象的程序设计)。基于对象程序设计所面对的是一个个对象。所有的数据分别属于不同的对象。在面向过程的结构化程序设计中,人们常使用这样的公式来表述程序:程序=算法+数据结构算法和数据结构两者是互相独立、分开设计的,面向过程的程序设计是以算法为主体的。在实践中人们逐渐认识到算法和数据结构是互相紧密联系不可分的,应当以一个算法对应一组数据结构,而不宜提倡一个算法对应多组数据结构,以及一组数据结构对应多个算法。基于对象和面向对象程序设计就是把一个算法和一组数据结构封装在一个对象中。因此,就形成了新的观念:对象=算法+数据结构程序 = (对象+对象+对象+) + 消息或:程序 = 对象s + 消息“对象s”表示多个对象。消息的作用就是对对象的控制。程序设计的关键是设计好每一个对象,及确定向这些对象发出的命令,使各对象完成相应操作。13(2) C+类的声明和对象的定义类和对象的关系每一个实体都是对象。有一些对象是具有相同的结构和特性的。每个对象都属于一个特定的类型。在C+中对象的类型称为类(class )。类代表了某一批对象的共性和特征。前面已说明:类是对象的抽象,而对象是类的具体实例(instance)。正如同结构体类型和结构体变量的关系一样,人们先声明一个结构体类型,然后用它去定义结构体变量。同一个结构体类型可以定义出多个不同的结构体变量。在C+中也是先声明一个类类型,然后用它去定义若干个同类型的对象。对象就是类类型的一个变量。可以说类是对象的模板,是用来定义对象的一种抽象类型。类是抽象的,不占用内存,而对象是具体的,占用存储空间。在一开始时弄清对象和类的关系是十分重要的。声明类类型类是用户自己指定的类型。如果程序中要用到类类型,必须自己根据需要进行声明,或者使用别人已设计好的类。C+标准本身并不提供现成的类的名称、结构和内容。在C+中声明一个类类型和声明一个结构体类型是相似的。如果在类的定义中既不指定private,也不指定public,则系统就默认为是私有的。归纳以上对类类型的声明,可得到其一般形式如下:class 类名private : 私有的数据和成员函数;public : 公用的数据和成员函数;private和public称为成员访问限定符(member access specifier)。除了private和public之外,还有一种成员访问限定符protected(受保护的),用protected声明的成员称为受保护的成员,它不能被类外访问(这点与私有成员类似),但可以被派生类的成员函数访问。在声明类类型时,声明为private的成员和声明为public的成员的次序任意,既可以先出现private部分,也可以先出现public部分。如果在类体中既不写关键字private,又不写public,就默认为private。在一个类体中,关键字private和public可以分别出现多次。每个部分的有效范围到出现另一个访问限定符或类体结束时(最后一个右花括号)为止。但是为了使程序清晰,应该养成这样的习惯: 使每一种成员访问限定符在类定义体中只出现一次。在以前的C+程序中,常先出现private部分,后出现public部分,如上面所示。现在的C+ 程序多数先写public部分,把private部分放在类体的后部。这样可以使用户将注意力集中在能被外界调用的成员上,使阅读者的思路更清晰一些。在C+程序中,经常可以看到类。为了用户方便,常用的C+编译系统往往向用户提供类库(但不属于C+语言的组成部分),内装常用的基本的类,供用户使用。不少用户也把自己或本单位经常用到的类放在一个专门的类库中,需要用时直接调用,这样就减少了程序设计的工作量。93 系统需求分析3 系统需求分析在今天,计算机技术蓬勃发展,日新月异,从工业生产到工作生活中的方方面面,都离不开计算机的强力支持。如果说计算机只是一副躯壳的话,那么软件则赋予了它生命的灵魂。现在随着技术的不断进步,我们创造出来的东西都越来越复杂,使人们的负担也越来越重。因此我们必须要继续创新,结合先进技术来减轻人们的压力,并且合理的利用资源,很好的提高生产力。近年来,药品零售业的格局,出现了很大的变化。医药改革为零售药房,特别是为连锁药房提供了广阔的发展空间。医药企业自身发展也提出了改革的要求。集团化、代理制等形式的出现打破了过去按地域行政区划设立的医药流通格局,重批发轻零售的传统观念正随着改革的深入而逐步发生着变化,特别是医药零售行业早已打破了过去那种国有医药零售一统天下的局面,各行各业各种经济成分将开办药房作为投资的首选目标,想方设法进入医药零售业,这也迫使许多医药企业纷纷适应市场变化的要求进行批零分设的改革。利用原有医药零售网点的基础建立连锁药房,这既成为医药企业改革发展的必然热点,又形成这些企业参与市场竞争新的经济增长点。在这样的大环境之下,药店基本现状大体如下:一、药店的功能和经验重点发生了根本性转变。过去,药店从自身经营需要出发,工作重点放在进货渠道上;现在,他们经营重心转向更好地满足消费需求,不断在购物环境和服务水平上进行调整,以适应来自消费者的压力。二、药店的布局不合理。各地药店纷纷开业,甚至出现了“药店多过米店”的局面,并且出现了扎堆经营的现象。三、药店的规模相对偏小,缺乏市场的竞争力。四、陷入平价竞争的泥潭,低层次的价格竞争,使很多药店到了举步维艰的地步。五、药店经营成本在提高,利润在下降。六、企业整体服务意识淡薄,从业人员缺乏专业素质。因为这样的现状,药店销售管理系统的研发也是迫在眉睫,目前市场上拥有的各种系统软件也因为药店这样的现状,而存在相同的状况。从以上药品零售业发展的现状中,我们可以看出药品销售管理系统的设计与实现,这个课题是针对医药产品销售竞争日益激烈的实际情况,为了加强管理、提高工作效率和改善服务质量而成立的。这个系统的开发有助于对药店药品销售进行有效的管理,提高药店销售管理效率。长期以来,单一的药店使用的管理方法仍然是沿用传统的人工管理,对于药品的库存,每日销售单,销售额等一系列工作都是由药店的负责人来管理,这固然有好处,但对于日益发展的行业,竞争日益激烈的行业来说,这样的管理就显出了其弊端。一是工作繁琐,工作量庞大,对账单,库存,人工记录,查询等等13西安工业大学毕业设计(论文)劳动付出都是巨大的开销。二是不够规范,所有的工作更多的是体现个体工作者的习惯,没有统一的标准。三是效率低下,不能及时反应现实状况。综合一下说,就是不利于管理,不利于服务,不利于工作,不利于整个药店的发展。对于一个想要发展,想要在激烈的竞争环境下立足并谋求一席市场的药店来说,开始使用一个软件,使用一个销售管理系统无疑是时下最佳的选择,也是最明智的选择而本药店药品管理系统索要实现的就是帮助中怡康大药房有效的管理日长相关的业务工作,从而减轻药店工作人员的工作压力,提高处理业务的效率,增强企业在同行中的竞争力。3.1 功能要求本系统主要功能为增添,查询,删除,修改各类药品信息、员工信息,供应商信息等。在查询的时候可以实现模糊查询,查询接过均已表单方式呈现。在进行增添的时候可以对药品编号,供应商编号等信息进行自动生成。修改信息时实现除编号等特定信息不可修改之外其他信息可自由修改。本系统还应该实现计算相关账务问题,并标注结算方式,如分期,现金,支票等。对每次相关账务生成表格并进行打印操作。设置用户权限,具体分为一般用户,标准用户,管理员和超级用户。其中一般用户只可以操作药品相关销售,入库等工作。标准用户可以操作相关账务问题的模块,面向经理以上应用人群。管理员用户可使用除去系统模块之外的其他模块,面向一般药店系统维护人员。超级用户可使用本系统任意模块,一般由药店所有者使用。通过以上功能来实现对药店药品管理的系统化,规范化,和自动化,提高药店药品管理水平。本课题的主要功能是药店药品管理,主题框架分为八部分:(1)基础信息模块:包括药品信息、员工信息、供应商信息和客户信息4部分。(2)销售模块:由销售登记、销售退货、销售查询、销售退货查询4部分。(3)入库模块:由入库登记、入库退货、入库查询、入库退货查询4组成。 (4)调货模块:包含调货登记和调货查询两部分。 (5)库存模块:由库存盘点、库存查询、仓库管理3部分组成。 (6)结账模块:主要包括销售结账、销售退货结账、入库结账、入库退货结账。 (7)财务模块:由日结、月结、供应商往来账、客户往来账4部分组成。 (8)系统管理模块:由修改用户密码、权限、修改用户3部分组成。总体框架图见图3.1。图3.1 系统总体框架图3.2 界面要求界面为管理员或一般用户提供一个可视化的操作界面,作为与数据库进行数据读取、删除或者更新等操作入口,并对数据的查询结果予以列表显示等等。在页面设计方面,主要有以下几个:(1) 系统登录界面(2) 系统操作主界面(3) 快捷应用栏(4) 各模块操作界面(5) 管理员操作界面4 系统总体设计4 系统总体设计4.1 系统设计思想基于MFC的药店药品管理系统是一个现代化的药品管理系统,可有效实现对药店药品管理的系统化、规范化和自动化,提高药品销售管理水平。整个系统开发基于采用C/S结构。在技术方面,前台操作页面开发采用了MFC编程技术。数据的存储方面也采用了SQL Server数据库,给数据管理提供强大的支持。系统的设计分为前台界面的设计和后台数据库的设计。4.2 框架总体设计本系统主要由八个模块构成,其中分为四种用户模式,对应的为超级用户,管理员,标准用户和一般用户。其中超级用户为最高权限,八大模块都可使用,主要区别在系统管理模块,超级用户可修改其他用户权限,可增添新用户等。管理员除系统模块不可使用外其他模块都可使用,标准用户除系统模块和基础信息模块不可使用其他都可使用。一般用户为前台操作员只可使用销售,入库,库存调货模块,不可使用其他四个模块。超级用户登录的权限图见图4.1。图 4.1 超级用户登录权限图14西安工业大学毕业设计(论文)管理员登陆的权限图见图4.2。图 4.2 管理员登陆权限图标准用户登录的权限图见图4.3。图 4.3 标准用户登录权限图一般用户登录的权限图见图4.4。图 4.4 一般用户登陆权限图4.3 界面设计4.3.1 登陆界面设计即从登陆界面输入账号和密码进入本系统。登陆界面应该简单明了,由账号,密码的输入框体和确定,退出两个按钮组成。4.3.2 主界面设计药店药品管理系统主窗口由菜单、工具栏、客户区域和状态栏四部分组成,工具栏为快捷操作按钮,包括最常用的几项日长操作。客户区域内的图片必须美观大方,状态栏可显示当前操作员和当前时间方便操作员及时得知是否登陆错误,以及明白当前时间。4.3.2 基础信息模块界面设计基础信息模块包括药品信息,员工信息,供应商信息,客户信息四个子模块,里面包括各类药品,人员,公司等的基本信息。比如药品信息包括药品编号,药品名称,药品简称,剂型,产地,规格单位等基础信息要素。可使用户直观的了解每种信息。在此界面,用户也可添加,修改,删除相应信息。4.3.3 销售模块界面设计销售模块有销售登记,销售退货,销售查询,销售退货查询四个功能,其中销售登记用来登记每次销售的药品情况生成销售登记票号,其中结算方式有分期,现金,挂账,支票等方式可供选择,信息栏可显示当前药品的信息,在输入数量之后可立刻计算出总价。可在实收栏里注明实收的金额数目。销售日期栏自动读取当前时间,也可选择某天进行登记。4.3.4 入库模块界面设计入库模块包括入库登记,入库查询,入库退货,入库退货查询四个功能,入库登记模块功能基本和销售登记功能类似,入库退货模块先可选择已登记的入库信息,对应的进行退货操作。4.3.5 调货模块界面设计调货模块包括调货登记和调货查询两个子模块,其中调货登记通过选择菜单栏选择相应时间和经手人,界面显示当前生成的调货票号,对应可输入药品编号等调货信息进行登记。调货查询界面在点击进入之后显示当前全部调货信息,通过查询调货票号等内容可进行查询4.3.6 库存模块界面设计库存模块包括库存盘点,库存查询,仓库管理三个子模块。库存盘点可显示当前选择经手人所经手的臧库内的相关药品信息。库存查询可由药品编号、药品名称、仓库名称等条件选择所要查询的相关仓库存储信息。仓库管理可新增新建仓库,修改或删除现有仓库。4.3.7 结账模块界面设计结账模块包括销售结账,销售退货结账,入库结账,入库退货结账四个子模块。本模块主要针对未结清的账务进行再次结账。首先应显示未结清前相关编号、金额、名称等信息。在下方进行本次结账的相关输入操作,包括实收金额、日期、收款方式等相关信息。4.3.8系统管理模块界面设计系统管理模块包括修改用户密码,修改用户权限,修改用户三个子模块。修改密码由两个名称分别为新密码和确认新密码的输入框体组成。修改用户权限,应显示四个用户类型,分别对应可选择的用户相关权限。修改用户界面应显示所有用户信息和对应用户类型。并可通过按钮来进行相关用户的增加,删除,修改等操作。4.4 数据库设计本系统使用SQL数据库,系统数据库名为ypgl,中共包含46个表,其中作为临时表的有20个,作为数据存储表的有26个。临时表:lsdhinfo0、lsdhinfo1、lsgys0、lsgys1、lskcquery0、lskcquery1、lskh0、lskh1、lsrkquery0、lsrkquery1、lsrkthinfo0、lsrkthinfo1、lsxsquery0、lsxsquery1、lsxsthinfo0、lsxsthinfo1、lsyg0、lsyg1、lsypinfo0、lsypinfo1。数据存储表:tabbf、tabck、tabdhdj、tabdhph、tabgys、tabjsfs、tabkc、tabkcpddj、tabkcpdph、tabkh、tabpurview、tabpurviewctrl、tabrkdj、tabrkjz、tabrkph、tabrkthdj、tabrkthjz、tabrkthph、tabxsdj、tabxsjz、tabxsph、tabxsthdj、tabxsthjz、tabxsthph、tabyginfo、tabypinfo。由于篇幅有限,只给出部分数据表。下面分别介绍以下各个表的结构。(1)tabdhdj表用于保存调货登记信息。tabdhdj表的结构如表4.1所示。表4.1 tabdhdj表的结构字段名称数据类型字段大小可否为空说明dh_ph文本20Not Null调货票号(主键)out_ck文本20Not Null调出的库(外健)in_ck文本20Not Null调入的库(外健)yp_id文本10Not Null药品编号(外健)sl长整型Null数量(2)tabpurview表用于保存权限信息。tabpurview表的结构如表4.2所示。表4.2 tabpurview表的结构字段名称数据类型字段大小可否为空说明admi_name文本20Not Null用户名(主键)admi_password文本255Null用户密码admi_purview长整型Not Null用户权限(外键)(3)tabrkdj表用于保存入库登记的相关信息。tabrkdj表的结构如表4.3所示。表4.3 tabrkdj表的结构字段名称数据类型字段大小可否为空说明rk_ph文本20Not Null入库票号(外键)yp_id文本10Not Null药品编号(外键)ck_name文本30Not Null仓库名称(外键)sl双精度型Null数量dj双精度型Null单价je双精度型Null金额(4)tabrkjz表用于保存入库结账的相关信息。tabrkjz表的结构如表4.4所示。表4.4 tabrkjz表的结构字段名称数据类型字段大小可否为空说明fk_ph文本20Not Null收款票号(主键)rk_ph文本20Not Null销售票号(外键)je双精度型Null收款金额fs文本10Null收款方式(外键)rq日期/时间Not Null结款日期czy文本20Not Null操作员(外键)jsr文本20Not Null经手人bz文本100Null备注(5)tabrkph表用于保存入库票号。tabrkph表的结构如表4.5所示。表4.5 tabrkph表的结构字段名称数据类型字段大小可否为空说明rk_ph文本20Not Null入库票号(主键)gys_id文本10Not Null供应商编号(外键)pzs双精度型Null品种数yf双精度型Null应付sf双精度型Null实付wf双精度型Null未付rq日期/时间Not Null日期jsfs文本10Not Null结算方式(外键)is_jq布尔型Not Null是否结清czy文本20Not Null操作员(外键)jsr文本20Not Null经手人195 系统功能实现5 系统功能实现本系统采用了VC 6.0作为开发工具,本系统采用MFC技术在前台创建用户界面,以C+为编程语言,用SQL Server作为数据库,结合药店药品管理的实际需求,开发出一套基于MFC的C/S结构的药店药品管理系统。在这个系统功能实现阶段,已经完成的课题要求的各个模块设计和系统全部功能与实现。具体内容展示如下:5.1 登录界面的功能实现5.1.1 实现目标程序启动后,首先进入系统登录程序验证用户密码。系统登录程序主要实现如下功能。输入密码的控件采用文本框。密码如果输入正确,取得用户权限并进入系统,否则,将提示错误,并返回密码输入框。记录错误次数,录入密码错误3次将自动退出系统。用户按下Enter键,控制焦点的移动。5.1.2 设计步骤(1)增加对话框资源,设计窗体资源符号为IDD_DIALOG_LOGIN。(2)为该窗口连接相关的类,在资源对话框上右键单击,选择“ClassWizard.”选项,会弹出“Add a class”对话框,提示IDD_DIALOG_LOGIN是一个新的资源,需要为这个资源创建一个类,或为它连接一个现有类。在此,选择新建一个派生于CDialog的类来连接该资源,该类命名为CDlgLogin。(3)向窗口中添加图片、编辑框、静态文本、按钮等资源,设置主要资源属性。5.1.3 相关代码系统登录程序要在显示主窗体之前显示,系统登录程序代码如下:BOOL CMedApp:InitInstance().21西安工业大学毕业设计(论文)LRunSql:InitConnectPtr(); /初始化COM环境,进行数据库连接CDlgLogin dlg; /创建登录窗口对象if(dlg.DoModal()=IDOK) /显示登录窗口CA1Dlg *pdlg=new CA1Dlg; /创建主窗体对象m_pMainWnd = pdlg;pdlg-DoModal(); /显示主窗体delete pdlg;pdlg=NULL;LRunSql:Close();/断开数据库连接return FALSE;进行焦点控制。定义控制焦点的函数,该函数定义了当用户单击Enter键时,焦点改变的顺序,当需要改变焦点时,调用此函数。bool CDlgLogOn:SetTheFocus()HWND hwnd=:GetFocus(); UINT id=:GetDlgCtrlID(hwnd);switch(id)case IDC_EDIT_NAME:this-m_editPassWord.SetFocus(); :PostMessage(m_editPassWord.GetSafeHwnd(),WM_KEYDOWN,VK_END,0);return true;case IDC_EDIT_PASSWORD: this-GetDlgItem(IDOK)-SetFocus();return true;case IDOK:this-OnOK();return true;case IDCANCEL:this-OnCancel();return true;return false;具体实现如图5.1 登陆界面实现图图5.1 登陆界面实现图5.2 主界面的功能实现5.2.1 菜单栏实现(1)从菜单中选择“View”/“Workspace”项,在工作区窗口中,能看到该程序所使用的资源,且每种资源都有一个资源符号,主窗体也使用了一个资源符号IDD_A1_DIALOG,这是VC缺省提供的。可以在这里添加或者删除各种资源。(2)在工作区窗口(Workspace窗口)右键单击“a1 resources”选项,在弹出菜单中选择“Insert.”选项,将弹出“Insert Resource”对话框。在该对话框中选择“Menu”选项,然后单击“New”按钮,生成菜单资源。(3)右键双击菜单资源编辑器的虚线空白框,选择“Properties”选项,在“Menu Item Properties”对话框的“caption”编辑框中键入:“基础信息(&I)”此时关闭“Menu Item Properties”对话框,将在菜单编辑器中生成主菜单“基础信息”。双击“基础信息”菜单下的虚线空白框,在弹出的“Menu Item Properties”对话框中设计“药品信息(&M)”、“员工信息(&Y)”等菜单项。(4)同上,可以设计其他主菜单及菜单项。最后得到如图5.2所示的菜单界面。图 5.2 菜单界面5.2.2 工具栏实现在应用程序中要经常使用工具栏,它是最常用的界面元素,对应着应用程序的最常用功能。主窗口共有9个工具栏按钮,分别是“销售登记”、“销售退货”、“销售结账”、“入库登记”、“入库退货”、“入库结账”、“调货登记”、“库存登记”、“退出”工具栏按钮。操作步骤如下:(1)从基类CToolBarCtrl中派生需要的类CstandardBar。(2)需要9个按钮,每个按钮有相应的文本和图片。所以,需要添加如图5.3所示的图片资源,资源长为288像素,高为32像素,资源符号为:IDR_STANDARDBAR。图 5.3图片资源(3)添加字符串资源(String Table)。(4)程序中引入资源,创建工具栏按钮。5.2.3 为菜单和工具栏添加消息处理函数(1)单击菜单和工具栏按钮的两种消息都是命令消息,所以,只要让他们传递相同的消息,就能执行相同的消息处理函数。例如:将销售登记菜单项的资源符号改为IDSTR_XSDJ,并给它定义消息响应函数:void CA1Dlg:OnXsdj()。这样,无论是单击“销售登记”菜单项,还是单击“销售登记”按钮都会执行这个函数。同理,完成其他的菜单项与按钮的对应。(2)“退出”按钮,当用户按下Enter键或Esc键时,对话框就会退出,这里触发的两个消息分别是IDOK和IDCANCEL。如果给“退出”按钮的命令消息值赋值为IDOK,那么单击该按钮时,对话框就会退出。代码如下:m_pTBButtonsm_nButtonCount-1.idCommand=IDOK; /用来响应退出消息具体实现如图5.4主界面实现图。图5.4 主界面实现图5.3 各模块的功能实现本系统有些子模块的实现方法基本相同,现举例详细说明。5.3.1 基础信息模块功能实现基础信息模块的主要功能为增添信息,删除信息,修改信息,查询信息。现以药品信息为例。设计步骤(1)新建一个窗口类,名称为CDlgYPINFO。(2)在窗口中添加编辑框、组合框、静态文本、按钮、时间控件等资源。(3)设置主要资源属性实现增添,修改,删除功能。增添信息实现过程是先连接数据库检查输入的信息是否已经存在,如果没有存在则执行SQL语句进行保存,相关代码如下:CString sql;data.yp_id.MakeUpper();m_runsql.m_recordset-Close();if(!LRunSql:BeginTrans()return false;sql.Format(insert into %s(yp_id,yp_name,yp_jc,jixing,huowei,chandi,guige,danwei,shangbiao,pizhunwenhao,jinjia,pifajia,lingshoujia,pihao,baozhiqi,huoyuan,beizhu) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%f,%f,%f,%s,%s,%s,%s),this-m_sTableName,this-data.yp_id,this-data.yp_name,this-data.yp_jc,this-data.jixing,this-data.huowei,this-data.chandi,this-data.guige,this-data.danwei,this-data.shangbiao,this-data.pizhunwenhao,this-data.jinjia,this-data.pifajia,this-data.lingshoujia,this-data.pihao,this-data.baozhiqi,this-data.huoyuan,this-data.beizhu);if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论