基于MYSQL的医院综合信息管理系统设计报告

上传人:仙*** 文档编号:100410544 上传时间:2022-06-02 格式:DOC 页数:69 大小:820KB
收藏 版权申诉 举报 下载
基于MYSQL的医院综合信息管理系统设计报告_第1页
第1页 / 共69页
基于MYSQL的医院综合信息管理系统设计报告_第2页
第2页 / 共69页
基于MYSQL的医院综合信息管理系统设计报告_第3页
第3页 / 共69页
资源描述:

《基于MYSQL的医院综合信息管理系统设计报告》由会员分享,可在线阅读,更多相关《基于MYSQL的医院综合信息管理系统设计报告(69页珍藏版)》请在装配图网上搜索。

1、数据库实验报告医院综合信息管理系统专业班级组 长组 员指导教师目录一、需求分析:21.1人员信息管理系统21.2门诊信息管理系统31.3收费信息管理系统3二、系统分析:32.1系统功能介绍32.2功能模块3三、数据库设计:43.1 E-R图:43.2数据字典:6四、前台设计:84.1.医生信息管理:84.2.病人信息管理:84.3.药品信息管理:94.4.诊断界面:104.5.处方界面:104.6.病人处方查询:104.7.收费信息管理:11五、程序调试结果:12六、总结:22容提要 :本系统是一个基于MYSQL而建立的医院综合信息管理系统。用Microsoft Visual Studio 2

2、010结合MYSQL开发了3个模块。包括有人员信息管理,门诊信息管理,收费信息管理。其中人员信息管理其中有医生信息管理,病人信息管理和药品信息管理。门诊信息管理其中则含有就诊信息管理,病人处方管理。这3模块基本实现了医院综合信息管理系统的需求。关键词: Microsoft Visual Studio 2010,MYSQL,人员信息管理,门诊信息管理,收费信息管理一、 需求分析:整个医院综合信息管理系统可分为三个子系统:人员信息管理系统,门诊信息管理系统,收费信息管理系统。1.1人员信息管理系统人员信息管理即对于人和物品的管理,人则包含医生及医护人员,就诊病人,还有药品等。我们需要对他们的基本信

3、息进行记录,并且还要具有增加,删除,修改,查询等基本功能,所以我建立了一个基本信息管理模块来专门处理。我也在数据库中对应了三表:doctor,patient,durg以便对人员信息管理信息进行存储。1.2门诊信息管理系统对于就诊信息的管理,病人看病后会产生新的数据,例如医生对病人的诊断信息,以及药品处方信息。而与其对应的则是我做的门诊信息管理,其中我做了两个窗口,一个是诊断信息窗口,主要实现对诊断信息的储存;另一个是处方信息窗口,有增加、删除、修改药品等功能。然后我另做了一个查询的窗口,以便病人查询自己的处方记录。对应数据库,我做了两表:diagnosis,prescription。1.3收费

4、信息管理系统对于收费信息管理,病人拿到处方后,就会取药,付款。则我需要对其总价进行计算,再者就是对于药品库存进行修改。于是对应要求我做了一个收费前台。虽然在数据库中没有对应相应的表。可是它的操作主要是对prescription的读取,以及对durg库存的修改。二、系统分析:整个医院综合信息管理系统可分为三个子系统:人员信息管理系统,门诊信息管理系统,收费信息管理系统。2.1系统功能介绍2. 1. 1 人员信息管理系统的功能对医生、病人、药品的基本信息进行增加,删除,修改,查询等的基本功能2. 1. 2 门诊信息管理系统的功能对就诊信息的存储功能和对处方信息进行增加、删除、修改药品等的基本功能3

5、. 2. 3 收费信息管理系统对医疗费用进行总和计算的功能和对药品库存进行修改的功能2.2功能模块系统主要功能模块图如下:医院综合信息管理系统人员信息管理系统门诊信息管理系统收费信息管理系统医生信息管理病人信息管理药品信息管理就诊信息管理病人处方管理收费信息管理药品库存管理三、数据库设计:3.1 E-R图:3.1.1医生信息doctor E-R图namesexageemploynophonedoctor3.1.2病人信息patient E-R图namesexagepatientnonophonepatient3.1.3药品信息drug E-R图drugdrugnononamenopriceno

6、inventoryno3.1.4诊断信息diagnosis E-R图diagnosisdiagnosisnononoemploynonopatientnonoconditionno3.1.5处方信息prescription E-R图prescriptionprescriptionnononopatientnononamenotimenoaccount3.1.6实体间主要关系E-R图DoctorPaitientDurgDiagnosisPrescriptionN11111113.2数据字典:表1:doctor:表2:patient表3:durg表4:diagnosis表5:prescriptio

7、n四、前台设计:4.1.医生信息管理:4.2.病人信息管理:4.3.药品信息管理:4.4.诊断界面:4.5.处方界面:4.6.病人处方查询:4.7.收费信息管理:五、程序调试结果:1.主界面:2.添加功能:实现代码:void CEmployeeDlg:OnBnClickedOk/ TODO: 在此添加控件通知处理程序代码/CDialogEx:OnOK;UpdateData;ifm_number.IsEmptyMessageBoxCString;return;ifm_name.IsEmptyMessageBoxCString;return;ifm_idcard.IsEmptyMessageBox

8、CString;return;CADOConn m_AdoConn;m_AdoConn.OnInitADOConn;_bstr_t sql;sql = select* from doctor;_RecordsetPtr m_pRecordset; m_pRecordset=m_AdoConn.GetRecordSet;trym_pRecordset-AddNew;/添加新行m_pRecordset-PutCollectemployeeno,m_number;m_pRecordset-PutCollectname,m_name;m_pRecordset-PutCollectsex,m_sex;m

9、_pRecordset-PutCollectage,m_age;m_pRecordset-PutCollectnative,m_native; m_pRecordset-PutCollectnation,m_nation;m_pRecordset-PutCollectoffice,m_office;m_pRecordset-PutCollectposition,m_position;m_pRecordset-PutCollectidcard,m_idcard;m_pRecordset-PutCollectphone,m_phone;m_pRecordset-Update;/更新数据库m_Ado

10、Conn.ExitConnect;/断开数据库连接catchMessageBoxCString;return;MessageBoxCString;m_grid.DeleteAllItems;/删除grid中原来的数据CString str;str=select* from doctor;AddToGrid;/重新遍历2.修改功能:实现代码:void CEmployeeDlg:OnBnClickedChange/ TODO: 在此添加控件通知处理程序代码UpdateData;CADOConn m_AdoConn;m_AdoConn.OnInitADOConn;CString tempSql;te

11、mpSql.FormatCString,m_name,m_sex,m_age,m_native,m_nation,m_office,m_position,m_idcard,m_phone,m_number;m_AdoConn.ExecuteSQLtempSql;m_AdoConn.ExitConnect;MessageBoxCString;m_grid.DeleteAllItems;/删除grid中原来的数据CString str;str=select* from doctor;AddToGrid;/重新遍历3删除功能:代码实现:void CEmployeeDlg:OnBnClickedDel

12、ete/ TODO: 在此添加控件通知处理程序代码UpdateData;CADOConn m_AdoConn;m_AdoConn.OnInitADOConn;CString tempSql;tempSql.FormatCString,m_number;CString tenpstr;tenpstr.FormatCString,m_name;ifMessageBoxtenpstr,CString,MB_OKCANCEL=IDOKm_AdoConn.ExecuteSQLtempSql;m_AdoConn.ExitConnect;MessageBoxCString;m_grid.DeleteAllI

13、tems;/删除grid中原来的数据CString str; str=select* from doctor; AddToGrid;/重新遍历4.查询功能:实现代码:void CEmployeeDlg:OnBnClickedSelect/ TODO: 在此添加控件通知处理程序代码m_grid.DeleteAllItems;UpdateData;CString str1,str2;int num1,num2;num1=m_combo.GetCurSel;ifGetDlgItem-GetWindowText;str2=CString+CString+str1+CString;AddToGrid;/

14、 遍历功能信息记录ifGetDlgItem-GetWindowText;str2=CString+CString+str1+CString;AddToGrid;/ 遍历功能信息记录ifGetDlgItem-GetWindowText;str2=CString+CString+str1+CString;AddToGrid;/ 遍历功能信息记录ifGetDlgItem-GetWindowText;str2=CString+CString+str1+CString;AddToGrid;/ 遍历功能信息记录ifGetDlgItem-GetWindowText;str2=CString+CString+

15、str1+CString;AddToGrid;/ 遍历功能信息记录ifGetDlgItem-GetWindowText;str2=select* from doctor order by employeeno DESC;AddToGrid;/ 遍历功能信息记录5.诊断界面:6.处方界面:7.处方查询:8.付款界面:9.修改库存:对比图:付款前:付款后:六、总结:通过这次数据库大作业,我们熟悉了vs2010的数据库ADO编程。对于它的添加,修改,删除步骤都有了较大的理解。在此次作业当中遇到两大问题。一是:数据库连接问题,本来开始准备用access做后台,可是不知道为什么我的电脑一直连接不上,于是

16、改用了MYAQL连接。二是:在是使用记录集指针的问题_RecordsetPtr m_pRecordset,在实现添加,删除,修改,查询等操作时,只能执行一次就出现指针无效的结果。最后发现是在连接数据库时没有初始化COM,所以导致有指针无效的结果。然后,最让我开心的是,是实现总价的计算。我是用两个数组,amount20,和price20记住数量和单价,利用for循环计算总价的。然后,就是在 vs2010中字符之间的转换也是我们应该注意的问题。总之,这次实验,让我们学到了许多课本上学不到的知识,也锻炼了我们的思考问题,解决问题的能力。附录:医院综合信息管理系统源代码/ ADOConn.cpp :

17、实现文件/#include stdafx.h#include hospital.h#include ADOConn.h/ CADOConnCADOConn:CADOConnCADOConn:CADOConn/ CADOConn 成员函数bool CADOConn:OnInitADOConnHRESULT hr;:CoInitialize;tryhr=m_pDBConnection.CreateInstance;ifSUCCEEDEDm_pDBConnection-ConnectionTimeout=3;/设置连接字符串_bstr_t strConnection=Driver=MySQL ODB

18、C 5.2 Unicode Driver;SERVER=127.0.0.1;DATABASE=mydb;UID=root;PASSWORD=123456;PORT=3306;hr=m_pDBConnection-Open;catch/捕捉异常CString temp;temp.FormatCString,e.ErrorMessage;:MessageBoxNULL,temp,CString,NULL;return false;return false;/ 断开数据库连接void CADOConn:ExitConnectif m_pRecordset-Close;m_pDBConnection-

19、Close;/释放环境:CoUninitialize;/ 获取记录集_RecordsetPtr& CADOConn:GetRecordSettryif OnInitADOConn;m_pRecordset.CreateInstance_uuidof;m_pRecordset-OpenbstrSQL,m_pDBConnection.GetInterfacePtr,adOpenDynamic,adLockOptimistic,adCmdText; catchCString temp;temp.FormatCString,e.ErrorMessage;:MessageBoxNULL,temp,CSt

20、ring,NULL;return m_pRecordset;/ 执行SQL语句bool CADOConn:ExecuteSQL_variant_t RecordsAffected;try if OnInitADOConn;m_pDBConnection-Execute;return true;catchCString temp;temp.FormatCString,e.Description;:MessageBoxNULL,temp,CString,NULL;return false;/ 返回记录集对象指针的SQL执行函数_RecordsetPtr CADOConn:ExcuteSQLObjt

21、ry if OnInitADOConn; m_pRecordset=m_pDBConnection-Execute;catchCString temp;m_pRecordset=NULL;temp.FormatCString,e.ErrorMessage;:MessageBoxNULL,temp,CString,NULL;return m_pRecordset;/ PrescriptionDlg.cpp : 实现文件/处方:万淑妍#include stdafx.h#include hospital.h#include PrescriptionDlg.h#include afxdialogex.

22、h#include ADOConn.h/ CPrescriptionDlg 对话框IMPLEMENT_DYNAMICCPrescriptionDlg:CPrescriptionDlg: CDialogExm_patientno = _T;m_amount = _T;m_name = _T;m_no = 0;CPrescriptionDlg:CPrescriptionDlgvoid CPrescriptionDlg:DoDataExchangeCDialogEx:DoDataExchange;DDX_Control;DDX_Text;DDX_Text;DDX_Text;DDX_Control;B

23、EGIN_MESSAGE_MAPON_BN_CLICKEDON_BN_CLICKEDON_NOTIFYON_BN_CLICKEDON_BN_CLICKEDEND_MESSAGE_MAP/ CPrescriptionDlg 消息处理程序BOOL CPrescriptionDlg:OnInitDialogCDialogEx:OnInitDialog;/ TODO: 在此添加额外的初始化flag=0;return TRUE; / return TRUE unless you set the focus to a control/ 异常: OCX 属性页应返回 FALSEvoid CPrescript

24、ionDlg:AddToGridCADOConn m_AdoConn;m_AdoConn.OnInitADOConn;CString sql;sql.Format;_RecordsetPtr m_pRecordset;m_pRecordset = m_AdoConn.GetRecordSetsql;whileadoEOF=0m_grid.InsertItem0,CString;m_grid.SetItemText0,0,m_pRecordset-GetCollect;m_grid.SetItemText0,1,m_pRecordset-GetCollect;m_grid.SetItemText

25、0,2,m_pRecordset-GetCollect;m_grid.SetItemText0,3,m_pRecordset-GetCollect;m_grid.SetItemText0,4,m_pRecordset-GetCollect;m_pRecordset-MoveNext;m_AdoConn.ExitConnect;UpdateData;void CPrescriptionDlg:OnBnClickedOk/ TODO: 在此添加控件通知处理程序代码/CDialogEx:OnOK;m_no=1;ifm_grid.SetExtendedStyle;m_grid.InsertColumn

26、0,CString,LVCFMT_LEFT,100,0;m_grid.InsertColumn1,CString,LVCFMT_LEFT,100,1;m_grid.InsertColumn2,CString,LVCFMT_LEFT,100,2;m_grid.InsertColumn3,CString,LVCFMT_LEFT,100,3;m_grid.InsertColumn4,CString,LVCFMT_LEFT,100,4;flag= !flag;/自动编号CADOConn m_AdoConn;m_AdoConn.OnInitADOConn;_bstr_t sql;sql = select

27、 prescriptionno from prescription;_RecordsetPtr m_pRecordset;m_pRecordset = m_AdoConn.GetRecordSetsql;whileadoEOF=0ifm_no_ttoim_pRecordset-GetCollectm_no=_ttoim_pRecordset-GetCollect;m_pRecordset-MoveNext;m_AdoConn.ExitConnect;m_no+;CString str,str1;GetDlgItem-GetWindowText;str=CString+CString+str1+

28、CString;AddToGrid;/ 遍历员工信息记录UpdateData;ifm_patientno.IsEmptyMessageBoxCString;return;ifm_name.IsEmptyMessageBoxCString;return;CADOConn m_AdoConn;m_AdoConn.OnInitADOConn;_bstr_t sql;sql = select * from prescription;_RecordsetPtr m_pRecordset; m_pRecordset=m_AdoConn.GetRecordSet;/获取工作时间CTime time;m_ti

29、me.GetTime;COleDateTime convert_time;convert_time.SetDatetime.GetYear,time.GetMonth,time.GetDay;trym_pRecordset-AddNew;/添加新行m_pRecordset-PutCollectpatientno,m_patientno;m_pRecordset-PutCollectname,m_name;m_pRecordset-PutCollectamount,m_amount;m_pRecordset-PutCollecttime,convert_time;m_pRecordset-Put

30、Collectprescriptionno,m_no;m_pRecordset-Update;/更新数据库m_AdoConn.ExitConnect;/断开数据库连接catchMessageBoxCString;return;MessageBoxCString;m_grid.DeleteAllItems;/删除grid中原来的数据CString str,str1;GetDlgItem-GetWindowText;str=CString+CString+str1+CString;AddToGrid;/ 遍历员工信息记录void CPrescriptionDlg:OnBnClickedChange

31、/ TODO: 在此添加控件通知处理程序代码UpdateData;CADOConn m_AdoConn;m_AdoConn.OnInitADOConn;/创建连接CString tempSql; /删除的字符类型为CStringCString sextemp;/获取用药时间CTime time; m_time.GetTime;COleDateTime convert_time;convert_time.SetDatetime.GetYear,time.GetMonth,time.GetDay; CString timetemp = convert_time.Format;tempSql.For

32、matCString,m_patientno,m_amount,timetemp,m_name;m_AdoConn.ExecuteSQLtempSql;m_AdoConn.ExitConnect;MessageBoxCString;m_grid.DeleteAllItems;/删除grid中原来的数据CString str;str=select * from prescription;AddToGrid;/重新遍历void CPrescriptionDlg:OnNMClickList1LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast;/ T

33、ODO: 在此添加控件通知处理程序代码int nItem=0;POSITION pos = m_grid.GetFirstSelectedItemPosition;if TRACE0;else while nItem = m_grid.GetNextSelectedItem;/找到被选中的行号 TRACE1; /读取被选中行的数据m_patientno=m_grid.GetItemText;m_name=m_grid.GetItemText;m_amount=m_grid.GetItemText;/处理用药时间COleVariant tempTimeStr;CString tempStr=m_

34、grid.GetItemText;tempTimeStr=tempStr;tempTimeStr.ChangeType;COleDateTime tempTime;tempTime=tempTimeStr;m_time.SetTime;UpdateData;/更新对话框*pResult = 0;void CPrescriptionDlg:OnBnClickedDelete/ TODO: 在此添加控件通知处理程序代码UpdateData;CADOConn m_AdoConn;m_AdoConn.OnInitADOConn;CString tempSql;tempSql.FormatCString

35、,m_name;CString tempstr;tempstr.FormatCString,m_name;ifMessageBoxtempstr,CString,MB_OKCANCEL=IDOKm_AdoConn.ExecuteSQLtempSql;/执行AQL语句,注意改成ADO的字符串m_AdoConn.ExitConnect;MessageBoxCString;m_grid.DeleteAllItems;/删除grid中原来的数据CString str; str=select* from prescription; AddToGrid;/重新遍历void CPrescriptionDlg

36、:OnBnClickedClear/ TODO: 在此添加控件通知处理程序代码m_amount = _T;m_name = _T;UpdateData;/ PatientDlg.cpp : 实现文件/病人管理:吴婷#include stdafx.h#include hospital.h#include PatientDlg.h#include afxdialogex.h#include ADOConn.h/ CPatientDlg 对话框IMPLEMENT_DYNAMICCPatientDlg:CPatientDlg: CDialogExm_age = _T;m_allergy = _T;m_

37、content = _T;m_idcard = _T;m_name = _T;m_nation = _T;m_native = _T;m_phone = _T;m_no = _T;m_sex = _T;CPatientDlg:CPatientDlgvoid CPatientDlg:DoDataExchangeCDialogEx:DoDataExchange;DDX_Text;DDX_Text;DDX_Text;DDX_Text;DDX_Text;DDX_Text;DDX_Text;DDX_Text;DDX_Text;DDX_Text;DDX_Control;DDX_Control;BEGIN_

38、MESSAGE_MAPON_BN_CLICKEDON_BN_CLICKEDON_BN_CLICKEDON_BN_CLICKEDON_BN_CLICKEDON_NOTIFYEND_MESSAGE_MAP/ CPatientDlg 消息处理程序BOOL CPatientDlg:OnInitDialogCDialogEx:OnInitDialog;/ TODO: 在此添加额外的初始化m_grid.SetExtendedStyle;m_grid.InsertColumn0,CString,LVCFMT_LEFT,100,0;m_grid.InsertColumn1,CString,LVCFMT_LEF

39、T,100,1;m_grid.InsertColumn2,CString,LVCFMT_LEFT,100,2;m_grid.InsertColumn3,CString,LVCFMT_LEFT,100,3;m_grid.InsertColumn4,CString,LVCFMT_LEFT,100,4;m_grid.InsertColumn5,CString,LVCFMT_LEFT,100,5;m_grid.InsertColumn6,CString,LVCFMT_LEFT,100,6;m_grid.InsertColumn7,CString,LVCFMT_LEFT,100,7;m_grid.Ins

40、ertColumn8,CString,LVCFMT_LEFT,100,8;m_combo.InsertString0,CString;m_combo.InsertString1,CString;m_combo.InsertString2,CString;m_combo.InsertString3,CString;m_combo.SetCurSel;CString str;str=select* from patient;AddToGrid;/ 遍历员工信息记录return TRUE; / return TRUE unless you set the focus to a control/ 异常

41、: OCX 属性页应返回 FALSEvoid CPatientDlg:AddToGridCADOConn m_AdoConn;m_AdoConn.OnInitADOConn;CString sql;sql.Format;_RecordsetPtr m_pRecordset;m_pRecordset = m_AdoConn.GetRecordSetsql;whileadoEOF=0m_grid.InsertItem0,CString;m_grid.SetItemText0,0,m_pRecordset-GetCollect;m_grid.SetItemText0,1,m_pRecordset-GetCollect;m_grid.SetItemText0,2,m_pRecordset-GetCollect;m_grid.SetItemText0,3,C

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!