《2022年JAVA医院管理系统课程设计 .pdf》由会员分享,可在线阅读,更多相关《2022年JAVA医院管理系统课程设计 .pdf(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计说明书NO.1沈阳大学医院管理系统1.课程设计的目的面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。现代化的医院也应该有现代化的管理系统。在科技日益发达的今天,人们的身体健康也在不断受到重视。因此,医院进行现代化管理就变得尤为重要,需要建立一个使用的医院管理系统。为了进一步巩固JAVA 相关的知识,深刻把握 JAVA 语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了JAVA 程序设计课程设计。通过此次课程设计,使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握
2、 JAVA 语言的编程思想及面向对象程序设计的方法,为今后的学习和工作打下基础。2.设计方案论证2.1开发环境JAVA 编程工具 JDK 1.5.0 ,操作系统 Windows 7. 2.2系统功能描述系统需要完成功能主要有:(1)医生各种信息的输入,包括员工基本细细、职称、岗位。(2)医生各种的查询、修改,包括员工基本信息、职称、岗位、工资等。(3)医生的人事调动管理。(4)病人信息、病床、药剂、仪器的管理。(5)系统用户管理、权限管理。2.3系统功能模块设计在系统功能分析的基础上,考虑Microsoft Visual Studio 2008 程序编制的特点,得到如图 1 所示的系统功能模块
3、图。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 29 页 - - - - - - - - - 课程设计说明书NO.2沈阳大学图 1 系统功能模块图2.4数据库需求分析在数据库应用系统的开发过程中,数据库的结构设计是一个非常重要的问题。数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构会减小数据库的存储量,数据的完整性和一致性比较高,系统具有较快的相应速度,简化基于此数据库的应用程序的实现等。在数据库系统开始设计的时候应该尽量考虑全面,尤其
4、应该仔细考虑用户的各种需求,避免浪费不要的人力和物力。数据库需求分析是数据结构设计的第一阶段,是非常重要的一个阶段。 在这个阶段主要是收集基本数据、数据结构以及确定数据处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础。在仔细调查医院管理过程的基础上, 我们得到本系统所处理的数据关系如图2所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 29 页 - - - - - - - - - 课程设计说明书NO.3沈阳大学图 2 数据关系图2.5数据库设计通过对医院管
5、理的内容和数据关系分析,我们设计的数据项和数据结构如下: 员工基本状况包括的数据项有员工号、员工姓名、性别、所在部门、身份证号、生日、籍贯、国籍、民族、婚姻状况、健康状况、参加工作时间、员工状态、家庭住址、联系电话等。员工工资状况包括的数据项有员工号、工资项别、工资金额等。医院工作岗位信息包括的数据项有工作岗位代号、工作岗位名称等。医院部门信息包括的数据项有部门代号、部门名称、部门负责人等。病人信息包括的数据项有病人姓名、病人性别、入院时间、病人所属科室、病人状况、病人主治医生、房间号、病床号等。药剂资源管理信息包括的数据项有药剂代号、药剂名称、药剂价格、药剂库存数量、备注等。医疗仪器管理包括
6、的数据项有仪器代号、仪器名称、 仪器价格、 仪器数量、 备注等。这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及确定他们之间的关系, 为后面的逻辑结构设计打下基础。本实例根据上面的设计规划出的实体有员工实体、部门实体、岗位实体、病人实体、药剂实体、仪器实体。实体和实体之间的关系E-R 图如图 3 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 29 页 - - - - - - - - - 课程设计说明书NO.4沈阳大学图 3 实体之间关系E-
7、R 图我们需要将上面的数据库概念结构转化为Microsoft Visual Studio 2008 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,我们就可以形成数据库中的表格以及各个表格之间的关系。医院管理系统数据库中各个表格的设计结果如表。每个表格对应在数据库中的一个表。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 29 页 - - - - - - - - - 课程设计说明书NO.5沈阳大学名师资料总结 - - -精品资
8、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 29 页 - - - - - - - - - 课程设计说明书NO.6沈阳大学2 .6功能模块的创建首先设计的是登录界面(如图4 所示,所有程序代码参照“ 程序原代码 ” ) 。图 4 登陆界面然后设计的是登录后的主界面(如图5 所示) 。图 5 主界面之后设计病人挂号界面(如图6 所示) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页
9、,共 29 页 - - - - - - - - - 课程设计说明书NO.7沈阳大学图 6 病人挂号界面药品管理界面(如图7所示)图 7 药品管理界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 29 页 - - - - - - - - - 课程设计说明书NO.8沈阳大学3. 设计结果分析首先我们运行程序,弹出登录界面在输入用户名和密码之后(如图8 所示) ,进入主界面(如图 9 所示) 。图 8 登录图 9 登录后的主界面然后我们进行病人登记(如图10 所示) ,在输入
10、一系列的信息之后,单击添加挂号,成功添加一个新挂号。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 29 页 - - - - - - - - - 课程设计说明书NO.9沈阳大学图 10 病人挂号界面之后我们在数据库中添加一系列的相关数据,再进行退药管理(如图11所示) 。图 11 退药界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 29 页 -
11、- - - - - - - - 课程设计说明书NO.10沈阳大学4.设计体会通过这一次 JAVA 课程设计,我深深的理解到面向对象编程的方便与快捷和JAVA的重要性,也使我本学期所学的JAVA 知识得到巩固和应用,在设计的过程中我遇到了很到问题, 为了解决问题进行了各种各样的实验和资料的查找,这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,丰富知识。它还让我学会了在网上查阅那些无限的资料。通过对此课题的开发,使我对用JAVA 开发系统有了一个比较清楚的认识,体会到理论和实践的重要性。由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计
12、不够美观,异常出错处理比较差等多方面问题, 这些都有待进一步完善和提高。本次课程设计对我将来的学习工作必会起到很大的帮助作用。5.参考文献1. 范 立 南 ,刘 天 惠 等 . SQL Server 2000 实 用 教 程 M. 北 京 : 清 华 大 学 出 版社,2004.02:47-138 2.李诚等. Java2简明教程 M ,第 2 版. 北京:清华大学出版社, 2004.08:165-201 3. 陈轶.姚晓昆编著 .Java程序设计实验指导 .北京:清华大学出版社,2006 4. 杨昭编著 .二级 Java语言程序设计教程 .北京:中国水利水电出版社,2006 5 .美Herb
13、ert Schidt 著.Java参考大全 .鄢爱兰 .鹿江春译 .北京:清华大学出版社, 2006 附录:namespace Hospital_MIS public partial class Frm_login : Form databaseoperate myoperate = new databaseoperate (); public Frm_login() InitializeComponent(); private void btn_exit_Click( object sender, EventArgs e) 名师资料总结 - - -精品资料欢迎下载 - - - - - - -
14、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 29 页 - - - - - - - - - 课程设计说明书NO.11沈阳大学 Application .Exit(); private void Frm_login_FormClosed( object sender, FormClosedEventArgs e) Application .Exit(); private void btn_ok_Click( object sender, EventArgs e) /首先查询数据库,获取与指定用户名和密码匹配的信息SqlDataReade
15、r sqlread = myoperate.getread (select name,password,discipline from employee + where name= + txt_name.Text.Trim() + and password= + txt_pwd.Text.Trim() + ); try sqlread.Read();/读取 SqlDataReader if (sqlread.HasRows)/如果存在匹配行 /在operateinfo中记录用户名信息operateinfo.operatename = txt_name.Text.Trim(); /显示主窗体Fr
16、m_Main newfrm = new Frm_Main (); this.Hide(); newfrm.Show(); else /如果密码错误,则显示提示信息并要求用户重新输入MessageBox.Show( 用户名或密码错误!, 提示 , 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 29 页 - - - - - - - - - 课程设计说明书NO.12沈阳大学MessageBoxButtons.OK, MessageBoxIcon.Information);
17、txt_name.Text = ; txt_pwd.Text = ; txt_name.Focus(); finally /如果己经实例化了SqlDataReader if (sqlread != null) /关闭SqlDataReader sqlread.Close(); 主界面代码及挂号界面代码namespace Hospital_MIS public partial class Frm_appointment : Form databaseoperate myoperate = new databaseoperate (); public Frm_appointment() Initi
18、alizeComponent(); private void button3_Click( object sender, EventArgs e) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 29 页 - - - - - - - - - 课程设计说明书NO.13沈阳大学/获取病人的编号operateinfo.patientno = txt_patientno.Text.Trim(); /实例化并显示打印预览窗口Frm_printreg frm = new Frm_p
19、rintreg (); frm.Show (); private void Frm_appointment_Load( object sender, EventArgs e) /进行病人名称的自动完成操作this.cmb_name.AutoCompleteMode = AutoCompleteMode .SuggestAppend; this.cmb_name.AutoCompleteSource = AutoCompleteSource .ListItems; /添加要进行操作的类型cmb_optype.Items.Add( 预约 ); cmb_optype.Items.Add( 预约挂号
20、); cmb_optype.Items.Add( 现场挂号 ); cmb_optype.SelectedIndex = 0; /将病人信息的文本框控件设置为不可用SetControlFalse(); /加载病人姓名this.getname(); /添加医师名称以及预约科室DataSet getdocnameds = myoperate.getds (select ID,name,discipline from employee , employee ); for (int i = 0; i getdocnameds.Tables0.Rows.Count; i+) /将预约科室添加到ComboB
21、ox控件中this.cmb_docdiscipline.Items.Add(getdocnameds.Tables0.Rowsi2); /对医师信息进行数据绑定cmb_docname.DataSource = getdocnameds.Tables0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 29 页 - - - - - - - - - 课程设计说明书NO.14沈阳大学cmb_docname.DisplayMember = name; cmb_docname.V
22、alueMember = ID ; /添加员工表中所有员工的信息,绑定到预约医生ComboBox控件中DataSet getappointdocds = myoperate.getds(select ID,name from employee , employee); cmb_appointdoc.DataSource = getappointdocds.Tables0; cmb_appointdoc.DisplayMember = name; cmb_appointdoc.ValueMember = ID ; /添加挂号名称到ComboBox控件中DataSet getregnameds =
23、 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; txt_cardna
24、me.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; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
25、 第 14 页,共 29 页 - - - - - - - - - 课程设计说明书NO.15沈阳大学private void cmb_optype_SelectedIndexChanged(object sender, EventArgs e) this.getname(); if (cmb_optype.SelectedItem.ToString() = 预约 ) cmb_regname.Enabled = false; cmb_regfee.Enabled = false; if (cmb_optype.SelectedItem.ToString() = 预约挂号 ) cmb_regname
26、.Enabled = true; cmb_regfee.Enabled = true; if (cmb_optype.SelectedItem.ToString() = 现场挂号 ) cmb_regname.Enabled = true; cmb_regfee.Enabled = true; private void getname() if (cmb_optype.SelectedItem.ToString() = 预约 ) cmb_name.Items.Clear(); DataSet getnameds = myoperate.getds(select name from patient
27、, patient ); for (int i = 0; i getnameds.Tables0.Rows.Count; i+) this.cmb_name.Items.Add(getnameds.Tables0.Rowsi0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 29 页 - - - - - - - - - 课程设计说明书NO.16沈阳大学if (cmb_optype.SelectedItem.ToString() = 预约挂号 ) cmb_name.I
28、tems.Clear(); DataSet getnameds = myoperate.getds(select patientname from appointment 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.Items.Clear(); Da
29、taSet 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() = 挂号 ) string te
30、mpstr = cmb_name.Text; DataSet chanagenameds = myoperate.getds( select * from patient where name= + tempstr + , patient); txt_sidtype.Text = chanagenameds.Tables0.Rows0 sidtype.ToString(); txt_sidno.Text = chanagenameds.Tables0.Rows0sidno.ToString(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
31、- - - - 名师精心整理 - - - - - - - 第 16 页,共 29 页 - - - - - - - - - 课程设计说明书NO.17沈阳大学txt_sex.Text = chanagenameds.Tables0.Rows0 sex.ToString(); txt_patientno.Text = chanagenameds.Tables0.Rows0 patientno.ToString(); txt_email.Text = chanagenameds.Tables0.Rows0e_mail.ToString(); txt_cellphone.Text = chanagena
32、meds.Tables0.Rows0 cellphone.ToString(); txt_celladdress.Text = chanagenameds.Tables0.Rows0 celladdress.ToString(); txt_cardname.Text = chanagenameds.Tables0.Rows0 cardtype.ToString(); txt_birthday.Text = chanagenameds.Tables0.Rows0birthday.ToString(); txt_balance.Text = chanagenameds.Tables0.Rows0
33、balance.ToString(); DataSetappinfods=myoperate .getds( Select * from appointment where patientname= + tempstr + and appointment_done=1 ,appointment ); cmb_docname.SelectedItem = appinfods.Tables0.Rows0doctor .ToString(); cmb_docdiscipline.SelectedItem = appinfods.Tables0.Rows0 discipline .ToString()
34、; dtp_thisdate.Value = Convert.ToDateTime(appinfods.Tables0.Rows0thisdate); dtp_thistime.Value = Convert.ToDateTime(appinfods.Tables0.Rows0thistime); else string tempstr = cmb_name.Text; DataSet chanagenameds = myoperate.getds( select * from patient where name= + tempstr + , patient); txt_sidtype.Te
35、xt = chanagenameds.Tables0.Rows0 sidtype.ToString(); txt_sidno.Text = chanagenameds.Tables0.Rows0sidno.ToString(); txt_sex.Text = chanagenameds.Tables0.Rows0 sex.ToString(); txt_patientno.Text = chanagenameds.Tables0.Rows0 patientno.ToString(); txt_email.Text = chanagenameds.Tables0.Rows0e_mail.ToSt
36、ring(); txt_cellphone.Text = chanagenameds.Tables0.Rows0 cellphone.ToString(); txt_celladdress.Text = chanagenameds.Tables0.Rows0 celladdress.ToString(); txt_cardname.Text = chanagenameds.Tables0.Rows0 cardtype.ToString(); txt_birthday.Text = chanagenameds.Tables0.Rows0birthday.ToString(); 名师资料总结 -
37、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 29 页 - - - - - - - - - 课程设计说明书NO.18沈阳大学txt_balance.Text = chanagenameds.Tables0.Rows0 balance.ToString(); private void btn_addappointment_Click( object sender, EventArgs e) if (cmb_optype.SelectedItem.ToString() != 预约) /如果
38、操作类型不为预约时,则提示用户MessageBox.Show(请将操作类型设为预约!); else /如果没有指定病人姓名,也不能进行预约if (cmb_name.Text = ) MessageBox.Show(请选择预约人的姓名!); else /如果没有指定预约医生,不能进行预约if (cmb_docname.Text = ) MessageBox.Show( 请选择预约医生!); else /同时要指定预约科室if (cmb_docdiscipline.Text = ) MessageBox.Show( 请选择预约科室!); else /如果预约的各个条件都符合,则调用执行插入语句插入
39、到数据库中myoperate.getcom(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() + , 名师资
40、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 29 页 - - - - - - - - - 课程设计说明书NO.19沈阳大学+ dtp_thisdate.Value.ToShortDateString() + , + dtp_thistime.Value.ToShortTimeString() + , + Convert.ToSByte(true) + ); MessageBox.Show( 添加预约成功!);/提示添加成功this.gridview init(); /重新
41、刷新 GridView 控件 private void btn_addreg_Click( object sender, EventArgs e) if (cmb_optype.SelectedItem.ToString() = 预约 ) MessageBox.Show(请将操作类型选成挂号!方可进行挂号!); else /this.getname(); if (cmb_name.Text = ) MessageBox.Show( 请选择预约人的姓名!); else if (cmb_docname.Text = ) MessageBox.Show( 请选择预约医生!); else if (cm
42、b_docdiscipline.Text = ) MessageBox.Show( 请选择预约科室!); else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 29 页 - - - - - - - - - 课程设计说明书NO.20沈阳大学if (cmb_regname.Text = ) MessageBox.Show( 请选择挂号名称!); else if (cmb_optype.SelectedItem.ToString() = 预约挂号 ) myoperate.
43、getcom(Update appointment set reg_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 into appointment(patientname,patientno,doctor,disci
44、pline,thisdate,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.ToShortTimeSt
45、ring() + ,1, +cmb_regname .SelectedItem .ToString ()+,+cmb_regfee .Text + ,1) ); MessageBox.Show( 添加挂号成功!); this.gridviewinit(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 29 页 - - - - - - - - - 课程设计说明书NO.21沈阳大学 private void cmb_regtype_SelectedIndexChange
46、d( object sender, EventArgs e) this.getname(); private void gridview init() /获取预约表中的指定医师在指定时间内的预约信息DataSet view1ds = myoperate.getds( select appointmentid as 预约号 ,+ patientname as 病人姓名 ,patientno as 病历号 ,doctor as 预约医生 ,+ discipline as 预约科室 ,thistime as 预约时间 from appointment + where doctor= +cmb_app
47、ointdoc.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 开始时间
48、 ,EndDate as 结束时间 ,+ CurrentDate as 日期 from duty where doc= + cmb_appointdoc.SelectedValue.ToString() + and currentDate= +System.DateTime .Now.Date.ToString()+ , 值班表 ); /将值班信息保存到DataGridView2 控件上this.dataGridView2.DataSource = view2ds.Tables0; private void cmb_appointdoc_SelectedIndexChanged( object
49、 sender, EventArgs e) this.gridviewinit(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 29 页 - - - - - - - - - 课程设计说明书NO.22沈阳大学 /根据选择的挂号名称获得挂号费用private void cmb_regname_SelectedIndexChanged(object sender, EventArgs e) string tempstr = cmb_regname.SelectedIte
50、m.ToString(); DataSet regfreeds = myoperate.getds(select price from dict_reg where name= + tempstr + , dict_reg ); for (int i = 0; i regfreeds.Tables0.Rows.Count; i+) this.cmb_regfee.Text = regfreeds.Tables0.Rowsi0.ToString(); private void btn_addnewpatient_Click( object sender, EventArgs e) Frm_pat