团队名称-冲刺日志(第七天)

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/computer-science-class1-2018
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-science-class1-2018/homework/12064
这个作业的目标 清晰自己的项目到底进行到了哪一天,完成度到底如何
小组的组号和队名 第二组冰菓不是冰葉组
小组的队长姓名 贺勇

SCRUM部分:

每个成员描述:

(1)我今天的进度(完成了哪些任务,花了多少时间,还剩余多少时间),今天遇到了哪些问题,今天解决了哪些问题,(参见前面计划的要求),明天的计划。(可以以表格形式列出)

今天的进度 遇到的问题 解决问题方法 明天的计划
贺勇负责的管理员对查询到的数据进行增删改除 好多好多,点击无效,点击报错,点击后404都有,连接不到数据库都来了 在网上疯狂找资料,问了问强的离谱大佬,加了一些相关QQ群总之就是疯狂问,问问题又不收费 用户部分的实现
陈强 怎么解决搜索功能的实现,怎么将数据传到其他网页且不跳转 在网上尤其是MDN上查找网络数据传输的相关知识点 /
黎志洋 / / /
罗宇梁 / / /
喻达龙 / / /
陈子扬 / / /

(2)团队成员的工作如果是开发工作必须有代码签入,给出签入记录对应的Issue内容与链接,代码必须每天可执行(当天截屏,没有倒扣分)

代码

搜索功能

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="dao.newinterfaceDAO"%>
<%@ page import="kechensheji.newinterfaces"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>搜索页面</title>
<base href="<%=basePath%>">
<link rel="stylesheet" href="CSS/search2.css">
<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">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
</head>
<body>
       <div class="container">
             <input type="text" name="A" placeholder="请输入搜索所内容" class="A">
             <input type="button" name="A" value="搜索" onclick="Ck()">            
       </div>
       <script>
            var input=document.getElementsByClassName("A");
            console.log(input);
            var div2=document.createElement("div");
            document.body.appendChild(div2);
            function Ck(){
            	if(div2.lastElementChild!=null){
                   
                    while(i!=0){
                    	 var last=div2.lastElementChild;
                         var i=div2.childElementCount;
                    if(last!=null){
                       console.log("1212");
                       div2.removeChild(last);
                    }
                   }
                

                }
            	
            	var str=input[0].value;
            	<%
            	newinterfaceDAO itemsDao = new newinterfaceDAO();
            	ArrayList<newinterfaces> list = itemsDao.getAllnewinterfaces();
            	if(list!=null&&list.size()>0){
                    for(int i=0;i<list.size();i++){
                    	newinterfaces item = list.get(i);
                 %>
                 var str2="<%= item.getTopic()%>"
                 if(str2.indexOf(str)>=0){
                	  var a=document.createElement("a");
                	  a.setAttribute("href","information.jsp?id=<%=item.getGoodId()%>&name=<%=request.getParameter("username")%>");
                      var img=document.createElement("img");
                      img.src="<%= item.getImg()%>";
                      a.appendChild(img);
                      div2.appendChild(a);
                 }
                 <%
                    }
            	}
            	%>
            }
        </script>
</body>
</html>

个人信息界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>管理界面</title>
<link rel="stylesheet" href="CSS/Administration.css">
</head>
<body>
<%!
	//public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";//定义数据库驱动程序
	public static final String DBURL = "jdbc:mysql://localhost:3306/mesige?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";//数据库链接地址
	public static final String DBUSER = "root";//数据库连接用户名
	public static final String DBPASS = "changw1164816347";//数据库连接密码
%>
<%
	Connection conn = null;//声明数据库连接对象
	PreparedStatement pstmt = null;//声明数据库操作
	ResultSet rs = null;//声明数据库结果集
	boolean flag = false;//定义标志位
	String name = null;//接受用户的真实姓名
%>
<%
	try {
		String admId = request.getParameter("admId");
		System.out.println(admId);
		Class.forName(DBDRIVER);//加载驱动程序
		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);//取得数据库连接
		//编写要使用的SqL语句,验证用户id和密码,如果正确,则取数真实姓名
		String sql = "select topic,Ttype,area,goodId from goods where admId = ?";
		System.out.print("ssss");
		pstmt = conn.prepareStatement(sql);//实例化数据库操作对象
		pstmt.setString(1,admId);//设置查询所需的内容
		rs = pstmt.executeQuery();//执行查询
%>
       <div class="container">
       <div>
           <span>个人二手信息管理</span>
       </div>
       <div>
               <table>
                   <tr>
                       <th>商品编号</th>
                       <th>信息标题</th>
                       <th>类型</th>
                       <th>交易地区</th>
                       <th>删除</th>
                   </tr>
<%
		while(rs.next()) {//如果可以查询到,则表示合法用户
			flag = true;//修改标志位,如果为true,表示登陆成功
			String topic=rs.getString(1);
			String Ttype=rs.getString(2);
			String area=rs.getString(3);
			String goodId=rs.getString(4);
%>
                   <tr>
                       <td><span><%=goodId%></span></td>
                       <td><span><%=topic%></span></td>
                       <td><span><%=Ttype%></span></td>
                       <td><span><%=area%></span></td>
                       <td><button onclick="jump(<%=goodId%>);">删除</button></td>
                   </tr>
                   <script>
                      function jump(i) {
                	   // var s = document.getElementsByTagName('span')[0];
                	    location.href='delete.jsp?'+'txt=' + encodeURI(i);
                	    alert("你将删除该商品");
                	  }
                   </script>
      
<% 
		}
%>
       </table>
       </div>
       </div>
<%
	} catch (Exception e) {
		System.out.println(e);
	} finally {
		try {//关闭操作会抛出异常,使用try catch处理
			rs.close();//关闭查询对象
			pstmt.close();//关闭操作对象
			conn.close();//关闭数据库连接
		} catch (Exception e) {}
	}
%>
<%
	if (flag) {//登陆成功,跳转到成功页面
%>
<%
	} else {//登陆失败,跳转到失败页面
%>
		<h1>实拍</h1>
<%	
	}
%>
</body>
</html>

商品发布界面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>信息发布界面</title>
 <link rel="stylesheet" href="CSS/release.css">
</head>
<body>
<div class="container">
        <div class="header">
            <p>信息发布</p>
        </div>
        <div class="information">
            <form action="release.jsp" method="POST">
                <table>
                    <tr>
                        <td>信息标题</td>
                        <td><input type="text" name="topic" onblur="blurFunction()"/><span>*内容不可大于30个字</span></td>
                    </tr>
                    <tr>
                        <td>新旧程度</td>
                        <td>
                            <select name="newoold">
                                <script>
                                    for(var i=1;i<=10;i++)
                                    {
                                        document.write("<option value="+i+'成新'+">"+i+'成新'+"</option>");
                                    }
                                </script>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>交易类型</td>
                        <td>
                            <select name="Ttype">
                                <option value="求购">求购</option>
                                <option value="出售">出售</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>所属类型</td>
                        <td>
                            <select name="typee">
                                <option value="电脑配件">电脑配件</option>
                                <option value="通讯器制">通讯器制</option>
                                <option value="视听设备">视听设备</option>
                                <option value="书馆报刊">书馆报刊</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>交易地区</td>
                        <td>
                            <select name="area">
                                <option value="食堂一楼">食堂一楼</option>
                                <option value="图书馆">图书馆</option>
                                <option value="一教学楼">一教学楼</option>
                                <option value="校门口">校门口</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>物品价格</td>
                        <td>
                            <input type="text" name="price" onblur="prices()" /><span>*(请输入数字)</span>
                        </td>
                    </tr>
                    <tr>
                        <td>联系人</td>
                        <td>
                            <input type="text" name="admId" onblur="admIds()"/>
                        </td>
                    </tr>
                    <tr>
                        <td>E-mail</td>
                        <td>
                            <input type="text" name="Email" onblur="Emails()"><span>*最好为QQ邮箱或网易邮箱</span>
                        </td>
                    </tr>
                    <tr>
                        <td>联系方式</td>
                        <td><textarea name="way" cols="40" rows="5"></textarea></td>
                    </tr>
                    <tr>
                        <td>物品简介</td>
                        <td><textarea name="product" cols="50" rows="10"></textarea></td>
                    </tr>
                    <tr style="width: 250px;height: 250px;">
                        <td>图片</td>
                        <td><input type="file" name="img"></input><div id="s"></div></td>
                    </tr>
                </table>
                <input type="submit" value="提交">
                <input type="reset" value="重置">
            </form>
        </div>
    </div>
    <script>
    function blurFunction() {
        var topic=document.getElementById("topic");
        console.log(topic.value);
        console.log(topic.value.length);
        // alert("dasds");
        if(topic.value.length>10){
            alert("标题内容大于30个字");
        }
    };
    function prices() {
        var o=0;
        var price =document.getElementById("price");
        console.log(price.value[0]);
        var pricetexts=price.value;
        console.log(typeof pricetexts);
       for(var i=0;i<pricetexts.length;i++){
           if(pricetexts.charCodeAt(i)<49||pricetexts.charCodeAt(i)>57){
               alert("请输入数字");
               break;
           }
           console.log(pricetexts.charCodeAt(i));
           console.log(typeof o);
       }
    };
    function admIds() {
        var admid=document.getElementById("admId").value;
        if(admid.length>=12){
            alert("请输入有效的电话号码");
        }
    };
    function Emails() {
        var pattern = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|42du.cn)$/;
        var email=document.getElementById("Email").value;
        if(!pattern.test(email)){
            alert("请输入有效的邮箱");
        }
    };

     // 定义一个接收转为base64图片的数组
     let ArrayImg=[]
     var index = 0;  //给图片加唯一标识 好删除
     // 获取页面上的元素
     let input=document.getElementsByName('img')[0];
     console.log(input);
     // 绑定oncheange事件
     input.onchange=function(){
       var file=this.files[0]  //获取页面上选择的文件[N]指的是获取第几个
       // console.log(file);
       var iLen = this.files.length;  //获取图片长度
       // console.log(iLen);
       for(var i=0;i<iLen;i++){  //通过循环把多张图片显示到页面上或者上传
       // 本地缓存 预览
       var filereader = new FileReader()  //创建一个本地缓存的对象
       // 把获取到的文件本地缓存转为bese64
       filereader.readAsDataURL(this.files[i])  //转成base64,并存在了自由属性reader.result里  
         console.log([i]);
         filereader.onload = function () { //通过onload 事件把this.result 取出来
         // console.log(this.result,333);
         ArrayImg.push(this.result)
         // 通过html标签包括到img显示图片 放到一个变量中储存
         let img1=`<div id="divimg"><img src="${this.result}" alt="" id="id_img" width=200px height=200px></div>`  
         // 创建一个新的div
         let div = document.createElement('div')
         div['index'] = index; // 给div加唯一标识好移除
         // 把上传存好的img1放到新建的div里面
         div.innerHTML=img1
         console.log(ArrayImg,'图片数组');
         //然后通过dom操作插入到dom树中 显示图片
         document.getElementById("s").appendChild(div)   //插入dom树
         // console.log(img);
         // 通过给div绑定单击事件 删除当前点击的div跟当前点击的图片数组中的base64地址
         div.onclick = function(){  
                     this.remove();                  // 在页面中删除该图片元素  
                     delete ArrayImg[this.index];  // 删除ArrayImg数组对应的数据
                     console.log(ArrayImg,'图片数组');
                 }
                 //inddex记录当前循环了多少次好移除ArrayImg数组中的链接地址
         index++
       }
       }
     }
    </script>
</body>
</html>

截图

一、搜索功能

二、个人信息界面

三、信息发布界面

(3)团队成员的工作如果是测试等其他工作,那要有具体的结果(截屏,测试报告等)

测试详情见测试总结

(4)SCRUM 会议的照片一张,会议照片应该是每天冲刺会议的真实非摆拍照片,可以挡住脸保护隐私。照片如果出现复用的情况倒扣分。

(5)至少一张项目程序/模块的最新(运行)截图。

搜索前

搜索后

PM 报告:

(1)整个项目预期的任务量 (任务量 = 所有工作的预期时间)和 目前已经花的时间 (所有记录的 ‘已经花费的时间’),还剩余的时间(所有工作的 ‘剩余时间’)

任务量完成度 已花费时间 剩余时间
十分之六 七天半 一天半

(2)PM 画出燃尽图

(3)画出一个“任务总量变化线”,体现在工作中发现了多少以前没有想到的事情。

工作中发现了多少以前没有想到的事情:可能有几天项目会没有进展,这几天手都打酸了,我真的有点小裂开,还有些细节做得不够好,我还得完善,剩下的给组员陈强接手用户部分的功能实现吧,我乏了。

(4)表格形式列出每名成员的贡献比

小组成员 贡献比
贺勇 18%
陈强 24%
喻达龙 16%
罗宇梁 16%
陈子杨 16%
黎志洋 16%
posted @ 2021-06-27 19:15  冰菓不是冰葉  阅读(46)  评论(0编辑  收藏  举报