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

上传人:b****8 文档编号:9424813 上传时间:2023-05-19 格式:DOCX 页数:88 大小:672.85KB
下载 相关 举报
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第1页
第1页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第2页
第2页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第3页
第3页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第4页
第4页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第5页
第5页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第6页
第6页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第7页
第7页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第8页
第8页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第9页
第9页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第10页
第10页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第11页
第11页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第12页
第12页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第13页
第13页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第14页
第14页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第15页
第15页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第16页
第16页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第17页
第17页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第18页
第18页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第19页
第19页 / 共88页
基于MYSQL的医院综合信息管理系统设计报告样本.docx_第20页
第20页 / 共88页
亲,该文档总共88页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《基于MYSQL的医院综合信息管理系统设计报告样本.docx》由会员分享,可在线阅读,更多相关《基于MYSQL的医院综合信息管理系统设计报告样本.docx(88页珍藏版)》请在冰点文库上搜索。

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

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

数据库实验报告

医院综合信息管理系统

 

专业

班级

组长

组员

指引教师

 

内容提纲:

本系统是一种基于MYSQL而建立医院综合信息管理系统。

用MicrosoftVisualStudio结合MYSQL开发了3个模块。

涉及有人员信息管理,门诊信息管理,收费信息管理。

其中人员信息管理其中有医生信息管理,病人信息管理和药物信息管理。

门诊信息管理其中则具有就诊信息管理,病人处方管理。

这3模块基本实现了医院综合信息管理系统需求。

【核心词】:

MicrosoftVisualStudio,MYSQL,人员信息管理,门诊信息管理,收费信息管理

一、需求分析:

整个医院综合信息管理系统可分为三个子系统:

人员信息管理系统,门诊信息管理系统,收费信息管理系统。

1.1人员信息管理系统

人员信息管理即对于人和物品管理,人则包括医生及医护人员,就诊病人,尚有药物等。

咱们需要对她们基本信息进行记录,并且还要具备增长,删除,修改,查询等基本功能,因此我建立了一种基本信息管理模块来专门解决。

我也在数据库中相应了三张表:

doctor,patient,durg以便对人员信息管理信息进行存储。

1.2门诊信息管理系统

对于就诊信息管理,病人看病后会产生新数据,例如医生对病人诊断信息,以及药物处方信息。

而与其相应则是我做门诊信息管理,其中我做了两个窗口,一种是诊断信息窗口,重要实现对诊断信息储存;另一种是处方信息窗口,有增长、删除、修改药物等功能。

然后我另做了一种查询窗口,以便病人查询自己处方记录。

相应数据库,我做了两张表:

diagnosis,prescription。

1.3收费信息管理系统

对于收费信息管理,病人拿处处方后,就会取药,付款。

则我需要对其总价进行计算,再者就是对于药物库存进行修改。

于是相应规定我做了一种收费前台。

虽然在数据库中没有相应相应表。

可是它操作重要是对prescription读取,以及对durg库存修改。

二、系统分析:

整个医院综合信息管理系统可分为三个子系统:

人员信息管理系统,门诊信息管理系统,收费信息管理系统。

2.1系统功能简介

2.1.1人员信息管理系统功能

对医生、病人、药物基本信息进行增长,删除,修改,查询等基本功能

2.1.2门诊信息管理系统功能

对就诊信息存储功能和对处方信息进行增长、删除、修改药物等基本功能

3.2.3收费信息管理系统

对医疗费用进行总和计算功能和对药物库存进行修改功能

2.2功能模块

系统重要功能模块图如下:

 

 

三、数据库设计:

3.1E-R图:

3.1.1医生信息doctorE-R图

 

3.1.2病人信息patientE-R图

 

 

3.1.3药物信息drugE-R图

3.1.4诊断信息diagnosisE-R图

 

3.1.5处方信息prescriptionE-R图

3.1.6实体间重要关系E-R图

3.2数据字典:

表1:

doctor:

表2:

patient

表3:

durg

表4:

diagnosis

表5:

prescription

四、前台设计:

4.1.医生信息管理:

4.2.病人信息管理:

4.3.药物信息管理:

4.4.诊断界面:

4.5.处方界面:

4.6.病人处方查询:

4.7.收费信息管理:

五、程序调试成果:

1.主界面:

2.添加功能:

实当代码:

voidCEmployeeDlg:

:

OnBnClickedOk()

{

//TODO:

在此添加控件告知解决程序代码

//CDialogEx:

:

OnOK();

UpdateData(true);

if(m_number.IsEmpty())

{

MessageBox(CString("编号不能为空”));

return;

}

if(m_name.IsEmpty())

{

MessageBox(CString("名称不能为空!

"));

return;

}

if(m_idcard.IsEmpty())

{

MessageBox(CString("省份证号码不能为空!

"));

return;

}

CADOConnm_AdoConn;

m_AdoConn.OnInitADOConn();

_bstr_tsql;

sql="select*fromdoctor";

_RecordsetPtrm_pRecordset;

m_pRecordset=m_AdoConn.GetRecordSet(sql);

try

{

m_pRecordset->AddNew();//添加新行

m_pRecordset->PutCollect("employeeno",(_bstr_t)m_number);

m_pRecordset->PutCollect("name",(_bstr_t)m_name);

m_pRecordset->PutCollect("sex",(_bstr_t)m_sex);

m_pRecordset->PutCollect("age",(_bstr_t)m_age);

m_pRecordset->PutCollect("native",(_bstr_t)m_native);

m_pRecordset->PutCollect("nation",(_bstr_t)m_nation);

m_pRecordset->PutCollect("office",(_bstr_t)m_office);

m_pRecordset->PutCollect("position",(_bstr_t)m_position);

m_pRecordset->PutCollect("idcard",(_bstr_t)m_idcard);

m_pRecordset->PutCollect("phone",(_bstr_t)m_phone);

m_pRecordset->Update();//更新数据库

m_AdoConn.ExitConnect();//断开数据库连接

}

catch(...)

{

MessageBox(CString("操作失败"));

return;

}

MessageBox(CString("保存成功"));

m_grid.DeleteAllItems();//删¦除grid中本来数据

CStringstr;

str="select*fromdoctor";

AddToGrid(str);//重新遍历

}

2.修改功能:

实当代码:

voidCEmployeeDlg:

:

OnBnClickedChange()

{

//TODO:

在此添加控件告知解决程序代码

UpdateData(true);

CADOConnm_AdoConn;

m_AdoConn.OnInitADOConn();

CStringtempSql;

tempSql.Format(CString("UPDATE`mydb`.`doctor`SET`name`='%s',`sex`='%s',`age`='%s',`native`='%s',`nation`='%s',`office`='%s',`position`='%s',`idcard`='%s',`phone`='%s'WHERE`employeeno`='%s'"),m_name,m_sex,m_age,m_native,m_nation,m_office,m_position,m_idcard,m_phone,m_number);

m_AdoConn.ExecuteSQL((_bstr_t)tempSql);

m_AdoConn.ExitConnect();

MessageBox(CString("修改成功."));

m_grid.DeleteAllItems();//删除grid中本来数据

CStringstr;

str="select*fromdoctor";

AddToGrid(str);//重新遍历

}

3.删除功能:

代码实现:

voidCEmployeeDlg:

:

OnBnClickedDelete()

{

//TODO:

在此添加控件告知解决程序代码

UpdateData(true);

CADOConnm_AdoConn;

m_AdoConn.OnInitADOConn();

CStringtempSql;

tempSql.Format(CString("deletefromdoctorwhereemployeeno='%s'"),m_number);

CStringtenpstr;

tenpstr.Format(CString("与否要删除%s记录"),m_name);

if(MessageBox(tenpstr,CString("提示"),MB_OKCANCEL)==IDOK)

{

m_AdoConn.ExecuteSQL((_bstr_t)tempSql);

m_AdoConn.ExitConnect();

MessageBox(CString("删除成功."));

m_grid.DeleteAllItems();//删除grid中本来数据

CStringstr;

str="select*fromdoctor";

AddToGrid(str);//重新遍历

}

}

4.查询功能:

实当代码:

voidCEmployeeDlg:

:

OnBnClickedSelect()

{

//TODO:

在此添加控件告知解决程序代码

m_grid.DeleteAllItems();

UpdateData(true);

CStringstr1,str2;

intnum1,num2;

num1=m_combo.GetCurSel();

if(0==num1)

{

GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1);

str2=CString("select*fromdoctorwhereemployeenolike")+CString("'")+str1+CString("'");

AddToGrid(str2);//遍历功能信息记录

}

if(1==num1)

{

GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1);

str2=CString("select*fromdoctorwherenamelike")+CString("'")+str1+CString("'");

AddToGrid(str2);//遍历功能信息记录

}

if(2==num1)

{

GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1);

str2=CString("select*fromdoctorwhereofficelike")+CString("'")+str1+CString("'");

AddToGrid(str2);//遍历功能信息记录

}

if(3==num1)

{

GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1);

str2=CString("select*fromdoctorwherepositionlike")+CString("'")+str1+CString("'");

AddToGrid(str2);//遍历功能信息记录

}

if(4==num1)

{

GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1);

str2=CString("select*fromdoctorwhereidcardlike")+CString("'")+str1+CString("'");

AddToGrid(str2);//遍历功能信息记录

}

if(5==num1)

{

GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1);

str2="select*fromdoctororderbyemployeenoDESC";

AddToGrid(str2);//遍历功能信息记录

}

}

5.诊断界面:

6.处方界面:

7.处方查询:

8.付款界面:

9.修改库存:

对比图:

付款前:

付款后:

六、总结:

通过这次数据库大作业,咱们熟悉了vs数据库ADO编程。

对于它添加,修改,删除环节均有了较大理解。

在本次作业当中遇到两大问题。

一是:

数据库连接问题,本来开始准备用access做后台,可是不懂得为什么我电脑始终连接不上,于是改用了MYAQL连接。

二是:

在是使用记录集指针问题_RecordsetPtrm_pRecordset,在实现添加,删除,修改,查询等操作时,只能执行一次就浮现指针无效成果。

最后发现是在连接数据库时没有初始化COM,因此导致有指针无效成果。

然后,最让我开心是,是实现总价计算。

我是用两个数组,amount[20],和price[20]记住数量和单价,运用for循环计算总价。

然后,就是在vs中字符之间转换也是咱们应当注意问题。

总之,这次实验,让咱们学到了许多课本上学不到知识,也锻炼了咱们思考问题,解决问题能力。

 

附录:

医院综合信息管理系统源代码

 

//ADOConn.cpp:

实现文献

//

#include"stdafx.h"

#include"hospital.h"

#include"ADOConn.h"

 

//CADOConn

CADOConn:

:

CADOConn()

{

}

CADOConn:

:

~CADOConn()

{

}

 

//CADOConn成员函数

boolCADOConn:

:

OnInitADOConn(void)

{

HRESULThr;

:

:

CoInitialize(NULL);

try

{

hr=m_pDBConnection.CreateInstance("ADODB.Connection");

if(SUCCEEDED(hr))

{

m_pDBConnection->ConnectionTimeout=3;

//设立连接字符串

_bstr_tstrConnection="Driver={MySQLODBC5.2UnicodeDriver};SERVER=127.0.0.1;DATABASE=mydb;UID=root;PASSWORD=123456;PORT=3306";

hr=m_pDBConnection->Open(strConnection,"","",adModeUnknown);

}

}

catch(_com_errore)//捕获异常

{

CStringtemp;

temp.Format(CString("连接数据库错误信息:

%s"),e.ErrorMessage());

:

:

MessageBox(NULL,temp,CString("提示信息"),NULL);

returnfalse;

}

returnfalse;

}

 

//断开数据库连接

voidCADOConn:

:

ExitConnect(void)

{

if(m_pRecordset!

=NULL)

m_pRecordset->Close();

m_pDBConnection->Close();

//释放环境

:

:

CoUninitialize();

}

 

//获取记录集

_RecordsetPtr&CADOConn:

:

GetRecordSet(_bstr_tbstrSQL)

{

try

{

if(m_pDBConnection==NULL)

OnInitADOConn();

m_pRecordset.CreateInstance(__uuidof(Recordset));

m_pRecordset->Open(bstrSQL,m_pDBConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

}

catch(_com_errore)

{

CStringtemp;

temp.Format(CString("读取数据库错误信息:

%s"),e.ErrorMessage());

:

:

MessageBox(NULL,temp,CString("提示信息"),NULL);

}

returnm_pRecordset;

}

 

//执行SQL语句

boolCADOConn:

:

ExecuteSQL(_bstr_tbstrSQL)

{

_variant_tRecordsAffected;

try

{

if(m_pDBConnection==NULL)

OnInitADOConn();

m_pDBConnection->Execute(bstrSQL,NULL,adCmdText);

returntrue;

}

catch(_com_errore)

{

CStringtemp;

temp.Format(CString("执行SQL语句错误信息:

%s"),e.Description());

:

:

MessageBox(NULL,temp,CString("提示信息"),NULL);

returnfalse;

}

}

//返回记录集对象指针SQL执行函数

_RecordsetPtrCADOConn:

:

ExcuteSQLObj(_bstr_tbstrSQL)

{

try

{

if(m_pDBConnection==NULL)

OnInitADOConn();

m_pRecordset=m_pDBConnection->Execute(bstrSQL,NULL,adCmdText);

}

catch(_com_errore)

{

CStringtemp;

m_pRecordset=NULL;

temp.Format(CString("执行SQL语句错误信息:

%s"),e.ErrorMessage());

:

:

MessageBox(NULL,temp,CString("提示信息"),NULL);

}

returnm_pRecordset;

}

 

//PrescriptionDlg.cpp:

实现文献

//处方:

万淑妍

#include"stdafx.h"

#include"hospital.h"

#include"PrescriptionDlg.h"

#include"afxdialogex.h"

#include"ADOConn.h"

 

//CPrescriptionDlg对话框

IMPLEMENT_DYNAMIC(CPrescriptionDlg,CDialogEx)

CPrescriptionDlg:

:

CPrescriptionDlg(CWnd*pParent/*=NULL*/)

CDialogEx(CPrescriptionDlg:

:

IDD,pParent)

{

m_patientno=_T("");

m_amount=_T("");

m_name=_T("");

m_no=0;

}

CPrescriptionDlg:

:

~CPrescriptionDlg()

{

}

voidCPrescriptionDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialogEx:

:

DoDataExchange(pDX);

DDX_Control(pDX,IDC_LIST1,m_grid);

DDX_Text(pDX,IDC_PATIENTNO,m_patientno);

DDX_Text(pDX,IDC_AMOUNT,m_amount);

DDX_Text(pDX,IDC_DURGNAME,m_name);

DDX_Control(pDX,IDC_DATETIMEPICKER1,m_time);

}

 

BEGIN_MESSAGE_MAP(CPrescriptionDlg,CDialogEx)

ON_BN_CLICKED(IDOK,&CPrescriptionDlg:

:

OnBnClickedOk)

ON_BN_CLICKED(IDC_CHANGE,&CPrescriptionDlg:

:

OnBnClickedChange)

ON_NOTIFY(NM_CLICK,IDC_LIST1,&CPrescriptionDlg:

:

OnNMClickList1)

ON_BN_CLICKED(IDC_DELETE,&CPrescriptionDlg:

:

OnBnClickedDelete)

ON_BN_CLICKED(IDC_CLEAR,&CPrescriptionDlg:

:

OnBnClickedClear)

END_MESSAGE_MAP()

 

//CPrescriptionDlg消息解决程序

 

BOOLCPrescriptionDlg:

:

OnInitDialog()

{

CDialogEx:

:

OnInitDialog();

//TODO:

在此添加额外初始化

flag=0;

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

//异常:

OCX属性页应返回FALSE

}

voidCPrescriptionDlg:

:

AddToGrid(CStringstr)

{

CADOConnm_AdoConn;

m_AdoConn.OnInitADOConn();

CStringsql;

sql.Format(str);

_RecordsetPtrm_pRecordset;

m_pRecordset=m_AdoConn.GetRecordSet((_bstr_t)sql);

while(m_AdoConn.m_pRecordset->adoEOF==0)

{

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2