爱心宠物诊所系统实训报告.docx
- 文档编号:29114143
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:34
- 大小:608.38KB
爱心宠物诊所系统实训报告.docx
《爱心宠物诊所系统实训报告.docx》由会员分享,可在线阅读,更多相关《爱心宠物诊所系统实训报告.docx(34页珍藏版)》请在冰豆网上搜索。
爱心宠物诊所系统实训报告
实训报告
实践环节:
软件工程项目实践
项目名称:
爱心医院宠物诊所
院(系):
_____软件学院_______
专业班级:
软件工程(软件开发)14-01_
学号:
_______541413260109______
学生姓名:
_________何强强___________
指导教师:
李玉华
学年学期:
__2015-2016学年第2学期__
成绩:
____________________________
郑州轻工业学院软件学院
实训任务书
一、实训名称
实践环节软件工程项目实践
项目名称爱心医院宠物诊所
二、学生信息
专业班级软件开发14-01学号541413260109姓名何强强
三、用户需求及约束条件
1、功能需求:
“爱心”宠物诊所的职员在工作中需要查阅和管理如下信息:
诊所的兽医、客户以及客户的宠物。
系统的用例图如图1所示。
2、功能概述:
“爱心”宠物诊所的职员需要使用系统提供的如下功能:
①浏览诊所的兽医以及他们的专业特长;
②浏览宠物的主人(即诊所的客户)的相关信息;
③更新宠物的主人的相关信息;
④向系统中增加一个新客户;
⑤浏览宠物的相关信息;
⑥更新宠物的相关信息;
⑦向系统中增加一个新宠物;
⑧浏览宠物的访问历史记录;
⑨向宠物的访问历史记录添加一次访问;
⑩此外,诊所的职员在使用系统提供的上述功能之前需要进行登录。
当职员不需要使用系统的上述功能时,也可退出系统。
图1系统用例图
3、性能需求:
①应用程序提供友好的图形用户界面。
②应用程序要具备健壮性、稳定性和好的可移植性。
4、应用程序开发要求:
选用技术:
JSP、Java、SERVLET等;软件集成开发环境(IDE):
NetBeans、Eclipse、MyEclipse等。
四、设计要求、技术参数及设计规格
1、实现MVC分离:
用JSP实现视图层设计,SERVLET实现控制层设计,使用DTO(JAVABEAN)、CONNETOR对象实现MODEL层设计。
2、数据库设计要求符合第一、第二范式要求,实现对医生表、医生专业特长表数据联合查询要求。
3、设计规格:
符合Java、JSP编码规范。
五、工作量
天/日期
任务描述
通过标准
1
完成业务需求分析和业务分析,找出系统设计中涉及到的所有业务对象,设计相应的类
需求分析说明书、概要设计说明书提交
1
详细功能设计:
模块结构设计、用例、对象、根据对象类型分析、设计完成具体功能的方法
2
数据库系统设计:
设计出相应的数据库表
2
给出E-R图,写出不同表的增删改查SQL
3
实现初始化类,兽医、专业特长、宠物主人、宠物类型、宠物和宠物等对象的编码实现
3
测试对象类的正确性
4
实现对数据库的访问类,实现业务逻辑登录模块功能
4
实现业务逻辑对宠物的查询模块
(1)
5
实现业务逻辑对宠物的查询模块
(2)
5
实现业务逻辑对医生的查询模块
(1)
6
实现业务逻辑对医生的查询模块
(2)
6
实现业务逻辑对客户的查询模块
(1)
7
实现业务逻辑对客户的查询模块
(2)
7
实现业务逻辑对宠物诊疗记录查询模块
(1)
8
实现业务逻辑对宠物诊疗记录查询模块
(2)
8
系统调优及功能完善
9
系统功能测试
项目验收通过
9
实训报告撰写
完成实训报告提纲
10
实训报告撰写
完善实训报告内容和格式
10
实训报告撰写
撰写一个完善的实训报告
六、考核形式、考核时间、考核指标及成绩评定
实训成绩由下面构成:
实训纪律、实训态度和平时表现占20%;实训结果占30%;实训报告占30%;实践操作能力占20%。
考核形式:
1)老师每日对学生的考察、评估和考核;2)最后对实训项目完成的质量进行考核和验收。
完成期限:
2016年7月8日
指导教师签章:
李玉华
专业负责人签章:
教学院长签章:
2016年6月27日
实训进度日历
实践环节
软件开发综合实训
项目名称
爱心医院宠物诊所
学年学期
2015-2016学年
第2学期
专业班级
软件工程(测试技术)14-01、14-02
指导教师姓名
崔霄
马军霞
天
上午/下午
实训任务详细描述
教师实训任务的指导(解决方案、实现步骤、技术路线、难点提示)
通过标准
1
上午
业务需求分析和业务分析
根据实训指导材料,让学生先对项目有一个整体的了解,对系统的需求分析进行讲解。
需求分析说明书提交
分析系统设计中涉及到的所有业务对象,设计相应的类
根据实训指导材料,分析总结系统业务对象
概要设计说明书提交
1
下午
详细功能设计:
模块结构设计、用例、对象设计
按照MVC思想设计系统框架,规范设计系统用例
详细功能设计:
根据对象类型分析、设计完成具体功能的方法
按照面向对象的方法设计类和方法
2
上午
数据库系统设计:
分析系统数据,进行数据库概念模型设计
根据数据库设计的范式要求进行设计
数据库系统设计:
设计出相应的数据库表
根据选择的数据库系统,利用图形界面工具完成设计
数据库和测试数据准备完成
2
下午
画出E-R图
写出不同表的增删改查SQL
3
上午
实现初始化类,兽医、专业特长等对象的编码实现
实现宠物主人、宠物类型、宠物等对象的编码实现
3
下午
测试初始化类,兽医、专业特长等对象类的正确性
测试宠物主人、宠物类型、宠物等对象类的正确性
4
上午
实现对数据库的访问类,
实现业务逻辑登录模块功能
4
下午
实现业务逻辑对宠物的查询模块
(1)
实现业务逻辑对宠物的查询模块
(1)
5
上午
实现业务逻辑对宠物的查询模块
(2)
实现业务逻辑对宠物的查询模块
(2)
5
下午
实现业务逻辑对医生的查询模块
(1)
实现业务逻辑对医生的查询模块
(1)
6
上午
实现业务逻辑对医生的查询模块
(2)
实现业务逻辑对医生的查询模块
(2)
6
下午
实现业务逻辑对客户的查询模块
(1)
实现业务逻辑对客户的查询模块
(1)
7
上午
实现业务逻辑对客户的查询模块
(2)
实现业务逻辑对客户的查询模块
(2)
7
下午
实现业务逻辑对宠物诊疗记录查询模块
(1)
实现业务逻辑对宠物诊疗记录查询模块
(1)
8
上午
实现业务逻辑对宠物诊疗记录查询模块
(2)
实现业务逻辑对宠物诊疗记录查询模块
(2)
8
下午
系统调优
系统功能完善
9
上午
系统功能测试
(1)
系统功能测试
(2)
项目验收通过
9
下午
实训报告撰写
总结实训内容和过程,理清思路
实训报告撰写
撰写实训报告提纲
10
上午
实训报告撰写
完善实训报告内容
实训报告撰写
完善实训报告内容
完成实训报告大纲
10
下午
实训报告撰写
完善实训报告格式
完善实训报告内容和格式
实训报告撰写
文档格式正确、内容无误
制订教师:
李玉华
1系统需求分析
1.1功能需求
功能需求:
“爱心”宠物诊所的职员在工作中需要查阅和管理如下信息:
诊所的兽医、客户以及客户的宠物。
1.2功能说明
1.2.1登录
诊所职员打开浏览器,输入正确的URL地址,即可跳转到系统的登录页面。
职员需要输入、密码、验证码后,提交页面。
系统验证职员提交的信息,若输入为空,系统会提示该项不能为空;若输入信息与数据库信息不匹配,系统会提示对应项出错;用户可以重新输入。
若输入信息正确,系统跳转到爱心宠物诊所的主页面,职员可以使用其他的功能。
1.2.2退出
职员点击“退出系统”后,系统会结束本次对话,提示退出成功的信息,并返回到登录页面上。
职员可以选择重新登录,或者关闭登录页面。
1.2.3浏览兽医及其专业特长
职员点击兽医后即可进入查找兽医及专业的页面。
在文本框中输入兽医的名称,点击查询按钮即可浏览该兽医所擅长的专业,点击下方的重新查询,即可返回到查询页面。
若不清楚兽医名称,可通过输入想了解的专业获取与该专业相关的兽医。
此查询页面支持模糊查询,输入相关文字即可获得信息。
若输入为空或信息不存在,系统会给出相应的提示信息。
1.2.4浏览宠物主人的信息
职员点击宠物后进入宠物及其主人的查询页面。
在文本框中输入宠物主人的全名或者名字中的部分字后,点击查询提交页面。
系统给出主人及其所拥有的宠物,点击宠物主人的链接,即可查看该宠物主人的电话、所在城市和详细的地址。
职员可以选择对主人信息进行修改或重新查询。
若所查询的宠物主人不存在,系统提示该客户不
存在。
1.2.5更新宠物主人的信息
职员在宠物主人信息页面点击修改信息后,系统跳转到修改信息的页面,可以对宠物主人所在城市、地址和电话等信息进行修改。
职员将所需修改的信息修改完毕后点击确认修改的按钮,系统会对宠物主人的信息进行修改,提示修改成功,并显示修改后的信息。
1.2.6添加新客户
职员点击添加新客户后,系统跳转到客户添加的页面。
职员对客户名称、地址、城市、电话号码等信息进行填写,并提交页面。
系统将信息添加到客户信息表中,提示添加成功,自动跳转到查看信息的页面。
1.2.7浏览宠物信息
职员输入宠物名称后点击“查询”按钮,系统查找出符合条件的宠物,呈现一个查询结果页面给职员以便浏览其相关的信息,职员不仅可以浏览宠物的信息,还可以浏览该宠物主人的信息。
职员点击所需查找的宠物链接,便可浏览该宠物的详细信息:
名称、类型、出生日期和主人名称等
1.2.8更新宠物信息
职员在浏览宠物的详细信息时,可以通过点击修改信息按钮进入到修改信息的页面。
职员可以修改宠物的类型、出生日期和主人等信息。
点击修改按钮,系统将更新数据库中的相关信息,呈现修改过后的宠物信息,并给用户提示信息“修改信息成功”。
1.2.9添加一次宠物的访问
职员在宠物信息页面点击增加病例,系统跳转到增加病例页面。
职员填写求诊日期和病例描述后,进行确认增加或者取消增加的操作。
病例增加成功后,系统提示病例增加成功
1.2.10浏览宠物的访问历史记录
职员在浏览宠物详细信息时,点击阅读病例,可以浏览宠物的求诊记录,包括每次的求诊日期及病例描述
1.2.11添加新宠物
职员输入宠物的名称,从下拉列表选择中宠物的主人和类型,点击选择日期的文本框选择宠物的出生日期,点击添加按钮。
系统成功添加了宠物的信息后,提示用户“添加成功”,并跳转到宠物的详细信息页面,职员可以选择修改其信息或者继续添加新的宠物。
2系统设计
2.1系统总体结构设计
系统设计时基于MVC设计模型,采用三层架构,如图2-1所示。
图2-1“爱心宠物诊所”系统的体系结构
2.2关键抽象
从需求中可以得出系统的如下关键抽象:
兽医、专业特长、宠物主人、宠物类型、宠物和宠物的访问。
这些实体可以设计为JavaBean类,例如宠物需要获得这些信息:
名称、标识ID、类型ID和出生日期等。
宠物主人和宠物之间具有如下关系:
一个宠物主人可以拥有多个宠物,每一个宠物属于一个主人;每一个宠物可能到诊所多次就诊;每个兽医具有多项专长,而同一专长可能有多个兽医。
图2-2描述了系统的关键抽象,他们为系统的模型。
图2-2系统模型
2.3用例设计
使用面向对象设计时,关键在于描述那些对象如何交互完成用例的功能,通常将对象发送消息的相互调用过程画成时序图。
下面将逐一画出用例的时序图。
登录的时序图,如图2-3
图2-3登录的时序图
浏览兽医及其专业特长的时序图,如图2-4
图2-4浏览兽医及其专业特长
浏览宠物主人的信息的时序图,如图2-5
图2-5浏览宠物主人的信息
更新主人信息的时序图,如图2-6
图2-6更新主人信息
添加新客户的时序图,如图2-7
图2-7添加新客户
浏览宠物信息的时序图,如图2-8
图2-8浏览宠物信息
更新宠物信息的时序图,如图2-9
图2-9更新宠物信息
添加新宠物的时序图,如图2-10
图2-10添加新宠物
浏览宠物病例的时序图,如图2-11
图2-11浏览宠物病例
增加病例的时序图,如图2-12
图2-12增加病例
2.3数据库设计
2.3.1逻辑设计
系统的E-R图如图2-13所示:
图2-13系统E-R图
2.3.2数据库设计
1.表设计
表名
功能说明
vets
存储兽医信息
specialties
存储兽医的专业特长信息
vet_specialties
兽医与专业特长的关联表
types
宠物的类型表
owners
宠物的主人
pets
存储宠物信息
visits
存储宠物的访问信息
employee
存储职员信息
2.1vets表
表名
vets
列名
数据类型(精度范围)
空/非空
约束条件
其它说明
id
INT
NOTNULL
IDENTITY(1,1)PRIMARYKEY
vname
VARCHAR(30)
补充说明
2.2specialties表
表名
specialties
列名
数据类型(精度范围)
空/非空
约束条件
其它说明
id
INT
NOTNULL
IDENTITY(1,1)PRIMARYKEY
sname
VARCHAR(80)
补充说明
2.3vet_specialties表
表名
vet_specialties
列名
数据类型(精度范围)
空/非空
约束条件
其它说明
vet_id
INT
NOTNULL
foreignkeyREFERENCESvets(id)
specialty_id
INT
NOTNULL
foreignkeyREFERENCESspecialties(id)
补充说明
2.4types表
表名
types
列名
数据类型(精度范围)
空/非空
约束条件
其它说明
id
INT
NOTNULL
IDENTITY(1,1)PRIMARYKEY
name
VARCHAR(80)
补充说明
2.5owners表
表名
owners
列名
数据类型(精度范围)
空/非空
约束条件
其它说明
id
INT
NOTNULL
IDENTITY(1,1)PRIMARYKEY
oname
VARCHAR(30)
address
VARCHAR(255)
city
VARCHAR(80)
telephone
VARCHAR(20)
补充说明
2.6pets表
表名
pets
列名
数据类型(精度范围)
空/非空
约束条件
其它说明
id
INT
NOTNULL
IDENTITY(1,1)PRIMARYKEY
pname
VARCHAR(30)
birth_date
DATETIME
type_id
INT
NOTNULL
foreignkeyREFERENCEStypes(id)
owner_id
INT
NOTNULL
foreignkeyREFERENCESowners(id)
补充说明
2.7visits表
表名
visits
列名
数据类型(精度范围)
空/非空
约束条件
其它说明
id
INT
NOTNULL
IDENTITY(1,1)PRIMARYKEY
pet_id
INT
NOTNULL
foreignkeyREFERENCESpets(id)
visit_date
DATETIME
description
VARCHAR(255)
补充说明
2.8employee表
表名
employee
列名
数据类型(精度范围)
空/非空
约束条件
其它说明
name
VARCHAR(20)
NOTNULL
PRIMARYKEY
password
VARCHAR(20)
NOTNULL
补充说明
3系统功实现
3.1登录功能实现
在login.jsp页面中(如图3-1所示),选择一张图片作为背景,主体部分中建立表格,表格分为用来输入信息的文本区域和提交页面的按钮部分。
当用户输入信息点击“确定”时,将表格中的信息提交到loginServlet.java文件中,并将信息与数据库employee表中内容进行匹配,匹配成功则跳转到main.jsp页面。
图3-1登录页面
3.2系统框架
在main.jsp中,用frameset将整个系统分为上面的top部分和下方的bottom部分。
top部分为固定的界面,提供跳转到兽医和宠物部分的超链接及退出系统的功能,bottom部分用来实现其它功能
3.3浏览兽医及其专业特长
在lookPet.jsp页面中,建立表格并使其位于中心,在表格中添加对应的提示信息和文本框,取消可以清空文本框的内容,查询将表单中的信息提交到lookPetServlet.java文件。
在Servlet中判断输入兽医及特长是否同时为空,若同时为空则提示出错。
若不同时为空,则执行对应的SQL语句,并判断是否有符合SQL语句的信息,若不符合提示出错,符合则将查询结果显示在viewVet.jsp页面中
关键代码如下:
rs=stmt.executeQuery(sql);
rs.last();
intm=rs.getRow();
rs.beforeFirst();
if(m==0){
response.sendRedirect("http:
//localhost:
8080/PCAS/vet/lookVet.jsp?
error=e2");
}else{
HttpSessionsession=request.getSession();
ArrayListwordlist=newArrayList();
while(rs.next()){
LookVetBeanmm=newLookVetBean();
mm.setVname(rs.getString
(1));
mm.setSname(rs.getString
(2));
wordlist.add(mm);
}
3.4浏览宠物及其主人
lookPet.jsp页面与lookVet.jsp页面非常相似,不同的是在下方加入两个按钮,分别用来增加新宠物、增加新客户。
输入信息后点击查询按钮,表单中的信息提交到lookPetServlet.java文件中。
首先通过判断获取信息的字符长度来判断宠物名称和宠物主人是否同时为空,若同时为空则提示需要输入查询条件,若不同时为空则执行相应的SQL语句。
执行结果为空分为三种情况,第一种:
该宠物不存在;第二种:
客户不存在或者该客户还未拥有宠物;第三种:
宠物和宠物主人都存在,将信息保存在session中。
前两种情况将错误类型传递给lookPet.jsp页面,并在该页面提示相应的错误。
第三种情况将页面跳转到viewPet.jsp页面,在该页面获取session中保存的宠物和主人信息,为其添加指向详细信息的超链接后显示在表格中。
查询结果如图3-2所示。
图3-2查询宠物及其主人
3.5浏览修改宠物主人的详细信息
点击主人链接时,将主人的名字发送到ownerInfoServlet.java文件中,根据传送过来的名字,使用SQL语句从owners表中获取与名字对应的地址、城市和电话号码,并将其保存在session中。
在ownerInfo.jsp页面中,建立表格。
在表格中添加标签和对应的信息,信息从session中获取。
表格下方提供修改信息和重新查询的超链接,若选择重新查询,则返回到lookPet.jsp页面。
选择修改信息,则跳转到updateOwner.jsp文件中,在修改信息页面中,宠物主人的详细信息仍从session中获取,但是address、city、telephone等信息变为可以改变信息的文本框,如图3-3所示。
表格中含有确认修改和取消修改两个按钮,若选择取消修改则删除修改后的信息显示默认信息。
点击确认修改,表单中的信息提交到updateOwnerServlet.java文件中。
在Servlet中,使用SQL更新语句更新owners表中的信息,并用查找语句将修改后的休息保存在session中,将修改后的信息发送到ownerInfo.jsp页面,使修改后的信息显示在该页面中。
关键代码如下:
Stringsql="updateownerssetaddress='"+address+"',city='"+city+"',telephone='"+telephone+"'whereoname='"+oname+"'";
stmt.executeUpdate(sql);
Stringsql2="select*fromownerswhereoname='"+oname+"'";
rs=stmt.executeQuery(sql2);
LookOwnerBeanmm=newLookOwnerBean();
while(rs.next()){
mm.setOname(rs.getString("oname"));
mm.setAddress(rs.getString("address"));
mm.setCity(rs.getString("city"));
mm.setTelephone(rs.getString("telephone"));
}
图3-3修改宠物主人的详细信息
3.6浏览修改宠物的详细信息
点击宠物链接时,将宠物的名字发送到petInfoServlet.java文件中,根据传送过来的名字,使用SQL语句从pets表中获取与名字对应的birth_date、type_id、owner_id。
pets表中的owner_id与owners表中id是外键链接的,可以用select语句找出其主人名字oname,同理可获取其类型,并将生日、类型、主人名字等信息保存在session中。
在petInfo.jsp页面中,建立表格。
在表格中添加标签和对应的信息,信息从session中获取。
表格下方提供阅读病例、增加病例、修改信息和重新查询的超链接,若选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 爱心 宠物 诊所 系统 报告