Java_Web之宠物管理系统

使用JSP+servLet实现宠物管理系统,oraC1e11g作为后台数据厍,实现查看宠物和增加宠物
的功能由你实现,如图:

其中宠物包栝:狗、猫、鸟、鼠

具体要求及推荐实现步骤

第一步:创建数据库代码:

create table pet
(
petId number(10) not null primary key,  --id
petName varchar2(50) not null,  --昵称
petBread varchar(50) not null,  --品种
petSex varchar(10) not null,  --性别
birthday date not null,     --出生日期
description varchar(400)    --描述
)
--序列自增
create sequence pet_squ
start with 1
increment by 1
nomaxvalue
cache 10;
drop table pet  --删除宠物表
drop sequence pet_squ  --删除序列
--插入数据
insert into pet values (‘1‘,‘aa‘,‘狗‘,‘雄‘,to_date(‘2015-05-26‘,‘yyyy-mm-dd‘),‘聪明的拉布拉多犬‘);
insert into pet values (pet_squ.nextval,‘bb‘,‘猫‘,‘雄‘,to_date(‘2015-05-26‘,‘yyyy-mm-dd‘),‘可爱的加菲猫‘);
insert into pet values (pet_squ.nextval,‘cc‘,‘鸟‘,‘雄‘,to_date(‘2015-05-26‘,‘yyyy-mm-dd‘),‘活泼的鸟‘);
insert into pet values (pet_squ.nextval,‘dd‘,‘鼠‘,‘雄‘,to_date(‘2015-05-26‘,‘yyyy-mm-dd‘),‘可爱的小白鼠‘);
insert into pet values (pet_squ.nextval,‘ee‘,‘猫‘,‘雄‘,to_date(‘2015-05-26‘,‘YYYY-MM-dd‘),‘可爱的加菲猫‘);

select * from pet  --查询所有宠物

第二步:建立宠物实体类entity(pet)

package entity;
/**
 * 宠物实体类
 * @author Administrator
 *
 */
public class pet {
    private int petId;  //--id
    private String petName ; //--昵称
    private String petBread ;//--品种
    private String petSex; //--性别
    private String birthday ;//--出生日期
    private String description;//--描述
    public int getPetId() {
        return petId;
    }
    public void setPetId(int petId) {
        this.petId = petId;
    }
    public String getPetName() {
        return petName;
    }
    public void setPetName(String petName) {
        this.petName = petName;
    }
    public String getPetBread() {
        return petBread;
    }
    public void setPetBread(String petBread) {
        this.petBread = petBread;
    }
    public String getPetSex() {
        return petSex;
    }
    public void setPetSex(String petSex) {
        this.petSex = petSex;
    }
    public String getBirthday() {
        return birthday;
    }
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

第三步:建立数据库 帮助类DB(记得导入架包)

package DB;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
     import java.sql.Statement;

   public class JNDI {

        //数据库名和登入密码
        String driver="oracle.jdbc.driver.OracleDriver";
        String url="jdbc:oracle:thin:@localhost:1521:ORCL";
        String user = "epet";
        String pwd = "123456";

        //建立数据库连接方法
        public Connection getConnection(){
            //加载驱动
            try {
                //第一步:加载驱动
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            Connection con =null;

              //获取连接对象
            try {
                con =DriverManager.getConnection(url,user,pwd);

                //连接数据库
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();

            }
                 return con;
        }

        //======释放资源方法=======

    public  void ShiFang(ResultSet rs, Statement st,Connection con){

               //如果结果集不为空,则释放成功 ,否则失败
                   try {
                       if(rs!=null){
                              rs.close();
                       }if(st!=null){
                             st.close();
                       }if(con!=null){
                         con.close();  

                       }
                           } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                           }
                   }

     }

第四步:三层架构(数据查询层+业务逻辑层+表示层JSP

1、创建Biz(业务逻辑层)

package Biz;

import java.util.List;

import entity.pet;

/**
 * 业务逻辑层
 * @author Administrator
 *
 */
public interface petBiz {

    //查询宠物信息
    public List<pet> returnList();
    //添加宠物信息
    public int insertPet(pet pet);
    //根据宠物类型查询宠物信息
    public List<pet> selectPet(String petType);
}
package Biz.Impl;

import java.util.List;

import entity.pet;
import Biz.petBiz;
import Dao.petDao;
import Dao.Impl.petDaoImpl;

public class petBizImpl implements petBiz {

    //实例化数据连接层
    petDao pe=new petDaoImpl();

    public List<pet> returnList() {

        return pe.returnList();
    }

    public int insertPet(pet pet) {
        // TODO Auto-generated method stub
        return pe.insertPet(pet);
    }

    public List<pet> selectPet(String petType) {
        // TODO Auto-generated method stub
        return pe.selectPet(petType);
    }

}

2、创建DAO(数据查询层)

package Dao;

import java.util.List;

import entity.pet;
/**
 * 数据查询层
 * @author Administrator
 *
 */
public interface petDao {
    //查询宠物信息
    public List<pet> returnList();
    //添加宠物信息
    public int insertPet(pet pet);
    //根据宠物类型查询宠物信息
    public List<pet> selectPet(String petType);
}
package Dao.Impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import entity.pet;
import DB.JNDI;
import Dao.petDao;

public class petDaoImpl extends JNDI implements petDao {
    private Connection cn;
    private PreparedStatement ps;
    private ResultSet rs;
    public  List<pet> returnList() {
        List<pet> li=new ArrayList<pet>();
        cn=super.getConnection();
        String sql="select * from pet order by petId";
        try {
            ps=cn.prepareStatement(sql);
            rs=ps.executeQuery();
            while(rs.next()){
                pet pe=new pet();
                pe.setPetId(rs.getInt("petId"));
                pe.setPetName(rs.getString("petName"));
                pe.setPetBread(rs.getString("petBread"));
                pe.setPetSex(rs.getString("petSex"));
                pe.setBirthday(rs.getString("birthday"));
                pe.setDescription(rs.getString("description"));
                li.add(pe);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return li;
    }

    public int insertPet(pet pet) {
        int i=0;
        cn=super.getConnection();
        String sql="insert into pet values (pet_squ.nextval,?,?,?,to_date(?,‘YYYY-MM-dd‘),?)";
        try {
            ps=cn.prepareStatement(sql);
            ps.setString(1,pet.getPetName() );
            ps.setString(2, pet.getPetBread());
            ps.setString(3,pet.getPetSex() );
            ps.setString(4,pet.getBirthday() );
            ps.setString(5,pet.getDescription() );
            i=ps.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return i;
    }

    public List<pet> selectPet(String petType) {
        List<pet> li=new ArrayList<pet>();
        if(petType.equals("请选择")){
            cn=super.getConnection();
            String sql="select * from pet order by petId";
            try {
                ps=cn.prepareStatement(sql);
                rs=ps.executeQuery();
                while(rs.next()){
                    pet pe=new pet();
                    pe.setPetId(rs.getInt("petId"));
                    pe.setPetName(rs.getString("petName"));
                    pe.setPetBread(rs.getString("petBread"));
                    pe.setPetSex(rs.getString("petSex"));
                    pe.setBirthday(rs.getString("birthday"));
                    pe.setDescription(rs.getString("description"));
                    li.add(pe);
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }else{
        cn=super.getConnection();
        String sql="select * from pet where petBread=? order by petId";
        try {
            ps=cn.prepareStatement(sql);
            ps.setString(1,petType);
            rs=ps.executeQuery();
            while(rs.next()){
                pet pe=new pet();
                pe.setPetId(rs.getInt("petId"));
                pe.setPetName(rs.getString("petName"));
                pe.setPetBread(rs.getString("petBread"));
                pe.setPetSex(rs.getString("petSex"));
                pe.setBirthday(rs.getString("birthday"));
                pe.setDescription(rs.getString("description"));
                li.add(pe);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }
        return li;
    }

}

第五步:创建实现Servlet的配置(web项目xml配置)和部署

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <!-- 注册 -->
    <servlet>
         <servlet-name>selectPet</servlet-name>
           <servlet-class>servlet.selectPet</servlet-class>
    </servlet>

    <!-- 映射 -->
    <servlet-mapping>
             <servlet-name>selectPet</servlet-name>
               <url-pattern>/selectPet</url-pattern>
    </servlet-mapping>

    <!-- 注册 -->
    <servlet>
         <servlet-name>servletInsert</servlet-name>
           <servlet-class>servlet.servletInsert</servlet-class>
    </servlet>

    <!-- 映射 -->
    <servlet-mapping>
             <servlet-name>servletInsert</servlet-name>
               <url-pattern>/servletInsert</url-pattern>
    </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

部署servlet:

package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import entity.pet;

import Biz.petBiz;
import Biz.Impl.petBizImpl;

public class selectPet extends HttpServlet {

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        System.out.println("初始化servlet");
    }

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("test_get");
        petBiz pet=new petBizImpl();
        List<pet> li=pet.returnList();

        request.getSession().setAttribute("list", li);
        response.sendRedirect("index.jsp");
        System.out.println("test");
    }

    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String petType=request.getParameter("petType");

        String pett="";
        if(("").equals(petType)||petType==null){
            pett="请选择";
        }else{
            petType=new String(petType.getBytes("ISO8859-1"),"UTF-8");
            pett=petType;
        }
        petBiz pet=new petBizImpl();
        List<pet> li=pet.selectPet(pett);

        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=UTF-8");
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        request.getSession().setAttribute("list", li);
        response.sendRedirect("index.jsp");
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        System.out.println("销毁servlet");
    }
}

配置添加宠物servlect

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Biz.petBiz;
import Biz.Impl.petBizImpl;

import entity.pet;

public class servletInsert extends HttpServlet{
    @Override
    public void init() throws ServletException {
        // TODO Auto-generated method stub
        System.out.println("servlet初始化成功");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("Test_Get");

        PrintWriter out =response.getWriter();
        out.print("tets");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        request.setCharacterEncoding("utf-8");
        pet pet=new pet();
        pet.setPetName(request.getParameter("petname"));
        pet.setPetBread(request.getParameter("select"));
        pet.setPetSex(request.getParameter("radio"));
        pet.setBirthday(request.getParameter("bornDate"));
        pet.setDescription(request.getParameter("textarea"));

        petBiz pb=new petBizImpl();
        int i=pb.insertPet(pet);
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out =response.getWriter();
        if(i>0){
            response.sendRedirect("index.jsp");
        }else{
            response.sendRedirect("insert.jsp");
        }

    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        System.out.println("销毁servlet");
    }

}

3、三层架构之表示层(jsp)

<%@page import="entity.pet"%>
<%@page import="Biz.Impl.petBizImpl"%>
<%@page import="Biz.petBiz"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

    List<pet> list=(List)request.getSession().getAttribute("list");
    request.setAttribute("pet", list);

    String []petArray={"请选择","猫","狗","鸟","鼠"};
    request.setAttribute("petArray", petArray);
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>显示页</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <style type="text/css">
        table tr th{width:100px;background:grey}
        table tr td{width:100px;}
    </style>
    <script type="text/javascript">
            function petChange(){
                var select =document.getElementById("select").value;
                document.getElementById("form").action="selectPet?petType="+select;
                   document.getElementById("form").method="post"
                   document.getElementById("form").submit();
               }
    </script>
  </head>

  <body>
    <div>
        <p>
            <form id="form">
                品种
                <select name="select" id="select" >
                    <c:forEach var="petArray" items="${requestScope.petArray }">
                        <option <c:if test="${petArray}">selected=selected</c:if> value="${petArray }">${petArray }</option>
                    </c:forEach>
                </select>
                <input type="submit" value="提交" onclick="petChange()"/>
                <a href="insert.jsp">添加宠物</a>
            </form>

        </p>
        <table>
            <tr>
                <th>宠物昵称</th>
                <th>出生日期</th>
                <th>性别</th>
            </tr>
            <c:forEach var="pet" items="${requestScope.pet }" varStatus="stauts">
            <tr <c:if test="${stauts.index%2==1}">style="background-color:rgb(219,241,212)"</c:if>>
                <td>${pet.petName } </td>
                <td>${pet.birthday }</td>
                <td>${pet.petSex }</td>
            </tr>
            </c:forEach>
        </table>
    </div>
  </body>
</html>     

                                                                                                                          
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ‘insert.jsp‘ starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>

  <body>
  <form action="servletInsert" method="post" onsubmit="return check()">
    <table>
        <tr>
            <th colspan="2">宠物基本信息</th>
        </tr>
        <tr>
            <td>昵称:</td>
            <td><input type="text" name="petname" id="petname" /></td>
        </tr>
        <tr>
            <td>品种</td>
            <td>
                <select name="select" id="select"">
                <option value="请选择">--请选择--</option>
                <option value="狗">狗</option>
                <option value="猫">猫</option>
                <option value="鸟">鸟</option>
                <option value="鼠">鼠</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>性别</td>
            <td>
                <input type="radio" value="雄" name="radio" checked="checked"/>雄
                <input type="radio" value="雌" name="radio"/>雌
            </td>
        </tr>
        <tr>
            <td>出生日期</td>
            <td><input type="text" name="bornDate" id="bornDate"/> <span id="span"></span></td>
        </tr>
        <tr>
            <td>宠物描述</td>
            <td>
                <textarea name="textarea" id="textarea" cols="60" rows="10">

                </textarea>
            </td>
        </tr>
        <tr>
            <td colspan="2" style="text-align:center">
                <input type="submit" value="提交"/>
                <input type="reset" value="重置"/>
            </td>
        </tr>
    </table>
   </form>
   <script language="javascript">
      function check(){
           var petname =document.getElementById("petname").value;
           var select =document.getElementById("select").value;
           var bornDate =document.getElementById("bornDate").value;
           var textarea =document.getElementById("textarea").value;
           var span =document.getElementById("span");
           var reg=/^(18|20)\d\d-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])/;
           if(petname==""){
               alert("宠物名称不能为空");
               return false;
           }
           if(select=="请选择"){
               alert("请选择宠物类型");
               return false;
           }
           if(bornDate==""){
               alert("请输入宠物出生日期");
               return false;
           }
           if(reg.test(bornDate)==false){
               span.innerHTML="YYYY-MM-DD";
               alert("日期格式错误");
               return false;
           }
           if(textarea==" "){
               alert("请输入宠物描述");
               return false;
           }
       }
     </script>
  </body>
</html>

 
时间: 2024-10-14 20:22:40

Java_Web之宠物管理系统的相关文章

小练习 宠物管理系统

#coding=utf-8 PETS = []  # 宠物列表 def addPet():    petId = input("请输入宠物编号:")    petName = input("请输入宠物名称:")    petCategory = input("请输入宠物的种类:")    petPrice = input("请输入宠物的价格:")    pet = {"id":petId,"nam

使用DAO模式开发宠物管理系统---hellokitty

http://www.cnblogs.com/hellokitty1/p/4489213.html 宠物有狗和企鹅. 狗的属性有:编号.名称.亲密值.健康值.品种.所属主人编号. 企鹅的属性有:编号.名称.亲密值.健康值.性别.所属主人编号. 该系统中主人可以领养宠物,主人的属性有:编号.用户名.密码.姓名.地址.电话. 要求将狗和企鹅的数据保存到同一张表中除所属主人编号.品种.性别外,其余列均不允许为空.主人编号为空表示该宠物未被人领养. 创建宠物表与主人表,狗和企鹅.主人各初始化5条以上的记

Java实例---简单的宠物管理系统

代码分析 Cat.java 1 package com.ftl.petshop; 2 3 class Cat implements Pet 4 { 5 private String name; 6 private String color; 7 private int age; 8 public Cat(String name, String color, int age) 9 { 10 this.name = name; 11 this.color = color; 12 this.age =

基于android的相关的管理系统的毕业设计代写

1.启思代做启思毕业设计代做是专业java毕业设计代做,主要针对java,ssh,ssm,jsp,j2ee,android相关管理系统的毕业设计代写. 客服:加扣扣(幺零三贰三七幺贰幺) 2.代做特色a.定做设计,不卖模版:我们的java毕设代做,是定做设计,是安全按照学生的开题要求,定制一套.而目前市面上99%的代做都是卖的模版给学生,都是重复卖给很多学生的.那些设计虽然便宜,但完全不可能通过学校的查重.老师一下就能看出来.所以奉劝同学们,千万不要贪图便宜,便宜无好货,好货不便宜. b.一站式

哪里可以找到基于JAVA设计帮做的超市管理系统

一,关于我们我们是专业从事于定做计算机相关毕业设计,拥有专业的写手团队和严格的保密制度.我们的工程师们在软件工程开发与设计的各个领域积累了丰富的经验,保证服务水平.我们致力于为客户提供各专业高质量的毕业设计定做服务,为即将毕业的同学提供毕业设计指导.毕设代做.毕设定制等一站式服务.强大的专业能力,高效的服务水平,多年以来一直深得客户好评,毕业只有一次,我们将尽心尽力为你完成毕设. 联系我们:.扣.扣.号(幺零三贰三七幺贰幺) 与我们取得联系,向我们提出您的写作要求:我们咨询师会根据您的服务需求和

如何使用JAVA设计在线设计管理系统的代码详解

一,关于我们我是专业从事于定做计算机相关毕业设计,拥有专业的写手团队和严格的保密制度.我们的工程师们在软件工程开发与设计的各个领域积累了丰富的经验,保证服务水平.近两年,每个毕业季都帮助至少50位以上的计算机专业同学通过了毕业答辩,也是一件很开心的事情.每每看到他们来找我做毕业设计就像抓住了救命稻草一样,那种充满期待,和无助的感觉,也让我觉得把毕业设计给他们做好,服务好每一位同学是我义不容辞的责任,同学通过后.那种欢喜,我也是感同身受. 联系我们:.扣.扣.号(幺零三贰三七幺贰幺) 对于大多数的

找基于SSM的进销存管理系统毕设代做

一.代做内容:java毕业设计,基于jsp,ssh,ssm,javaweb,j2ee的设计与实现,毕业设计定做,基于android毕业设计. 联系我们口.口.号:1.0.3.2.3.7.1.2.1 二.代做价格:因为毕设确实和其他商品不一样,我们根据你的题目难易程度,具体价格请找客服确定.我店的特色是定做设计,不卖模板.100%原创设计.完全按照学生的题目要求,开题的功能模块,为你定制一套独一无二的设计.包查重复. 淘便宜又想买好设计的同学请另请高明. 说明:a.现在有些朋友还想出一两百做一个设

哪里有基于SSM的毕业进存销管理系统代做

代做基于ssh毕业设计,代写基于ssm毕业设计,哪里有基于java毕业设计,找人做基于javaweb毕业设计,买基于web毕业设计,哪里可以买java毕业设计,哪里有卖java,毕业论文,代做,找人做java,毕业设计成品,代写java,程序加论文,java毕业设计全套,代做java开题报告,java毕业设计任务书 客服:加扣扣(幺零三贰三七幺贰幺) 一,代做介绍我们是计算机专业毕业设计定制平台.我们长期为毕业季的同学定做专属题目的毕业设计论文.之所以是私人订制毕设,那是根据我们长期的接触发现,

基于ssm框架设计定做

一,关于我们启思java设计帮做为广大学子提供设计帮做服务!即使您完全不懂程序,或者您忙于实习没时间做.都请交给我们吧.诚信,专业,具有十年java设计及设计代写经验.为您提供全程跟踪服务.确保您顺利通过设计答辩. 联系我们:.扣.扣.号(幺零三贰三七幺贰幺) 二,服务流程我们在确认了设计的要求后,即可开始设计.无定金,2至3个工作日后,由学生验收设计,满意后才付费.不满意,绝不收您一分钱.全国仅此一家!!! 三,服务项目1.java设计:进销存管理系统,网上购物系统,物流管理系统,网上订餐系统