1、学校门诊管理系统的设计与实现目 录第一章 开发背景4第二章 功能描述5第三章 业务流程分析6第四章 数据流程分析74.1数据流程图74.2数据字典7第五章 概念模型设计9第六章 逻辑模型设计和优化11第七章 物理设计和实施12第八章 系统测试14第九章 课程设计心得体会21参考文献2221第一章 开发背景现今实验室管理一般都以办公人员进行批次记录,其的繁索给具有强烈时间观念的办公人员带来了诸多不便,实验室设备管理缺少一种完善的设备管理软件,为了对设备基本情况管理方便,开发人员完成了全面的调查与分析,同时与目标用户进行了多次深入沟通,并在次基础上着手开发实验室管理系统软件。通过课程设计,让学生能
2、够全面了解数据库应用系统的整个开发过程,验证课堂教学中的理论,掌握数据库系统的基本概念,基本原理及应用技术,掌握SQL语言,真正实现实践检真理。信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。实验室设备管理迫切需要与计算机联系,不仅可以减轻办公人员的工作同时更能让实验室设备系统管理。计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。为了适应现代社会人们高度强烈的时间观念,实验室设备管理系统软件将会为实验室设备管理带来了极大的方便。第二章 功能描述经过调研及分析,实验室设备管理系统主要完成以下功能:(1)设备入库信息管理主要是管理员
3、对新增加的设备进行登记,包括编号、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等。(2)设备运行状况统计可按照设备名称、机房名称以及日期等统计实验室设备运行状况。该功能主要是为了使用户能够实时掌握实验室设备的运行状况,所做的主要操作就是查询和统计,所以数据以只读形式出现。(3)报修设备管理对于有严重问题(故障)的需要修理的设备,记录修理日期、设备名、修理厂家、修理费、责任人等,随时对设备修理情况进行统计,并能够按类别、修理厂家和修理日期查询修理情况。(4)报废设备管理对已经彻底损坏的设备作报废处理,详细记录报废设备的有关信息,并随时对设备报废情况进行统计和查询,要求能够按类别和时
4、间段(年、月或季度)查询。第三章 业务流程分析业务流程图是为了让我们一目了然的看清数据库的运行过程,让设计管理员知道数据库的结构,加以分析已熟悉它的工作过程。并快速建立数据库,数据库设计人员在设计数据库时的模型图。学校门诊管理系统业务流程图如图3-1:报废信息设备信息类别/时间段反馈管理员P 2.1用户登录P 2.2设备查询P 2.5设备审核P 2.6报废设备处理用户采购部 设备使用状况图3-1 实验设备管理系统业务流程图四章 数据流程分析4.1数据流程图数据流程图是为了让我们一目了然的看清数据库中的数据的运行过程,让设计管理员知道数据库的数据流向,加以分析已熟悉它的工作过程。并快速建立数据库
5、,数据库设计人员在设计数据库时的模型图。实验室设备管理系统设备查询管理现有设备管理设备购进管理设备使用管理按类别查询按时间段查询图4-1 实验设备管理数据流程图4.2数据字典(1)数据流的描述数据流编号: D001数据流名称: 设备入库信息 简述:所要入库设备的信息数据流来源:管理员数据流去向:设备入库管理数据流组成:编号+设备名+型号+规格等数据流量:1000/天高峰流量:3000/天数据流编号: D002数据流名称: 设备运行信息 简述:管理员登记设备是否良好运行管理员发现设备受损的信息数据流来源:设备入库信息数据流去向:管理员数据流组成:编号+设备名+机房名等 数据流量:100/天 高峰
6、流量:500/天数据流编号: D003数据流名称: 设备彻底受损 简述:管理员发现设备受损的信息数据流来源:管理员数据流去向:报修设备管理数据流组成:编号+日期+设备名+机房名等 数据流量:100/天 高峰流量:400/天数据流编号: D004数据流名称: 设备运行状况 简述:管理员发现设备彻底受损的信息数据流来源:报修设备管理数据流去向:设备报废信息数据流组成:日期+设备名+机房名+报废情况等 数据流量:100/天 高峰流量:400/天(2)处理逻辑的描述 处理逻辑编号:P001处理逻辑名称:设备入库管理 简述:管理设备入库输入的数据流:D001设备入库信息处理描述:根据编号,设备名,型号,
7、规格等信息,进行设备入库管理,管理出设备入库后所要进入的机房名输出的数据流: D002设备运行信息处理频率: 500次/天处理逻辑编号:P002处理逻辑名称:设备运行状况 简述:记录设备是否良好运行 输入的数据流:D002 设备运行信息处理描述:根据实验室设备的是否良好运行,将此情况记录下来,管理员进行处理处理频率: 1000次/天 处理逻辑编号: P003处理逻辑名称:保修设备管理 简述:设备受损情况 输入的数据流:D003 设备受损处理描述:管理员检查设备是否受损,若受损则进行报修处理,若彻底受损则进行报废处理处理频率:100次/天(3)数据存储的描述数据存储编号:F001数据存储名称:设
8、备信息 简述:入库设备的基本信息数据存储组成: 编号+设备名+型号+规格+单价+数量+购置日期+生产日期+生产家+购买人关键字:编号,设备名,型号相关联的处理:P001数据存储编号:F002数据存储名称:报修设备信息 简述:受损设备信息登录数据存储组成:编号+修理日期+设备名+型号+修理厂家+修理费+负责人关键字:编号,修理日期,修理厂家相关联的处理:P002,P003 数据存储编号:F003数据存储名称:报废设备信息 简述:报废设备信息登录数据存储组成:编号+报废日期+设备名+型号+报废情况+生产厂家关键字:编号,报废日期相关联的处理:P002,P003数据存储编号:F004数据存储名称:设
9、备运行状况信息 简述:设备某天的运行状况登陆数据存储组成:设备名+机房号+日期+型号+规格+生产厂家关键字:设备名,机房号,日期相关联的处理:P002(4)外部实体的描述外部实体编号:S001外部实体名称:管理员简 述:管理实验室设备的人输出的数据流:D001,D003第五章 概念模型设计用户的需求具体体现在对各种信息的提供、保存、更新和查询,这就要求数据库能充分满足各种数据的输出和输入。通过对上述系统功能的分析,针对实验室设备管理要求,设计如下所示的数据项:(1)实验室设备信息包括类别、型号、单价、数量、购买日期、责任人、生产厂家、生产厂商、购买人保修时间。 图5-1实验设备实体E-R图(2
10、)设备运行状况包括机房名称、日期、运行。设备名机房名日期是否运行行图5-2设备运行实体E-R图(3)设备保修状况保修日期、修理厂家、保修费、责任人、日期。设备名修理厂家保修费保修日期责任人日期图5-3 设备保修实体E-R图 (4)设备报废状况包括设备、生产厂家、报废日期、责任人、生产日期。设备名生产厂家报废日期责任人生产日期图5-4 设备报废E-R图第六章 逻辑模型设计和优化根据实验设备管理系统各实体E-R图写出各信息的情况并根据的需求分析学校门诊管理系统数据库中各个表中的数据结果如下列表所示,每个表格表示在数据库中的一个表的信息。表-1设备管理表编号设备名型号规格单价数量购置日期生产日期生产
11、厂家购买人表-2运行状况表编号设备名型号修理日期修理厂家修理费负责人表-3报废信息表设备名机房号日期型号规格生产厂家运行状况表-4保修信息表编号报废日期设备号型号报废情况生产厂家第七章 物理设计和实施得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等,可以采用系统的默认设置。数据库实施主要包括在具体的DBMS中创建数据库和表的过程,本设计所选用的DBMS为SQL SERVER2005,有关创建数据库和关系表的SQL语句如下所示:(1)创建数据库/*=*/*database Exp */*=*/create databas
12、e Exp(2)创建表/*=*/* Table: ExpId */*=*/create table ExpId( Expname char(100) not null, /*登录名*/Exppwd int not null, /*密码*/)EXEC sp_addlogin 1, 123;EXEC sp_adduser 1; /*登录名*/*=*/* Table: ExpMg, 设备管理信息表*/*=*/create table ExpMg (Exidintnot null,/*编号*/Exnamechar(100)not null,/*设备名*/Exmodelchar(100) not nul
13、l,/*型号*/Exsizeint null,/*规格*/Expriceintnull,/*单价*/Exquantity int null,/*数量*/Exdate int null,/*生产日期*/ExsellDateintnull,/*购置日期*/Exseller char(100)null,/*生产厂家*/Exbuyerchar(100)null,/*购买人*/constraint PK_ExpMg primary key (Exid, EXname, Exmodel) /*主键约束*/)/*=*/* Table: ExpSt,运行状况表*/*=*/create table ExpSt(
14、Exnamechar(100)not null,/*设备名*/Exhousechar(100) not null,/*机房名*/Extimeint not null,/*日期*/Exmodelchar(100) null,/*型号*/Exsizeint null,/*规格*/Exseller char(100)null,/*生产厂家*/Excon char(100) null, /*运行情况*/constraint PK_ExpSt primary key ( EXname,Exhouse, Extime) /*主键约束*/)/*=*/* Table: ExpRe,报修信息表*/*=*/cre
15、ate table ExpRe (Exidintnot null,/*编号*/Exnamechar(100) null,/*设备名*/Exmodelchar(100) null,/*型号*/Exredate intnot null,/*修理日期*/Exreerchar(100) not null,/*修理厂家*/Exrefee intnull,/*修理费*/Exprichar(100)null,/*负责人*/constraint PK_Expre primary key (Exid, Exredate,Exreer) /*主键约束*/)/*=*/* Table: ExpSc,报废信息表*/*=
16、*/create table ExpSc (Exidintnot null,/*编号*/Exnamechar(100) null,/*设备名*/Exmodelchar(100) null,/*型号*/Exscdate intnot null,/*报废时间*/Exscconchar(100)null,/*报废情况*/Exseller char(100)null,/*生产厂家*/constraint PK_Expsc primary key (Exid,Exscdate) /*主键约束*/第八章 系统测试 (1)登录界面8-1登陆界面主要代码private void Button1_Click(o
17、bject sender, EventArgs e) if (TextBox1.Text = ) /判断用户是否输入了用户名 MessageBox.Show(用户名不能为空); if (TextBox2.Text = ) MessageBox.Show(密码不能为空); /判断用户是否输入了密码 else / if (TextBox1.Text.Trim().ToString() = 登录名) / string ConStr = server=.;integrated security=SSPI;database=exp; SqlConnection con = new SqlConnecti
18、on(ConStr); string SqlStr = select * from ExpId where Expname= + TextBox1.Text.Trim () + and Exppwd= +TextBox2 .Text.Trim () + ; SqlDataAdapter ada = new SqlDataAdapter(SqlStr, con); DataTable dt = new DataTable(); ada.Fill(dt); int i = dt.Rows.Count; if (i 0) 基本查询 = new 基本查询(); .Show(); else Messag
19、eBox.Show(用户名或密码不正确,请重新输入!, 信息提示, MessageBoxButtons.OK, MessageBoxIcon.Information); private void Button2_Click(object sender, EventArgs e) this.Close(); (2)查询设备基本信息查询8-2设备信息查询界面主要代码 private void 设备报修信息ToolStripMenuItem_Click(object sender, EventArgs e) 设备报修信息 = new 设备报修信息(); .Show(); private void 设
20、备运行状况ToolStripMenuItem_Click(object sender, EventArgs e) 设备运行状况 = new 设备运行状况(); .Show(); private void 设备报废信息ToolStripMenuItem_Click(object sender, EventArgs e) 设备报废信息= new 设备报废信息(); .Show(); private void 添加设备信息ToolStripMenuItem_Click(object sender, EventArgs e) 添加设备信息 = new 添加设备信息(); .Show(); privat
21、e void 设备管理ToolStripMenuItem1_Click(object sender, EventArgs e) 设备管理 = new 设备管理(); .Show(); (3)设备运行状况8-3设备运行界面主要代码private void Button4_Click(object sender, EventArgs e) string ConStr = server=.;integrated security=SSPI;database=exp; SqlConnection con = new SqlConnection(ConStr); string Sqlstr = sele
22、ct * from ExpSt where Exname like % + TextBox1.Text.Trim () + % and Exhouse like % + TextBox2.Text.Trim () + % and Extime like % + TextBox9.Text.Trim () + %; SqlDataAdapter ada = new SqlDataAdapter(Sqlstr, con); DataSet ds = new DataSet(); ada.Fill(ds, table); this.dataGridView1.DataSource = ds.Tabl
23、es0.DefaultView; Show(); (4)设备管理界面8-4设备管理界面主要代码private void 设备管理_Load(object sender, EventArgs e) try string ConStr = server=.;integrated security=SSPI;database=exp; SqlConnection con = new SqlConnection(ConStr); string SqlStr = select * from ExpMg; SqlDataAdapter ada = new SqlDataAdapter(SqlStr, co
24、n); DataSet ds = new DataSet(); ada.Fill(ds); this.dataGridView1.DataSource = ds.Tables0.DefaultView; catch return; (5)报废信息界面8-5设备报废界面主要代码private void 设备报废信息_Load(object sender, EventArgs e) private void Button1_Click(object sender, EventArgs e) string ConStr = server=.;integrated security=SSPI;data
25、base=exp; SqlConnection con = new SqlConnection(ConStr); string Sqlstr = select * from ExpSc where Exmodel like % + TextBox1.Text.Trim () + % and Exscdate like % + TextBox2.Text.Trim () + %; SqlDataAdapter ada = new SqlDataAdapter(Sqlstr, con); DataSet ds = new DataSet(); ada.Fill(ds, table); this.d
26、ataGridView1.DataSource = ds.Tables0.DefaultView; Show(); (6)报修信息界面8-6设备保修界面主要代码private void 设备报修信息_Load(object sender, EventArgs e) private void Button1_Click(object sender, EventArgs e) string ConStr = server=.;integrated security=SSPI;database=exp; SqlConnection con = new SqlConnection(ConStr); s
27、tring Sqlstr = select * from ExpRe where Exmodel like % + TextBox1.Text.Trim () + %; /and Exredate like ;/ + TextBox2.Text + %and Exreer like + TextBox3.Text + %; SqlDataAdapter ada = new SqlDataAdapter(Sqlstr, con); DataSet ds = new DataSet(); ada.Fill(ds, table); this.dataGridView1.DataSource = ds
28、.Tables0.DefaultView; Show(); 第九章 课程设计心得体会在这学期的实验中,在杨慧老师的带领下,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。通过此次课程设计,使我更加扎实的掌握了有关数据库方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期
29、我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的
30、认可!课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。在这里要感谢学校学院领导和老师们给我们实际操作的机会和为创造了良好的学习条件。在本次课程设计中,指导老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助。在系统开发过程中牛荣老师给予我们很大的帮助,帮助解决了不少的难点,使得系统能够及时开发完成,还有许多同学同样给与了我不
31、少的帮助,衷心的感谢牛荣老师和同学们的精心指导和帮助。实践是巩固所学知识最好的方法。这次的系统设计使我学到了很多知识和编程技巧。也使我自己的水平提升到了一个新的台阶。再次感谢给予我帮助的老师和同学们。参考文献1郭江.SQL Server 2005数据库技术与应用.北京:人民邮电出版社 20022 应宏.数据库原理.重庆:西南师范大学出版社 20013 黄健全、丁宝康.数据库实用教程.北京:清华大学出版社 20014 高金兰.数据库原理与SQL Server应用.北京:科学出版社 20025郑阿奇.SQL Server使用教程M.第二版.北京:电子工业出版社,20056 钱学忠.数据库原理及应用
32、.北京:北京邮电大学出版社,20077 蔡奎春等.Delphi数据库开发实例解析M.北京:机械工业出版社,20048 刘斌等.Delphi7数据库高级教程M.北京:清华大学出版社,20049谭浩强主编.Visual Basic程序设计(二)教程.清华大学出版社,2002年10柳青等编. Visual Basic程序设计教程.高等教育出版社,2002年11范立南.SQL Server2000实用教程.北京:清华大学出版社,2004年12孙燕等编. Visual Basic程序设计.高等教育出版社,2000年13萨师烜.王珊编.数据库系统概论.北京:高等教育出版社,2003年14杨志强. Visual Basic程序设计教程.北京:高等教育出版社,2003年