爱心宠物诊所系统(实训)

项目源码

链接:https://pan.baidu.com/s/1Z1AsCDgwbTD9qvsj_VFwjQ 
提取码:ua4u

1.系统需求分析

在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。

在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。

1.1  功能需求

“爱心”宠物诊所的职员在工作中需要查阅和管理如下信息:诊所的兽医、客户以及客户的宠物。“爱心”宠物诊所的职员需要使用系统提供的如下功能:浏览诊所的兽医以及他们的专业特长;浏览宠物的主人(即诊所的客户)的相关信息;更新宠物的主人的相关信息;向系统中增加一个新客户;浏览宠物的相关信息更新宠物的相关信息;向系统中增加一个新宠物;浏览宠物的访问历史记录;向宠物的访问历史记录添加一次访问;此外,诊所的职员在使用系统提供的上述功能之前需要进行登录。当职员不需要使用系统的上述功能时,也可退出系统。

1.2  功能说明

1.2.1  登录

诊所职员打开浏览器,输入正确的URL地址,即可跳转到系统的登录页面。职员需要正确输入、密码后用户可以重新输入。若输入信息正确,系统跳转到爱心宠物诊所的主页面,职员可以使用其他的功能进行操作。

1.2.2  浏览宠物信息

职员输入宠物名称后点击“查询”按钮,系统查找出符合条件的宠物,呈现一个查询结果页面给职员以便需查找的宠物链接,便可浏览该宠物的详细信息:名称、类型、出生日期和主人名称等。

1.2.3  更新宠物信息

职员在浏览宠物的详细信息时,可以通过点击修改信息按钮进入到修改信息的页面。职员可以修改宠物的类过后的宠物信息,并给用户提示信息“修改信息成功”。

职员进入浏览宠物页面时,可以通过点击宠物新后方的删除按钮进行删除宠物信息,删除成功后宠物信息也将从,若删除失败则提示删败自动跳转到浏览宠物信息页面。

1.2.4  查询宠物信息

当职员想要查询某一个宠物时,点击询宠物下拉菜单按钮,进入宠物查询页面。职员可以输入宠物的ID或者宠物名,即可合条件之一或者全部条件的宠物信息。

1.2.5  添加新宠物

职员输入宠物的名称、主人、性别、种类、生及习性,点击添加按钮。系统成功添加了宠物的信息后,提示用户“成功”,跳转到宠物的浏览

1.2.6  浏览宠物主人信息

职员点击主人后进入全部主人信息的浏览页面。在浏览宠物主人页面,可以看到所有的宠物主人,他们的信息息。在文本所拥有的宠物,点击宠物主人的链接,即可查看该宠物主人的电话、所在城市和详细地址。职员可以选择对主人信息进行修改或重新查询。若所查询的宠物主人不存在,系统提示该客户不存在。

1.2.7  更新宠物主人信息

职员在宠物主人信息页面点修改信息后,系统跳转到修改信的页面,可以对宠物主人性别、地址和电话等信息进行修改。示修,并显示修改后的信息。职员进入浏览主人页时,可以通过点击人信栏后方的删除按行删除主人信息,删除成功后主人信息也将从库中清除,提示删除成功,若删除失败则提示删除失败自动跳转到浏览主人信息页面。

1.2.8  查询宠物主人信息

在文本框中输入宠物主全名和或者名字和ID中的部分字后,点击查询提交页面。系统给出主人及其所拥有的宠物可查看宠物主人的电话、性别和年龄。职员。若所查询的宠物主人不存在,系统提示该客户不存在。

1.2.9  添加宠物主人信息

职员输入主人的名称、电话、性别、年龄、宠物名,点击添加按钮。系统成功添加了宠物主人的信息后,提示用户“添加成功”

1.2.10  浏览宠物医生信息

职员点击医生后全部医生信息的浏览页面。在浏览医生主人面,可以看到所有的医生,他们的信息包医生ID、姓名、、性别、年龄、住址、备注信息栏的后方可以点击修改和删除主人信。

1.2.11  添加宠物医生信息

职员输入医生的ID、名、电话、性别、年龄、住址、备点击添加按钮。系统成功添加了医生的信息用户“添加成功”,并转到医生的浏览信息页面,职员可以选择修改其信息或者继续添加新的医生。

1.2.12  浏览宠物的访问历史记录

职员在管理宠物详细信息时,点击阅读例以浏览宠物的求诊记录.

1.2.13  退出

职员点击“退出系统本次对话,提示退出成功的信息,并返回到登录页面上。职员可以选择重新登录,或者关闭登录页面。

2  系统设计

2.1  系统总体结构设计

系统设计基于MVC设计模型,采用三层架构,“爱心宠物诊所”系统的体系结构如图2-1所示。

2-1  “爱心宠物诊所系统的体系结构

2.2  登录界面设计

登录界面采用框架实现,分为上下两块,每一块都是调用HTML来实现。上方使用图片嵌入。下方框架分为两个板块,左板块使用图片,右方使用Form表单实现的登录框,登录界面主要是具有一定的保密性,在登主界面,输入错误将显示相应的提示。登录之后进入系统的主界面,在主界面可以选择用户想要执行的功能模块。 

2.3  浏览信息功能设计

职员在点击浏览信息后,页面将出现所有的宠物、主人或者医生信息。从数据库中获取到的所有信息被显示在表格中,下面信息的结构图。

浏览信息的结构如图2-2所示。

2-2  浏览信息的结构

2.4  修改信息功能设计

在浏览信息的表单的后面附有修改按钮,职员点击修改按钮将进入修改页面,再修改页面里正确填写相应的信息后,点击提交按钮,如果提交成功就提示“修改成功!”,并跳转到浏览信息页面,失败,并立即跳转到修改页继续修改,下面是修改信息的结构图。

修改信息的结构图如图2-3所示。

浏览宠物页面

点击修改按钮

修改页面输入新的信息

接收数据并检查

执行SQL语

修改失败!

修改成功!

2-3  修改信息的结构图

2.5  查询信息功能设计

在文本框中输入查询条件,输入文本框中的任何一个或者两个都输入都可查询相似的信息,使用模糊查询实现。将查询的信息显示到页面上。下面是查询信息的结构图。

查询信息的结构图如图2-4所示。

输入查询的条件

接收并查询输入条件

执行SQ语并反馈结果

输出结果

2-4  查询信息的结构图

2.6  添加信息功能实现

输入需要添加信息的各项内容,添加成功后将提示“添加成功!”,跳转到浏览信息的页面,如果添加失败将提示“添加失败!”,跳转到信息添加页面继续添加信息,实现的方式用Form表单提交。下面是添加信息的结构图。

添加信息的结构图如图2-5所示。

2-5  添加信息的结构图

2.7  数据库设计

数据库就是存放数据的仓库,这里的数据是按照一定的数据模型组织并存放上的一组相关数据的集合。在数据库里面还可以实现注册的功能,还可以增加管理员权限,这样更加的方便管理。"root"就是数据库的名字,"root"就是数据库的密码,petdata就是此据库的名字。当系统规模小,存储的数据比较少时,即使不进行数据库设计对系统的影响也 不会太大;当系统具有一定规模,随着业务不断增加,系统存储、处理的数据需 求量越来越大时,数据库设计就是十分重要的环节,如果数据库设计不当,会 面临前文所述的问题,造成数据冗余、修改处理复杂化、操作数据异常等。

表2-1所示的是职员信息表。表中包含了每一位职员的ID号,它是唯一的,并且号码是逐渐递增的也已经设成主键。

2-1 职员信息表

 

字段名

字段类型

字段长度

主键

id

int

8

name

varchar

12

Passwords

varchar

15

position

varchar

10

sex

char

5

old

char

8

number

varchar

15

2-2所示的是宠物信息表。表中包含了宠物诊所里所有宠物的信息,宠物ID号逐渐递增,并且设为主键。

2-2 宠物信息表

 

字段名

字段类型

字段长度

是否为空

petid

int

8

petname

varchar

12

petowner

varchar

12

petsex

char

5

pettype

char

5

petbirth

varchar

20

pethabit

varchar

225

    表2-3所示的是主人信息表。表中包含了宠物主人的信息,可以通过此表找到主人所拥有的所有宠物。主人的信息字段丰富,主人的ID唯一且逐渐递增,再添加主人的时候会按照先后顺序逐渐增加。

2-3 主人信息表

 

字段名

字段类型

字段长度

是否为空

owid

int

8

ownername

varchar

15

Passwords

varchar

15

position

varchar

5

sex

varchar

5

old

varchar

225

2-4所示的是医生信息表。该表包含了医生的各项信息,用户可以通过医生信息了解到医生的专业,从而对宠物有更好的治疗。表中医生的ID设为主键并逐渐递增。

2-4 医生信息表

 

字段名

字段类型

字段长度

是否为空

id

int

8

name

varchar

15

sex

char

10

old

char

10

major

varchar

225

number

varchar

15

address

varchar

225

tip

varchar

225

    表2-5所示的是宠物访问记录表。表中记录宠物的ID、浏览宠物的时间。

2-5 宠物访问记录表

 

字段名

字段类型

字段长度

是否为空

id

int

8

pet_id

int

8

visit_date

datetime

225

3  系统实现                                                                             

3.1  登录功能实现

    在登录界面logIn.jsp中(如图所示),此界面使用frameset框架构成,整个界面分为上下两块,上面成,在bottom中成,使得整个页面更美观轻便。当用户输入信息点击登录之后,页面将会把表格中的信息提交给后台文件中,并将信息也数据库中的users表中的内容进核对,如果用户输入错误信息将提示相应的示框,提示用户哪一项输入有误,核对正确后输入。

3-1  登录界面

3.2  系统框架

在主界面中,仍然使用frameset框架将整个页面分为上下两部分,top部分使用图片拼合而成,bottom部分在点击下拉菜单的按钮之后即可跳转到相应页面覆盖下半部分区域。在下拉菜单里,使用css装饰菜单的字体和颜色,是整体效果达到最佳。主界面如图3-2所示。

3-2  主界面

3.3  浏览功能实现

在主界面的下拉菜单中,点击浏览宠物、浏览主人或者浏览医生,即可进入浏览所有成员的信息。信息表格设置列是删除和修改按钮。以浏览宠物界面为例,浏览结果如图3-3所示。

3-3  浏览结果

关键代码如下:

ResultSet rs=db.executeQuery(sql);//运行上面的语句

rs.last();
int  k = rs.getRow();
rs.beforeFirst();
for (int i = 0;i<k && rs.next(); i++)
{
    id = rs.getInt("petid");
    name = rs.getString("petname");
    owner = rs.getString("petowner");
    sex = rs.getString("petsex");
    pettype  = rs.getString("pettype");
    date = rs.getString("petbirth");
    habit  = rs.getString("pethabit");

}

3.4  修改功能实现

     在用户浏览查询到的信息时,如果用户想要对信息进行修改可以直接点击后方的修改进入修改页面,以浏览宠物信息SeePet.jsp为例,修改页面里的填写条件框均是浏览的信息标题。如果符合规范,在这个页面中将数据打包成SQL语句,这个界面再将此条语句提交给DBean.java,它将连接数据库并返回统将提示用户修改成功,并将页面返回到浏览信息的页面。如果用户输入错页面将返回到修改页面继续修改。每一次点击相应记录后的修改后,都会将此条数据的ID传送给UpdatePet.jsp页面,这样就防止用户修改错误。修改信息如图3-4所示。

3-4  修改信息

关键代码如下:

public ResultSet executeQuery(String s) {

 ResultSet rs = null;

                            System.out.print("查询语句:"+s+"\n");
                                                             try {

                                                       rs = stmt.executeQuery(s);

                                                          } catch (Exception ex) {

                                                        System.out.println("ִ执行查询错误!");

                                                           }

                                                          return rs;                                                                              
                          }

3.5  查询信息功能实现

     在用户想要查询自己想要的结果时,不需要从全部浏览中自己一一找寻,只需要在查询页面输入相应的信息即可查询。写框填写一个或两个都可以,当然两个信息都填写查询将更加准确。此功能使用数据库的模糊查询实现,如果查询成功将返回查询的全部结果到DamandPetCheck.jsp界面,查询失败将继续跳转到查询界面继续查询。查询信息如图3-5所示。

3-5  查询信息

关键代码如下:

ResultSet rs=db.executeQuery(sql_1);//运行上面的语句
                                              while(rs.next())

{

  id = rs.getInt("petid");

  name = rs.getString("petname");

  owner = rs.getString("petowner");

  sex = rs.getString("petsex");

  pettype  = rs.getString("pettype");

  date  = rs.getString("petbirth");

  habit  = rs.getString("pethabit");
                                                         }

3.6  添加信息功能实现

在用户想要添加信息时,以浏览宠物信息AddPet.jsp为例,添加页面里的填写条件框均是浏览的信息标题。填写将数据打包成SQL语句,这个界面再将此条语句提交给DBean.java,它将连接数据库并返回数据,系统将提示用户添加成功,并将页面返回到浏览信息的页面。如果用户添加错误,页面将返回到添加页面AddPet.jsp继续添加。。

关键代码如下:

public int executeUpdate(String s) {
                                               int result = 0;

                                            Sys
 result = stmt.executeUpdate(s);

} catch (Exception ex) {
                                                                    System.out.println("执行更新错误!");

                                                                    }

                                                             return result;

                                    }

3.7  系统的美化

坚持以用户体验为中心设计原则,界面直观、简洁,操作方便快捷,用户接触软件后对界面上对应的功能一目了然、不需要太多培训就可以方便使用本应用系统,准确性。使用一致的标记、标准缩写和颜色,显示信息的含义应该非常明确,用户不必再参考其它信息源。显示有意义的出错信息,而不是单纯的程序错误代码。避免使用文本输入框来放置不可编辑的文字内容,不要文本将输入框当成标签使用。使用缩进和文本来辅助理解。使用用户语言词汇,而不是单纯的专业计算机术语。高效地使用显示器的显示空间,但要避免空间过于拥挤。保持语言的一致性,如“确定”对应“取消”,“是”对应“否”。布局,在进行UI设计时需要充分考虑布局的合理化问题,遵循用户从上而下,自左向右浏览、操作习惯,避免常用业务功能按键排列过于分散,以造成用户鼠标移动距离过长的弊端。多做“减法”运算,将不常用的功能区块隐藏,以保持界面的简洁,使用户专注于主要业务操作流程,有利于提高软件的易用性及可用性。

关于系统的美化,刚开始没怎么后,后来才意识到自己做的系统不太美观,因此,对于系统的美化可以采取加入一些框架和图片让他更好看,也可以在按钮上加入图片增加其易使用性。如下图3-6与图3-7所示获得一些素材。

3-6  素材图

3-7  素材图

测试

经过多次测试,这些界面均能实现相应操作和功能,而各种表以及功能显示正常,指令读取正常,可以多次执行,退出功能正常。满足系统功能需求的同时,也能有着非功能需求比如可靠性、互操作性、易使用性和可扩充功能性。

5  实训感想

紧张的实训就要结束了,想想这几周来我确实收获颇丰。纸上得来终觉浅,绝知此事要躬行!”在编程过程中,总有一些特别基础的知识上犯错误,而且自己还找不到,只有在老师或者同学的帮助下才能找出错误,并且之后可能还会再犯错误。这次实训对我来说有很大的意义。主要有两方面,运用学习成果,把课堂上学到的理论知识用于实践;检验学习成果,通过实际操作,看看课堂学习与实际操作的差距,找到学习中存在的不足。这次的实训也让我了解很多东西,当我自己动手做项目,只要能做出来一点,我就会很有成就感,这是在上文化课的时候体会不到的。

本次的实训对我来说是一个知识付出实践的重大机会,在实训过程中有许多的不足之处,比如开始的需求分析并不全面,代码的排版不是很整齐等等问题。这次的项目让我认识我还有待改进、提高的地步。开始需求分析需要考虑全面,弄清楚自己到底要做一个怎样的程序出来,要实现什么样的功能,心中有一个框架并记录在报告中,对每个功能都要考虑可行性,出现报错需要及时改正,发现问题也要仔细思考,别再小错误上连续摔倒。问题的处理要重视,毫不报错的程序并不是正确的程序,有很多隐藏的错误在系统运行时才会慢慢暴露出来,这时便需要快速找到错误修改,如果少排除一个错误,很可能导致正常的部分也无法执行。

但是我想,这就是成长。成为一个程序员注定每天要和代码打交道,也注定要不断学习,不断去想一些新的想法、创意。在以后的日子里,我会好好努力,不论以后是否从事这一行业,但是一定会学专业课知识!不负青春不负光阴。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对不起,作为AI语言模型,我无法提供完整的JavaScript代码。但是,我可以提供一些例子和技巧来构建一个宠物诊所管理系统的JavaScript代码: 1. 定义对象和属性:使用对象来存储宠物诊所的信息,例如宠物,医生和预约等。属性包括宠物名称,主人姓名,医生姓名,诊断结果,预约日期等等。 2. 事件监听器:使用事件监听器来处理用户的输入和操作。例如,当用户点击预约按钮时,触发一个事件监听器,该监听器将获取用户输入的预约信息并将其存储到宠物诊所的预约对象中。 3. 功能和方法:定义和实现诊所的各种功能和方法,例如添加宠物,修改宠物信息,预约医生,确认预约等等。这些功能和方法要调用对象和事件监听器以实现诊所的完整管理。 下面是一些示例代码,以便更好地理解这些概念: 声明一个“宠物”对象: ``` var Pet = function(name, owner, age, type) { this.name = name; this.owner = owner; this.age = age; this.type = type; }; ``` 添加一个宠物到Clinic对象: ``` Clinic.prototype.addPet = function(newPet) { this.petList.push(newPet); }; Clinic.prototype.petList = []; ``` 定义预约对象: ``` var Appointment = function(pet, doctor, date) { this.pet = pet; this.doctor = doctor; this.date = date; }; ``` 添加一个预约到Clinic对象: ``` Clinic.prototype.addAppointment = function(newAppointment) { this.appointmentList.push(newAppointment); }; Clinic.prototype.appointmentList = []; ``` 实现添加宠物功能: ``` Clinic.prototype.addNewPet = function(name, owner, age, type) { var newPet = new Pet(name, owner, age, type); this.addPet(newPet); console.log('New pet added: ' + newPet.name); }; ``` 实现添加预约功能: ``` Clinic.prototype.addNewAppointment = function(pet, doctor, date) { var newAppointment = new Appointment(pet, doctor, date); this.addAppointment(newAppointment); console.log('New appointment added: ' + newAppointment.date); }; ``` 这些代码只是作为示例用途,您可能需要根据实际需要进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值