JAVA 医院管理系统课程设计电子教案Word文件下载.docx
《JAVA 医院管理系统课程设计电子教案Word文件下载.docx》由会员分享,可在线阅读,更多相关《JAVA 医院管理系统课程设计电子教案Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
数据库需求分析是数据结构设计的第一阶段,是非常重要的一个阶段。
在这个阶段主要是收集基本数据、数据结构以及确定数据处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础。
在仔细调查医院管理过程的基础上,我们得到本系统所处理的数据关系如图2所示。
图2数据关系图
2.5数据库设计
通过对医院管理的内容和数据关系分析,我们设计的数据项和数据结构如下:
员工基本状况包括的数据项有员工号、员工姓名、性别、所在部门、身份证号、生日、籍贯、国籍、民族、婚姻状况、健康状况、参加工作时间、员工状态、家庭住址、联系电话等。
员工工资状况包括的数据项有员工号、工资项别、工资金额等。
医院工作岗位信息包括的数据项有工作岗位代号、工作岗位名称等。
医院部门信息包括的数据项有部门代号、部门名称、部门负责人等。
病人信息包括的数据项有病人姓名、病人性别、入院时间、病人所属科室、病人状况、病人主治医生、房间号、病床号等。
药剂资源管理信息包括的数据项有药剂代号、药剂名称、药剂价格、药剂库存数量、备注等。
医疗仪器管理包括的数据项有仪器代号、仪器名称、仪器价格、仪器数量、备注等。
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及确定他们之间的关系,为后面的逻辑结构设计打下基础。
本实例根据上面的设计规划出的实体有员工实体、部门实体、岗位实体、病人实体、药剂实体、仪器实体。
实体和实体之间的关系E-R图如图3所示。
图3实体之间关系E-R图
我们需要将上面的数据库概念结构转化为MicrosoftVisualStudio2008数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
在上面的实体以及实体之间关系的基础上,我们就可以形成数据库中的表格以及各个表格之间的关系。
医院管理系统数据库中各个表格的设计结果如表。
每个表格对应在数据库中的一个表。
2.6功能模块的创建
首先设计的是登录界面(如图4所示,所有程序代码参照“程序原代码”)。
图4登陆界面
然后设计的是登录后的主界面(如图5所示)。
图5主界面
之后设计病人挂号界面(如图6所示)。
图6病人挂号界面
药品管理界面(如图7所示)
图7药品管理界面
3.设计结果分析
首先我们运行程序,弹出登录界面在输入用户名和密码之后(如图8所示),进入主界面(如图9所示)。
图8登录
图9登录后的主界面
然后我们进行病人登记(如图10所示),在输入一系列的信息之后,单击添加挂号,成功添加一个新挂号。
图10病人挂号界面
之后我们在数据库中添加一系列的相关数据,再进行退药管理(如图11所示)。
图11退药界面
4.设计体会
通过这一次JAVA课程设计,我深深的理解到面向对象编程的方便与快捷和JAVA的重要性,也使我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,为了解决问题进行了各种各样的实验和资料的查找,这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,丰富知识。
它还让我学会了在网上查阅那些无限的资料。
通过对此课题的开发,使我对用JAVA开发系统有了一个比较清楚的认识,体会到理论和实践的重要性。
由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。
本次课程设计对我将来的学习工作必会起到很大的帮助作用。
5.参考文献
[1].范立南,刘天惠等.SQLServer2000实用教程[M].北京:
清华大学出版社,2004.02:
47-138
[2].李诚等.Java2简明教程[M],第2版.北京:
清华大学出版社,2004.08:
165-201
[3].陈轶.姚晓昆编著.Java程序设计实验指导.北京:
清华大学出版社,2006
[4].杨昭编著.二级Java语言程序设计教程.北京:
中国水利水电出版社,2006
[5].[美]HerbertSchidt著.Java参考大全.鄢爱兰.鹿江春译.北京:
附录:
namespaceHospital_MIS
{
publicpartialclassFrm_login:
Form
{
databaseoperatemyoperate=newdatabaseoperate();
publicFrm_login()
InitializeComponent();
}
privatevoidbtn_exit_Click(objectsender,EventArgse)
Application.Exit();
privatevoidFrm_login_FormClosed(objectsender,FormClosedEventArgse)
privatevoidbtn_ok_Click(objectsender,EventArgse)
{//首先查询数据库,获取与指定用户名和密码匹配的信息
SqlDataReadersqlread=myoperate.getread
("
selectname,password,disciplinefromemployee"
+
"
wherename='
"
+txt_name.Text.Trim()+
'
andpassword='
+txt_pwd.Text.Trim()+"
);
try
sqlread.Read();
//读取SqlDataReader
if(sqlread.HasRows)//如果存在匹配行
{//在operateinfo中记录用户名信息
operateinfo.operatename=
txt_name.Text.Trim();
//显示主窗体
Frm_Mainnewfrm=newFrm_Main();
this.Hide();
newfrm.Show();
else
{//如果密码错误,则显示提示信息并要求用户重新输入
MessageBox.Show("
用户名或密码错误!
"
提示"
MessageBoxButtons.OK,
MessageBoxIcon.Information);
txt_name.Text="
;
txt_pwd.Text="
txt_name.Focus();
finally
{//如果己经实例化了SqlDataReader
if(sqlread!
=null)
{//关闭SqlDataReader
sqlread.Close();
}
主界面代码及挂号界面代码
publicpartialclassFrm_appointment:
publicFrm_appointment()
privatevoidbutton3_Click(objectsender,EventArgse)
//获取病人的编号
operateinfo.patientno=txt_patientno.Text.Trim();
//实例化并显示打印预览窗口
Frm_printregfrm=newFrm_printreg();
frm.Show();
privatevoidFrm_appointment_Load(objectsender,EventArgse)
//进行病人名称的自动完成操作
this.cmb_name.AutoCompleteMode=AutoCompleteMode.SuggestAppend;
this.cmb_name.AutoCompleteSource=AutoCompleteSource.ListItems;
//添加要进行操作的类型
cmb_optype.Items.Add("
预约"
预约挂号"
现场挂号"
cmb_optype.SelectedIndex=0;
//将病人信息的文本框控件设置为不可用
SetControlFalse();
//加载病人姓名
this.getname();
//添加医师名称以及预约科室
DataSetgetdocnameds=myoperate.getds
selectID,name,disciplinefromemployee"
employee"
for(inti=0;
i<
getdocnameds.Tables[0].Rows.Count;
i++)
{//将预约科室添加到ComboBox控件中
this.cmb_docdiscipline.Items.Add(getdocnameds.Tables[0].Rows[i][2]);
//对医师信息进行数据绑定
cmb_docname.DataSource=getdocnameds.Tables[0];
cmb_docname.DisplayMember="
name"
cmb_docname.ValueMember="
ID"
//添加员工表中所有员工的信息,绑定到预约医生ComboBox控件中
DataSetgetappointdocds=myoperate.getds("
selectID,namefromemployee"
cmb_appointdoc.DataSource=getappointdocds.Tables[0];
cmb_appointdoc.DisplayMember="
cmb_appointdoc.ValueMember="
//添加挂号名称到ComboBox控件中
DataSetgetregnameds=myoperate.getds("
selectnamefromdict_reg"
dict_reg"
getregnameds.Tables[0].Rows.Count;
this.cmb_regname.Items.Add(getregnameds.Tables[0].Rows[i][0]);
cmb_regname.SelectedIndex=0;
privatevoidSetControlFalse()
txt_balance.Enabled=false;
txt_birthday.Enabled=false;
txt_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;
privatevoidcmb_optype_SelectedIndexChanged(objectsender,EventArgse)
if(cmb_optype.SelectedItem.ToString()=="
)
cmb_regname.Enabled=false;
cmb_regfee.Enabled=false;
cmb_regname.Enabled=true;
cmb_regfee.Enabled=true;
privatevoidgetname()
cmb_name.Items.Clear();
DataSetgetnameds=myoperate.getds("
selectnamefrompatient"
patient"
getnameds.Tables[0].Rows.Count;
this.cmb_name.Items.Add(getnameds.Tables[0].Rows[i][0]);
selectpatientnamefromappointmentwhereappointment_done=1"
appoint"
)
privatevoidcmb_name_SelectedIndexChanged(objectsender,EventArgse)
挂号"
)
stringtempstr=cmb_name.Text;
DataSetchanagenameds=myoperate.getds("
select*frompatientwherename='
+tempstr+"
txt_sidtype.Text=chanagenameds.Tables[0].Rows[0]["
sidtype"
].ToString();
txt_sidno.Text=chanagenameds.Tables[0].Rows[0]["
sidno"
txt_sex.Text=chanagenameds.Tables[0].Rows[0]["
sex"
txt_patientno.Text=chanagenameds.Tables[0].Rows[0]["
patientno"
txt_email.Text=chanagenameds.Tables[0].Rows[0]["
e_mail"
txt_cellphone.Text=chanagenameds.Tables[0].Rows[0]["
cellphone"
txt_celladdress.Text=chanagenameds.Tables[0].Rows[0]["
celladdress"
txt_cardname.Text=chanagenameds.Tables[0].Rows[0]["
cardtype"
txt_birthday.Text=chanagenameds.Tables[0].Rows[0]["
birthday"
txt_balance.Text=chanagenameds.Tables[0].Rows[0]["
balance"
DataSetappinfods=myoperate.getds("
Select*fromappointmentwherepatientname='
andappointment_done='
1'
"
appointment"
cmb_docname.SelectedItem=appinfods.Tables[0].Rows[0]["
doctor"
cmb_docdiscipline.SelectedItem=appinfods.Tables[0].Rows[0]["
discipline"
dtp_thisdate.Value=Convert.ToDateTime(appinfods.Tables[0].Rows[0]["
thisdate"
]);
dtp_thistime.Value=Convert.ToDateTime(appinfods.Tables[0].Rows[0]["
thistime"
privatevoidbtn_addappointment_Click(objectsender,EventArgse)
if(cmb_optype.SelectedItem.ToString()!
="
{//如果操作类型不为预约时,则提示用户
MessageB