JAVA医院管理系统课程设计.docx

上传人:苏美尔 文档编号:11737473 上传时间:2021-09-02 格式:DOCX 页数:30 大小:289.10KB
返回 下载 相关 举报
JAVA医院管理系统课程设计.docx_第1页
第1页 / 共30页
JAVA医院管理系统课程设计.docx_第2页
第2页 / 共30页
JAVA医院管理系统课程设计.docx_第3页
第3页 / 共30页
JAVA医院管理系统课程设计.docx_第4页
第4页 / 共30页
JAVA医院管理系统课程设计.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《JAVA医院管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《JAVA医院管理系统课程设计.docx(30页珍藏版)》请在三一文库上搜索。

1、精品文档医院管理系统1 .课程设计的目的面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语 义,而且有利于软件的维护和继承。现代化的医院也应该有现代化的管理系统。在科技 日益发达的今天,人们的身体健康也在不断受到重视。因此,医院进行现代化管理就变 得尤为重要,需要建立一个使用的医院管理系统。为了进一步巩固JAVAf目关的知识,深刻把握JAVA语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的 思想和设计方法解决实际问题的能力,开设了JAVA程序设计课程设计。通过此次课程设计,使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握 JAVA语言的编

2、程思想及面向对象程序设计的方法,为今后的学习和工作打下基础。2 .设计方案论证2.1 开发环境JAVA?工具 JDK 1.5.0 ,操作系统 Windows 7.2.2 系统功能描述系统需要完成功能主要有:(1)医生各种信息的输入,包括员工基本细细、职称、岗位。(2)医生各种的查询、修改,包括员工基本信息、职称、岗位、工资等。(3)医生的人事调动管理。(4)病人信息、病床、药剂、仪器的管理。(5)系统用户管理、权限管理。2.3 系统功能模块设计在系统功能分析的基础上,考虑 Microsoft Visual Studio 2008程序编制的特点, 得到如图1所示的系统功能模块图。管理系统1图1系

3、统功能模块图2.4 数据库需求分析在数据库应用系统的开发过程中,数据库的结构设计是一个非常重要的问题。数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构会减小数据库的存储量,数据的完整性和一致性比较高,系统具有较快的相应速度,简 化基于此数据库的应用程序的实现等。在数据库系统开始设计的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需求,避免浪费不要的人力和物力。数据库需求分析是数据结构设计的第一阶段,是非常重要的一个阶段。在这个阶段 主要是收集基本数据、数据结构以及确定数据处理的流程,组成一份详尽的数据字典, 为以后进一步设计打下基础。在仔细调查医院管理过程的基

4、础上,我们得到本系统所处理的数据关系如图 2所示,病床病人资料医生图2数据关系图2.5 数据库设计通过对医院管理的内容和数据关系分析,我们设计的数据项和数据结构如下:员工基本状况包括的数据项有员工号、员工姓名、性别、所在部门、身份证号、生 日、籍贯、国籍、民族、婚姻状况、健康状况、参加工作时间、员工状态、家庭住址、 联系电话等。员工工资状况包括的数据项有员工号、工资项别、工资金额等。医院工作岗位信息包括的数据项有工作岗位代号、工作岗位名称等。医院部门信息包括的数据项有部门代号、部门名称、部门负责人等。病人信息包括的数据项有病人姓名、病人性别、入院时间、病人所属科室、病人状 况、病人主治医生、房

5、问号、病床号等。药剂资源管理信息包括的数据项有药剂代号、药剂名称、药剂价格、药剂库存数量、 备注等。医疗仪器管理包括的数据项有仪器代号、 仪器名称、仪器价格、仪器数量、备注等, 这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及 确定他们之间的关系,为后面的逻辑结构设计打下基础。本实例根据上面的设计规划出 的实体有员工实体、部门实体、岗位实体、病人实体、药剂实体、仪器实体。实体和实体之间的关系E-R图如图3所示。图3实体之间关系 E-R图我们需要将上面的数据库概念结构转化为Microsoft Visual Studio 2008 数据库系统所支持的实际数据模型,也就是数据

6、库的逻辑结构。在上面的实体以及实体之间关系的基础上,我们就可以形成数据库中的表格以及各个表格之间的关系。医院管理系统数据库中各个表格的设计结果如表。每个表格对应在数据库中的一个表1 PERSONNEL员工基本状况表列名数据类型口格为空说明EMP_NONUMBERIC(G)NOT NULL员工号(主燧)EMPMAMECHARACTERIC)NULL员工姓名EMPDEPTJDNUMBERTCf3)NULL所在部门号EIP_DLKYCHARACTER0。)NULL职务EMP_XLCHARACIERaq)NULL学历EMP.GEXDERCHARACTER(2)NULL性别EMP_BIKTHDAYDAT

7、ENULL生日CHARACTERNULL籍贯EXF_COUNTKYCHARACTER(1C)NULL国籍EMP.XWONCHARAbERn。)NULL民族EXP_IDNULL身份证号EMP_XLARRIAGECHARACTER)NULL婚姻状况EMP.HEALTHCHARACTER(10)NULL健康状况表工JOB工作岗位情况表列名额度幽可否务空说明JOB_IDNUDtf 三 KIC。)NTOULL工作岗位代号(领)JOB_VAECHAJUCTEltflO)NULL工作岗位名赤表3 DEPT部门信息表列名数据类型可否为空说明DEPTJDMUMBERICG)NOT NULL部门代号(主键)DEP

8、T_XAXIECHARACTERUOjNULL部门名称dept_ianagerNTUfBERlCt6)null部门主任代号DEPTXTCEMANAGENUMBERJC(6)NULL部门副主任代记表病人信息表PATIENT列名数据类型可否为空硼PAnENT.NAMECHARACTER助NULL病人姓名(主键)PAnENT_GENDERCHARACTER)NOT NULL病人性别PAnEMT_DATE_SIARTCHARACIER(IO)NULL为院时间PAnENT_DEPTCHARACTER10)NOT NULL病人所居科室PATIE?n_STArECHARACTEmiQ)NULL病人状况PAT

9、IENT_DOCCHARACTER0。)NOT NULL病人王治医生PXnE5TI_ROOMCHARACTER)NOINUU病人房间号PAHENT.BEDCHARACTf 风 2)NOT NULL病人病床号表5药剂信息表P0IIOX列名数据类型可否为空说明POT1ONJDNUX!BERIC(3)NOT NULL药剂代号(主建)POTION_NAMECHARACTER(10)NULL药剂名称POnON_PRICENUMBERIQ5:2)NULL药剂价格POnON-QUANTlB*NUMBERJC(3)NULL药剂库存数量POnON_REMCHARACTER(40)NULL苗注表6医疗仪器信息表A

10、PPARATUS列名数据类型可否为空说明APPARATUSJDNUMBER1C(3)NOT NULL仪器代号(主健)APPARATUS _NAMECfLARACTER(10)NULL仪器名称APPARATUS _PRICENUMBEKKZNULL仪器价格APPARATUS QUANTITYNuytBERiqsjNULL仪器船量APPARATUS _REMCHARACTER0。)NULL备注表7管理 ms系统的用户口拿表IMS列名数据类型可否为空说明TMS.USERCHARACTER(X)NOT NULL用户名(主键)TM3_PS 小DCHARACTERilO)NOTNULL口今2 .6功能模块

11、的创建首先设计的是登录界面(如图4所示,所有程序代码参照 程序原代码”)欢迎使用医院管理系统队院管理系线用户用户名称* 用户密码:|确定 |退出图4登陆界面然后设计的是登录后的主界面(如图 5所示)。医院管理系统导医服务医师服落药房服务门诊统计基本设置A病人登记药品管理 发放药品退药入库图5主界面之后设计病人挂号界面(如图6所示)o9欢立下载图6病人挂号界面药品管理界面(如图7所示)图7药品管理界面3.设计结果分析首先我们运行程序,弹出登录界面在输入用户名和密码之后(如图8所示),进入主界面(如图9所示)。图8登录图9登录后的主界面然后我们进行病人登记(如图10所示),在输入一系列的信息之后,

12、单击添加挂号, 成功添加一个新挂号。图10病人挂号界面之后我们在数据库中添加一系列的相关数据,再进行退药管理(如图 11所示)。4.图11退药界面设计体会精品文档通过这一次JAVA课程设计,我深深的理解到面向对象编程的方便与快捷和JAVA的重要性,也使我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,为了解决问题进行了各种各样的实验和资料的查找,这此课程设计还让我懂得 了写程序不能闭门造车,要努力拓宽知识面,丰富知识。它还让我学会了在网上查阅那 些无限的资料。通过对此课题的开发,使我对用JAVA开发系统有了一个比较清楚的认识,体会到理论和实践的重要性。由于自己的分析设计

13、和程序经验不足,该系统设计和 实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比 较差等多方面问题,这些都有待进一步完善和提高。本次课程设计对我将来的学习工作 必会起到很大的帮助作用。5.参考文献1 .范立南,刘天惠等.SQL Server 2000实用教程M.北京:清华大学出版 社,2004.02:47-1382 .李诚等.Java2简明教程M,第2版.北京:清华大学出版社,2004.08: 165-201 3.陈轶.姚晓昆编著.Java程序设计实验指导.北京:清华大学出版社,2006 4.杨昭编著.二级Java语言程序设计教程.北京:中国水利水电出版社,2006

14、5.美Herbert Schidt著.Java参考大全.鄢爱兰.鹿江春译.北京:清华大学出版社, 2006附录:namespace Hospital_MIS public partial class Frm_login : Formdatabaseoperate myoperate = new databaseoperate();public Frm_login()InitializeComponent();private void btn_exit_Click(object sender, EventArgs e)Application.Exit();private void Frm_log

15、in_FormClosed(object sender, FormClosedEventArgs e)Application.Exit();private void btn_ok_Click(object sender, EventArgs e)/ 首先查询数据库,获取与指定用户名和密码匹配的信息SqlDataReader sqlread = myoperate.getread(select name,password,discipline from employee +where name= + txt_name.Text.Trim() +and password + txt_pwd.Tex

16、t.Trim() + );trysqlread.Read();/读取 SqlDataReaderif (sqlread.HasRows)/如果存在匹配行/在operateinfo 中记录用户名信息operateinfo.operatename =txt_name.Text.Trim();/显示主窗体Frm_Main newfrm = new Frm_Main();this.Hide();newfrm.Show();else/如果密码错误,则显示提示信息并要求用户重新输入MessageBox.Show(用户名或密码错误!,提示,MessageBoxButtons.OK,MessageBoxIco

17、n.Information);txt_name.Text =;txt_pwd.Text =;txt_name.Focus();finally如果己经实例化了 SqlDataReaderif (sqlread != null)/关闭 SqlDataReadersqlread.Close();主界面代码及挂号界面代码namespace Hospital_MISpublic partial class Frm_appointment : Formdatabaseoperate myoperate = new databaseoperate(); public Frm_appointment()Ini

18、tializeComponent();private void button3_Click(object sender, EventArgs e)/获取病人的编号operateinfo.patientno = txt_patientno.Text.Trim();/实例化并显示打印预览窗口13求迎下载精品文档Frm_printreg frm = new Frm_printreg();frm.Show ();private void Frm_appointment_Load(object sender, EventArgs e)/进行病人名称的自动完成操作this.cmb_name.AutoCom

19、pleteMode = AutoCompleteMode.SuggestAppend;this.cmb_name.AutoCompleteSource = AutoCompleteSource.ListItems;/添加要进行操作的类型cmb_optype.Items.Add( 预约)cmb_optype.Items.Add( 预约挂号力cmb_optype.Items.Add( 现场挂号);cmb_optype.SelectedIndex = 0;/ 将病人信息的文本框控件设置为不可用SetControlFalse();/加载病人姓名this.getname();/添加医师名称以及预约科室D

20、ataSet getdocnameds = myoperate.getds(select ID,name,discipline from employee, employee);for (int i = 0; i getdocnameds.Tables0.Rows.Count; i+)将预约科室添加到ComboBo蛉件中this.cmb_docdiscipline.Items.Add(getdocnameds.Tables0.Rowsi2);/对医师信息进行数据绑定cmb_docname.DataSource = getdocnameds.Tables0;cmb_docname.Display

21、Member = name;cmb_docname.ValueMember = ID;/添加员工表中所有员工的信息,绑定到预约医生ComboB。蛇件中DataSet getappointdocds = myoperate.getds(select ID,name from employee,employee);cmb_appointdoc.DataSource = getappointdocds.Tables0;cmb_appointdoc.DisplayMember = name;cmb_appointdoc.ValueMember = ID;/添加挂号名称到ComboBo瓶件中DataSe

22、t getregnameds = myoperate.getds(select name from dict_reg, dict_reg);for (int i = 0; i getregnameds.Tables0.Rows.Count; i+) this.cmb_regname.Items.Add(getregnameds.Tables0.Rowsi0);cmb_regname.SelectedIndex = 0;private void SetControlFalse()txt_balance.Enabled = false;txt_birthday.Enabled = false;tx

23、t_cardname.Enabled = false;txt_celladdress.Enabled = false;txt_cellphone.Enabled = false;txt_email.Enabled = false;txt_patientno.Enabled = false;txt_sex.Enabled = false;txt_sidno.Enabled = false;txt_sidtype.Enabled = false;private void cmb_optype_SelectedIndexChanged(object sender, EventArgs e)this.

24、getname();if (cmb_optype.SelectedItem.ToString()=预约)cmb_regname.Enabled = false;cmb_regfee.Enabled = false;if (cmb_optype.SelectedItem.ToString()=预约挂号)cmb_regname.Enabled = true;cmb_regfee.Enabled = true;if (cmb_optype.SelectedItem.ToString()=现场挂号)cmb_regname.Enabled = true;cmb_regfee.Enabled = true

25、; private void getname()if (cmb_optype.SelectedItem.ToString()=预约)cmb_name.Items.Clear();DataSet getnameds = myoperate.getds(select name from patient, patient);for (int i = 0; i getnameds.Tables0.Rows.Count; i+) this.cmb_name.Items.Add(getnameds.Tables0.Rowsi0);if (cmb_optype.SelectedItem.ToString()

26、=预约挂号)cmb_name.Items.Clear();DataSetgetnameds = myoperate.getds(select patientname from appointment 15求迎下载精品文档where appointment_done=1, appoint);for (int i = 0; i getnameds.Tables0.Rows.Count; i+)this.cmb_name.Items.Add(getnameds.Tables0.Rowsi0);if (cmb_optype.SelectedItem.ToString()=现场挂号)cmb_name.I

27、tems.Clear();DataSet getnameds = myoperate.getds(select name from patient, patient);for (int i = 0; i getnameds.Tables0.Rows.Count; i+)this.cmb_name.Items.Add(getnameds.Tables0.Rowsi0);private void cmb_name_SelectedIndexChanged(object sender, EventArgs e)if (cmb_optype.SelectedItem.ToString()=挂号)str

28、ing tempstr = cmb_name.Text;DataSet chanagenameds = myoperate.getds(select * from patient where name= + tempstr + , patient);txt_sidtype.Text =chanagenameds.Tables0.Rows0sidtype.ToString();txt_sidno.Text = chanagenameds.Tables0.Rows0sidno.ToString();txt_sex.Text = chanagenameds.Tables0.Rows0sex.ToSt

29、ring();txt_patientno.Text =chanagenameds.Tables0.Rows0patientno.ToString();txt_email.Text = chanagenameds.Tables0.Rows0e_mair.ToString();txt_cellphone.Text =chanagenameds.Tables0.Rows0cellphone.ToString();txt_celladdress.Text =chanagenameds.Tables0.Rows0celladdress.ToString();txt_cardname.Text =chan

30、agenameds.Tables0.Rows0cardtype.ToString();txt_birthday.Text =chanagenameds.Tables0.Rows0birthday.ToString();txt_balance.Text =chanagenameds.Tables0.Rows0balance.ToString();DataSet appinfods=myoperate .getds(Select * from appointment where patientname= + tempstr + and appointment_done=1,appointment)

31、;cmb_docname.SelectedItem =appinfods.Tables0.Rows0doctor.ToString();cmb_docdiscipline.SelectedItem =appinfods.Tables0.Rows0discipline.ToString();dtp_thisdate.Value =Convert.ToDateTime(appinfods.Tables0.Rows0thisdate);dtp_thistime.Value =Convert.ToDateTime(appinfods.Tables0.Rows0thistime);elsestring

32、tempstr = cmb_name.Text;DataSet chanagenameds = myoperate.getds(select * from patient where name= + tempstr + , patient);txt_sidtype.Text =chanagenameds.Tables0.Rows0sidtype.ToString();txt_sidno.Text = chanagenameds.Tables0.Rows0sidno.ToString();txt_sex.Text = chanagenameds.Tables0.Rows0sex.ToString

33、();txt_patientno.Text =chanagenameds.Tables0.Rows0patientno.ToString();txt_email.Text = chanagenameds.Tables0.Rows0e_mail.ToString();txt_cellphone.Text =chanagenameds.Tables0.Rows0cellphone.ToString();txt_celladdress.Text =chanagenameds.Tables0.Rows0celladdress.ToString();txt_cardname.Text =chanagen

34、ameds.Tables0.Rows0cardtype.ToString();txt_birthday.Text =chanagenameds.Tables0.Rows0birthday.ToString();txt_balance.Text =chanagenameds.Tables0.Rows0balance.ToString(); private void btn_addappointment_Click(object sender, EventArgs e) if (cmb_optype.SelectedItem.ToString() !=预约)/如果操作类型不为预约时,则提示用户Me

35、ssageBox.Show(请将操作类型设为预约!); else/ 如果没有指定病人姓名,也不能进行预约if (cmb_name.Text =)MessageBox.Show(请选择预约人的姓名!力else /如果没有指定预约医生,不能进行预约if (cmb_docname.Text =)MessageBox.Show(请选择预约医生! !);else19求迎下载精品文档/同时要指定预约科室if (cmb_docdiscipline.Text =) MessageBox.Show(请选择预约科室!);else /如果预约的各个条件都符合,则调用执行插入语句插入到数据库中myoperate.ge

36、tcom(insert into appointment(patientname,patientno, +doctor,discipline,thisdate,thistime,appointment_done) + values。+ cmb_name.SelectedItem.ToString() + txt_patientno.Text.Trim() + , + cmb_docname.SelectedValue.ToString() + , + cmb_docdiscipline.SelectedItem.ToString() + , + dtp_thisdate.Value.ToSho

37、rtDateString() + , + dtp_thistime.Value.ToShortTimeString() + , + Convert.ToSByte(true) + );MessageBox.Show(添加预约成功!);/ 提示添加成功this.gridviewinit();重新刷新 GridView 控件 private void btn_addreg_Click(object sender, EventArgs e) if (cmb_optype.SelectedItem.ToString()=预约)MessageBox.Show(请将操作类型选成挂号!方可进行挂号!);el

38、se /this.getname(); if (cmb_name.Text =)MessageBox.Show(else请选择预约人的姓名!);if (cmb_docname.Text =)MessageBox.Show(elseif (cmb_docdiscipline.Text =)MessageBox.Show(elseif (cmb_regname.Text =)MessageBox.Show(请选择预约医生! !);请选择预约科室!);请选择挂号名称!);else if (cmb_optype.SelectedItem.ToString()=预约挂号)myoperate.getcom

39、(Update appointment setreg_name= + cmb_regname.SelectedItem.ToString() + ”,reg_fee= + cmb_regfee.Text +,reg_done=1 where patientno= + txt_patientno.Text.Trim() + );MessageBox.Show(添加挂号成功! !);this.gridviewinit();else myoperate.getcom(insert intoappointment(patientname,patientno,doctor,discipline,this

40、date,thistime,appointment_done ,reg_name,reg_fee,reg_done)+ values。 + cmb_name.Text + , +txt_patientno.Text.Trim() + , + cmb_docname.SelectedValue.ToString() + , +cmb_docdiscipline.SelectedItem.ToString() + , +dtp_thisdate.Value.ToShortDateString() + , + dtp_thistime.Value.ToShortTimeString()+ ,1,+c

41、mb_regname .SelectedItem .ToString ()+,+cmb_regfee .Text +,1);MessageBox.Show(添加挂号成功! !);this.gridviewinit(); private void cmb_regtype_SelectedIndexChanged(object sender, EventArgs e)this.getname();private void gridviewinit()/获取预约表中的指定医师在指定时间内的预约信息DataSet view1ds = myoperate.getds(select appointment

42、id as预约号,+patientname as病人姓名,patientno as病历号,doctor as预约医生,+discipline as预约科室,thistime as预约时间 from appointment +where doctor=+cmb_appointdoc.SelectedValue .ToString () + and thisdate=+dtp_appointdate .Value .ToShortDateString () +, appointment);/绑定预约信息到DataGridView控件上this.dataGridView1.DataSource = view1ds.Tables0;/获取值班表中当前日期和指定医师的值班信息DataSet view2ds = myoperate.getds(select ID as编号,doc as 医师,+Part as科室,StartDate as 开始时间,EndDate as 结束时间,+CurrentDate as日期 from duty where doc=+ cmb_appointdoc.SelectedValue.ToString() +and currentDate=+System.DateT

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1