2020届软工期中考试总结(1)

题目要求:

石家庄铁道大学在校学生行程统计(20分)

考试时间:180分钟

1、项目需求:

为了有效防止新冠疫情的传播,急需开发一套在校学生行程统计系统,完成信息统计,提前准备,有效保护在校学生的安全。

2.系统要求与功能设计

2.1 页面功能要求

1)能够在Tomcat服务器中正确部署,并通过浏览器查看;(1分)

2)网站页面整体风格统一;

3)石家庄铁道大学在校学生行程统计页面,页面效果如图所示:(15分)

 

页面详细信息如下表所示:

信息标题

信息类型

填写要求

姓名

文本框

 

学号

文本框

要求输入八位数字

学生类别

单选框

单选项:本科生或者研究生

院系

下拉列表框

下来列表框内容包括(土木学院、机械学院、交通学院、信息学院、经管学院)

联系电话

文本框

要求输入11位数字

健康码颜色

单选框

单选选项(绿码、黄码、红码)

行程统计

复选框

□10月30日去过人民医院

□10月25日以来去过深泽县人民医院

□10月16日以来去过深泽县庄泽村

□10月29日以来去过黑龙江哈尔滨市或者黑河市

□10月18日以来途径贵州遵义市;北京丰台、昌平

□10月17日以来到过湖南长沙;青海海东市

(以上选项可以多选)

其他涉疫信息需要填报的

文本框

 

 

点击“提交”按钮,保存成功则提示信息“填报成功”,失败则提示“信息填报错误”,并返回当前页面

评分标准:

①完成石家庄铁道大学在校学生行程统计页面(未完成0分,完成2分);

②保存行程信息入库(未完成0分,完成6分);

③学号和联系电话判断是否为指定位数的数字。(未完成0分,完成一个0.5,全部完成1分);

④学生类别和健康码颜色实现单选框选择功能(未完成0分,完成一个0.5,全部完成1分);

⑤实现院系下拉框功能(未完成0分,完成1分)。

⑥实现行程统计复选框功能(未完成0分,完成2分)

⑦实现提交后信息提示功能;(未完成0分,完成2分)

2.2 功能要求

1)设计出合理的数据库和数据表,要求使用mysql、sqlserver、oracle三种数据库中一种(1分)

2)使用Serverlet实现信息提交功能(1分)。

3)使用Java Bean封装数据库连接操作(2分。)

此次代码目录

 

 Web页面dengji.html文件

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div id="addSubjectForm" align="center">
<form action="dengji" method="post">
<tr>
<h2>请输入学生信息</h2>
</tr>

<table align="center"> 
<tr>
    <td>姓名:</td>
     <td> 
        <input type="text" name="name">
 </td>
    </tr>

    <tr>
        <td>学号:</td>
        <td>
        <input type="text" name="number" onblur="isCardxuehao(this.value)">
        </td>
    </tr>

    <tr>
        <td>学生类别:</td>
        <td>
         <input type="radio" name="leibie" value="本科生">本科生<br>
         <input type="radio" name="leibie" value="研究生" checked>研究生
        </td>
    </tr>

    <tr>
        <td>院系:</td>
        <td>
         <select name="yuanxi"> 
         <option value="土木学院">土木学院</option> 
         <option value="交通学院">交通学院</option> 
         <option value="机械学院">机械学院</option>
         <option value="经管学院" selected>经管学院</option> 
         <option value="信息学院">信息学院</option> 
         </select> 
        </td>
    </tr>

    <tr>
        <td>联系电话</td>
        <td>
        <input type="text" name="telnumber" onblur="isCardtelnumber(this.value)">
        </td>
    </tr>

    <tr>
    <td> 健康码颜色:</td>
        <td> 
 <input type="radio" name="jiankangma" value="绿码">绿码
 <input type="radio" name="jiankangma" value="黄码" checked>黄码
 <input type="radio" name="jiankangma" value="红码">红码

 </td>
    </tr>
    
    <tr>
        <td>行程统计:</td>
            <td> 
     <input type="checkbox" name="a1" value="10月30日去过人民医院">10月30日去过人民医院 <br>
     <input type="checkbox" name="a2" value="10月25日以来去过深泽县人民医院" checked>10月25日以来去过深泽县人民医院<br>
     <input type="checkbox" name="a3" value="10月16日以来去过深泽县庄泽村">10月16日以来去过深泽县庄泽村<br>
     <input type="checkbox" name="a4" value="10月29日以来去过黑龙江哈尔滨市或者黑河市">10月29日以来去过黑龙江哈尔滨市或者黑河市<br>
     <input type="checkbox" name="a5" value="10月18日以来途径贵州遵义市;北京丰台、昌平">10月18日以来途径贵州遵义市;北京丰台、昌平<br>
     <input type="checkbox" name="a6" value="10月17日以来到过湖南长沙;青海海东市">10月17日以来到过湖南长沙;青海海东市<br>
     </td>
        </tr>

        <tr>
            <td>其他:</td>
             <td> 
                <input type="text" name="qita">
         </td>
            </tr>
<tr>
                      <td colspan="2"><div align="center">
                        <input type="submit" value="录入">    
                    </div>
                </td>
                  </tr>
                  </form>
                  </div>
                  
</body>
<script type="text/javascript">

function isCardxuehao(card) 
{ 
  // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X 
  var reg = /(^\d{8}$)/; 
  if(reg.test(card) === false) 
  { 
    alert("学号输入不合法"); 
    document.getElementById('number').value="";
  } 
}
function isCardtelnumber(card) 
{ 
  // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X 
  var reg = /(^\d{11}$)/; 
  if(reg.test(card) === false) 
  { 
    alert("电话号码输入不合法"); 
    document.getElementById('telnumber').value="";
  } 
}

</script>
</html>

com.Bean包下的Information文件,主要用于封装接收的信息,简化html文件

package com.Bean;

public class Information {
private String name;
private String number;
private String leibie;
private String yuanxi;
private String telnumber;
private String jiankangma;
private String xingcheng;
private String qita;
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getNumber() {
    return number;
}

public void setNumber(String number) {
    this.number = number;
}

public String getLeibie() {
    return leibie;
}

public void setLeibie(String leibie) {
    this.leibie = leibie;
}

public String getYuanxi() {
    return yuanxi;
}

public void setYuanxi(String yuanxi) {
    this.yuanxi = yuanxi;
}

public String getTelnumber() {
    return telnumber;
}

public void setTelnumber(String telnumber) {
    this.telnumber = telnumber;
}

public String getJiankangma() {
    return jiankangma;
}

public void setJiankangma(String jiankangma) {
    this.jiankangma = jiankangma;
}

public String getXingcheng() {
    return xingcheng;
}

public void setXingcheng(String xingcheng) {
    this.xingcheng = xingcheng;
}

public String getQita() {
    return qita;
}

public void setQita(String qita) {
    this.qita = qita;
}

}

com.Dao文件下的mannger文件,主要用于连接数据库表,添加表信息

package com.Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import com.Bean.Information;
import com.Util.utils;

public class mannger {

        // TODO Auto-generated method stub
        public int add(Information A) throws ClassNotFoundException, SQLException {
            Connection connection = utils.getConnection();
            String sql = "insert into stdxc values(?,?,?,?,?,?,?,?)";//修改你的表格名称
            PreparedStatement preparedStatement = null;
             int i=0;
            try {
                 //创建语句传输对象
                 preparedStatement = connection.prepareStatement(sql);
               // preparedStatement = connection.prepareStatement(sql);
                 preparedStatement.setString(1, A.getName());
                 preparedStatement.setString(2, A.getNumber());
                 preparedStatement.setString(3, A.getLeibie());
                 preparedStatement.setString(4, A.getYuanxi());
                 preparedStatement.setString(5,A.getTelnumber());
                 preparedStatement.setString(6, A.getJiankangma());
                 preparedStatement.setString(7, A.getXingcheng());
                 preparedStatement.setString(8, A.getQita());
                  i = preparedStatement.executeUpdate();
                
                 } catch (SQLException e) {
                    // TODO Auto-generated catch block
                   e.printStackTrace();
                }finally {

                }
             return i;
        }
    

}

com.Until包下的utils文件,主要用于连接数据库

package com.Util;


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



/**
 * JDBC快速入门
 */
public class utils {
    public static Connection getConnection() throws ClassNotFoundException, SQLException {
    
           Connection connection = null;//连接数据库
           PreparedStatement ps = null;//Statement 对象用于将 SQL 语句发送到数据库中。
           ResultSet rs = null;
        //1. 导入驱动jar包
        //2.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
         connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/zjr?serverTimezone=UTC","root", "Zhaowenzhe1007");//修改你的数据库名称以及密码
       return connection;
    }
    
    public static void close(Connection connection ) {
         try {
           if (connection != null) {
                connection.close();
             }
           
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
       }
     }
     public static void close(PreparedStatement preparedStatement ) {
         try {
            if (preparedStatement != null) {
                 preparedStatement.close();
             }            
        } catch (SQLException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
     public static void close(ResultSet resultSet ) {
        try {
            if (resultSet != null) {
                 resultSet.close();
             }
             
         } catch (SQLException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
     
 }

Serlvet文件下的dingzhi文件,主要用于专门用来接收客户端的请求,专门接收客户端的请求数据,然后调用底层service处理数据并生成结果传导给数据库,跳转Dao包,并记录数据是否成功添加

package Servlet;

import java.io.IOException;
import java.sql.SQLException;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import com.Dao.mannger;
import com.Bean.Information;
/**
 * Servlet implementation class dengji
 */
@WebServlet("/dengji")//对应html中的action表单
public class dengji extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public dengji() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        //设置相应的文本类型
        response.setContentType("text/html;charset=utf-8");//设置响应类型,并防止中文乱码
        
        mannger A =new mannger();
        int i = 0;
        String name = request.getParameter("name");
        String number = request.getParameter("number");
        String leibie = request.getParameter("leibie");
        String yuanxi = request.getParameter("yuanxi");
        String telnumber = request.getParameter("telnumber");
        String jiankangma = request.getParameter("jiankangma");
        String qita = request.getParameter("qita");
        String a1=null;
        String a2=null;
        String a3=null;
        String a4=null;
        String a5=null;
        String a6=null;
        if(request.getParameter("a1")!=null)
        {
            a1=request.getParameter("a1")+' ';
        }
        else a1=" ";
        if(request.getParameter("a2")!=null)
        {
            a2=request.getParameter("a2")+' ';
        }
        else a2=" ";
        if(request.getParameter("a3")!=null)
        {
            a3=request.getParameter("a3")+' ';
        }
        else a3=" ";
        if(request.getParameter("a4")!=null)
        {
            a4=request.getParameter("a4")+' ';
        }
        else a4=" ";
        if(request.getParameter("a5")!=null)
        {
            a5=request.getParameter("a5")+' ';
        }
        else a5=" ";
        if(request.getParameter("a6")!=null)
        {
            a6=request.getParameter("a6")+' ';
        }
        else a6=" ";
        String xingcheng=a1+a2+a3+a4+a5+a6;
        Information B = new Information();
        B.setName(name);
        B.setNumber(number);
        B.setYuanxi(yuanxi);
        B.setLeibie(leibie);
        B.setTelnumber(telnumber);
        B.setJiankangma(jiankangma);
        B.setXingcheng(xingcheng);
        B.setQita(qita);
        try {
             i= A.add(B);
              
        } catch (ClassNotFoundException | SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if(i==1)
            response.getWriter().append("添加成功!");
        else
             response.getWriter().append("添加失败!");
    }

}

 

posted @ 2022-10-16 21:27  橘子味芬达水  阅读(53)  评论(0编辑  收藏  举报