数据库课程设计报告医院管理系统Word文件下载.docx
《数据库课程设计报告医院管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告医院管理系统Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
![数据库课程设计报告医院管理系统Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/22/090ba640-31c5-42e4-b775-3dac9392b6dd/090ba640-31c5-42e4-b775-3dac9392b6dd1.gif)
学历
EMP_GENDER
性别
EMP_BIRTHDAY
生日
EMP_HOMETOWN
籍贯
char(20)
EMP_COUNTYR
国籍
char(30)
EMP_NATION
民族
EMP_ID
身份证号
EMP_MARRIAGE
婚姻状况
EMP_HEALTY
健康状况
EMP_STARTWORK
参加工作时间
EMP_STATE
员工状态
EMP_HOMEADDRESS
家庭住址
EMP_TELENO
联系电话
char(15)
EMP_EMAIL
联系EMAIL地址
EMP_JOB_ID
工作岗位代号
char(8)
JOB工作岗位情况表
JOB_ID
JOB_NAME
工作岗位名称
SALARY工资信息表
EMP_SALARY
员工工资
PATIENT病人信息表
PNAME
病人姓名
PGENDRE
病人性别
PDATESTART
入院时间
PDEPT
病人所属科室
PSTATE
病人状况
PDOC
主治医生
PROOM
病人房间号
PBED
病人病床号
ROOM房间信息表
房间号
病床号
PROOMSTATE
房间状态
BED病床信息表
PBEDSTATE
病床状态
POTION药剂信息表
POTION_ID
药剂代号
POTION_NAME
药剂名称
POTION_PRICE
药剂价格
POTION_QUANTITY
药剂库存数量
POTION_REM
备注
APPARATUR医疗信息表
APPARTUS_ID
APPARTUS_NAME
APPARTUS_PRICE
APPARTUS_QUANTITY
APPARTUS_REM
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,
pricechar(10),
shuliangchar(10),
三、各个模板功能实现
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+"
非空”+"
’”;
WHEREpbed=”+m_bed;
m_pConnection->
Execute(strAdd,&
ra,adCmdText);
m_pConnection—〉Execute(strAdd2,&ra,adCmdText);
m_pConnection—〉Close();
//AfxMessageBox("
成功更新数据!
”);
m_adodc2。
SetRecordSource(”SELECT*FROMbed"
);
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=”"
//登记完后清楚输入框
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);
elseif(SYes==3){CStringstr="
selectpname,pgender,pdata_state,pdept,pstate,proom,pbed,emp_namefrombase,patientwherebase.emp_no=patient。
pdocandpdept='
+m_neirong+”'
SetRecordSource(str);
Refresh();
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;
ConnectionPtrpConn;
CoInitialize(NULL);
try{
pConn。
CreateInstance("
ADODB.Connection”);
_bstr_tstrConn=”Provider=SQLOLEDB。
1;
PersistSecurityInfo=False;
DataSource=431-18”;
pConn->
”,"
”,adModeUnknown);
//if(pConn-〉State==adStateOpen)MessageBox("
成功连接数据库"
catch(_com_errore){
:
CoUninitialize();
AfxMessageBox(e.ErrorMessage());
return;
_variant_tra;
_bstr_tstrAdd2="
UPDATEbedSETpbedstate=’”;
strAdd2=strAdd2+”空”+”'
WHEREpbed="
+tmp;
_bstr_tstrAdd=”DELETEFROMpatientWHEREpbed=”;
strAdd=strAdd+"
Execute(strAdd2,&
ra,adCmdText);
Execute(strAdd,&ra,adCmdText);
pConn—>
Close();
AfxMessageBox(”成功更新数据!
m_adodc1.SetRecordSource(”SELECT*FROMpatient"
SetRecordSource("
SELECT*FROMbed”);
4.新人注册
对新的员工进行员工号等基本信息录入
_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_homedas+"
strAdd=strAdd+m_teleno+”'
strAdd=strAdd+m_email+"
’,’"
strAdd=strAdd+m_jobid+”'
)"
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);
Execute(strAdd3,&
m_pConnection—〉Close();
AfxMessageBox(”注册成功!
SELECT*FROMBASE"
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="
5.在职员工
实现对员工及其工资的查询,工资查询需要进行权限检查
if(m_SelectYes==1){
CStringstr="
select*frombasewhere员工姓名='
+m_name+”’"
m_name=””;
elseif(m_SelectYes==2){
CStringstr=”select*frombasewhere员工号='
”+m_id+”’”;
m_id=”"
elseif(m_SelectYes==3){
select*frombasewhere工作岗位代号='
+m_dept+"
6.人事调动
完成对员工的删除与对员工信息的修改
员工信息修改
_bstr_tstrAdd=”UPDATEbaseSETEMP_DEPT_ID=’"
’,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;
UPDATEsalarySETemp_salary=’”;
strAdd2=strAdd2+m_gongzi+”'
WHEREEMP_NO=”+m_id;
_bstr_tstrAdd3="
UPDATEjobSETjob_id=’"
strAdd3=strAdd3+m_jobid+"
’,job_