数据库课程设计报告医院管理系统.docx
- 文档编号:3396904
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:16
- 大小:34.62KB
数据库课程设计报告医院管理系统.docx
《数据库课程设计报告医院管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告医院管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告医院管理系统
数据库课程设计
医院管理系统实验报告
题目:
医院管理系统
姓名:
班级:
学号:
指导教师:
2014年6月7日
医院信息管理系统
一、系统需求分析
通过一个医院管理系统,使医院的管理工作系统化、规范化、自动化,从而达到提高医院管理效率的目的。
1.系统功能分析
医院管理系统需要完成的主要功能有:
●员工各种信息的输入,包括员工基本信息、职称、岗位等.
●员工各种信息的查询、修改,包括员工基本信息、职称、岗位、工资等.
●员工的人事调动管理。
●病人信息的管理。
●医院病床的管理.
●药剂资源管理.
●仪器资源管理.
●系统用户管理、权限管理。
2.系统功能模块设计
根据系统功能要求,可以将系统分解成几个模块来分别设计应用程序界面.设计者可只实现住院部、员工管理两个模块的相关功能,其中门诊部、药品和仪器两个模块可根据时间选做。
二、数据库设计
1.数据库的逻辑结构设计
PERSONNEL员工基本情况表
字段名称
字段含义
数据类型
是否为主键
EMP_NO
员工号
char(10)
Y
EMP_NAME
员工姓名
char(5)
EMP_DEPT_ID
所在部门号
char(5)
EMP_DUTY
职务
char(6)
EMP_XL
学历
char(6)
EMP_GENDER
性别
char(5)
EMP_BIRTHDAY
生日
char(10)
EMP_HOMETOWN
籍贯
char(20)
EMP_COUNTYR
国籍
char(30)
EMP_NATION
民族
char(5)
EMP_ID
身份证号
char(20)
EMP_MARRIAGE
婚姻状况
char(10)
EMP_HEALTY
健康状况
char(10)
EMP_STARTWORK
参加工作时间
char(10)
EMP_STATE
员工状态
char(6)
EMP_HOMEADDRESS
家庭住址
char(30)
EMP_TELENO
联系电话
char(15)
EMP_EMAIL
联系EMAIL地址
char(10)
EMP_JOB_ID
工作岗位代号
char(8)
JOB工作岗位情况表
字段名称
字段含义
数据类型
是否为主键
JOB_ID
工作岗位代号
char(8)
Y
JOB_NAME
工作岗位名称
char(10)
SALARY工资信息表
字段名称
字段含义
数据类型
是否为主键
EMP_NO
员工号
char(10)
Y
EMP_SALARY
员工工资
char(10)
PATIENT病人信息表
字段名称
字段含义
数据类型
是否为主键
PNAME
病人姓名
char(10)
Y
PGENDRE
病人性别
char(5)
PDATESTART
入院时间
char(5)
PDEPT
病人所属科室
char(6)
PSTATE
病人状况
char(8)
PDOC
主治医生
char(10)
PROOM
病人房间号
char(6)
Y
PBED
病人病床号
char(8)
Y
ROOM房间信息表
字段名称
字段含义
数据类型
是否为主键
PROOM
房间号
char(6)
Y
PBED
病床号
char(8)
PROOMSTATE
房间状态
char(5)
BED病床信息表
字段名称
字段含义
数据类型
是否为主键
PROOM
房间号
char(6)
Y
PBED
病床号
char(8)
PBEDSTATE
病床状态
char(5)
POTION药剂信息表
字段名称
字段含义
数据类型
是否为主键
POTION_ID
药剂代号
char(8)
Y
POTION_NAME
药剂名称
char(15)
POTION_PRICE
药剂价格
char(8)
POTION_QUANTITY
药剂库存数量
char(8)
POTION_REM
备注
char(30)
APPARATUR医疗信息表
字段名称
字段含义
数据类型
是否为主键
APPARTUS_ID
药剂代号
char(8)
Y
APPARTUS_NAME
药剂名称
char(15)
APPARTUS_PRICE
药剂价格
char(8)
APPARTUS_QUANTITY
药剂库存数量
char(8)
APPARTUS_REM
备注
char(30)
2.
全局ER图
3.数据库的建立
CREATETABLEJOB(
JOB_IDCHAR(5),
JOB_NAMECHAR(20),
PRIMARYKEY(JOB_ID));
CREATETABLEBASE(
EMP_NOCHAR(10),
EMP_NAMECHAR(8),
EMP_DEPT_IDCHAR(5),
EMP_DUTYCHAR(8),
EMP_XLCHAR(5),
EMP_GENDERCHAR
(2),
EMP_BIRTHDAYCHAR(9),
EMP_HOMETOWNCHAR(20),
EMP_COUNTRYCHAR(5),
EMP_NATIONCHAR(8),
EMP_IDCHAR(19),
EMP_MARRIAGECHAR(5),
EMP_HEALTHCHAR(5),
EMP_STARTWORKCHAR(9),
EMP_STATECHAR(5),
EMP_HOMEADDRESSCHAR(30),
EMP_TELENOCHAR(12),
EMP_EMAILCHAR(20),
EMP_JOB_IDCHAR(5),
PRIMARYKEY(EMP_NO),
FOREIGNKEY(EMP_JOB_ID)REFERENCESJOB(JOB_ID));
CREATETABLEDEPT(
DEPT_IDCHAR(4),
DEPT_NAMECHAR(8),
DEPT_MANAGERCHAR(10),
DEPT_VICEMANAERCHAR(10)
PRIMARYKEY(DEPT_ID));
createtablesalary
(EMP_NOCHAR(10),
emp_salarychar(10),
primarykey(EMP_NO),
foreignkey(EMP_NO)referencesbase(EMP_NO));
createtableroom(
roomchar(4)notnull,
proomstatechar(6),
primarykey(proom))
createtablebed(
proomchar(4)notnull,
pbedchar(4)notnull,
pbedstatechar(5)
primarykey(pbed),
foreignkey(proom)referencesroom(proom));
createtablepatient
(pnamechar(8)notnull,
pgenderchar(8),
pdata_statechar(9),
pdeptchar(8),
pstatechar(8),
pdocchar(10),
proomchar(4),
pbedchar(4),
primarykey(pname),
foreignkey(pbed)referencesbed(pbed),
foreignkey(proom)referencesroom(proom),
foreignkey(pdoc)referencesbase(EMP_no));
createtablepotion(
iidchar(10)notnull,
inamechar(20),
pricechar(10),
shuliangchar(10),
remchar(50)
);
createtableappratus(
iidchar(10)notnull,
inamechar(20),
pricechar(10),
shuliangchar(10),
remchar(50)
);
三、各个模板功能实现
1.入院登记
功能实现:
病人进行姓名,性别等基本情况登记,登记时可查看病房病床信息。
代码实现:
UpdateData(TRUE);
_ConnectionPtrm_pConnection;
_RecordsetPtrpRst(__uuidof(Recordset));
:
:
CoInitialize(NULL);
Try{
m_pConnection。
CreateInstance(”ADODB。
Connection");
_bstr_tstrConn=”Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=hospitalMSQL;DataSource=431-18";
m_pConnection—>Open(strConn,"”,"",adModeUnknown);
}
catch(_com_errore){
:
:
CoUninitialize();
AfxMessageBox(e。
ErrorMessage());
return;}//连接数据库,在后面将不再重复展示
_variant_tra;
_bstr_tstrAdd="INSERTINTOpatientVALUES(’";
strAdd=strAdd+m_name+"','";strAdd=strAdd+m_sex+"',’”;
strAdd=strAdd+m_date+"','”;strAdd=strAdd+m_dept+"’,'”;
strAdd=strAdd+m_state+"’,'";strAdd=strAdd+m_doc+"',’”;
strAdd=strAdd+m_room+”',’";trAdd=strAdd+m_bed+"')”;
_bstr_tstrAdd2=”UPDATEbedSETpbedstate='”;
strAdd2=strAdd2+"非空”+"’”;strAdd2=strAdd2+"WHEREpbed=”+m_bed;m_pConnection->Execute(strAdd,&ra,adCmdText);
m_pConnection—〉Execute(strAdd2,&ra,adCmdText);
m_pConnection—〉Close();//AfxMessageBox("成功更新数据!
”);
m_adodc2。
SetRecordSource(”SELECT*FROMbed");
m_adodc2。
Refresh();UpdateData(FALSE);
AfxMessageBox("登记成功,您将进入住院信息页面,您可以在此查看相关信息!
”);
m_adodc1.SetRecordSource(”SELECT*FROMBASE");
m_adodc1.Refresh();
m_name="";m_sex=”";m_date="”;m_dept=””;m_state=””;
m_doc=”";m_room=”";m_bed=”";//登记完后清楚输入框
UpdateData(FALSE);zhuyuanb;b.DoModal();
2.入院信息
功能实现
可查看正在住院人的信息以及病床信息
代码实现
if(SYes==1)//通过SYes来控制是根据什么查找的
{CStringstr="selectpname,pgender,pdata_state,pdept,pstate,proom,pbed,emp_namefrombase,patientwherebase。
emp_no=patient。
pdocandpname='”+m_neirong+”’”;
m_adodc1。
SetRecordSource(str);
m_adodc1.Refresh();
UpdateData(FALSE);}
elseif(SYes==2){CStringstr="selectpname,pgender,pdata_state,pdept,pstate,proom,pbed,emp_namefrombase,patientwherebase.emp_no=patient。
pdocandemp_name=’"+m_neirong+”’";
m_adodc1.SetRecordSource(str);m_adodc1.Refresh();
UpdateData(FALSE);}
elseif(SYes==3){CStringstr="selectpname,pgender,pdata_state,pdept,pstate,proom,pbed,emp_namefrombase,patientwherebase.emp_no=patient。
pdocandpdept='"+m_neirong+”'";
m_adodc1。
SetRecordSource(str);m_adodc1。
Refresh();
UpdateData(FALSE);
3.病人出院
功能实现
实现病人的删除
代码实现
CColumncol;VARIANTv_ColNum,v_Value;
cols=m_datagrid1。
GetColumns();
v_ColNum.vt=VT_I2;v_ColNum.iVal=7;col=cols。
GetItem(v_ColNum);
v_Value=col.GetValue();
CStringtmp=v_Value。
bstrVal;
CStringtmp2="确认要删除编号为"+tmp+"的记录吗?
”;
if(MessageBox(tmp2,_T(”数据删除提示"),MB_YESNO|MB_ICONSTOP)!
=IDYES)return;
UpdateData(TRUE);
ConnectionPtrpConn;
:
:
CoInitialize(NULL);
try{
pConn。
CreateInstance("ADODB.Connection”);
_bstr_tstrConn=”Provider=SQLOLEDB。
1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=hospitalMSQL;DataSource=431-18”;
pConn->Open(strConn,"”,"”,adModeUnknown);
//if(pConn-〉State==adStateOpen)MessageBox("成功连接数据库");}
catch(_com_errore){
:
:
CoUninitialize();
AfxMessageBox(e.ErrorMessage());
return;}
_variant_tra;
_bstr_tstrAdd2="UPDATEbedSETpbedstate=’”;
strAdd2=strAdd2+”空”+”'";
strAdd2=strAdd2+"WHEREpbed="+tmp;
_bstr_tstrAdd=”DELETEFROMpatientWHEREpbed=”;
strAdd=strAdd+"'"+tmp+"'”;
pConn->Execute(strAdd2,&ra,adCmdText);
pConn->Execute(strAdd,&ra,adCmdText);
pConn—>Close();AfxMessageBox(”成功更新数据!
”);
m_adodc1.SetRecordSource(”SELECT*FROMpatient");
m_adodc1.Refresh();
m_adodc2。
SetRecordSource("SELECT*FROMbed”);
m_adodc2。
Refresh();
UpdateData(FALSE);
4.新人注册
功能实现
对新的员工进行员工号等基本信息录入
代码实现
_variant_tra;
_bstr_tstrAdd=”INSERTINTObaseVALUES(’”;
strAdd=strAdd+m_id+"',’”;strAdd=strAdd+m_name+”','”;
strAdd=strAdd+m_dept+”',’";strAdd=strAdd+m_duty+”’,’”;
strAdd=strAdd+m_xl+”’,'”;strAdd=strAdd+m_sex+”’,'”;
strAdd=strAdd+m_bir+”’,'";strAdd=strAdd+m_hm+”',’”;
strAdd=strAdd+m_cry+"',’”;strAdd=strAdd+m_nation+”’,’”;
strAdd=strAdd+m_idcard+”’,’”;strAdd=strAdd+m_mar+”','";
strAdd=strAdd+m_hea+”','”;strAdd=strAdd+m_setime+"',’”;
strAdd=strAdd+m_state+"’,’”;
strAdd=strAdd+m_homedas+"',’”;
strAdd=strAdd+m_teleno+”',’”;
strAdd=strAdd+m_email+"’,’";
strAdd=strAdd+m_jobid+”')";
_bstr_tstrAdd2="INSERTINTOjobVALUES('";
strAdd2=strAdd2+m_jobid+"’,’";
strAdd2=strAdd2+m_gangwei+”’)”;
_bstr_tstrAdd3=”INSERTINTOsalaryVALUES('";
strAdd3=strAdd3+m_id+”',’";
strAdd3=strAdd3+m_gongzi+”')";
m_pConnection—〉Execute(strAdd2,&ra,adCmdText);
m_pConnection->Execute(strAdd,&ra,adCmdText);
m_pConnection—>Execute(strAdd3,&ra,adCmdText);
m_pConnection—〉Close();AfxMessageBox(”注册成功!
");
m_adodc1。
SetRecordSource("SELECT*FROMBASE");
m_adodc1。
Refresh();
m_id="";m_name=”";m_dept="";m_duty=””;m_xl="”;m_sex=””;
m_bir=”";m_hm="”;m_cry=””;m_nation="";m_idcard="";
m_mar="";m_hea="";m_setime="”;m_state=”";m_homedas="";
m_teleno="";m_email=””;m_jobid="”;m_gongzi=”";
m_gangwei="”;UpdateData(FALSE);
5.在职员工
功能实现
实现对员工及其工资的查询,工资查询需要进行权限检查
代码实现
if(m_SelectYes==1){
CStringstr="select*frombasewhere员工姓名='"+m_name+”’";
m_adodc1。
SetRecordSource(str);
m_adodc1.Refresh();
m_name=””;UpdateData(FALSE);}
elseif(m_SelectYes==2){
CStringstr=”select*frombasewhere员工号='”+m_id+”’”;
m_adodc1。
SetRecordSource(str);m_adodc1。
Refresh();m_id=”";
UpdateData(FALSE);}
elseif(m_SelectYes==3){
CStringstr="select*frombasewhere工作岗位代号='"+m_dept+"'";m_adodc1。
SetRecordSource(str);m_dept="”;
m_adodc1。
Refresh();UpdateData(FALSE);}
6.人事调动
功能实现
完成对员工的删除与对员工信息的修改
代码实现
员工信息修改
_variant_tra;
_bstr_tstrAdd=”UPDATEbaseSETEMP_DEPT_ID=’";
strAdd=strAdd+m_dept+"’,EMP_DUTY='”;
strAdd=strAdd+m_duty+”’,EMP_EMAIL='”;
strAdd=strAdd+m_email+”',EMP_HOMEADDRESS=’”;
strAdd=strAdd+m_hds+"',EMP_JOB_ID='";
strAdd=strAdd+m_jobid+”’,EMP_TELENO=’";
strAdd=strAdd+m_tele+"',EMP_XL=’";
strAdd=strAdd+m_xueli+"'";
strAdd=strAdd+"WHEREEMP_NO="+m_id;
_bstr_tstrAdd2="UPDATEsalarySETemp_salary=’”;
strAdd2=strAdd2+m_gongzi+”'”;
strAdd2=strAdd2+"WHEREEMP_NO=”+m_id;
_bstr_tstrAdd3="UPDATEjobSETjob_id=’";
strAdd3=strAdd3+m_jobid+"’,job_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 医院 管理 系统