数据库课程设计报告(医院管理系统).doc_第1页
数据库课程设计报告(医院管理系统).doc_第2页
数据库课程设计报告(医院管理系统).doc_第3页
数据库课程设计报告(医院管理系统).doc_第4页
数据库课程设计报告(医院管理系统).doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库课程设计医院管理系统实验报告题目: 医院管理系统 姓名: 班级: 学号: 指导教师: 2014年 6 月 7日医院信息管理系统一、 系统需求分析通过一个医院管理系统,使医院的管理工作系统化、规范化、自动化,从而达到提高医院管理效率的目的。1. 系统功能分析医院管理系统需要完成的主要功能有:l 员工各种信息的输入,包括员工基本信息、职称、岗位等。l 员工各种信息的查询、修改,包括员工基本信息、职称、岗位、工资等。l 员工的人事调动管理。l 病人信息的管理。l 医院病床的管理。l 药剂资源管理。l 仪器资源管理。l 系统用户管理、权限管理。2. 系统功能模块设计根据系统功能要求,可以将系统分解成几个模块来分别设计应用程序界面。设计者可只实现住院部、员工管理两个模块的相关功能,其中门诊部、药品和仪器两个模块可根据时间选做。二、 数据库设计1. 数据库的逻辑结构设计PERSONNEL 员工基本情况表字段名称字段含义数据类型是否为主键EMP_NO员工号char(10)YEMP_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)YJOB_NAME工作岗位名称char(10)SALARY工资信息表字段名称字段含义数据类型是否为主键EMP_NO员工号char(10)YEMP_SALARY员工工资char(10)PATIENT病人信息表字段名称字段含义数据类型是否为主键PNAME病人姓名char(10)YPGENDRE病人性别char(5)PDATESTART入院时间char(5)PDEPT病人所属科室char(6)PSTATE病人状况char(8)PDOC主治医生char(10)PROOM病人房间号char(6)YPBED病人病床号char(8)YROOM房间信息表字段名称字段含义数据类型是否为主键PROOM房间号char(6)YPBED病床号char(8)PROOMSTATE房间状态char(5)BED病床信息表字段名称字段含义数据类型是否为主键PROOM房间号char(6)YPBED病床号char(8)PBEDSTATE病床状态char(5)POTION药剂信息表字段名称字段含义数据类型是否为主键POTION_ID药剂代号char(8)YPOTION_NAME药剂名称char(15)POTION_PRICE药剂价格char(8)POTION_QUANTITY药剂库存数量char(8)POTION_REM备注char(30)APPARATUR医疗信息表字段名称字段含义数据类型是否为主键APPARTUS_ID药剂代号char(8)YAPPARTUS_NAME药剂名称char(15)APPARTUS_PRICE药剂价格char(8)APPARTUS_QUANTITY药剂库存数量char(8)APPARTUS_REM备注char(30)2. 全局ER图工作岗位代号。 姓名 性别 职务 员工号工作岗位名称 工作岗位 学历NewN工作 病人 医生主治M病床号11N病房状态入住病人姓名1N 病房房间号 病床号所属科室入院时间 病房号病人性别3. 数据库的建立CREATE TABLE JOB( JOB_ID CHAR(5), JOB_NAME CHAR(20), PRIMARY KEY(JOB_ID);CREATE TABLE BASE( EMP_NO CHAR(10) , EMP_NAME CHAR(8), EMP_DEPT_ID CHAR(5), EMP_DUTY CHAR(8), EMP_XL CHAR(5), EMP_GENDER CHAR(2), EMP_BIRTHDAY CHAR(9), EMP_HOMETOWN CHAR(20), EMP_COUNTRY CHAR(5), EMP_NATION CHAR(8), EMP_ID CHAR(19), EMP_MARRIAGE CHAR(5), EMP_HEALTH CHAR(5), EMP_STARTWORK CHAR(9), EMP_STATE CHAR(5), EMP_HOMEADDRESS CHAR(30), EMP_TELENO CHAR(12), EMP_EMAIL CHAR(20), EMP_JOB_ID CHAR(5), PRIMARY KEY(EMP_NO), FOREIGN KEY(EMP_JOB_ID) REFERENCES JOB(JOB_ID);CREATE TABLE DEPT( DEPT_ID CHAR(4), DEPT_NAME CHAR(8), DEPT_MANAGER CHAR(10), DEPT_VICEMANAER CHAR(10) PRIMARY KEY(DEPT_ID);create table salary(EMP_NO CHAR(10) , emp_salary char(10), primary key(EMP_NO), foreign key(EMP_NO) references base(EMP_NO);create table room(room char(4) not null,proomstate char(6),primary key(proom)create table bed( proom char(4) not null, pbed char(4) not null, pbedstate char(5) primary key(pbed), foreign key(proom) references room(proom);create table patient(pname char(8) not null, pgender char(8), pdata_state char(9), pdept char(8), pstate char(8), pdoc char(10), proom char(4), pbed char(4), primary key(pname), foreign key(pbed) references bed(pbed), foreign key(proom) references room(proom), foreign key(pdoc) references base(EMP_no) );create table potion( iid char(10) not null, iname char(20), price char(10), shuliang char(10), rem char(50);create table appratus( iid char(10) not null, iname char(20), price char(10), shuliang char(10), rem char(50);三、 各个模板功能实现1. 入院登记功能实现:病人进行姓名,性别等基本情况登记,登记时可查看病房病床信息。代码实现:UpdateData(TRUE);_ConnectionPtr m_pConnection;_RecordsetPtr pRst(_uuidof(Recordset);:CoInitialize(NULL);Trym_pConnection.CreateInstance(ADODB.Connection);_bstr_tstrConn=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hospitalMSQL;Data Source=431-18;m_pConnection-Open(strConn,adModeUnknown);catch(_com_error e) :CoUninitialize(); AfxMessageBox(e.ErrorMessage(); return;/连接数据库,在后面将不再重复展示_variant_t ra;_bstr_t strAdd=INSERT INTO patient VALUES(;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_t strAdd2=UPDATE bed SET pbedstate=;strAdd2 = strAdd2+非空+;strAdd2 = strAdd2+ WHERE pbed=+m_bed;m_pConnection-Execute(strAdd,&ra,adCmdText);m_pConnection-Execute(strAdd2,&ra,adCmdText);m_pConnection-Close();/ AfxMessageBox(成功更新数据!);m_adodc2.SetRecordSource(SELECT * FROM bed);m_adodc2.Refresh();UpdateData(FALSE);AfxMessageBox(登记成功,您将进入住院信息页面,您可以在此查看相关信息!);m_adodc1.SetRecordSource(SELECT * FROM BASE);m_adodc1.Refresh();m_name=;m_sex=;m_date=;m_dept=;m_state=;m_doc=;m_room=;m_bed=;/登记完后清楚输入框UpdateData(FALSE);zhuyuan b;b.DoModal();2. 入院信息功能实现可查看正在住院人的信息以及病床信息代码实现if(SYes=1)/通过SYes来控制是根据什么查找的CString str=select pname,pgender,pdata_state,pdept,pstate,proom,pbed,emp_name from base,patient where base.emp_no=patient.pdoc and pname=+m_neirong+;m_adodc1.SetRecordSource(str);m_adodc1.Refresh();UpdateData(FALSE);else if(SYes=2)CString str=select pname,pgender,pdata_state,pdept,pstate,proom,pbed,emp_name from base,patient where base.emp_no=patient.pdoc and emp_name=+m_neirong+;m_adodc1.SetRecordSource(str);m_adodc1.Refresh();UpdateData(FALSE);else if(SYes=3)CString str=select pname,pgender,pdata_state,pdept,pstate,proom,pbed,emp_name from base,patient where base.emp_no=patient.pdoc and pdept=+m_neirong+;m_adodc1.SetRecordSource(str);m_adodc1.Refresh();UpdateData(FALSE);3. 病人出院功能实现实现病人的删除代码实现CColumn col;VARIANT v_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();CString tmp=v_Value.bstrVal;CString tmp2=确认要删除编号为+tmp+的记录吗?;if(MessageBox(tmp2,_T(数据删除提示),MB_YESNO|MB_ICONSTOP)!=IDYES)return;UpdateData(TRUE);ConnectionPtr pConn;:CoInitialize(NULL);trypConn.CreateInstance(ADODB.Connection);_bstr_t strConn=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hospitalMSQL;Data Source=431-18;pConn-Open(strConn,adModeUnknown);/if(pConn-State=adStateOpen) MessageBox(成功连接数据库);catch(_com_error e):CoUninitialize();AfxMessageBox(e.ErrorMessage();return;_variant_t ra;_bstr_t strAdd2=UPDATE bed SET pbedstate=;strAdd2 = strAdd2+空+;strAdd2 = strAdd2+ WHERE pbed=+tmp;_bstr_t strAdd=DELETE FROM patient WHERE pbed=;strAdd=strAdd+tmp+;pConn-Execute(strAdd2,&ra,adCmdText);pConn-Execute(strAdd,&ra,adCmdText);pConn-Close();AfxMessageBox(成功更新数据!);m_adodc1.SetRecordSource(SELECT * FROM patient);m_adodc1.Refresh();m_adodc2.SetRecordSource(SELECT * FROM bed);m_adodc2.Refresh();UpdateData(FALSE);4. 新人注册功能实现对新的员工进行员工号等基本信息录入代码实现_variant_t ra;_bstr_t strAdd=INSERT INTO base VALUES(;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_t strAdd2=INSERT INTO job VALUES(;strAdd2 = strAdd2+m_jobid+,;strAdd2 = strAdd2+m_gangwei+);_bstr_t strAdd3=INSERT INTO salary VALUES(;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 * FROM BASE);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)CString str=select * from base where 员工姓名=+m_name+;m_adodc1.SetRecordSource(str);m_adodc1.Refresh();m_name=;UpdateData(FALSE);else if(m_SelectYes=2)CString str=select * from base where 员工号=+m_id+;m_adodc1.SetRecordSource(str);m_adodc1.Refresh();m_id=;UpdateData(FALSE);else if(m_SelectYes=3)CString str=select * from base where 工作岗位代号=+m_dept+;m_adodc1.SetRecordSource(str);m_dept=;m_adodc1.Refresh();UpdateData(FALSE);6. 人事调动功能实现完成对员工的删除与对员工信息的修改代码实现员工信息修改_variant_t ra;_bstr_t strAdd=UPDATE base SET EMP_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+ WHERE EMP_NO=+m_id;_bstr_t strAdd2=UPDATE salary SET emp_salary=;strAdd2 = strAdd2+m_gongzi+;strAdd2 = strAdd2+ WHERE EMP_NO=+m_id;_bstr_t strAdd3=UPDATE job SET job_id=;strAdd3 = strAdd3+m_jobid+,job_name=;strAdd3 = strAdd3+m_gangwei+;strAdd3 = strAdd3+ WHERE EMP_NO=+m_id;m_pConnection-Execute(strAdd,&ra,adCmdText);m_pConnection-Close();AfxMessageBox(成功更新数据!);m_dept=;m_duty=;m_email=;m_hds=;m_jobid=;m_tele=;m_xueli=;m_gangwei=;m_id=;m_gongzi=;m_adodc1.SetRecordSource(SELECT * FROM BASE);m_adodc1.Refresh();UpdateData(FALSE);员工删除_variant_t ra;_bstr_t strAdd=DELETE FROM base WHERE emp_no=;strAdd=strAdd+tmp+;_bstr_t strAdd2=DELETE FROM salary WHERE emp_no=;strAdd2=strAdd2+tmp+;_bstr_t strAdd3=DELETE FROM job WHERE job_id=;strAdd3=strAdd3+tmp1+;pConn-Execute(strAdd,&ra,adCmdText);pConn-Execute(strAdd2,&ra,adCmdText);pConn-Execute(strAdd3,&ra,adCmdText);pConn-Close();m_adodc1.SetRecordSource(SELECT * FROM base);m_adodc1.Refresh();UpdateData(FALSE);7. 药品仪器信息功

温馨提示

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

评论

0/150

提交评论