资源描述:
《vb课程设计报告,门诊挂号收费系统》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
第1章系统功能概述1第2章开发工具12」VisualBasic6.012.2SQL2第3章数据库设计33.1需求分析33.2E・R模型43.3表结构设计5第4章系统各功能模块的详细设计74」界面设计74.2控件代码10参考文献20 第1章系统功能概述药品管理:用于添加,删除或修改药品信息,其中包括药品编号,药品名称,药品价格,药品数量,并且可以查看已有的药品记录.检查管理:用于查看或者向数据库内添加删除或修改检查的项目,其中包括检查编号,检查名称,价格.治疗管理:用于查看和修改添加以及删除已有的治疗项目,其中包括治疗编号,治疗名称,价格和主治医师.挂号:用于对病人进行信息录入,选择药品以及治疗方式,最后合算其消费金额,并且针对未能全额支付的病人也予以挂号,将其信息存放在报表中,即报表显示欠款病人的信息.第2章开发工具2.1Visualasic6.0VisualBasic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言一一不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。因为默认的展性和方法己经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面VB程序的性能问题一直被放在了桌而上,但是随着计算机速度的飞速增加,关于性能的争论已经越來越少。窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文木框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改 变位置。在文本框屮的文字改变事件屮加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。VB的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。VB使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组建的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写皱感的,但是可以关闭这个功能。2.2SQLSQL(前名SQL)是由微软发布的关联式数据库管理系统。它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的成员Z—。其实SQL也是微软公司另一个通讯程序的名字,想与ProComm以及其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。SQL在2000年的时候成为了计算机等级考试中的计算机二级的一种数据库语言并且因为它的易学易用的特点正逐步取代传统的VFP成为二级中最受欢迎的数据库语言。SQL是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS,即RelationalDatabaseManagementSystem),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。SQL能够存取SQL/Jet、MicrosoftSQLServer>Oracle(甲骨文软件公司),或者任何ODBC兼容数据库内的资料。熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的”进阶用户呗9能使用它来开发简单的应用软件。虽然它 支援部分面向对象(OOP)技术,但是未能成为一种完整的面向对象开发工具。与一般的RDBMS完全不同,它缺乏数据库触发和预存程序。自从MSSQL2000(Jet4.0),开发人员可以在查询中设定参数,这跟预存程序很相似的,但这些“预存程序”只能处理一个程序.当资料表内数据发生变化时,它确实允许形式包含被引发的代码,使用是普通的透过查询和其他技术在进入营运储存的程序在方面RDBMS支援这些的。进入可提供的编程语言,当时在另一个内产品MicrosoftOffice家具,微软公司应用的VisualBasico两个数据库进入信息库COM组成部分被提供:这笔遗产数据存取物体(DAO),用进入和新只可提供ActiveX数据对象(忙乱)。SQL容易被应用于小的工程,但是如果设计的不好对大工程是无用的。全部数据库质问,形式和报告被储存在数据库里,并且与和关的模型的理想协调,没有与他们做一个身体上组织的阶层的可能性。一种设计技术是把进入应用在数据和计划Z间进行分发。一个数据库应该只包含桌子和关系,当另一个将有全部计划吋,形式,报告和质问和对第一个数据库桌子的连接。令人遗憾,当连结时,进入允许没有有关的道路,因此那些发展环境作为这种牛产环境有相同的道路应该(虽然你写你们自己的能”动态连接程序”常规在里VBA那搜出能一定背面结束档案以透过这个目录树搜寻,如果它发现这条电流通路它不能)。这种技术也允许开发者在不同的档案屮分申请,因此一些架构是可能的。第3章数据库设计3.1需求分析该系统能实现简单的门诊划价收费处理,且可以连接到数据库,病人挂号时,录入其挂号编号,姓名,检查申请以及开药等信息,并且针对不同开药和诊断选择,有不同的价格,最后对挂号病人进行划价收费,•其中,药品管理用来修改药品信息,其中包括药品的名称和价格等,检查管理包括检查编号和名称及价格,治疗管理也包括价格和名称,另外还有主治医师.对于挂号成功的病人,将其所有信息写入数据库内. 3.2E・R模型⑴检查管理E-R图如图3.1(2)药品管理E・R图如图3.2图3.2药品管理E・R图 ⑶治疗管理如图3・3⑷挂号E-R图如图3.43.3表结构设计本系统共建立四张表,分别为检查信息表,治疗信息表,药品信息表和病人信息表,一下分别列岀个表内容:(1)检查信息表用于保存检查信息,默认为这三种,在系统运行后,可以在检查管理中添加,删除和修改 各项内容,之后的治疗信息以及药品信息表都可以在运行后的菜单中更改. 检查编号名称Varchar(50)价格Int01透视检查23202孕妇检查21003肠胃检查202(2)治疗信息表用于保存治疗的方法,默认为三种治疗编号名称Varchar(50)价格Int主治医师Varchar(50)0001按摩1123王医生0002骨折结合988李医生0003心脏治疗343徐医生(3)药品信息表用于保存药品信息,默认为三钟药品编号单位Varchar(50)数量Int名称Varchar(50)价格Int001克123若非沙星12002粒21泻立停23003瓶2闪亮滴眼液22(4)病人信息表用于存放病人信息,其中的应付金额为选择个服务项之后计算所得,检查,治疗和药品类型,为挂号时所选定.姓名性别备注应付金额实付金额检査类型治疗类型药品类型药品数量qq-请选择-Asdasd15251222透视检查按摩滴眼液NULL23女as164623透视检查骨折结合若非沙星NULL呵呵男无37133713肠胃检查按摩若非沙星NULL 第4章系统各功能模块的详细设计4.1界面设计(1)管理员登陆界面:图4.1.1管理员登陆界面[I管理员登陆界面,其中的用户名和密码在建立数据库DSN配置时建立,右边ADO控件]I在运行时为隐藏.:I(2)检查管理界面:i图4.1.2检查管理界面 此界面为检查管理界面,通过输入编号,名称和价格来向数据库中添加删除或修改检查项目,该界面设置8个按钮,当显示数据库屮的首记录时,按钮,噌记录上一个计勺visible属性为false,默认为true,当显示数据库中的末记录吋,按钮”下一个''和''末记录的visible属性为false,默认为true.当单击确定按钮时,触发事件向数据库中添加删除或修改检查项目.(3)药品管理界面:siForm_drug药品名称:单位:药品管理药品编号:数量:单价:首记录I上一个I下一个I末记录I添加I修改I删除I确定I图41.3药品管理界面此界面为药品管理界面,通过输入药品编号,药品名称和数量等信息来向数据库中添加删除或修改药品信息,按钮功能同上面检查管理.(4)治疗管理界面: 治•疗管理治疗编号:价格-按摩1292名猱:主滩师:图4.1.4治疗管理界面该界面为治疗管理界面,通过输入治疗编号名称和价格以及主治医师来修改数据库内容,按钮功能同检查管理中各按钮.(3)主界面•挂号界面: 图4.1.5挂号界面 该界面为挂号界面,通过编号姓名等八项内容来向数据库中写入数据,其中检查申请,药品开方和治疗管理中各下拉菜单屮内容为直接调用数据库屮的内容,这三项都可以通过对应的管理来添加删除或修改所包含项,当选定之后,单击计算金额按钮,在应付金额中会显示出总花费,单击确定登记按钮,显示'‘挂号成功"・4.2控件代⑴登陆PrivateSubbutton_login_Click()StaticcountAsIntegerIfcount=2Thenbutton_login.Enabled二FalseEndIfDimsqlAsStringsql="Select*fromuserTablewherename=H,&usemame.Text&,Handpass-n&pass.Text&'MsgBox(sql)UserTable.RecordSource=sqlUserTable.RefreshIfUserTable.Recordset.BOF=TrueThenMsgBox”用户名或密码错误,请重新输入“,vbExclamation,告”pass.Text二””pass.SetFocuscount=count+1MsgBox(count)Else LoadForm_mainForm_main.ShowUnloadMeEndIfEndSub(2)计算金额PrivateSubCom_show_Click()checkNumFinal=checkNumcureNumFinal=cureNumdrugNumFinal=drugNumtext_needPay.Text=Val(Mid(checkNumFinal,InStr(checkNumFinal,n-n)+1,(InStr(checkNumFinal,"元・InStr(checkNumFinal,-1)))+Val(Mid(cureNumFinal,InStr(cureNumFinal,+1,(InStr(cureNumFinal,H元”)-InStr(cureNumFinal,-1)))+Val(number)*Val(Mid(drugNumFinal,InStr(drugNumFinal,+1,(InStr(drugNumFinal,“元”)・InStr(drugNumFinal,”・”)・1)))Lab_needPay.Caption=text_needPay&”元”1MsgBoxtext_needPayCom_config.Enabled=TrueEndSub(3)确定登记PrivateSubCom_config_Click()'MsgBoxsexAdodcSick.Refresh DimsqlAsString sql=,nn&sickNum&,H;n&text_name&&sex&&message&H&text_needPay&",”&Text_havePay&”,"*&checkNum&"丁”&cureNum&"丁”&drugNum&&number'MsgBoxsqlAdodcSick.RecordSource=Hinsertintosickvalues(”&sql&H)HOnErrorGoTo1AdodcSick.Recordset.UpdateAdodcSick.Refresh1:MsgBox(n挂号成功!”)⑷刷新PrivateSubCommand4_Click()AdodcChecks.RefreshAdodcDrug.RefreshAdodcCure.RefreshcheckNum.CleardrugNum.ClearcureNum.ClearWhileAdodcChecks.Recordset.EOF=FalsecheckNumTemp=AdodcChecks.Recordset.Fields("namen)&"■”&AdodcChecks.Recordset.Fields(,,money,')&”元”checkNum.AdditemcheckNumTempAdodcChecks.Recordset.MoveNextWend WhileAdodcDrug.Recordset.EOF=FalsedrugNumTempAdodcDrug.Recordset.Fields(HnameH)AdodcDrug.Recordset.Fields(nunitn)&n)u&&AdodcDrug.RecordsetFields(HmoneyH)&H元“drugNum^AdditemdrugNumTempAdodcDrug.Recordset.MoveNextWendWhileAdodcCure.Recordset.EOF=FalsecureNumTemp=AdodcCure.Recordset.Fields(HnameH)&&AdodcCure.Recordset.Fields("money")&”元”&&AdodcCure.Recordset.Fields("doctorH)cureNum.AdditemcureNumTempAdodcCure.Recordset.MoveNextWendEndSub(5)药品管理中各按钮PrivateSubCom_First_Click()Adodcl.Recordset.MoveFirstButtonControl1,0ButtonControl2,0ButtonControl3,1ButtonControl4,1EndSubPrivateSubCom_Last_Click()Adodc1.Recordset.MoveLastButtonControl1,1 ButtonControl2,IButtonControl3,0ButtonControl4,0EndSubPrivateSubCom_Next_Click()Adodc1.Recordset.MoveNextIfAdodc1.Recordset.EOF=TrueThenButtonControl3,0ButtonControl4,0ButtonControl6,0ButtonControl7,0ElseButtonControl6,1ButtonControl7,1EndIfButtonControl1,1ButtonControl2,1EndSubPrivateSubCom_Previous_Click()Adodc1•Recordset.MovePreviousIfAdodcl.Recordset.BOF=TrueThenButtonControl1,0 ButtonControl2,0ButtonControl7,0ElseButtonControl6,1ButtonControl7,1EndIfButtonControl3,1ButtonControl4,1EndSubPrivateSubCom_Update_Click()record=2EndSubPrivateSubCom_Yes_Click()DateBaseControl1MsgBoxrecordEndSubPrivateSubf_exit_Click()EndEndSub PrivateSubForm_Load()Com_FirsteEnabled=TrueCom_Previous.Enabled=TrueCom_Next.Enabled二TrueCom_Last.Enabled=TrueEndSubPublicSubButtonControl(aAsInteger,bAsInteger)a代表控件idb代表按钮类型0为无效1为有效Ifa=1ThenIfb=OThenCom_First.Enabled=FalseElseCom_First.Enabled=TrueEndIfEndIfIfa=2ThenIfb=OThenCom_Previous.Enabled=FalseElseCom_Previous.Enabled=True EndIfIfa=3ThenIfb=0ThenCom_Next.Enabled=FalseElseCom_Next.Enabled=TrueEndIfEndIfIfa=4ThenIfb=OThenCom_Last.Enabled=FalseElseCom_Last.Enabled=TrueEndIfEndIfIfa=5ThenIfb=OThenCom_Add.Enabled=FalseElseCom_Add.Enabled=TrueEndIfEndIfIfa=6ThenIfb=OThen Com_Update.Enabled=FalseElseCom_Update.Enabled=TrueEndIfEndIfIfa=7ThenIfb=OThenCom_Del.Enabled=FalseElseCom_Del.Enabled=TrueEndIfEndIfIfa=8ThenIfb=OThenCom_Yes.Enabled=FalseElseCom_Yes.Enabled=TrueEndIfEndIfIfa=9ThenIfb=OThenCom_cancel.Enabled=FalseElseCom_cancel.Enabled=True EndIfShowMessEndSubPublicSubShowMess()IfAdodc1.Recordse匸AbsolutePosition>0ThenLabel3.Caption二”记录”&Adodc1.Recordset.AbsolutePosition&”&Adodc1.Recordset.RecordCountElseLabel3.Caption=”无记录”EndIfEndSubPublicSubDateBaseControl()Adodc1.Recordset-UpdateAdodc1.RefreshEndSubPublicSubButton_four()ButtonControl1,0ButtonControl2,0ButtonControl3,0ButtonControl4,0EndSubPublicSubButton_Five() ButtonControl5,0ButtonControl6,0ButtonControl7,0ButtonControl&0ButtonControl9,0EndSub参考文献[1]VisualBasic课程设计案例精编[M]•北京:清华大学出版社,2007⑵VisualBasic项目案例开发实例自学手册[M].北京:人民邮电幽版社,2008⑶VisualBasic完全自学手册[M]•北京:机械工业出版社,2009[4]30天学通VisualBasic项目案例开发[M]・北京:电子工业出版社,2009⑸VisualBasic从入门到精通[M]•北京:人民邮电出版社,2010