1、区内医院地理信息管理系统毕业设计范例区内医院地理信息管理系统学 院专 业班 级学 号姓 名指导教师教师职称年月日摘要【摘要】随着技术的发展,通过图形图像的形式来表达计算机系统信息内容和主题是其他表现方式所无法比拟的。区内医院地理管理系统从其外在表现来说是一种功能强大的电子地图,操作方便灵活。我们可以通过电脑地图直观地查询医院所在区位的地理信息位置、分布情况以及其他相关信息。它迅速、直观、简洁、精准,为市民提供了更具人性化的服务。基本上搭起了数字化基础框架平台。使计算机系统的应用更直观、更容易理解和更生动形象化。使现代化管理更上一个台阶。区内医院地理管理系统,改变了长期以来广大市民靠地图来查询医
2、院地理位置的模式,实现了基础的计算机动态管理。我们还可以随时对区内医院地理位置的信息进行增加、删除以及变更。为市民提供全方位的服务。本系统将根据城市的地理位置对医院信息进行常规设置(包括添加、查看、修改、删除),方便用户查找详细的医院信息资源。本系统在设计的时候应该满足以下几个目标: 系统最大限度地实现了易安装性、易维护性和易操作性。 系统运行稳定、安全可靠。 软件结构清晰,功能一目了然。 根据地理位置对医院进行添加及删除,方便顾客查看的同时也避免因医院发生变动给顾客带来不便。 简单、快捷的医院信息查询。 根据需要随时对医院详细信息进行增加、修改、删除等操作。【关键词】 电子地图 区内医院地理
3、信息管理系统目录摘要目录0 引言1 需求分析1.1 需求分析1.2 可行性分析2 总体设计2.1 项目规划2.2 系统功能结构3 系统设计3.1 设计目标3.2 开发及运行环境3.3 数据库设计4 主要功能模块设计4.1 程序主界面的设计4.2 系统登录界面设计4.3 添加新医院模块程序设计附录A 参考文献附录B 数据表附录C 文件架构0 引言随着技术的发展,通过图形图像的形式来表达计算机系统信息内容和主题是其他表现方式所无法比拟的。区内医院地理管理系统从其外在表现来说是一种功能强大的电子地图,操作方便灵活。我们可以通过电脑地图直观地查询医院所在区位的地理信息位置、分布情况以及其他相关信息。它
4、迅速、直观、简洁、精准,为市民提供了更具人性化的服务。基本上搭起了数字化基础框架平台。使计算机系统的应用更直观、更容易理解和更生动形象化。使现代化管理更上一个台阶。区内医院地理管理系统,改变了长期以来广大市民靠地图来查询医院地理位置的模式,实现了基础的计算机动态管理。我们还可以随时对区内医院地理位置的信息进行增加、删除以及变更。为市民提供全方位的服务。1 需求分析1.1 需求分析通过市场调查,要求本系统具有以下功能: 界面友好、操作方便灵活。 强大的医院信息查询功能,最大限度地满足您的需要。 规范、完善的基础信息设置。 依据医院的变动情况对医院信息可增加、可删除,确保信息的准确。1.2 可行性
5、分析随着医疗事业的不断发展,为顾客提供方便、快捷、周到的查询服务已迫在眉捷,根据顾客的需求,本系统将地理位置与各大医院的实际情况结合,开发了功能强大的电子地图式医院信息管理系统,功能强大的电子地图式信息查询系统,操作方便灵活,图形化显示界面是其他表现方式所无法比拟的,它将多系列、枯燥的数据源,通过图形的点,线,面表现方式,将数据迅速直观,简了又极其精确的表现出来,更深层次的提高了计算机应用管理水平。是顾客搜寻医疗部门信息的首选。2 总体设计2.1 项目规划区内医院地理信息管理系统是一个典型的医院信息查询系统,系统主要实现的功能包括:医院的添加、删除以及对医院详细信息的添加、查看及修改。以最大的
6、限度满足顾客对医疗信息的需求。规划系统功能模块如下: 医疗部分的添加及删除 对医院重命名 添加及修改医院的详细信息2.2 系统功能结构区内医院地理信息管理系统的功能结构如图1所示。图1 系统功能结构图3 系统设计3.1 设计目标本系统将根据城市的地理位置对医院信息进行常规设置(包括添加、查看、修改、删除),方便用户查找详细的医院信息资源。本系统在设计的时候应该满足以下几个目标: 系统最大限度地实现了易安装性、易维护性和易操作性。 系统运行稳定、安全可靠。 软件结构清晰,功能一目了然。 根据地理位置对医院进行添加及删除,方便顾客查看的同时也避免因医院发生变动给顾客带来不便。 简单、快捷的医院信息
7、查询。 根据需要随时对医院详细信息进行增加、修改、删除等操作。3.2 开发及运行环境系统开发平台:Microsoft Visual FoxPro 6.0。运行平台:Windows XP/ Windows 2000/ Windows 2003分辨率:最佳效果1024768像素3.3 数据库设计本系统采用的是Visual FoxPro自带的数据库,数据库文件名为database。由于篇幅所限,关于数据库中的数据表请参见附录B。4 主要功能模块设计4.1 程序主界面的设计程序主界面的设计的好坏往往会影响到软件的整体形象,因此首先要处理好主程序窗体的设计问题。这一点非常重要,因此这使很多的程序开发者都
8、付出自己很多的心思与汗水。主程序窗体界面也包含着整个系统程序所要完成的主要功能。区内医院地理管理系统主程序运行结果如图2所示。图2 主程序运行结果1表单设计(1)新建一个表单,将表单的名称设置为“Form1”,BorderStyle属性设置为“3-可调边框(默认)”,设置Picture属性,为表单添加图片,设置Caption属性为“区内医院地理信息管理”,设置ShowWindown属性为“2-设为顶层表单”,设置TitleBar属性为“0-关闭”,设置WindowState属性为“2-最大化”,设置ShowTips属性为“True”。(2)在表单上添加Shape控件、Timer控件、Image
9、控件(3)设置控件的属性,其重要属性如表1所示。表1 重要属性及值对象属性值ShapeBackStyle透明TimerEnabledTrueTimerInterval0ImageStretch0剪载(默认值)ImagePicture=sys(5)+sys(2003)+images滚动img_1.JPGImageKeyPreview.F.ImageShowWindow2-作为顶层表单ImageWindowState2-最大化2代码设计Map控件的Init事件中添加如下代码设置图片控件的picture属性。This.Picture=Sys(5)+Sys(2003)+Images长春.JPGMap控
10、件的MouseDown事件的相关程序代码如下所示:LPARAMETERS nButton, nShift, nXCoord, nYCoord*获取鼠标的坐标值cbuff=space(16)mymouse=GetCursorPos(cBuff)MouseX=ASC(substr(cBuff,2,1)*256+ASC(substr(cBuff,1,1)MouseY=ASC(substr(cBuff,6,1)*256+ASC(substr(cBuff,5,1)Flag=.T.*改变光标的形状thisform.Map.MousePointer=99thisform.Map.MouseICON=sys(
11、5)+sys(2003)+Imagesmycursor.CURMap控件的MouseMove事件的相关程序代码如下所示:LPARAMETERS nButton, nShift, nXCoord, nYCoordMyX=nXCoordMyY=nYCoordMap控件的MouseUp事件的相关程序代码如下所示:LPARAMETERS nButton, nShift, nXCoord, nYCoordFlag=.F.*恢复光标为系统默认光标thisform.Map.MousePointer=0Form1表单中的load事件的相关程序代码如下所示:Set Safety OFFpublic x,y,Do
12、wn_x,Down_y,MouseX,MouseY,Flag,Ctrl_Count,MyX,MyY,Flag_Initpublic formnameformname=thisformStore 0 To MouseX,MouseYDeclare integer GetCursorPos in user32 String lpPoint &声明API函数*获取鼠标的坐标值cbuff=space(16)mymouse=GetCursorPos(cBuff)MouseX=ASC(substr(cBuff,2,1)*256+ASC(substr(cBuff,1,1)MouseY=ASC(substr(
13、cBuff,6,1)*256+ASC(substr(cBuff,5,1)Store .F. To Flag,Flag_InitCtrl_Count=3Timer1控件中的Timer事件的相关程序代码如下所示:Open Database DatabaseDatabase.dbc &打开数据库文件Use DatabaseTab_Create*获取鼠标的坐标值cbuff=space(16)mymouse=GetCursorPos(cBuff)x=ASC(substr(cBuff,2,1)*256+ASC(substr(cBuff,1,1)y=ASC(substr(cBuff,6,1)*256+ASC
14、(substr(cBuff,5,1)*鼠标移动到屏幕边缘时,图片自动移动*if X=0 and thisform.Map.left0 thisform.Map.left=thisform.Map.left+7 &地图向右移 Go Top Do While !Eof() CtrlName=Alltrim(Tab_Create.名称) Thisform.&CtrlName.Left=thisform.&CtrlName.left+7 SKIP EndDo endifif Y=0 and thisform.Map.topthisform.left+thisform.width and thisfor
15、m.Map.left+thisform.Map.widththisform.width thisform.Map.left=thisform.Map.left-7 &地图向左移 Go Top Do While !Eof() CtrlName=Alltrim(Tab_Create.名称) Thisform.&CtrlName.Left=thisform.&CtrlName.left-7 SKIP EndDo endifif Ythisform.top+thisform.height and thisform.Map.top+thisform.Map.heightthisform.height t
16、hisform.Map.top=thisform.Map.top-7 &地图向下移 Go Top Do While !Eof() CtrlName=Alltrim(Tab_Create.名称) Thisform.&CtrlName.Top=thisform.&CtrlName.Top-7 SKIP EndDo endif*拖动图时,图片跟随鼠标时实移动*If Flag=.T. If MouseX!=X OR MouseY!=Y thisform.Map.left=thisform.Map.left-MouseX+x thisform.Map.top=thisform.Map.top-Mouse
17、Y+y *医院位置随地图移动 Go Top Do While !Eof() CtrlName=Alltrim(Tab_Create.名称) Thisform.&CtrlName.Left=thisform.&CtrlName.left-MouseX+x Thisform.&CtrlName.Top=thisform.&CtrlName.Top-MouseY+y SKIP EndDo *到左边界时 If Thisform.Map.Left0 Thisform.Map.Left=0 Go Top Do While !Eof() CtrlName=Alltrim(Tab_Create.名称) Thi
18、sform.&CtrlName.Left=Tab_Create.X值-24 SKIP EndDo Endif *到上边界时 If Thisform.Map.Top0 Thisform.Map.Top=0 Go Top Do While !Eof() CtrlName=Alltrim(Tab_Create.名称) Thisform.&CtrlName.Top=Tab_Create.Y值-23 SKIP EndDo Endif *到底边界时 If ABS(Thisform.Map.Top)+Thisform.HeightThisform.Map.Height Thisform.Map.Top=-(
19、Thisform.Map.Height-Thisform.Height) Go Top Do While !Eof() CtrlName=Alltrim(Tab_Create.名称) Thisform.&CtrlName.Top=Thisform.Height-(Thisform.Map.Height-Tab_Create.Y值)-23 SKIP EndDo Endif *到右边界时 If ABS(Thisform.Map.Left)+Thisform.WidthThisform.Map.Width Thisform.Map.Left=-(Thisform.Map.Width-Thisform
20、.Width) Go Top Do While !Eof() CtrlName=Alltrim(Tab_Create.名称) Thisform.&CtrlName.Left=Thisform.Width-(Thisform.Map.Width-Tab_Create.X值)-24 SKIP EndDo Endif MouseX=ASC(substr(cBuff,2,1)*256+ASC(substr(cBuff,1,1) MouseY=ASC(substr(cBuff,6,1)*256+ASC(substr(cBuff,5,1) EndifEndifUseClose Database Timer
21、2控件中的Timer事件的相关程序代码如下所示:If Flag_Init=.F. SET PROCEDURE TO MyProg &打开过程文件 Do AddCtrl with thisform &调用过程显示医院信息 Flag_Init=.T.EndifThis.Interval=04.2 系统登录界面设计运行区内医院地理管理程序时,将进入“系统登录”界面,其运行结果如图3所示。图3 系统登录运行结果1表单设计(1)新建一个表单,将表单的名称设置为“Form1”,Caption属性设置为“系统登录”、AutoCenter属性为“True”,设置WindowState属性为“0-普通”,设置W
22、indowType属性为“0-无模式”,设置ShowWindow属性为“2-作为顶层表单”。(2)在表单中添加Label控件、Text控件、Command控件。(3)设置表单、控件的属性,其重要属性如表2所示。表2 重要属性及值对象属性值LabelAutoSizeTrueTextBackStyle1-不透明TextBorderColor255,255,255TextSpecialEffect1-平面2代码设计登录按钮中的Click事件的相关代码如下所示:if empty(alltrim(thisform.manager.value) messagebox(请输入管理员名称!,48,系统提示!)
23、else if empty(thisform.PWD.value) messagebox(请输入密码!,48,系统提示!) return else no=0 Open Database DatabaseDatabase.dbc &打开数据库文件 Use Databasetab_manager set exact on &设置字符精确比较 locat for 管理员名称=alltrim(thisform.manager.value) &定位记录 if found() if alltrim(tab_manager.密码)=alltrim(thisform.PWD.value) UserStatus
24、=.T. thisform.release do form form/区内医院地理信息管理 else no=no+1 if no=3 messagebox(登录失败!,16,系统提示!) _screen.visible=.t. _screen.top=0 quit &关闭表单 else messagebox(您输入的密码不正确!,16,系统提示!) thisform.PWD.value= thisform.PWD.setfocus() endif endif else no=no+1 if no=3 messagebox(登录失败!,16,系统提示!) _screen.visible=.t.
25、_screen.top=0 quit &关闭表单 else messagebox(您输入的管理员名称错误!,16,系统提示!) thisform.manager.value= thisform.PWD.value= thisform.manager.setfocus() endif endif endifendifuse Close Database取消按钮中的click事件下的相关程序代码如下所示:thisform.manager.value=thisform.PWD.value=thisform.manager.setfocus()普通用户进入按钮的click事件的相关程序代码如下所示:t
26、hisform.releaseUserStatus=.F.do form form/区内医院地理信息管理退出按钮的click事件的相关程序代码如下所示:_screen.visible=.t._screen.top=0quit &关闭表单4.3 添加新医院模块程序设计通过单击鼠标右键可以进行新医院的添加操作,此时将弹出一个添加新医院的窗体,在相应的文件框中输入所要添加的新医院名称,再单击“确定”按钮将成功地添加所指定的新医院。添加新医院程序设计结果如图4所示。图4 添加新医院设计结果1表单设计(1)新建一个表单,将窗体的名称设置为“Form1”,BorderStyle属性设置为“2-固定对话框”
27、,设置Caption属性为“添加新医院”,设置ShowWindow属性设为“1-在顶层表单中”,设置WindwType属性为“1-模式”设置AutoCenter属性为“True”。(2)在表单上添加Label控件、Text控件、Command控件。(3)设置控件的属性,其重要属性如表3所示。表3 重要属性及值对象属性值LabelAutoSizeTrueTextSpecialEffect0-3维CommandColorScheme1-用户窗口2代码设计通过单击确定按钮成功添加新医院,其关键代码如下所示:If !Empty(Alltrim(Thisform.Text1.Value) Hospita
28、lName=Alltrim(Thisform.Text1.Value) Thisform.Release SET PROCEDURE TO MyProg &打开过程文件 Do CreateHospital &调用过程创建新医院Endif附录A 参考文献1Visual Basic精彩编程200例机械工业出版社 赛奎春、高春艳等2003年1月 2Visual Basic数据库开发实例解析机械工业出版社 刘志铭、高春艳等2003年8月 3Visual FoxPro数据库开发实例解析机械工业出版社 王晶莹、王国辉等2003年9月 4Power Builder数据库开发实例解析机械工业出版社 华传铭、张振坤等2003年9月 5Delphi数据库开发实例解析机械工业出版社 赛奎春、郑骁鹏等2004年2月 6PowerBuilder 精彩编程200例机械工业出版社 张振坤、李文立等 2004年9月7Visua
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1